# 清道夫 App 全局样式重设计调整文档 ## 一、调整目标 让小程序整体视觉更符合微信小程序原生风格: 1. 统一页面背景色、卡片、文字、图标配色 2. 大量减少渐变色和花俏装饰 3. 简化首页头部,去掉毛玻璃、渐变背景 4. 统一卡片、列表、按钮、标签样式 5. 保持各角色首页信息结构清晰 --- ## 二、色彩规范 ### 主色板 | 名称 | 色值 | Tailwind 类 | 用途 | |------|------|-------------|------| | 主色 | `#2563eb` | `bg-primary` / `text-primary` | 按钮、激活态、主图标 | | 主色浅 | `#eff6ff` | `bg-primary-light` | 图标底色、选中背景 | | 成功 | `#10b981` | `text-success` | 完成/通过状态 | | 成功浅 | `#ecfdf5` | `bg-success-light` | 成功状态背景 | | 警告 | `#f59e0b` | `text-warning` | 待处理/提醒 | | 警告浅 | `#fff7ed` | `bg-warning-light` | 警告状态背景 | | 危险 | `#ef4444` | `bg-danger` / `text-danger` | 取消/拒绝/重要 | | 危险浅 | `#fef2f2` | `bg-danger-light` | 危险状态背景 | ### 中性色 | 名称 | 色值 | Tailwind 类 | 用途 | |------|------|-------------|------| | 页面背景 | `#f5f5f5` | `bg-background` | 全局页面底色 | | 浅灰背景 | `#f3f4f6` | `bg-surface` | hover、筛选标签默认态 | | 主要文字 | `#1f2937` | `text-gray-800` | 标题、正文 | | 次要文字 | `#6b7280` | `text-gray-500` | 备注、说明 | | 辅助文字 | `#9ca3af` | `text-gray-400` | 时间、占位 | | 分割线 | `#e5e7eb` | `border-gray-200` | 边框、分隔线 | > 说明:`text-primary`、`text-secondary` 等语义化文字类因 Tailwind 生成规则与命名冲突,统一改用 `text-gray-800/500/400`。 --- ## 三、核心样式文件变更 ### 1. `src/styles/variables.scss` - 背景色改为 `#f5f5f5` - 主色改为 `#2563eb` - 删除渐变按钮、渐变标签相关变量 - 文字色改为 `#1f2937` / `#6b7280` / `#9ca3af` - 卡片阴影更柔和 ### 2. `src/styles/global.scss` - 去掉所有渐变按钮、渐变标签、渐变进度条 - `.card` 改为白底 + 1px 浅灰边框 + 柔和阴影 - `.btn-primary` 等改为纯色 - `.tag-*` 改为纯色小圆角标签 - 新增 `.icon-box` 图标容器 - 新增 `.page-header` 页面头部样式 ### 3. `tailwind.config.js` - 扩展颜色:`primary`、`success`、`warning`、`danger` 及其浅色 - 扩展:`background`、`surface`、`card-bg` - 保持 `preflight: false` --- ## 四、页面/组件具体调整 ### 首页(SalesHome / DispatchHome / ConstructionHome) | 调整项 | 改前 | 改后 | |--------|------|------| | 顶部背景 | `bg-gradient-to-br` 渐变 + 毛玻璃 | 白色背景 + 下边框 | | 用户头像区 | 半透明毛玻璃 | `bg-primary-light` + `text-primary` | | 通知按钮 | 半透明毛玻璃 | `bg-surface` + `text-gray-500` | | 统计卡片 | 彩色背景 `bg-blue-50`/`bg-orange-50` | 白色卡片内 `bg-surface` 统计块 | | 统计数字 | 彩色 `text-blue-500` | 语义色 `text-primary`/`text-warning`/`text-success` | | 快捷入口图标 | 各功能彩色底 | 统一 `bg-primary-light` + `text-primary` | | 卡片阴影 | `is-shadow="true"` | `is-shadow="false"`,统一边框 | ### 任务列表(TaskListView) - 筛选标签默认态:`bg-surface text-gray-500` - 选中态:`bg-primary text-white` - 状态图标:统一语义化颜色 - 加载/空态文字改为 `text-gray-400` ### 我的页面(ProfileView) - 顶部:白底 + 下边框,头像 `bg-primary-light` - 卡片统一 `is-shadow="false"` - 退出登录按钮:白底红字 + 灰边框 ### 登录页(login.vue) - 背景:`bg-background` - Logo:纯色 `bg-primary` - 表单卡片:白底 + 灰边框 + 柔和阴影 - 按钮:`bg-primary` 纯色 - 输入框:`bg-surface` + 灰边框 ### 知识库(knowledgeList / knowledgeDetail) - 列表封面:去掉渐变,改为 `bg-primary-light` + `text-primary` - 详情封面:去掉渐变,改为 `bg-primary-light` - 摘要/内容/分类块:使用 `bg-primary-light`、`bg-success-light`、`bg-surface` ### 通用组件 | 组件 | 调整 | |------|------| | `uni-card` | 默认有 1px 灰边框,阴影默认关闭,标题 `#1f2937`,extra `#2563eb` | | `uni-list` | 边框颜色 `#e5e7eb` | | `uni-list-item` | 图标背景 `#f3f4f6`,图标颜色 `#6b7280`,hover 背景 `#f5f5f5`,文字色更新 | | `FilterTabs` | 默认 `bg-surface text-gray-500`,选中 `bg-primary text-white` | | `StatusTag` | 通过 `utils/index.ts` 统一状态色 | --- ## 五、状态色统一 `src/utils/index.ts` 中状态颜色已统一: ```js pending/inspecting -> 警告色 #f59e0b / #fff7ed confirmed/scheduled/constructing -> 主色 #2563eb / #eff6ff departed -> 紫色 #8b5cf6 / #f3e8ff arrived/completed -> 成功色 #10b981 / #ecfdf5 cancelled/rejected -> 危险色 #ef4444 / #fef2f2 ``` --- ## 六、注意事项 1. **语义化颜色类使用规则** - 可用:`bg-primary`、`bg-primary-light`、`bg-success-light`、`bg-warning-light`、`bg-danger-light`、`bg-surface`、`bg-background`、`text-primary`、`text-success`、`text-warning`、`text-danger` - 避免:`text-text-*`、`bg-text-*`、`border-border-color` 等带连词的自定义类,Tailwind 可能无法正确解析 2. **卡片阴影** - 改造后默认使用 `is-shadow="false"`,依赖 `uni-card` 自带的 1px 边框分隔内容 - 如需强调可用 `shadow-card` 3. **渐变保留** - 本次改造后,除 `global.scss` 中原有少量样式外,业务页面不再使用渐变背景 - 后续如需品牌氛围,可在启动页或空状态插画中使用 4. **图标** - 快捷入口、列表项、状态标签统一使用 `uni-icons` - 图标底色统一 `bg-primary-light`,图标颜色统一 `text-primary` --- ## 七、已修改文件清单 - `src/styles/variables.scss` - `src/styles/global.scss` - `tailwind.config.js` - `src/pages.json` - `src/utils/index.ts` - `src/pages/login/login.vue` - `src/components/home/SalesHome.vue` - `src/components/home/DispatchHome.vue` - `src/components/home/ConstructionHome.vue` - `src/components/my/ProfileView.vue` - `src/components/task/TaskListView.vue` - `src/components/common/FilterTabs.vue` - `src/components/uni-card/uni-card.vue` - `src/components/uni-list/uni-list.vue` - `src/components/uni-list/uni-list-item.vue` - `src/subPackages/pages-common/knowledgeList.vue` - `src/subPackages/pages-common/knowledgeDetail.vue` --- ## 八、验证结果 - `npm run build:mp-weixin` 编译通过 - 主包体积 923K,各分包 62K–152K,均小于 2MB - 生成 WXSS 中无无效类名 --- ## 九、后续建议 1. 逐步将剩余页面中的硬编码 `#3b82f6` / `#f59e0b` 等替换为语义化类 2. 检查分包页面中的表单、详情页是否还有未统一的彩色背景块 3. 如果 UI 提供正式 tabBar 图标,替换 `src/static/tabbar/` 下占位图标 4. 继续验证各角色首页、任务页、我的页在微信开发者工具中的实际效果