关于 using-ui-stack
这是一项用于生成 UI 组件的设计技能,涵盖间距、颜色、字体、交互状态、无障碍和深色模式规则。它引导开发者或编码 Agent 检查项目令牌,并在没有现成配置时采用默认规范。
主要功能
- 018px 间距网格
- 0260-30-10 配色比例
- 03字体比例尺
- 04深色模式颜色映射
- 05五种交互状态
- 06无障碍与动效规范
适用场景
- 01统一组件间距
- 02检查新 UI 的交互状态
- 03设计明暗模式颜色令牌
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ spencerpauly/ awesome-cursor-skills --skill using-ui-stack安装后在 Claude Code 中输入/using-ui-stack确认已加载。
详细介绍
使用 UI Stack
为生成的每个 UI 组件应用结构化设计系统。这能避免内边距不一致、颜色不匹配以及遗漏悬停状态。
设计系统原则
为构建的每个组件遵循以下规则:
间距 — 8px 网格
所有间距(内边距、外边距、间隔)都使用 8 的倍数:
4px— 仅用于紧凑的内部内边距8px— 行内间隔、图标间距16px— 标准内边距、卡片间距24px— 区块内边距32px— 较大的区块间距48px / 64px— 页面级间距
颜色 — 60-30-10 规则
- 60% 中性色/背景色
- 30% 品牌主色
- 10% 用于 CTA 和高亮的强调色
- 语义颜色:成功(绿色)、警告(琥珀色)、错误(红色)、信息(蓝色)
- 深色模式下切勿使用纯黑色(
#000),请使用slate-950或类似颜色
字体排印 — 1.25 比例级数
text-xs: 12px / 16px
text-sm: 14px / 20px
text-base: 16px / 24px
text-lg: 18px / 28px
text-xl: 20px / 28px
text-2xl: 24px / 32px
text-3xl: 30px / 36px
text-4xl: 36px / 40px
- 标题:
font-semibold或font-bold - 正文:
font-normal,行高为 1.5–1.75 - 等宽字体:用于代码、ID、数字数据
深色模式
- 为每个颜色令牌提供完整的浅色/深色映射
- 背景:使用
white→slate-950,而非black - 文本:使用
slate-900→slate-100 - 边框:使用
slate-200→slate-800
5 种交互状态
每个交互元素都必须包含:
- 默认 — 基础外观
- 悬停 — 轻微改变颜色或添加阴影
- 激活/按下 — 颜色稍深或略微缩小
- 焦点 — 显示可见的焦点环(
ring-2 ring-offset-2) - 禁用 — 降低不透明度,使用
cursor-not-allowed
无障碍
- 文本对比度 ≥ 4.5:1,大号文本对比度 ≥ 3:1
- 触控目标 ≥ 44×44px
- 使用语义化 HTML(使用
button而非div,以及nav、main等) - 支持键盘导航 — 所有交互都可通过 Tab/Enter/Escape 访问
- 为动画遵循
prefers-reduced-motion设置
动画
- 时长:微交互为 150–300ms
- 缓动:进入时使用
ease-out,退出时使用ease-in - 将动效包装在
motion-safe:中,或检查prefers-reduced-motion
覆盖层 Z-Index 层级
dropdown: z-10
sticky: z-20
overlay: z-30
modal: z-40
toast: z-50
tooltip: z-60
工作流
- 生成 UI 前,检查项目是否有
ui-stack配置或设计令牌 - 如果没有,则应用上述默认设置
- 对每个组件,确认间距符合 8px 网格、颜色遵循 60-30-10 规则,并且具备全部 5 种交互状态
- 切换类/属性来测试深色模式,并确认所有令牌都正确映射
参考资料
- ui-stack.dev — 交互式配置工具和完整文档
- GitHub:rashoodkhan/ui-stack — 源代码仓库
评论
支持 Markdown