SuperAPI AI 工具集

Shade component decision

设计与创作

查看项目

更新于 10-16 06:43

技能介绍

用途:在向 Shade 设计系统添加内容前,按决策流程与晋升清单判断归属层级,并决定是否真的应加入 Shade。默认原则是先保持代码本地,过早加入设计系统会锁定错误 API。

五个层级:Token 位于 theme-variables.css、tailwind.theme.css,如 --background、--radius-md;Primitive 位于 src/components/primitives/,如 Stack、Inline、Box;Component 位于 src/components/ui/,如 Button、Input、Dialog;Recipe 位于 src/components/ui/<name>.ts(无 JSX),如 inputSurface;Pattern 位于 src/components/patterns/,如 PageHeader、KpiCard。另有 page-templates/(@tryghost/shade/page-templates),用于包裹整个后台页面的顶层模板。

决策流程(自上而下,命中即停):仅是颜色、尺寸、圆角、时长 → Token;仅布局 → Primitive,优先复用;无 Ghost 知识的通用可访问控件 → Component,优先复用;跨 ≥2 个组件共享的同一装饰/焦点/密度规则 → Recipe(类字符串函数,无 JSX、无 React);涉及 Ghost 概念 → Pattern。通用名称多为 Component,Ghost 形态名称多为 Pattern。

依赖方向单向:上层可用下层,反向禁止。Recipe 为纯 CSS 类。

晋升清单:需同时满足在不同界面复用至少两次、通用、形态已稳定、名称通用、API 用插槽而非 props、状态留在调用方。任一不满足则保持本地。

常见误分类:给 Card 加 kpi 变体应改为新 Pattern KpiCard;MembersFilterBar 应留本地;一次性类字符串不要做成 Recipe;带 useQuery 的列表不应做成 Pattern;已有 Inline 不要重复造 Primitive。

使用限制与后续:新增 Component/Pattern 参考 shade-new-component 技能;新增 Recipe 遵循 recipeClasses + recipe() 形态,见 input-surface.ts;新增 Token 写入 theme-variables.css 或 tailwind.theme.css,不得在组件文件写临时 CSS 变量。权威来源为 Storybook 的 Overview / Layers 与 Overview / Contributing。