--- alwaysApply: false paths: ["**/*.html", "**/*.css", "**/*.js"] --- # 前端改动:强制基线 **动手前先读** `dsh-server-docs/06-工作台UI规范.md`(设计 Token / 布局 / 组件 / 交互 / 9 条已知坑)。 **冲突时以该文件的实测 Token 为准**,不要用通用审美覆盖它。 ## 三条硬要求 1. **静态文件改完即时生效,不要重启服务** —— `web/*.html`、`.css`、client bundle 由门户直出, 重启 `dshs` 是**无谓的中断**(⚠️ R8 已修正:开发环境服务器 ⇒ 不必等确认;但**无收益的重启按 R11 仍属劣化,别做**)。 只有改 `src/**`(TS)才需要 `npm run build` + 重启。 2. **验证注入脚本必须三条齐全**: `curl -L --compressed -c jar -b jar -H "Accept: text/html" ` —— 缺任一条都会拿到 gzip 字节流,`grep` 关键字永远搜不到(会误判"注入没生效")。 3. **视觉判断**辅以 `impeccable`(Operate 模式)与 `taste-skill`(反 AI 味)。 ## 已知坑(别重踩) - `main#view` 高度必须是 `calc(100vh - 55px)`(55 是实测值,写 54 会多出第二层滚动条)。 - **"视口自适应高度"要上下都算** —— 只看列表上方会算漏下方(按钮行 + card padding + `#view` padding-bottom), 实测正解是 `calc(100vh - 520px)`。 - `.modal-mask` 是 `display:flex` → 必须显式写 `[hidden] { display: none }`,否则弹窗关不掉。 - `.tab` 有胶囊式与下划线式**两套同名定义**,新页面另起类名(如 `.pg-tab`)。