← 文档索引

Pangolin 前端全景 ds-flow

设计只有一个出生地(原型单源),代码永远是镜像;漂移由静态闸拦在提交/CI 前,还原由 golden 双主题验收兜底。

Flutter 五端(macOS/iOS/iPad/Android/Windows,共享 client/lib/)+ 官网 web/website/ + 用户中心 web/usercenter/。主题:light / dark 双主题。治理落地见 实现计划

① 一次 UI 改动的标准路径

加/改令牌 → 只改 design/prototype/tokens.css → codegen(Flutter gen_flutter_tokens / Web gen:tokens) 加/改原子 → design/prototype/atoms.css 定义 + index.html 登记 → 落 canonical 实现(client/lib/widgets 或 web/*) 加/改图标 → design/prototype/icons.js sprite 登记 → 三端只从此集取 改完自检 → check-codegen-drift · check-l1-sync · check_ds_code · check-ds 四道闸 + flutter test(golden) 评审原型 → node design/prototype/serve.mjs → http://localhost:5180/(给 URL,不截图)

② 目录地图

位置角色
原型单源(L1 真源)design/prototype/tokens.css · atoms.css · icons.js · index.html 登记页 · serve.mjs
令牌 codegendesign/codegen/gen_flutter_tokens.mjs · web/*/scripts/build-tokens.mjstokens.css → Flutter .gen.dart / Web token CSS
Flutter 实现client/lib/{pangolin_theme.dart, widgets/, screens/, shell/}实现层 + canonical 组件;五端共享,响应式非平台分叉
Web 实现web/website/(Astro)· web/usercenter/(Next 静态)各自实现,对齐 atoms.css,靠同源闸防漂移
历史参考design/ui_kits/ DEPRECATED旧整屏原型,仅历史参考,勿当真源

③ 三层真相源模型

④ 令牌 codegen(颜色单源落地)

design/prototype/tokens.css(base :root 标量 + [data-theme=dark] 颜色覆盖)是唯一被解析的真源。colors_and_type.css 已降级为薄 @import 别名。Flutter 生成 pangolin_tokens.gen.dart(勿手改);Web 由 build-tokens 原样同步(仅移除第三方字体 @import),不重复生成设计决策,靠同源闸逐值校验。

⑤ 四道静态闸 —「违规谁拦」

拦什么何时状态
原型校验 design/prototype/tools/check-ds.mjs硬编码色(atoms.css)/未定义 token/字体/图标未走 sprite/原子未登记pre-commit(动原型)+ CI
跨端同源 tools/check-l1-sync.mjsWeb token 值≡原型 · 三端图标⊆原型 sprite · Web 硬编码色pre-commit(动原型/web)+ CI
代码色单源 client/tool/check_ds_code.mjsFlutter 裸 Color(0x)/具名 Colors.xds-ignore 豁免)pre-commit(--changed)+ CI(--strict)
codegen 零 diff ci/check-codegen-drift.sh重生成 token 后 git diff 非空即 failpre-commit + CI

CI(.gitea/workflows/ci.yml)的 ds-flow job 串起前三道;codegen-drift job 管第四道。pre-commit(.githooks/pre-commit,一次性 bash ci/install-hooks.sh 启用)跑条件化快子集。

⑥ 像素验收

⑦ 响应式与五端

五端共享 client/lib/,UI 无平台分叉,靠 core/responsive/form_factor.dartmobile/tablet/desktop 按宽度+平台判定)。平台差异隔离在 bridge/update/tray 等系统集成层,非 UI。

⑧ 规则速查(硬红线)

⑨ 文档索引

最后更新随治理重构(Phase 0–5)。fidelity(⑥)与 mobile golden 扩容为后续项。