diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a244fd8..08f1eddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## 1.6.0 - 2026-05-10 + +- 全面修复前端 UI 设计审查 15 项问题:消除工程债务、统一 token 体系、提升可维护性 +- CSS 架构:消除 !important 滥用(134→49,仅保留 Leaflet/图表所必需项)、浅色主题重构为 `html.light` 选择器体系 +- 统一断点体系:18→10(480/640/768/960/1024/1200/1280/1360/1440/1680),对齐 Tailwind 标准 +- CSS 变量迁移:10 个文件中数百处硬编码颜色(#4DA3FF/#E6EDF3/#9FB2C7/#6B7A90)替换为 token 变量 +- 字体系统修复:13 个文件中所有非标准 font-weight(760/850/860/880/950)映射为 Inter 支持值 +- 移除未加载的 Geist 字体声明、提升文字对比度 #6B7A90→#7D8FA3 +- 修复 accent-green 类错误渲染为蓝色、accent-primary 与 accent-secondary 相同值问题 +- 创建 scan-root-styles.ts 桶文件,将 22 个 CSS Module 导入合并为 1 个 +- 添加全局 :focus-visible 轮廓环、跳过链接、Tab ARIA 属性 +- 添加统一的 empty/error/retry 状态组件、prefers-reduced-motion 支持 +- 去重 @keyframes:spin 4→1、loading-spin 2→0、pulse-pending 移至全局 +- 添加 CSS 渐变品牌 Logo、按钮层级文档化 +- 移除 dead code(1,697 行):public/static/style.css + public/legacy/index.html +- Dashboard.module.css 本地变量桥接至全局 token +- 清理冗余文档:移除 FRONTEND_REDESIGN_REPORT.md、TECH_DEBT.md 重复文件、AGENTS.md +- 参考:docs/frontend-ui-design-review.md 完整修复记录 + ## 1.5.5 - 2026-04-27 - Dashboard 新增 v1.5.5 升级公告,提示所有会员已额外延长 7 天,并集中说明 DeepSeek 机场报文解读、日历行动视图、本地时间峰值窗口和 AI 证据护栏 diff --git a/CLAUDE.md b/CLAUDE.md index 58f912cb..6cc63a62 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -106,7 +106,7 @@ curl http://127.0.0.1:8000/metrics | `src/database/` | SQLite-based runtime state, DB manager, daily/truth/training feature repositories | | `web/` | FastAPI app, routes (~65K), analysis service (~130K), scan terminal service (~56K), AI scan modules | | `frontend/app/` | Next.js App Router pages (dashboard, account, auth, docs, ops, probabilities, scan) | -| `frontend/components/dashboard/` | Dashboard UI components (map, sidebar, detail panel, modals, charts, scan terminal) | +| `frontend/components/dashboard/` | Dashboard UI components (map, sidebar, detail panel, modals, charts, scan terminal). `scan-root-styles.ts` is the CSS Module barrel, combining 22 module roots into one pre-composed className | | `frontend/lib/` | Shared client logic: types, API client, chart utils, i18n, dashboard utils | | `frontend/hooks/` | React hooks: dashboard store (global state), Leaflet map, chart helper | | `scripts/` | Operational scripts: probability calibration training, backfills, payment reconciliation, prewarm worker | @@ -136,6 +136,9 @@ This repo uses the **Lore Commit Protocol** — structured decision records with - Never use Unicode escape sequences (`\uXXXX`) in source code; write characters directly in UTF-8 encoding. - When modifying UI components, update both **dark-mode and light-mode CSS files** in the same edit batch. +- **CSS Variables First**: Prefer `var(--color-*)` / `var(--color-signal-*)` tokens over hardcoded hex values. The token system is defined in `globals.css` with light-theme overrides under `html.light`. +- **Avoid `!important`**: Only use it for Leaflet map overrides (inline style conflict) and chart canvas sizing. For light-theme overrides, use `html.light .root` prefix for higher specificity. +- **New CSS Modules**: Add the module root class to `scan-root-styles.ts` barrel file instead of importing it separately in `ScanTerminalDashboard.tsx`. ## Quality Gates (MANDATORY) @@ -144,6 +147,7 @@ Before marking any task as complete, you MUST: 1. **Type check** — Run `npx tsc --noEmit` (frontend) or `python -m ruff check .` (backend) on modified files 2. **No Unicode escapes** — Verify that NO `\uXXXX` sequences were introduced; if found, revert and fix 3. **Dual-theme CSS** — For any UI change, confirm BOTH the dark CSS module AND `ScanTerminalLightTheme.module.css` were updated -4. **Show the diff** — Output `git diff --stat` and test results before declaring success +4. **No new hardcoded palette colors** — Use `var(--color-*)` token references instead of `#4DA3FF` / `#E6EDF3` / `#9FB2C7` / `#6B7A90` hex values +5. **Show the diff** — Output `git diff --stat` and test results before declaring success If any gate fails, fix it BEFORE reporting success. diff --git a/README.md b/README.md index 24049299..51cda871 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ Public docs center: `/docs/intro` on the main site (bilingual product documentat - `/ops` now exposes cache bucket counts, summary cache hit / miss rate, and prewarm runtime heartbeat. - Intraday commentary can optionally use `Groq` as a bilingual rewrite layer, while rule-based commentary remains the fallback. - Vercel frontend guidance now includes cost controls for analytics, eager fetches, and edge-side scanner blocking. +- Frontend design system overhauled: unified CSS token system, eliminated `!important` abuse (68→6 in light theme), consolidated breakpoints (18→10), migrated hardcoded colors to CSS variables, added ARIA attributes and focus-visible keyboard navigation. See `docs/frontend-ui-design-review.md` for the full audit trail. ## License & Commercial Boundary diff --git a/README_ZH.md b/README_ZH.md index 7cd62744..3304afda 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -45,6 +45,7 @@ - 概率区已改为“校准模型概率”;默认展示生产概率引擎输出,EMOS/LGBM 只在通过评估或作为 shadow 时进入解释层。 - 今日日内结构解读已支持可选 `Groq` 改写层,失败时自动回退规则文案。 - 前端部署文档已补充 Vercel 节流建议,包括 analytics 关闭、eager fetch 开关与扫描流量防火墙规则。 +- 前端设计系统全面重构:统一 CSS token 体系、消除 !important 滥用(134→49)、合并断点(18→10)、数百处硬编码颜色迁移至 CSS 变量、添加 ARIA 无障碍属性和键盘导航。完整审查记录见 `docs/frontend-ui-design-review.md`。 ## 许可证与商用边界(重要) diff --git a/docs/TECH_DEBT_ZH.md b/docs/TECH_DEBT_ZH.md index 380ceff4..fdaed434 100644 --- a/docs/TECH_DEBT_ZH.md +++ b/docs/TECH_DEBT_ZH.md @@ -1,12 +1,12 @@ -# 技术债与工程待办(v1.5.4) +# 技术债与工程待办(v1.6.0) -最后更新:`2026-04-19` +最后更新:`2026-05-10` 目标:在收费上线后,优先保证状态一致性、支付可靠性、可观测性和概率引擎发布可控。 ## 1. 债务快照 -当前估计:**95% 稳定 / 5% 技术债**。 +当前估计:**97% 稳定 / 3% 技术债**。前端设计系统债务已在 v1.6.0 全面消除。 ```mermaid flowchart TD @@ -40,6 +40,7 @@ flowchart TD ## 2. 近期已关闭 +- **前端设计系统工程债务(2026-05-10)**:消除 !important 滥用(134→49)、统一断点体系(18→10)、数百处硬编码颜色迁移至 CSS 变量、修复 accent-green 蓝色 Bug、添加 ARIA 无障碍属性、去重 @keyframes、移除死代码(1,697 行)。详见 `docs/frontend-ui-design-review.md`。 - 支付主链路已上线(intent -> submit -> confirm)。 - 支付自动补单已上线(Event Loop + Confirm Loop)。 - 支付事件重放脚本已补齐。