Commit b3977095aa7be50552e70076e8930a3f17760951
1 parent
62e69e34
feat(skeleton-gen): 前端样式标准化为 Design Tokens
- docs-04 模板新增 § 2.5 样式与主题(命名规范 + tokens.css 位置 + 引用约定) - docs-06 模板 § 四改为 Design Tokens 三段式(4.1 全局调色板 / 4.2 组件级状态色 / 4.3 引用约定) - 新增 styles-tokens-template.css:8 个全局调色板 + 10 个组件状态色默认值 - SKILL.md 同步:C.1 加 mkdir src/styles + cp tokens.css;C.3 加勾选项;参考列表加新模板
Showing
4 changed files
with
85 additions
and
10 deletions
skills/plan/skeleton-gen/SKILL.md
| ... | ... | @@ -61,23 +61,29 @@ docs/04 已由 scope-lock 写入 § 零。本步骤追加 § 一 ~ 三。 |
| 61 | 61 | #### C.1 复制 |
| 62 | 62 | |
| 63 | 63 | ```bash |
| 64 | -mkdir -p scripts .githooks sql/migrations | |
| 64 | +mkdir -p scripts .githooks sql/migrations src/styles | |
| 65 | 65 | touch sql/migrations/.gitkeep |
| 66 | 66 | cp "${CLAUDE_SKILL_DIR}/templates/env-local-template" .env.local |
| 67 | 67 | cp "${CLAUDE_SKILL_DIR}/templates/githooks-pre-push-template.sh" .githooks/pre-push |
| 68 | 68 | cp "${CLAUDE_SKILL_DIR}/templates/scripts-setup-test-db-template.sh" scripts/setup-test-db.sh |
| 69 | +cp "${CLAUDE_SKILL_DIR}/templates/styles-tokens-template.css" src/styles/tokens.css | |
| 69 | 70 | ``` |
| 70 | 71 | |
| 71 | 72 | #### C.2 渲染 scripts/test.sh |
| 72 | 73 | |
| 73 | -读取 `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`,基于步骤 A 的技术栈(docs/04)推断命令后写到 `scripts/test.sh`: | |
| 74 | +读取 `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`,基于步骤 A 的技术栈(docs/04 § 零)为 7 个占位推断命令后写到 `scripts/test.sh`: | |
| 74 | 75 | |
| 75 | -- `{{build_cmd}}` 构建 | |
| 76 | -- `{{lint_cmd}}` lint | |
| 77 | -- `{{test_cmd}}` unit + integration | |
| 78 | -- `{{e2e_cmd}}` E2E(无 E2E 则填 `echo "[test.sh] e2e 略"`) | |
| 76 | +- `{{backend_build}}` / `{{backend_lint}}` / `{{backend_test}}` 后端各 stage 命令 | |
| 77 | +- `{{frontend_build}}` / `{{frontend_lint}}` / `{{frontend_test}}` 前端各 stage 命令 | |
| 78 | +- `{{e2e_cmd}}` E2E(无 E2E 工具则填 `echo "[test.sh] e2e 略"`) | |
| 79 | 79 | |
| 80 | -> 双端项目(backend + frontend)用 `(cd backend && <cmd>) && (cd frontend && <cmd>)` 串联;单端直接写一条。 | |
| 80 | +> 推断规则:根据 `docs/04 § 零` 。 | |
| 81 | +> - 「后端*」存在 → 据后端技术栈推 backend 三槽(build / lint / test 命令) | |
| 82 | +> - 「前端*」存在 → 据前端技术栈推 frontend 三槽 | |
| 83 | +> - 缺席 stack → 三槽全填 `:`(运行期 `[ -d X ]` 守卫对接;语法合法即可) | |
| 84 | +> - `{{e2e_cmd}}` 通常仅前端,按上述前端规则或填 `echo "[test.sh] e2e 略"` | |
| 85 | +> | |
| 86 | +> 表结构异常(列名变更 / 无中文前缀)时停下,用 `AskUserQuestion` 让用户显式确认每 stack 命令。 | |
| 81 | 87 | |
| 82 | 88 | #### C.3 赋权 + 配置 git hooks |
| 83 | 89 | |
| ... | ... | @@ -88,6 +94,7 @@ git config core.hooksPath .githooks |
| 88 | 94 | |
| 89 | 95 | 完成后,用 `Edit` 在 `docs/08-模块任务管理.md` 中勾选: |
| 90 | 96 | - ` - [ ] 工具脚本已生成(scripts/*.sh、.githooks/pre-push、.env.local)` |
| 97 | +- ` - [ ] 样式 token 骨架已生成(src/styles/tokens.css)` | |
| 91 | 98 | |
| 92 | 99 | ### D. 追加 .gitignore 忽略项 |
| 93 | 100 | |
| ... | ... | @@ -149,9 +156,10 @@ QA 横幅涵盖:产出文件清单(docs/04 / 06 / 07 / 09 + scripts/*.sh + . |
| 149 | 156 | - `${CLAUDE_SKILL_DIR}/templates/docs-06-static-template.md`(大纲) |
| 150 | 157 | - `${CLAUDE_SKILL_DIR}/templates/docs-07-env-template.md`(大纲) |
| 151 | 158 | - `${CLAUDE_SKILL_DIR}/templates/docs-09-structure-template.md`(大纲) |
| 152 | -- `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`(推断命令填充:build/lint/test/e2e) | |
| 159 | +- `${CLAUDE_SKILL_DIR}/templates/scripts-test-template.sh`(推断命令填充 7 槽:backend/frontend × build/lint/test + e2e;缺席 stack 填 `:`) | |
| 153 | 160 | - `${CLAUDE_SKILL_DIR}/templates/scripts-setup-test-db-template.sh`(0 槽位) |
| 154 | 161 | - `${CLAUDE_SKILL_DIR}/templates/githooks-pre-push-template.sh`(0 槽位) |
| 155 | 162 | - `${CLAUDE_SKILL_DIR}/templates/env-local-template`(0 槽位) |
| 156 | 163 | - `${CLAUDE_SKILL_DIR}/templates/gitignore-append-template`(0 槽位) |
| 164 | +- `${CLAUDE_SKILL_DIR}/templates/styles-tokens-template.css`(0 槽位,样式 token 骨架) | |
| 157 | 165 | - `${CLAUDE_SKILL_DIR}/scripts/merge-gitignore.sh`(.gitignore 逐行判重合并脚本) | ... | ... |
skills/plan/skeleton-gen/templates/docs-04-skeleton-template.md
| ... | ... | @@ -38,6 +38,14 @@ skeleton-gen 读取 docs/04 § 零(技术栈表)和 docs/01-需求清单/ind |
| 38 | 38 | ### 2.4 错误处理 |
| 39 | 39 | <!-- 网络错误 / 业务错误 / 页面级错误的分层处理。 --> |
| 40 | 40 | |
| 41 | +### 2.5 样式与主题 | |
| 42 | +<!-- 基于 § 零 UI 库给出 CSS 变量约定: | |
| 43 | + - 命名格式 `--color-<scope>-<role>-<state>`(scope=form/table-row/...,role=bg/fg/border,state=edit/readonly/hover/selected) | |
| 44 | + - 文件位置 `src/styles/tokens.css`,由 skeleton-gen 生成空骨架,色值由 docs/06 § 四锁定后填入 | |
| 45 | + - 组件样式中只用 var(--color-xxx),禁止硬编码 hex/rgba | |
| 46 | + - 与 UI 库主题对接(如 Ant Design ConfigProvider.theme.token)的映射方式 | |
| 47 | + 具体 token 表见 docs/06 § 四。 --> | |
| 48 | + | |
| 41 | 49 | ## 三、共同约定 |
| 42 | 50 | |
| 43 | 51 | ### 3.1 Git 提交 | ... | ... |
skills/plan/skeleton-gen/templates/docs-06-static-template.md
| ... | ... | @@ -40,8 +40,24 @@ UI ç»†èŠ‚ï¼ˆå¸ƒå±€å‚æ•°ã€é¢œè‰²ã€ç»„件选型)æ¥è‡ª § é›¶ å‰ç«¯ UI ç»„ä» |
| 40 | 40 | ### 3.3 æƒé™æŽ§åˆ¶ï¼ˆå‰ç«¯ï¼‰ |
| 41 | 41 | <!-- èœå•级 / 按钮级 / 路由级的控制方å¼ï¼Œå…³è”åŽç«¯ RBAC。 --> |
| 42 | 42 | |
| 43 | -## å››ã€ä¸»é¢˜ä¸Žé¢œè‰² | |
| 44 | -<!-- 基于 § é›¶ UI 库的主题 token;主色 / æˆåŠŸ / è¦å‘Š / 错误 色值。 --> | |
| 43 | +## å››ã€Design Tokens | |
| 44 | + | |
| 45 | +<!-- 所有色值统一以 CSS å˜é‡å®šä¹‰äºŽ src/styles/tokens.css;命åè§„èŒƒè§ docs/04 § 2.5。 --> | |
| 46 | + | |
| 47 | +### 4.1 å…¨å±€è°ƒè‰²æ¿ | |
| 48 | +<!-- 与 § é›¶ UI 库主题对é½ï¼šåˆ—å = è¯ä¹‰ / å˜é‡å / 默认值 / 用途。 | |
| 49 | + 至少å«ï¼šä¸»è‰²/æˆåŠŸ/è¦å‘Š/错误/主文å—/次文å—/边框/背景。 --> | |
| 50 | + | |
| 51 | +### 4.2 组件级状æ€è‰² | |
| 52 | +<!-- 场景 × çŠ¶æ€æ˜ 射表:列å = åºå· / 组件 / 编辑bg / åªè¯»bg / 悬浮bg / 编辑fg / åªè¯»fg / 悬浮fg / 备注。 | |
| 53 | + å•å…ƒæ ¼å†™ token å(var(--color-xxx) å½¢å¼ï¼‰ï¼Œä¸å†™ hexï¼›"—" 表示该状æ€ä¸é€‚用。 | |
| 54 | + 表åŽè¿½åŠ ã€ŒToken 默认值ã€è¡¨ï¼Œåˆ—出æ¯ä¸ª --color-xxx 在 tokens.css 的默认值。 --> | |
| 55 | + | |
| 56 | +### 4.3 引用约定 | |
| 57 | +<!-- 一å¥è¯ä¸‰æ¡ï¼š | |
| 58 | + - ç»„ä»¶æ ·å¼åªç”¨ var(--color-xxx)ï¼Œç¦æ¢ç¡¬ç¼–ç | |
| 59 | + - 新增 token 须先登记到 § 4.1/4.2 å†è¡¥ tokens.css | |
| 60 | + - ä¿®æ”¹è‰²å€¼åªæ”¹ tokens.css 一处,ä¸å…许组件覆盖 --> | |
| 45 | 61 | |
| 46 | 62 | ## 五ã€é¡µé¢æ¸…å• |
| 47 | 63 | (由 `downstream-gen` 按模å—è¿½åŠ æ®µè½ï¼‰ | ... | ... |
skills/plan/skeleton-gen/templates/styles-tokens-template.css
0 → 100644
| 1 | +/* | |
| 2 | + * src/styles/tokens.css — Design Tokens | |
| 3 | + * 命名规范见 docs/04-技术规范.md § 2.5 | |
| 4 | + * 色值锁定见 docs/06-UI交互规范.md § 四 | |
| 5 | + * | |
| 6 | + * 命名格式:--color-<scope>-<role>-<state> | |
| 7 | + * <scope> 组件域:form / table-row / table-header / ... | |
| 8 | + * <role> 作用:bg(背景)/ fg(前景/字体)/ border | |
| 9 | + * <state> 状态:edit / readonly / hover / selected(无状态时省略) | |
| 10 | + * | |
| 11 | + * 约束: | |
| 12 | + * - 组件样式中只用 var(--color-xxx),禁止硬编码 hex / rgba | |
| 13 | + * - 修改色值只改本文件,不允许在组件级覆盖 | |
| 14 | + * - 新增 token 须先登记到 docs/06 § 4.1 / 4.2,再补到此处 | |
| 15 | + */ | |
| 16 | + | |
| 17 | +:root { | |
| 18 | + /* === 1. 全局调色板(与 Ant Design 主题对齐) === */ | |
| 19 | + --color-primary: #1890ff; | |
| 20 | + --color-success: #52c41a; | |
| 21 | + --color-warning: #faad14; | |
| 22 | + --color-error: #ff4d4f; | |
| 23 | + --color-text: rgba(0, 0, 0, 0.85); | |
| 24 | + --color-text-secondary: rgba(0, 0, 0, 0.45); | |
| 25 | + --color-border: #d9d9d9; | |
| 26 | + --color-bg-base: #f0f2f5; | |
| 27 | + | |
| 28 | + /* === 2. 组件级状态色(与 docs/06 § 4.2 一一对应) === */ | |
| 29 | + | |
| 30 | + /* form:输入框 / 备注框 / 时间框 / 下拉框共用 */ | |
| 31 | + --color-form-bg-edit: #ffffff; | |
| 32 | + --color-form-bg-readonly: #f1f2f8; | |
| 33 | + --color-form-bg-hover: #f5f5f5; /* 仅下拉框使用 */ | |
| 34 | + --color-form-fg: #000000; | |
| 35 | + | |
| 36 | + /* table */ | |
| 37 | + --color-table-row-bg-selected: #86d5fb; | |
| 38 | + --color-table-row-bg-hover: #fff7e6; | |
| 39 | + --color-table-row-bg-readonly: #f1f2f8; /* = rgb(241, 242, 248) */ | |
| 40 | + --color-table-row-fg: #000000; | |
| 41 | + --color-table-header-bg: #f5f5f5; | |
| 42 | + --color-table-header-fg: rgba(0, 0, 0, 0.85); /* = #000000D9 */ | |
| 43 | +} | ... | ... |