删除未使用前端设计 Token(07-16-second-stage-frontend-cleanup-wave1)

这个提交包含在:
2026-07-16 13:22:15 +08:00
父节点 57ac8bc4c8
当前提交 2895d4d42c
共修改 2 个文件,包含 30 行新增和 47 行删除
@@ -36,6 +36,36 @@ and verification contracts. Do not copy broad aesthetic guidance from
with `AUTH_005`. with `AUTH_005`.
- Run `cd client && npm run typecheck && npm run build` for frontend changes. - Run `cd client && npm run typecheck && npm run build` for frontend changes.
## Convention: Frontend Design Token Sources
**What**: Runtime visual tokens use the sources that are actually consumed by
the frontend build. CSS custom properties live in
`client/src/design/theme.css`, which is imported by `client/src/index.css`;
Tailwind theme values live in `client/tailwind.config.js`.
**Contracts**:
- Do not maintain a parallel TypeScript token object when no component, build
plugin, generator or synchronization test consumes it.
- Before adding, replacing or deleting a token source, search direct imports,
type-only imports, `import.meta.glob`, generators, copy/sync scripts and
build configuration.
- Historical Issue CSV and archived Trellis references describe their original
delivery state; they are not current runtime consumers and must not be
rewritten merely because a source file is later removed.
- If typed tokens become necessary later, introduce them with explicit runtime
consumers or a generated single-source contract plus a drift regression
test; do not manually duplicate CSS values.
**Why**: Unconsumed token mirrors drift from the CSS that actually renders the
product, creating a misleading second fact source and unnecessary maintenance.
**Tests Required**:
- Exact consumer search for the changed token module or symbol.
- `cd client && npm run typecheck`
- `cd client && npm run build`
## Convention: Mature Enterprise Page Baseline ## Convention: Mature Enterprise Page Baseline
**What**: From `05-30-unified-page-design-review`, hyb-oa PC/mobile pages use **What**: From `05-30-unified-page-design-review`, hyb-oa PC/mobile pages use
-47
查看文件
@@ -1,47 +0,0 @@
export const semanticTokens = {
colors: {
bgCanvas: "#f5f7f8",
bgCanvasDeep: "#e8eef5",
bgSurface: "#ffffff",
bgSurfaceSubtle: "#f8fafc",
bgSurfaceRaised: "rgba(255, 255, 255, 0.92)",
bgPrimarySoft: "#e6ecf4",
textPrimary: "#0f172a",
textSecondary: "#475569",
textTertiary: "#94a3b8",
borderDefault: "#e2e8f0",
borderStrong: "#cbd5e1",
accentPrimary: "#00398a",
accentPrimaryHover: "#002e6e",
accentSecondary: "#13a8b8",
accentInk: "#001f4d",
success: "#067647",
warning: "#b54708",
danger: "#b42318",
info: "#00398a",
},
radius: {
sm: "0.5rem",
md: "0.75rem",
lg: "1rem",
xl: "1.25rem",
"2xl": "1.5rem",
panel: "1.25rem",
},
shadow: {
xs: "0 1px 2px rgba(15, 23, 42, 0.05)",
sm: "0 8px 24px rgba(15, 23, 42, 0.08), 0 1px 2px rgba(15, 23, 42, 0.05)",
md: "0 22px 55px rgba(0, 57, 138, 0.14)",
focus: "0 0 0 4px rgba(0, 57, 138, 0.14)",
},
spacing: {
pageX: "1.5rem",
pageY: "1.5rem",
cardX: "1.25rem",
cardY: "1.25rem",
sectionGap: "1.5rem",
clusterGap: "1rem",
},
} as const;
export type SemanticTokens = typeof semanticTokens;