关于 substack-ui-skills
substack-ui-skills 为构建 Substack 风格界面的 AI Agent 提供设计约束,涵盖色彩、排版、布局、交互、动画与性能。
主要功能
- 01Substack 风格界面规范
- 02色彩与对比度规则
- 03Inter 字体规范
- 044px 间距与边框尺度
- 05交互与无障碍要求
- 06动画与性能约束
适用场景
- 01构建 Substack 风格设计系统
- 02应用浅色界面规则
- 03检查界面的无障碍性与交互行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ihlamury/ design-skills --skill substack-ui-skills安装后在 Claude Code 中输入/substack-ui-skills确认已加载。
附带文件metadata.json
详细介绍
Substack UI 技能
为使用 AI Agent 构建 Substack 风格界面制定的约束。
适用场景
在以下情况下参考这些指南:
- 构建浅色模式界面
- 创建 Substack 风格的设计系统
- 使用 Inter 字体和 4px 网格实现 UI
颜色
- 应为主要表面使用浅色背景
- 必须使用
#FFFFFF作为页面背景(surface-base) - 应精简调色板(目前检测到 15 种颜色)
- 为确保无障碍访问,文本对比度必须至少达到 4.5:1
语义令牌
| 令牌 | HEX | RGB | 用途 |
|---|---|---|---|
surface-base | #FFFFFF | rgb(255,255,255) | 页面背景 |
surface-raised | #FC5013 | rgb(252,80,19) | 卡片、模态框、凸起表面 |
surface-overlay | #E9E9E9 | rgb(233,233,233) | 覆盖层、工具提示、下拉菜单 |
text-primary | #999999 | rgb(153,153,153) | 标题、正文文本 |
text-2 | #515151 | rgb(81,81,81) | 补充文本 |
text-secondary | #717171 | rgb(113,113,113) | 次要、弱化文本 |
border-default | #E7E7E7 | rgb(231,231,231) | 细边框、分隔线 |
destructive | #E26739 | rgb(226,103,57) | 错误状态、删除操作 |
字体排印
- 必须使用
Inter作为主要字体系列 - 为保持一致性,应使用单一字体系列
- 主要标题必须使用
36px/semi_bold - 正文文本必须使用
17px/500 - 应减少字重种类(目前检测到 4 种)
- 标题必须使用
text-balance,正文文本必须使用text-pretty - 数值数据应使用
tabular-nums - 除非明确要求,否则绝不修改字间距
文本样式
| 样式 | 字体 | 大小 | 字重 | 颜色 | 数量 |
|---|---|---|---|---|---|
heading-1 | Inter | 36px | semi_bold | #BCDBD7 | 1 |
text-19px | Inter | 19px | semi_bold | #4C4D4D | 1 |
body | Inter | 17px | 500 | #535353 | 1 |
body-secondary | Inter | 16px | 400 | #717171 | 1 |
body-secondary | Inter | 16px | 400 | #6E6E6F | 1 |
body-secondary | Inter | 16px | 400 | #F5C0A3 | 1 |
body-secondary | Inter | 15px | 400 | #969696 | 2 |
body-secondary | Inter | 15px | 500 | #515151 | 1 |
body-secondary | Inter | 15px | 400 | #6F6F6F | 1 |
body-secondary | Inter | 15px | 500 | #5D5D5D | 1 |
字体排印参考
字体系列:
Inter(使用 43 次)
字号: 5px、9px、10px、11px、12px、13px、14px、15px、16px、17px、19px、36px
间距
- 间距必须使用 4px 网格
- 间距应使用以下比例:1px、3px、4px、5px、8px、9px、10px、13px
- 元素间的默认间距应为 4px
- 绝不使用任意间距值(请使用设计比例)
- 应保持容器内边距一致
边框
- 圆角必须使用以下比例:3px、4px、6px、7px、8px、9px、16px、18px
- 边框宽度必须统一使用 1px
- 默认圆角应为 9px
- 绝不使用任意圆角值(请使用设计比例)
- 应使用细边框(1px)分隔元素
圆角参考
比例: 3px、4px、6px、7px、8px、9px、16px、18px
布局
- 必须以 1920px 的基准视口宽度进行设计
- 元素宽度应保持一致:12px、16px、18px、17px、22px
- 应采用文字内容较多且层次清晰的布局
- 绝不使用
h-screen,全视口高度请使用h-dvh - 固定元素必须遵循
safe-area-inset - 方形元素应使用
size-*,而不是w-*+h-*
检测到的布局模式
- 主要内容:宽度:1920px,高度:1080px
组件
- 输入框的高度必须为
0px
按钮
| 变体 | 背景 | 文本 | 边框 | 高度 | 圆角 |
|---|---|---|---|---|---|
| 幽灵 | 透明 | #515151 | 无 | - | - |
输入框
- 高度:
0px
交互状态
焦点
- 必须使用
2px的轮廓线,并采用强调色(#5E6AD2) - 必须使用
2px的轮廓偏移 - 绝不移除焦点指示器
悬停
- 按钮(主要):将背景颜色调亮 10%
- 按钮(次要):使用
#FC5013背景 - 列表项:使用
#FC5013背景
禁用状态
- 必须使用
opacity: 0.5 - 必须使用
cursor: not-allowed
交互
- 对于具有破坏性或不可逆的操作,必须使用
AlertDialog - 加载状态应使用结构化骨架屏
- 必须在操作发生的位置附近显示错误
- 绝不阻止在
input或textarea元素中粘贴内容 - 仅包含图标的按钮必须添加
aria-label
动画
- 除非明确提出要求,否则绝不添加动画
- 只能对合成器属性(
transform、opacity)添加动画 - 绝不对布局属性(
width、height、top、left、margin、padding)添加动画 - 入场动画应使用
ease-out - 交互反馈动画时长绝不能超过
200ms - 应遵循
prefers-reduced-motion
性能
- 绝不对大面积的
blur()或backdrop-filter表面添加动画 - 仅在动画进行期间使用
will-change - 绝不将
useEffect用于可通过渲染逻辑实现的内容
评论
支持 Markdown