Skip to content

[P2] 设计系统收口与组件生命周期治理:孤儿组件/icon 收敛/token 化/验收补全 #1820

Description

@DeliciousBuding

背景

前端审计(2026-08-21)发现组件体系「建了没用、用了没验」与 token 体系漂移:47 个 shared UI 组件中 21 个零生产引用、22 个缺 stories、94% 无验收记录(验收表 3 个范本已漂移);icon 4 套并行;间距 85% 裸 px;字号/圆角 fallback 自相矛盾。聚合治理。

所属部分

  • 前端
  • 后端
  • 客户端

要做什么

  • 21 个孤儿组件(ActionList/ActivityCard/ArtifactCard/Avatar/Card/DeployCard/MessageBubble/ProgressBar/ToolTimeline 等):接回生产或批量删除;ArtifactVersionTimeline 未进 ui/index.ts barrel
  • 22 个组件补 .stories.tsx;更新 docs/component-acceptance.md 范本漂移(Modal/ToastStack stories 已存在、ToastStack 暂停 debt 已实现)
  • icon 收敛:lucide-react / Material Symbols 字体(ui/Icon.tsx)/ 自绘 SVG(workbench/designIcons)/ runtimeIconRegistry 四套并行 → 定 SSOT 并迁移
  • 间距 token 化:ui CSS 裸 px 232 处 vs --td-space-* 40 处;字号 off-scale(11/13/15px)与 9px 击穿 11px CJK 下限(DiffReviewPanel.module.css:498);--td-radius-control 三个矛盾 fallback(6/8/10px)
  • 硬编码颜色清理:14 个 ui CSS 39 处,PermissionModePicker.module.css 9 处(含绕过 token 的 slate rgba)、Button gradient oklch 写死、Button 仍消费 v4 名(--secondary/--accent)
  • designTokens.ts 产品消费与 package export(当前仅自身测试 import)
  • Web 主题预设切换 UI(presets-base.css 已加载无界面,07 文档明示 Open)
  • Mobile RN theme/tokens.ts 42 处硬编码 hex 对齐 themes.css
  • Visual QA:CI 只跑 web 半边(checks.yml visual-qa-shell job)→ desktop 半边进 CI;评估窄视口门禁
  • Button 补内建 loading/busy 态;StatusNotice 补语义 variant

验收标准

  • 孤儿组件清零(接回或删除),barrel 完整
  • stories 补齐率 100%,验收记录与代码一致
  • design token 门禁与 tokens-base.test 通过;字号/间距违规清零
  • 相关包 typecheck/test 通过

相关文档

  • docs/architecture/07-design-system-ssot.md
  • docs/component-acceptance.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priorityjavascriptPull requests that update javascript code前端Web 工作台、IM 交互、前端状态和 UI

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions