UI_STYLE_GUIDE.md 4.9 KB

UI 风格约束

本文档用于约束星痕课程工坊的整体界面风格。所有新增页面、组件、弹窗和后台管理界面,都应与首页保持同一套视觉语言:清爽、留白充足、低噪声、以蓝色作为主行动色。

设计基调

  • 整体气质:轻盈、克制、专业,避免强装饰感。
  • 页面背景:使用浅灰蓝底色,优先采用 #f5f7fb 或接近色。
  • 内容承载:主要内容放在白色卡片、白色面板或无框布局中。
  • 视觉重心:蓝色只用于主操作、当前状态、重要标签和焦点反馈。
  • 禁止新增大面积紫色、红色渐变、深色后台主题,除非是明确的品牌改版。

颜色

核心颜色以 src/styles.css 中的 CSS 变量为准:

--blue: #245bd6;
--blue-dark: #1646b5;
--ink: #17213a;
--muted: #78839a;
--line: #e4e8f0;
--paper: #fff;

使用规则:

  • 主按钮、当前导航、关键徽标使用 --blue
  • 主按钮 hover 使用 --blue-dark
  • 正文主色使用 --ink 或接近的深蓝灰。
  • 次要说明文字使用 --muted 或灰蓝色。
  • 边框使用 --line 或低饱和浅灰蓝。
  • 浅蓝背景优先使用 #edf3ff#eff6ff#f8fbff 这一类低饱和色。

语义色可以保留:

  • 删除、错误、拒绝:红色。
  • 成功、完成:绿色。
  • 警告、待处理:黄色或金色。

语义色只用于状态表达,不应用作普通装饰色。

按钮

按钮样式必须与首页主按钮保持一致,优先复用已有类名:

  • 主操作:.primary-button
  • 次操作:.secondary-button
  • 小按钮:.small-button
  • 强调按钮:.highlight-button

按钮约束:

  • 圆角使用 --button-radius,当前为 8px
  • 普通按钮最小高度使用 --button-height,当前为 44px
  • 小按钮最小高度使用 --button-small-height,当前为 34px
  • 主按钮背景使用 --blue,不要新增紫蓝渐变。
  • hover 可以轻微上浮,但不要使用夸张动画。
  • disabled 状态必须降低透明度并移除阴影。
  • 可点击元素必须保留清晰的 focus-visible 焦点样式。

卡片与面板

  • 卡片背景优先使用白色或接近白色。
  • 卡片边框使用浅灰蓝,避免高对比描边。
  • 常规卡片圆角控制在 8px14px
  • 阴影应轻、薄、低透明度,只用于区分层级。
  • 后台页面也使用浅色背景和白色面板,不使用深色登录页或深色管理壳。
  • 不要在卡片里再堆多层装饰卡片;复杂信息优先用分组、分隔线、网格和标签组织。

表单

  • 输入框背景使用白色或 #fbfcfe
  • 输入框边框使用浅灰蓝。
  • 输入框 focus 使用蓝色边框和低透明度蓝色外发光。
  • label 使用中性深灰蓝,避免纯黑。
  • 必填星号允许使用红色,这是语义状态。
  • 表单间距保持稳定,不要因为错误提示或动态内容导致布局跳动。

标签与徽标

  • 普通信息标签使用浅蓝、浅灰蓝或白色描边。
  • 当前状态、主要编号、关键 badge 使用蓝色体系。
  • 管理员身份、导航入口、分集编号等非错误状态,不使用紫色或红色。
  • 圆角标签可以使用 4px8px,胶囊标签仅用于筛选、状态或非常短的元信息。

导航

  • 当前导航项使用 --blue
  • 普通导航项使用灰蓝色。
  • 顶部导航和后台导航都应保持浅色背景、细边框、轻阴影或无阴影。
  • 不同端的入口可以通过文字和小 badge 区分,但不应换成另一套颜色主题。

弹窗

  • 弹窗使用白色背景、浅边框、轻阴影。
  • 弹窗标题、表单、按钮应与页面内组件同源。
  • tab、分段控件、上传区域等交互元素使用蓝色作为 active 或 focus 状态。
  • 遮罩和阴影只用于层级,不要让弹窗呈现深色主题。

排版

  • 字体沿用全局字体栈:InterSF Pro DisplayPingFang SCMicrosoft YaHei
  • 首页可以使用更大的展示字号;后台、表格、卡片内标题应更紧凑。
  • 正文说明文字保持灰蓝色,行高舒适。
  • 不新增负 letter-spacing;界面文字应优先清晰易读。

新增 UI 检查清单

提交新增页面或组件前,至少检查:

  • 是否复用了现有按钮类,而不是重新写一套按钮。
  • 页面背景、卡片、输入框是否仍是浅灰蓝和白色体系。
  • 主色是否统一为 --blue,没有新增紫色、紫蓝渐变或深色主题。
  • 红色是否只用于错误、删除、拒绝等语义状态。
  • hover、active、disabled、focus-visible 状态是否完整。
  • 文案是否在移动端和桌面端都不会溢出按钮、卡片或标签。
  • 后台页面是否与首页保持同一品牌感,而不是变成独立视觉系统。

修改入口

全局视觉变量和通用组件样式集中在:

  • src/styles.css

新增样式时优先扩展已有 token 和通用类,只有在现有样式无法表达新组件语义时,再添加新的局部类。