# Components 将以下标记形状逐字复制。通过当前活动的 `DESIGN.md` (颜色、排版、间距令牌)重新换肤。不要发明新的组件 形状——那是 AI 垃圾混入的地方。 所有代码片段假定 `assets/template.html` 中定义了 CSS 自定义属性(`--ink`、`--ink-2`、`--bg-soft`、`--accent`、 `--line`、`--pill-*-bg/ink` 等)。 --- ## live-pill(顶栏右上角) ```html
Live · synced
``` 三种状态: | 状态 | `.pill-live` 上的类 | 圆点颜色 | 文本 | |--- |--- |--- |--- | | 空闲 | (无) | 绿色 | `Live · synced` | | 同步中 | `.syncing` | 强调色 | `Syncing…` | | 过期 | `.stale` | 琥珀色 | `Stale · 2 min ago` | 绿色圆点播放 1.8 秒的 `pulse` 关键帧动画。在 `prefers-reduced-motion` 时禁用。 --- ## KPI 卡片(KPI 网格的一个单元格) ```html
Total tasks
142
6 vs last week
``` 规则: - `.value` 为 `font-size: 32px; font-weight: 600; letter-spacing: -0.01em; font-variant-numeric: tabular-nums` - `.label` 为 `12px uppercase letter-spacing .03em`,颜色 `--ink-2` - `.delta.up` → 绿色;`.delta.down` → 红色;中性 `.delta` 为灰色 - 刷新时,用 600 毫秒三次缓出的方式将 `value` 从旧值过渡到新值, 并添加持续 700 毫秒的 `.flash`(短暂地将数字变为 `--accent-ink` 颜色)。 - **切勿**在数字下方放置彩色进度条。 - **切勿**在 KPI 卡片内放置迷你走势图——迷你走势图应放在 两列区块中。 --- ## 迷你走势图(SVG,手写) ```html ``` CSS: - `.spark-fill` 为 `fill: rgba(, 0.10)` - `.spark-line` 为 `fill: none; stroke: var(--accent); stroke-width: 2` - `.spark-grid line` 为 `stroke: var(--line); stroke-dasharray: 2 3` - `.spark-dot`(圆形,r=3)为 `fill: var(--accent)` 从长度为 7 的序列计算路径,在 600×140 的 viewBox 内 四周留白(左/右 24,上 16,下 10)。今天的数据库桶位于右侧。 不要使用 Chart.js / Recharts / D3——单个构件,无外部依赖。 --- ## 活动信息流行 ```html
SC
Sarah Chen moved 🚀 Q3 Roadmap planning to In progress
3 min ago
``` - 头像:26 像素圆形,两个字母的首字母缩写,颜色按人固定。 - `.target` 添加 1 像素虚线下划线和 `cursor: pointer`。 - 刚插入的行在 2 秒内获得 `.new` 类——应用柔和的 `rgba(, .06)` 背景,并在名称前添加 `•` 项目符号。 - 每 15 秒重新渲染相对时间戳。 --- ## 状态药丸(Notion 标准五色集) ```html Done In progress Blocked In review To do ``` | 类 | 背景色 | 前景色 | Notion 标签 | |--- |--- |--- |--- | | `done` | `#dbeddb` | `#2b593f` | 已完成 | | `progress`| `#fdecc8` | `#976d23` | 进行中 | | `blocked` | `#ffe2dd` | `#b13b2c` | 已阻塞 | | `review` | `#d3e5ef` | `#1f5b78` | 审核中 | | `todo` | `#e9e5e3` | `#5a534f` | 待办 | 不要引入额外的状态。将任何项目特定的状态映射到以上 五种之一。 --- ## 关联数据库行 ```html
📐
Design tokens v2 spec
In review
…avatar…Lisa Zhao
May 14
Med
``` - 六列网格:`32px 2.4fr 1fr 1fr 0.9fr 0.9fr` - `.db-row.changed` 通过 `rowflash` 关键帧触发 1.4 秒的行闪烁动画。 - 悬停:`background: var(--bg-soft)`。无 transform / 阴影。 --- ## 刷新按钮(页面头部,主要) ```html ``` - 默认:`background: var(--accent); color: #fff;` - 悬停:`background: var(--accent-ink)` - 轮询期间:给 `.ico` 添加 `.spin` 类,通过 JS 中的 `busy` 标志 禁用按钮点击(**不要**依赖 `[disabled]`,以保持视觉样式一致)。 - 标签根据连接器调整:"Refresh from Notion" / "Refresh from Linear" / "Refresh from Stripe"——不要只用 "Refresh"。 --- ## 自动刷新开关(页面头部,幽灵按钮) ```html ``` 切换 `setInterval(refresh, refresh_seconds * 1000)`。持久化到 `localStorage.live_dashboard_auto`,以便刷新后恢复状态。 --- ## 提示条(底部居中,临时性) ```html
Synced — 3 changes from Notion
``` `position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);` 1800 毫秒自动消失。深色 `#1f1f1f` 背景,白色文字。一次只显示一个 提示条;后续调用重置计时器。 --- ## 标注(Notion 惯用风格) ```html
💡
This page is a Live Artifact. Numbers below are pulled from your Acme Studio Notion workspace via the Composio connector.
Refreshes on demand or when the page opens. Last 7 days only.
``` 一个简短的陈述句 + 一行较小的元信息说明。不要营销文案、 不要"Powered by"、不要感叹号。