引入统一设计令牌并迁移首页、订单和数据 UI

This commit is contained in:
2026-07-06 17:58:18 +08:00
parent 71ab38af8d
commit 28dc004110
31 changed files with 737 additions and 213 deletions

View File

@ -0,0 +1,128 @@
# 随心瞰商家版 — Design System (MASTER)
> Global Source of Truth。页面级 override 见 `pages/[page].md`。
## 设计定位
| 维度 | 决策 |
|------|------|
| 产品 | B2B 户外作业工具(景区商户 / 摄影师 / 飞手) |
| 风格 | Flat Design + Executive Dashboard 卡片布局 |
| 字体 | SF ProSystem不引入 Web 字体 |
| 主色 | `#0073FF`Banner `#1677FF` |
| 触控 | 最小点击区域 44×44pt |
| 对比度 | 正文 ≥ 4.5:1 |
**不采用:** 渐变/Aurora 背景、Newsletter 布局、替换品牌主色。
## 色彩 Token`AppColor`
| Token | Hex | 用途 |
|-------|-----|------|
| `primary` | `#0073FF` | Tab 选中、主按钮、链接 |
| `primaryBanner` | `#1677FF` | 排队 Banner |
| `primaryLight` | `#EFF6FF` | 次要按钮底、info badge |
| `pageBackground` | `#F5F5F5` | 默认 Tab 页背景 |
| `pageBackgroundSoft` | `#F7FAFF` | 数据 / 个人中心 |
| `cardBackground` | `#FFFFFF` | 卡片、表单 |
| `inputBackground` | `#F4F4F4` | 输入框、离线 chip |
| `border` | `#EEEEEE` | 分割线 |
| `cardOutline` | `#E9ECEF` | 列表卡片描边 |
| `textPrimary` | `#333333` | 主文案 |
| `textSecondary` | `#666666` | 副文案 |
| `textTertiary` | `#999999` | 弱提示 |
| `textTabInactive` | `#7D8DA3` | Tab 未选中 |
| `success` / `successBackground` | `#10B981` / `#F0FDF4` | 成功、待叫号 |
| `warning` / `warningBackground` | `#FF7B00` / `#FFF0E2` | 待处理 |
| `danger` / `dangerBackground` | `#EF4444` / `#FFE7E7` | 错误、过号 |
| `info` / `infoBackground` | `#0073FF` / `#E8F4FF` | 进行中 |
| `online` | `#22C55E` | 在线 pill |
| `overlayScrim` | `#00000033` | Loading 遮罩 |
**规则:** 业务 View 禁止 `UIColor(hex:)`,一律引用 `AppColor`
## 字体 Token`AppFont`
| Token | Size | Weight | 场景 |
|-------|------|--------|------|
| `caption` | 12 | regular | Tab、协议 |
| `captionMedium` | 12 | medium | Tab 选中 |
| `body` | 14 | regular | 按钮、列表 |
| `bodyMedium` | 14 | medium | Badge、chip |
| `subtitle` | 16 | medium | 卡片标题 |
| `title` | 16 | bold | Section 标题 |
| `metric` | 18 | bold | 统计数值 |
| `display` | 28 | semibold | 登录欢迎 |
## 间距 Token`AppSpacing`
| Token | pt |
|-------|-----|
| `xxs` | 4 |
| `xs` | 8 |
| `sm` | 12 |
| `md` | 16 |
| `lg` | 24 |
| `xl` | 32 |
| `xxl` | 48 |
常量:`screenHorizontalInset = 16``minTouchTarget = 44``homeHeaderHeight = 52`
## 圆角 Token`AppRadius`
| Token | pt | 场景 |
|-------|-----|------|
| `xs` | 4 | Badge |
| `sm` | 8 | 小按钮 |
| `md` | 10 | 默认卡片、AppButton |
| `lg` | 12 | 输入框、统计卡 |
| `xl` | 16 | 登录表单、Dialog |
| `sheetTop` | 14 | 内容区顶圆角 |
## 阴影(`AppShadow`
仅登录表单卡等浮层使用;普通卡片 **flat + 可选 1px `cardOutline` 描边**
## 共享组件
| 组件 | 路径 | 说明 |
|------|------|------|
| `AppCardView` | `UI/Common/AppCardView.swift` | 白底卡片容器 |
| `AppStatusBadge` | `UI/Common/AppStatusBadge.swift` | 统一状态标签 |
| `AppButton` | `UI/Common/AppButton.swift` | 主/次按钮 |
| `AppNavigationBarAppearance` | `Theme/AppNavigationBarAppearance.swift` | 全局 NavBar |
## 页面模板Tab 内页)
```
NavigationBar白底16pt title— Home 例外:自定义 Header
pageBackground
AppCardView × Ninset 16stack gap 12
TabBar白底primary tint
```
## 反馈模式
| 场景 | 方式 |
|------|------|
| 提交 / 首次加载 | GlobalLoading |
| 列表刷新 | UIRefreshControl |
| 分页 | Footer UIActivityIndicatorView |
| 操作结果 | Toast |
| destructive | Alert |
## Pre-Delivery Checklist
- [ ] 无 inline hex使用 AppColor
- [ ] 触控区域 ≥ 44pt
- [ ] 正文对比度 ≥ 4.5:1
- [ ] 异步操作 >300ms 有 loading 反馈
- [ ] 状态不仅靠颜色(含文字标签)
- [ ] 圆角 / 间距来自 AppRadius / AppSpacing
## 路线图(后续)
1. Profile / Login / Auth 迁移
2. 排队管理(`Theme/Modules/ScenicQueueTokens.swift`
3. 全工程 hex 清零
4. Orders EmptyState、FilterBar 组件化

View File

@ -0,0 +1,24 @@
# Home 页面 Override
覆盖 MASTER 的以下规则:
## Navigation
- 隐藏系统 `UINavigationBar`
- 使用 `HomeScenicHeaderView`(高度 `AppSpacing.homeHeaderHeight` = 52pt
## Background
- `AppColor.pageBackground``#F5F5F5`
## Layout
- `UIScrollView` + 垂直 `UIStackView`
- 水平 inset`AppSpacing.screenHorizontalInset`16pt
- 卡片间距:`AppSpacing.sm`12pt
- 卡片圆角:`AppRadius.md`10pt
## Cards
- `HomeWorkStatusCardView`:在线 `AppColor.online`,离线 `AppColor.inputBackground`
- 快捷操作、应用网格等同 Home 卡片规范