Files
admin-web/DESIGN.md
T
2026-08-05 15:54:59 +08:00

262 lines
12 KiB
Markdown
Raw Permalink 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.
---
name: "虫虫出海 Admin"
description: "克制、清晰且高密度可扫描的企业级运营工作台"
colors:
primary: "#667eea"
primary-hover: "#5366c8"
primary-soft: "#eaf1ff"
work-canvas: "#f4f6f8"
surface: "#ffffff"
surface-muted: "#f8fafc"
text: "#172033"
text-secondary: "#475467"
muted: "#667085"
muted-light: "#98a2b3"
border: "#e3e8ef"
border-subtle: "#edf0f4"
success: "#067647"
success-soft: "#ecfdf3"
warning: "#b54708"
warning-soft: "#fffaeb"
danger: "#b42318"
danger-soft: "#fef3f2"
info: "#3538cd"
info-soft: "#eff4ff"
typography:
headline:
fontFamily: '"PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif'
fontSize: "20px"
fontWeight: 700
lineHeight: 1.35
letterSpacing: "0"
title:
fontFamily: '"PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif'
fontSize: "16px"
fontWeight: 700
lineHeight: 1.4
letterSpacing: "0"
body:
fontFamily: '"PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif'
fontSize: "13px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "0"
label:
fontFamily: '"PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif'
fontSize: "12px"
fontWeight: 650
lineHeight: 1.5
letterSpacing: "0"
supporting:
fontFamily: '"PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif'
fontSize: "11px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "0"
rounded:
xs: "3px"
sm: "4px"
md: "6px"
panel: "8px"
nav: "10px"
accent: "12px"
pill: "999px"
circle: "50%"
spacing:
xxs: "4px"
xs: "8px"
sm: "10px"
md: "12px"
lg: "16px"
xl: "20px"
xxl: "24px"
xxxl: "32px"
components:
dashboard-tab-selected:
backgroundColor: "{colors.primary}"
textColor: "{colors.surface}"
typography: "{typography.label}"
rounded: "{rounded.panel}"
padding: "0 12px"
height: "36px"
dashboard-button-outline:
backgroundColor: "{colors.surface}"
textColor: "{colors.text-secondary}"
typography: "{typography.label}"
rounded: "{rounded.panel}"
padding: "0 13px"
height: "36px"
surface-panel:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.panel}"
padding: "20px"
status-badge:
backgroundColor: "{colors.success-soft}"
textColor: "{colors.success}"
typography: "{typography.supporting}"
rounded: "{rounded.pill}"
padding: "2px 8px"
height: "24px"
---
# Design System: 虫虫出海 Admin
## Overview
**Creative North Star: "冷静的运营工作面"**
虫虫出海 Admin 是面向平台员工的高密度运营工作台。界面以冷灰工作面承接连续任务,以白色边框面板划分可操作区域,以柏悦蓝标记主操作、焦点和当前选中项;视觉表达克制,优先让字段、状态和操作顺序一眼可扫。
系统不依赖装饰性大色块制造层级。面板边界、浅层级色、紧凑字号和稳定间距共同组织信息;状态色只承担分类、进度、告警和错误反馈,不替代文字标签。壳层可以建立明确品牌存在感,业务内容区保持安静、可复用、可扩展。
**Key Characteristics:**
- 冷灰画布与白色面板构成稳定工作面。
- 柏悦蓝只承载主操作、焦点和选中态。
- 12–13px 信息层与 16–20px 标题层形成紧凑层级。
- 边框和浅色填充负责大多数深度,阴影保持稀缺。
- 桌面端追求密度,窄屏端保证 44px 级触控与可横向退化的数据表格。
## Colors
主色清晰但不过量;中性冷灰负责内容秩序,语义色只在需要判断状态时出现。
### Primary
- **柏悦蓝**:用于主操作、当前导航、页内选中态、关键链接和可见焦点。
- **柏悦蓝悬停色**:用于白底描边操作的悬停文字与边框反馈。
- **柏悦蓝浅底**:用于图标容器、头像底和弱强调背景,不作为大面积业务面板底色。
### Neutral
- **冷灰工作面**:应用画布与全屏看板背景,使白色业务面板保持清晰边界。
- **白色业务面**:卡片、表格、筛选栏、抽屉和控件的默认承载面。
- **浅层级灰**:表头、说明块和次级区域背景。
- **墨色正文**:标题、主值和核心业务文本。
- **次级墨灰**:表头、次级数据和操作文案。
- **说明灰**:帮助文本、辅助标签、时间与空值提示。
- **冷灰边线**:面板、分区和表格结构的主要深度手段。
### Secondary
- **成功绿 / 浅成功绿**:已完成、启用和正向状态。
- **告警橙 / 浅告警橙**:待处理、临近期限和需关注状态。
- **危险红 / 浅危险红**:错误、失败、停用和高风险状态。
- **信息靛蓝 / 浅信息靛蓝**:信息型状态和非主操作分类。
### Named Rules
**The One Primary Rule.** 柏悦蓝是唯一的全局交互主色;图表分类色和语义色不得升级为第二主色。
**The Status Has Words Rule.** 状态色必须与状态文字、图标或结构共同出现,绝不只靠颜色传达业务含义。
## Typography
**Display Font:** PingFang SC(回退至 Microsoft YaHei、Segoe UI、sans-serif)
**Body Font:** PingFang SC(回退至 Microsoft YaHei、Segoe UI、sans-serif)
**Label/Mono Font:** 业务标签沿用正文栈;权限码与接口值使用 Cascadia Code(回退至 Consolas、monospace)
**Character:** 统一的系统无衬线字栈保证中文字段紧凑清晰,不使用展示型字体制造品牌感。层级主要来自字号、字重和颜色,而不是大幅字距或全大写。
### Hierarchy
- **Headline**(700,20px,1.35):页面级标题、详情页标题和空状态主标题。
- **Title**(700,16px,1.4):面板标题、表格区标题和主要分区标题。
- **Body**(400,13px,1.5):业务内容、表单值和操作说明。
- **Label**(650,12px,1.5):表头、筛选标签、按钮和强调型元数据。
- **Supporting**(400,11px,1.5):帮助文本、时间、附注、次级值和状态胶囊。
### Named Rules
**The Scan Before Drama Rule.** 业务页标题不以超大字号争夺空间;20px 页面标题、16px 分区标题与 12–13px 内容层已经构成完整层级。
## Layout
应用壳层在桌面端使用固定 240px 侧栏、64px 顶部栏和 20px 内容边距;折叠侧栏为 76px。业务页面以 16px 垂直节奏堆叠,数据看板使用 14–18px 卡片间距,面板常用 16–24px 内边距。筛选栏、指标条、表格面板和抽屉分区通过一致边框对齐,避免每个模块自行发明容器结构。
960px 以下优先减少多列网格;720px 以下侧栏变为遮罩抽屉,页面边距收至 14–18px,筛选控件纵向铺满,抽屉占满宽度,操作按钮保证可触控高度;420px 以下指标条转为单列或受控双列。表格保留语义列和首列操作,通过水平滚动退化,不把关键操作固定到最右侧。最低 320px 宽度下仍保持内容可访问。
**The Operation First Rule.** 业务数据表格的“操作”列始终是第一列;布局收窄时保留该顺序。
## Elevation & Depth
系统采用“平面为主、壳层有深度”的混合策略。业务面板默认依靠冷灰画布、白色表面、1px 边框和浅层级填充建立关系;常驻阴影集中在固定侧栏、粘性顶部栏、头像与粘性操作区,卡片阴影只在明确悬停状态出现。
### Shadow Vocabulary
- **侧栏壳层**(`4px 0 32px rgba(0,0,0,.08)`):固定侧栏与内容工作面的分界。
- **顶部栏壳层**(`0 8px 32px rgba(0,0,0,.15), 0 2px 8px rgba(0,0,0,.1)`):粘性顶部栏的结构性悬浮。
- **头像状态**(`0 4px 12px rgba(0,0,0,.15)`):顶部栏内小面积实体的清晰分离。
- **卡片悬停**(`0 6px 16px rgba(23,42,70,.08)`):仅用于可点击卡片的悬停反馈。
- **粘性底栏**(`0 -8px 22px rgba(15,23,42,.05)`):需要在长表单中保持可见的操作区。
### Named Rules
**The Flat Business Surface Rule.** 普通卡片、表格和筛选面板静止时不加阴影;边框与层级色已经足够。
## Shapes
业务面板和主要交互以轻度圆角为主:8px 是卡片、面板、页内按钮和多数复合控件的主轮廓;6px 用于说明块和紧凑内部容器,10–12px 只用于导航或更具身份感的壳层元素。状态胶囊使用完全圆角,头像、数据图例点和进度点使用圆形。结构边线保持 1px,不使用厚描边装饰内容区。
## Components
### Buttons
- **Shape:** 页内按钮和分段选择使用轻度圆角(8px);Element Plus 通用按钮保留其既有组件轮廓。
- **Primary:** 柏悦蓝底配白字,用于查询、提交和当前选中项;同一区域避免并列多个主按钮。
- **Hover / Focus:** 描边按钮悬停时转为柏悦蓝系边框与文字;全局键盘焦点使用 3px 半透明蓝色轮廓并保留外偏移。
- **Secondary / Ghost:** 白底冷灰描边承载重置、返回、全屏和低优先级操作;禁用态使用浅灰底、浅灰字并移除可点击光标。
### Chips
- **Style:** 状态胶囊最小高度 24px,左右 8px 内边距,11px 半粗文字;默认使用中性灰,成功、告警、危险与信息状态使用各自的浅底深字组合。
- **State:** 胶囊用于呈现状态,不替代按钮;可筛选标签的选中态仍回到柏悦蓝交互语义。
### Cards / Containers
- **Corner Style:** 白色业务面板采用 8px 圆角。
- **Background:** 业务内容用白色,表头和内部次级区域用浅层级灰。
- **Shadow Strategy:** 默认无阴影,遵守 Elevation & Depth 中的平面业务面规则。
- **Border:** 1px 冷灰边线;表格内部使用更浅的分隔线。
- **Internal Padding:** 常规面板 20px,紧凑工具栏 14–16px,抽屉分区 22–24px。
### Inputs / Fields
- **Style:** 复用 Element Plus 输入、选择和日期控件;筛选字段桌面端常用 260–360px,白底、细边框、紧凑高度。
- **Focus:** 使用柏悦蓝焦点边框和全局可见焦点轮廓,不以阴影替代键盘焦点。
- **Error / Disabled:** 错误保留具体文案与请求元信息;禁用态降低对比并保持不可操作语义。
### Navigation
- **Style:** 桌面侧栏 240px,折叠为 76px;一级项高 46px,子项高 42px。默认文字为中性灰,悬停以浅蓝渐变和轻微横移反馈,当前项使用柏悦蓝文字、加粗字重与左侧内嵌标记。720px 以下转换为遮罩式侧栏,不压缩正文到不可读宽度。
### Data Tables
- **Style:** 表头高 44px,12px 半粗文字与浅灰底;单元格垂直内边距 12px,主值 13px、次值 11px。
- **Structure:** 操作列在第一列;表格面板裁切外轮廓,表尾用顶边线连接分页和结果统计。
- **Responsive:** 窄屏保留水平滚动与 44px 操作触控高度,不隐藏关键字段而制造上下文丢失。
### Dashboard Panels
- **Style:** 指标卡和图表面板沿用 8px 白色边框面板。图表分类色只在图形、图例点和数据标记中出现;面板标题、轴标签和说明仍使用全局中性色层级。
- **State:** 全屏模式回到冷灰工作面;数据未接入时必须明确标注为静态演示,不把占位数据伪装为实时数据。
## Do's and Don'ts
### Do:
- **Do** 优先复用 `--cc-primary`、`--cc-border`、`--cc-muted` 和既有白色面板结构。
- **Do** 用 1px 边线、浅层级灰和稳定间距组织密集数据。
- **Do** 为加载、空数据、错误、禁用和无权限状态保留清晰文字与可恢复操作。
- **Do** 在 720px 以下检查侧栏、筛选栏、表格、抽屉与按钮的触控和滚动退化。
- **Do** 使用 Lucide 图标,并为纯图形操作提供文本或无障碍名称。
### Don't:
- **Don't** 在普通业务面板上批量添加阴影、玻璃效果或装饰渐变。
- **Don't** 把图表分类色或状态色用于主操作、导航选中态或大面积背景。
- **Don't** 用表情符号充当功能图标,也不要只靠颜色表达状态。
- **Don't** 用超大标题、宽字距或低密度留白牺牲运营页面的扫描效率。
- **Don't** 把核心操作放到表格末列或右侧固定列。