关于 modern-css-html
为编写 HTML 和 CSS 的开发者提供现代原生实现指南,强调优先使用平台能力并按 Safari 与 Chrome/Edge 的支持情况渐进增强。
主要功能
- 01原生 HTML 元素与语义结构
- 02现代 CSS 布局与响应式方案
- 03色彩与主题配置建议
- 04动画及滚动驱动效果指南
- 05浏览器支持与回退策略
适用场景
- 01为表单和交互控件选择合适的 HTML 元素
- 02用 CSS 实现响应式布局与动画
- 03为新 CSS 特性规划渐进增强和回退
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ kemiljk/ skills --skill modern-css-html安装后在 Claude Code 中输入/modern-css-html确认已加载。
附带文件references/features.mdreferences/recipes.md
详细介绍
现代 CSS 与 HTML
使用当前平台功能编写 CSS 和 HTML。优先使用原生功能,而非旧式技巧和不必要的 JavaScript。
与其他技能的配合
- 本技能负责原生实现方案的选择。
fluid-design负责处理超出 CSS 能力范围的交互体验,例如物理效果、中断或手势。semantic-html-first负责元素与 ARIA 的边界。- 如果原生 CSS/HTML 功能可以满足需求,且支持情况可接受,就使用它。
浏览器支持策略
目标是支持 WebKit(Safari) 和 Blink(Chrome/Edge) 的功能,除非任务明确允许仅针对单一引擎进行实验。
- **两个引擎都广泛支持:**直接作为默认方案发布。
- **两个引擎都刚刚开始支持:**使用
@supports/ 渐进增强。 - **仅单一引擎支持或尚不稳定:**作为可选方案说明,并提供跨引擎实现路径。
建议中不要硬编码可能变动的全球支持率百分比。不确定时,重新核查支持情况,并将决策表述为“两个引擎都支持 / 渐进增强 / 回退方案”。
核心默认做法
HTML
- 优先使用原生元素(
button、a、details、dialog、select、表单控件),而非 ARIA 小部件。 - 优先采用语义化结构(
main、nav、section、标题),而非由大量div组成的结构。 - 在支持情况允许时,优先使用 Popover API + CSS Anchor Positioning,而非自定义浮动元素堆栈。
布局
- 使用
gap,而非通过margin实现间距;使用inset,而非四个物理方向偏移;使用aspect-ratio,而非通过padding实现比例。 - 在移动设备全屏高度布局中使用
100dvh;使用逻辑属性实现适应方向的间距。 - 使用容器查询实现组件响应式布局;使用范围语法编写媒体查询。
- 在可以替代 JavaScript 的情况下,使用
subgrid、grid-template-areas、position: sticky和滚动捕捉。
颜色与主题
- 使用
oklch()构建调色板。 - 使用
color-mix()和相对颜色语法派生状态颜色。 - 优先使用
light-dark()和color-scheme,而非重复编写主题代码块。
动效
- 优先对
translate、rotate、scale和opacity进行动画处理。 - 在支持时,使用
@starting-style和transition-behavior: allow-discrete实现进入/退出效果。 - 在支持情况允许时,优先使用 CSS 滚动驱动时间线,而非通过 Intersection Observer 切换类名。
- 弹簧效果、手势和可中断的物理效果请遵循
fluid-design。
审查清单
- 此控件是否有对应的原生 HTML 元素?
- 是否可以不使用库,仅通过 CSS 实现布局、颜色和动效?
- 颜色是否使用令牌 /
oklch,而非一次性十六进制值? - 是否在需要时使用
@supports编写回退方案? - 是否为减少动态效果设置了真正可用的替代方案?
- 是否避免在方向敏感的 UI 中使用物理方向的左右属性?
- 如果仍保留 JavaScript,它是否用于弥补 CSS/HTML 无法解决的缺口?
参考资料
评论
支持 Markdown