跳转到使用指南
frontend-ui-engineering作者 Addy Osmani

Frontend UI Engineering Skill.

Claude Code 和 Codex 的 UI 设计 skill:构建生产级、可访问、响应式的用户界面。

  • Web & UI
  • UI 代码
addyosmani/agent-skills · skills/frontend-ui-engineering/SKILL.mdSKILL.md
--- name: frontend-ui-engineering description: Builds production-quality, accessible, responsive user-facing UIs. Use when building or modifying interfaces and pages, creating components, implementing layouts, meeting WCAG accessibility requirements, managing state, or when the output needs to look and feel production-quality rather than AI-generated. --- ## When to Use ## Component Architecture ## State Management ## Design System Adherence ## Accessibility (WCAG 2.1 AA) ## Responsive Design
前言和章节标题读取自上游文件,时间为 2026-09-14 · 完整内容 10,679 字符

01 功能说明

frontend-ui-engineering Skill 在 Claude Code 和 Codex 中的作用

摘要、工作流与产物,均读自该 skill 的 SKILL.md。

来自 SKILL.md读取于 2026-09-14 · 非实际运行记录

以 skill 自身的术语

构建具有生产级质量的用户界面,兼具可访问性、性能和视觉打磨。该 skill 专注于打造看起来出自具备设计意识的顶尖公司工程师之手的 UI ——而不是看起来由 AI 生成。它强制遵循真正的设计系统、正确的 WCAG 2.1 AA 无障碍标准、周到的交互模式,并避免落入常见的 AI 美学套路。

该 skill 涵盖了采用文件同置的组件架构、组合优于配置的原则、从局部 useState 到全局 store 的状态管理、在特定断点下测试的移动优先响应式设计、键盘导航、ARIA 标签、焦点管理、有意义的空状态和错误状态、骨架屏加载,以及用于提升感知速度的乐观更新。

它产出什么

  • 为正在加载的内容提供带 aria-busy 和 aria-label 的骨架屏加载状态
  • 具有 role="status"、描述性文字、图标和可执行后续步骤的有意义的空状态和错误状态
查看示例提示词 ↗

工作方式

  1. 01
    将组件文件同置存放

    将组件实现、测试、故事文件(stories)、自定义 hooks 和类型统一放在以该组件命名的单个文件夹中。

  2. 02
    组合组件,而非配置它们

    使用嵌套子元素构建可组合的组件 API,而不是使用配置项繁多的 prop 对象。

  3. 03
    将数据获取与呈现分离

    创建负责处理数据加载、错误和空状态的容器组件,再将干净的数据传递给呈现组件。

  4. 04
    根据作用范围选择状态管理方式

    对特定组件的 UI 状态使用 useState,对 2-3 个兄弟组件使用提升状态,对主题/认证/语言环境使用 Context,对筛选和分页使用 URL 状态,对远程数据使用服务器状态库,对复杂的共享客户端状态使用全局 store。

  5. 05
    遵循设计系统 token

    使用如 text-primary 和 bg-surface 之类的语义化颜色 token,而非原始十六进制值,以 0.25rem 为增量维持一致的间距比例,并遵循字体层级规范。

  6. 06
    实现 WCAG 2.1 AA 无障碍标准

    确保每个交互元素均可通过键盘访问,为无标签的控件添加 ARIA 标签,在内容变化时管理焦点,为常规文本保证 4.5:1 的对比度,并提供有意义的空状态和错误状态。

02 找到适合场景

何时使用 frontend-ui-engineering Skill

当工作是此类 UI 设计时,在 Claude Code 或 Codex 中使用 frontend-ui-engineering skill。适用场景和限制取自该 skill 自己的文件。

适合场景

  • 构建新的 UI 组件或页面
  • 修改现有的面向用户的界面
  • 实现响应式布局
  • 添加交互或状态管理
  • 修复视觉或 UX 问题

了解边界

  • 构建原型时预设它们日后会被重写
  • 因设计尚未最终确定而跳过样式设置
  • 将响应式设计推迟到后续阶段
  • 将无障碍视为可选项或附加项

需要提供的信息

  • 真实的占位内容使用真实内容或贴近实际的示例,以暴露 lorem ipsum 会掩盖的布局问题(长度、换行、溢出)

03 Skill 内部

frontend-ui-engineering skill 为 Claude Code 和 Codex 设定的规则

SKILL.md 为 Agent 设定的 8 条具体指令、默认值与限制——文件中真正改变结果的部分。

  1. 避免 AI 美学套路

    不要到处使用紫色/靛蓝色、过量渐变、处处 rounded-2xl、通用型 hero 区块、lorem ipsum 文案、到处使用超大内边距、千篇一律的卡片网格,或过度使用阴影的设计。

  2. props 传递不得超过 3 层

    如果你在把 props 传递给不使用它们的组件,就引入 context 或重构组件树。

  3. 使用统一的间距体系

    按 0.25rem 的增量(或项目实际使用的体系)从间距体系中取值。不要发明像 13px 或 2.3rem 这类不在体系中的数值。

  4. 不要跳过标题层级

    保持从 h1(页面标题,每页一个)到 h2(章节)到 h3(子章节)的语义标题层级。不要将标题样式用于非标题内容。

  5. 每个交互元素都必须支持键盘操作

    使用原生可聚焦元素,如 button。如果必须使用带 onClick 的 div,请添加 role="button"、tabIndex={0},并为 Enter 和空格键添加 onKeyDown/onKeyUp 处理程序。

  6. 移动优先设计

    先针对移动端断点进行构建,再扩展到更大屏幕。在 320px、768px、1024px 和 1440px 下进行测试。

  7. 使用骨架加载,而非加载圈

    在内容加载时显示带 aria-busy 和 aria-label 的骨架状态。实现乐观更新以提升感知速度。

  8. 组件不得超过 200 行

    将增长超过 200 行的组件拆分为更小、更专注的单元。

04 投入使用

在 Claude Code 或 Codex 中安装 frontend-ui-engineering

一条 npx skills add 命令,然后在你的 Agent 中执行第一个任务和对结果的清单检查。

将 frontend-ui-engineering 添加到 Claude Code、Codex 或您的 Agent

在你的项目中运行;安装程序会询问要把它添加到哪个 Agent。

Terminal
npx skills add https://github.com/addyosmani/agent-skills --skill frontend-ui-engineering

针对 skills/frontend-ui-engineering/SKILL.md 的通用 skills CLI 形式;该仓库可能会记录其自己的路径。

给 Skill 一个首次 UI 设计任务

按 skill 自身的术语撰写;把括号中的部分换成你的内容。

Starter prompt
Build a TaskList component for [project name] that displays a list of tasks with checkboxes to mark them complete and delete buttons. The component should handle loading, error, and empty states. It should be keyboard accessible, meet WCAG 2.1 AA standards, work responsively from 320px to 1440px, and follow the design system's spacing scale and color tokens. Include a container component that fetches tasks using React Query and a presentation component that receives clean data.

来源:依据 SKILL.md,按 skill 自身的术语撰写。

检查首次结果

SKILL.md 本身如何描述正确的结果:

  • 组件渲染时没有控制台错误
  • 通过在页面中依次按 Tab 键,所有交互元素均可通过键盘访问
  • 屏幕阅读器可以传达页面的内容和结构
  • 响应式布局在 320px、768px、1024px 和 1440px 断点下均正常工作
  • 加载、错误和空状态均已处理
  • 开发者工具或 axe-core 中没有可访问性警告

在 OpenDesign 中从其 SKILL.md 链接导入 frontend-ui-engineering:Plugins → Add → Skill → Import from link,然后在顶部栏中选择它。

05 开源、可追溯

来源、许可与验证

本页面事实的来源,以及最后检查时间。

Skill 文件
skills/frontend-ui-engineering/SKILL.md 验证时已记录内容校验和;commit be4e44a
License
MIT 来自 LICENSE。
仓库星标数
94,139 GitHub 快照于 2026-09-14 针对整个 addyosmani/agent-skills 仓库拍摄。不是 frontend-ui-engineering 的评分或使用计数。
已由 OpenDesign 验证
2026-09-14 已检查源文件、路径、许可文本和 star 数量。未内置在 OpenDesign 主程序(检查日期 2026-08-28);本页面未记录实际运行。

SKILL.md 内部

  1. 概览目标是打造生产级 UI,看起来具有设计感,而非 AI 生成
  2. 何时使用构建或修改 UI 组件、页面、布局、交互、状态,或修复视觉问题
  3. 组件架构文件就近放置,优先组合而非配置,保持组件职责聚焦,数据与展示分离
  4. 状态管理选择最简单的方式:本地状态、提升状态、context、URL 状态、服务器状态或全局 store
  5. 遵循设计系统避免 AI 美学模式,使用一致的间距比例,尊重排版层级,使用语义化的颜色 token
  6. 可访问性(WCAG 2.1 AA)需要键盘导航、ARIA 标签、焦点管理,以及有意义的空状态和错误状态
  7. 响应式设计移动优先的方式,在 320px、768px、1024px、1440px 断点进行测试
  8. 加载与过渡使用骨架屏加载而非加载动画,实现乐观更新以提升感知速度
  9. 常见的合理化理由反驳延后处理可访问性、响应式设计、样式,或接受 AI 美学的说法
  10. 危险信号组件超过 200 行、内联样式、缺失状态、未做键盘测试、仅用颜色作为指示、AI 风格外观
  11. 验证渲染、键盘访问、屏幕阅读器、响应式、状态、设计系统、可访问性工具的检查清单
Skill 自身的描述
"构建生产级、无障碍、响应式的面向用户的 UI。当构建或修改界面和页面、创建组件、实现布局、满足 WCAG 无障碍要求、管理状态,或当输出需要看起来和感觉是生产质量而非 AI 生成时使用。"

SKILL.md 的 front-matter 描述。完整文件约 10,679 个字符。在 GitHub 上阅读完整文件。

06 安装之前

关于 frontend-ui-engineering Skill 的问题

以下回答来自 2026-09-14 读取到的 SKILL.md,而非某次实际运行的记录。

我应该在什么情况下使用 Context,什么情况下使用像 Zustand 这样的全局 store?

对于读多写少的数据(如主题、鉴权、语言区域),使用 Context。对于跨应用共享的复杂客户端状态,使用像 Zustand 或 Redux 这样的全局 store。

如果你只是在 2-3 个兄弟组件之间共享状态,应将状态提升到它们的共同父组件,而不是使用全局 store。避免超过 3 层的 props 逐级传递,可通过引入 context 或重构组件树来解决。

Frontend UI Engineering

在真实的 UI 设计任务上运行 frontend-ui-engineering。

下载 OpenDesign,从其 SKILL.md 链接导入 frontend-ui-engineering,粘贴上述提示,并在结果前阅读计划。

终端
npx skills add https://github.com/addyosmani/agent-skills --skill frontend-ui-engineering

OpenDesign 桌面客户端

一套设计系统,让每一次创作都保持品牌一致

在完整的 Vibe Design Workspace 中,用同一套品牌规则生成网页、PPT、可交互原型、数据看板、图像与 HTML 视频。连接本地 Codex、Claude Code、Cursor 等编程助手,即可免费创作。

  • 覆盖网页、PPT、原型、数据看板、图像与视频
  • 140+ 设计系统,以及完整模板与技能库
  • 连接本地 Codex 与 21+ 款编程助手 · 免费使用
免费下载

支持 macOS 与 Windows