# 全局 CSS 模块化实施结果 ## 结果 2026-09-05 完成 `src/styles/global.css` 的全量迁移。原文件已删除,业务样式由 `src/styles/domains/index.css` 按固定顺序加载14个所有权模块;设计变量、重置、Shell、既有运营端/客户端共享层和公共组件层继续按 `main.tsx` 的原层级加载。 ## 模块与所有者 | 顺序 | 文件 | 所有权 | |---:|---|---| | 1 | `01-operations-dashboard.css` | Gateway异常辅助界面与运营/客户端概览 | | 2 | `02-client-sending.css` | 客户端短信/彩信发送和批次任务列表 | | 3 | `03-client-records.css` | 客户端任务详情、发送记录和上行 | | 4 | `04-signatures.css` | 签名和引流资料体验 | | 5 | `05-templates.css` | 短信模板和彩信模板 | | 6 | `06-auth-enterprise.css` | 登录、风险确认、用户表单和企业认证 | | 7 | `07-admin-operations.css` | 运营详情、应用路由、企业档案和短信审核 | | 8 | `08-reporting.css` | 报备资料、导入映射、批次和字段选择 | | 9 | `09-channels.css` | 通道指标、通道组和路由 | | 10 | `10-signature-quality.css` | 签名退订与发送质量矩阵 | | 11 | `11-deliveries-reporting.css` | 下游投递、报表任务和彩信运营页 | | 12 | `12-admin-configuration.css` | 上行、账务、用户、号段和报备字段库 | | 13 | `13-client-signatures.css` | 客户端签名和引流资料 | | 14 | `14-responsive-requeue.css` | 原共享响应式尾段和下游恢复工作台 | 模块顺序是原 `global.css` 顶层节点顺序的连续分区,不得按名称重新排序。媒体查询、伪类、子选择器和动画均随原节点迁移。 ## 等价证据 - 原始基线:213062字节、9846行、1749条规则、2017个选择器、5321条声明、30个`!important`。 - 模块化后的AST总量和完整选择器顺序与原基线一致。 - 迁移前后Vite主CSS产物均为 `index-CkSy6WDi.css`,SHA-256均为 `d7043ee2229a402c6b9284c9153536dd6393446a3b0fe7c47ee7dd05290539c3`,字节比较无差异。 - 机器可读证据位于 `tools/quality/css-governance-baseline.json`,自动核验入口为 `npm run css:verify`。 ## 自动门禁 - `npm run format:check`:增量Prettier现同时覆盖CSS。 - `npm run style:check`:对全部CSS执行Stylelint;迁移前已存在的文件使用显式兼容范围,新CSS默认严格执行标准规则。 - `npm run css:verify`:验证`global.css`不得重建、固定导入顺序、AST基线、选择器顺序、`!important`增长、宽泛业务标签规则和import所有权,并执行允许/拒绝样例测试。 - `.github/workflows/css-quality.yml`:PR和main推送均以完整提交范围运行格式、Stylelint和CSS治理门禁。 - Git归档或部署候选目录没有`.git`时,门禁仍执行当前树的所有权、AST、选择器顺序和例外检查,仅跳过无法取得基线的增量文件比较。 ## 维护边界 - 新页面、弹窗和业务组件继续使用同目录CSS并由所有者直接import。 - 14个迁移模块只用于承接已登记的历史规则;新增规则应先判断页面、业务域或公共组件所有权,不得因类名前缀相似直接追加。 - 不得重新创建 `global.css`、扩大Stylelint兼容文件范围或增加无登记例外。 - 迁移模块后续按真实页面证据继续细化时,必须同步更新机器基线,并保持主CSS产物或关键计算样式等价。