dashboard · git:20260730.d070002 · 2026-07-30 · sha256 a5a86f1af28d55fe

dashboard git:20260730.d070002A

Immutable. This exact content never changes and is served at /api/v1/blob/a5a86f1af28d55fe.

---
name: dashboard
description: |
  管理 / 分析仪表盘,单文件自包含 HTML。固定左侧边栏,
  顶部栏含用户/搜索,主区域为 KPI 卡片网格和一到两个图表。
  当需求提到"仪表盘"、"后台"、"分析"、"控制面板"时使用。
triggers:
  - "dashboard"
  - "admin panel"
  - "analytics"
  - "control panel"
  - "后台"
  - "管理后台"
  - "仪表盘"
  - "数据看板"
  - "监控面板"
platform: desktop
preview:
  type: html
  entry: index.html
---

# 仪表盘模板

生成一个单屏管理 / 分析仪表盘。

## 工作流程

1. **确定设计令牌** —— 颜色、排版、间距、组件样式都来自此。不要发明新令牌。使用六个 `:root` 变量:`--bg`、`--surface`、`--fg`、`--muted`、`--border`、`--accent`。

2. **分类**仪表盘监控的内容(销售、流量、使用量、事件、运维等)。生成具体、合理的指标名称和数值 —— 不要 "指标 A / 指标 B" 占位符。

3. **布局**所需区域:
   - **左侧边栏**(220-260px):顶部品牌标记,6-8 个带图标的导航链接,活跃状态使用强调色。
   - **顶部栏**:左侧页面标题,右侧搜索输入 + 用户头像 / 状态。
   - **主区域**:
     - 第 1 行:3-4 个 KPI 卡片(标签 + 大数字 + 较上期变化)。
     - 第 2 行:一个主图表(全宽或 2/3)—— 渲染为内联 SVG 折线 / 柱状 / 面积图,使用真实感数字。
     - 第 3 行:一个次图表或表格(最近事件、热门项目等)。

4. **编写**一个自包含 HTML 文档:
   - `<!doctype html>` 到 `</html>`,CSS 放在一个内联 `<style>` 块中。
   - CSS Grid 用于整体布局;Flexbox 用于卡片内部。
   - 语义化 HTML:`<aside>`、`<header>`、`<main>`、`<section>`。
   - 每个逻辑区域标记 `data-od-id="slug"`。

5. **图表**:仅内联 SVG,无 JS 库。折线图约 10 行 `<polyline>` 加微妙面积填充。柱状图是 N 个 `<rect>` 加强调色填充。轴线标签轻量化(muted 文字,更小字号)。

6. **自检**:
   - 每个颜色来自设计令牌。
   - 强调色最多用两次(侧边栏活跃 + 一个图表高亮)。
   - 侧边栏 + 顶部栏固定;主区域独立滚动。
   - 密度匹配设计氛围 —— 通风的设计用更多 padding,密集的设计(交易、加密)收紧行距。

## 设计令牌模板

```css
:root {
  --bg:      #f8f9fa;
  --surface: #ffffff;
  --fg:      #1a1916;
  --muted:   #6b6964;
  --border:  #e8e5df;
  --accent:  #c96442;
  --accent-soft: color-mix(in oklch, var(--accent) 14%, transparent);
  --font-display: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-body:    -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono:    ui-monospace, 'JetBrains Mono', 'SF Mono', Menlo, monospace;
}
```

## 布局结构

```html
<!doctype html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>[REPLACE] 仪表盘标题</title>
  <style>/* 令牌 + 布局 CSS */</style>
</head>
<body>
  <div class="app">
    <aside class="sidebar" data-od-id="sidebar">
      <!-- 品牌标记 + 导航链接 -->
    </aside>
    <div class="main-col">
      <header class="topbar" data-od-id="topbar">
        <!-- 页面标题 + 搜索 + 用户 -->
      </header>
      <main class="content" data-od-id="content">
        <!-- KPI 卡片行 → 主图表 → 次图表/表格 -->
      </main>
    </div>
  </div>
</body>
</html>
```

## KPI 卡片模式

```html
<div class="kpi-card">
  <span class="kpi-label">总营收</span>
  <span class="kpi-value num">¥128,430</span>
  <span class="kpi-delta up">↑ 12.4% 较上月</span>
</div>
```

## 内联 SVG 折线图模式

```html
<svg class="chart" viewBox="0 0 600 200" preserveAspectRatio="none">
  <polyline points="0,150 100,120 200,140 300,80 400,100 500,60 600,70"
            fill="none" stroke="var(--accent)" stroke-width="2"/>
  <polygon points="0,150 100,120 200,140 300,80 400,100 500,60 600,70 600,200 0,200"
           fill="var(--accent-soft)"/>
</svg>
```

## 自检清单

### P0 — 必须通过
- [ ] 所有颜色来自 `:root` 令牌,无原始 hex。
- [ ] 强调色最多用两次(侧边栏活跃 + 一个图表高亮)。
- [ ] 侧边栏和顶部栏固定(`position: sticky` 或 `fixed`),主区域独立滚动。
- [ ] KPI 数字使用等宽字体(`.num` 类)。
- [ ] 无占位符文案 —— 每个指标名称和数值都具体、合理。
- [ ] 图表是内联 SVG,无外部 JS 库。
- [ ] 每个主要区域有 `data-od-id`。

### P1 — 应该通过
- [ ] KPI 卡片显示变化趋势(↑/↓ + 百分比)。
- [ ] 侧边栏导航有活跃状态高亮。
- [ ] 表格/列表有悬停状态。
- [ ] 响应式:小屏下侧边栏可折叠或隐藏。

## 输出约定

将完成的 HTML 通过 `design_preview(html=...)` 预览。写完后一段简短摘要。