mcpField
C
css-first

css-first

github.com/depthark设计与 UI1177 次安装1 天前更新
代码仓库

关于 css-first

css-first 是面向界面开发的技能,指导优先使用语义化 HTML 和 CSS,再考虑 JavaScript。它结合浏览器支持状态、渐进增强和项目惯例,帮助开发者选择可维护的实现。

主要功能

  1. 01优先采用 CSS 实现界面
  2. 02按语义与可访问性评估方案
  3. 03检查 Baseline 与浏览器支持
  4. 04为有限支持功能提供回退
  5. 05提供现代 CSS 示例目录

适用场景

  1. 01实现响应式组件与布局
  2. 02为较新 CSS 功能设计降级方案
  3. 03根据项目浏览器目标选择样式
  4. 04验证界面交互的浏览器表现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/depthark/css-first-skill --skill css-first

安装后在 Claude Code 中输入/css-first确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CLAUDE.md
.gitignore
README.md
agents/
openai.yaml
css-demos/
INDEX.md
css-demos/accessibility/
prefers-reduced-motion.css
css-demos/animation/
animatable-zoom.css
scroll-triggered.css
scroll-driven.css
starting-style.css
view-transitions.css
css-demos/container/
anchored-queries.css
comma-separated-queries.css
named-queries.css
size-queries.css
style-queries.css
scroll-state-queries.css
css-demos/functions/
advanced-attr.css
calc-size.css
progress-function.css
random-function.css
contrast-color.css
css-if-function.css
custom-functions.css
inherit-function.css
trigonometric-functions.css
sibling-functions.css
css-demos/interaction/
css-carousel.css
flip-card.css
window-drag.css

详细介绍

CSS 优先

在提出 JavaScript 方案之前,先尝试用语义化 HTML 和 CSS 解决界面需求。若现代标准 CSS 符合用户的目标浏览器要求,优先采用;支持不完整时,通过渐进增强保留核心体验。

工作流

  1. 明确视觉或交互意图,并检查项目所用框架、目标浏览器、书写模式和现有约定。
  2. 在 css-demos/INDEX.md 中查找匹配的模式。
  3. 当支持情况或时效性很重要时,使用 references/live-mdn-fetch.md 获取最新的 Baseline 记录。将已提交到仓库的标签视为带日期的快照,而非永久事实。
  4. 按语义契合度、无障碍性、互操作性和维护成本对方案排序。优先使用逻辑属性和原生 CSS 功能。
  5. 如果所选功能属于 Limited Availability,或没有 WebStatus 记录,请提供可用的回退方案,并在可行时使用 @supports 控制增强功能。
  6. 如果环境支持真实浏览器,请验证语法和行为。

Baseline 术语

严格按照 Web Platform Status 的含义使用标签。不要将全球使用率百分比转换成 Baseline 标签。

API 状态标签含义
widely🟢 广泛可用在核心浏览器集合中实现互操作已至少 30 个月
newly🔵 新近可用在核心浏览器集合中实现互操作尚未满 30 个月
limited🟡 可用性有限尚不属于 Baseline,因为核心浏览器的覆盖不完整
缺失🟣 实验性/未知没有可用的 WebStatus 记录;请检查规范和浏览器版本发布信息

浏览器版本百分比可以作为有用的补充数据,但绝不能用于确定 Baseline 类别。

规则

仅阅读任务所需的参考资料:

Chrome 最新新增功能

演示目录涵盖从 Chrome 148 到 Chrome 152 已发布或已宣布的、面向开发者的 CSS 功能,包括仅使用名称和逗号分隔的容器查询、at-rule() 和 named-feature() 支持测试、可动画的 zoom、圆角 polygon()、text-fit、background-clip: border-area、CSS image() 值、图像类型的 light-dark()、flex-wrap: balance、overscroll-behavior: chain、打印用 page-margin-safety、SVG path-length、ruby-overhang、媒体状态伪类、alpha()、window-drag,以及已安装应用的系统强调色。

请结合功能演示页标题和实时 WebStatus 条目进行判断:仅仅因为 Chrome 已发布某项功能,并不意味着该功能属于 Baseline。

维护快照

在此技能目录中,运行:

python3 scripts/update_baseline.py --check
python3 scripts/update_baseline.py --write

--check 会报告差异,但不会更改文件。--write 会根据官方 WebStatus API 刷新映射的演示文件头,以及 css-demos/INDEX.md 中对应的条目。没有 WebStatus 记录的特性需手动维护,并且必须引用其发布说明或规范。

快速参考

用途首选 CSS演示
组件响应式布局容器查询css-demos/container/size-queries.css
感知父级的样式:has()css-demos/layout/has-selector.css
均衡换行的弹性行flex-wrap: balancecss-demos/layout/flex-wrap-balance.css
入场动画@starting-stylecss-demos/animation/starting-style.css
滚动效果滚动驱动动画css-demos/animation/scroll-driven.css
原生工具提示定位锚点定位css-demos/positioning/anchor-positioning.css
响应式标题适配text-fitcss-demos/visual/text-fit.css
感知主题的图像light-dark() / image()css-demos/visual/css-image-values.css
媒体播放状态:playing、:paused 及相关伪类css-demos/interaction/media-state-pseudos.css
已安装应用的拖动区域window-dragcss-demos/interaction/window-drag.css
减少动态效果prefers-reduced-motioncss-demos/accessibility/prefers-reduced-motion.css
装饰性变化random()css-demos/functions/random-function.css
规范化范围progress()css-demos/functions/progress-function.css

使用 MDN 了解语法和注意事项,使用 WebStatus 了解 Baseline:

评论

支持 Markdown