Files
lislgosms/docs/css-modularization-result-20260905.md
T
hectorzhao 798e85c930
CSS quality / css-quality (push) Has been cancelled
fix: 支持归档环境执行CSS门禁
2026-09-05 00:48:59 +08:00

49 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 全局 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产物或关键计算样式等价。