Recruitment_site/docs/superpowers/specs/2026-06-25-guopin-red-theme...

104 lines
5.7 KiB
Markdown
Raw 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.

# 国聘红 · 国企风格全站换肤 设计文档
> 日期2026-06-25
> 范围:`offer_frontend` 前端主题视觉换肤,**不改任何功能逻辑/模板结构/接口**。
> 目标:将现有"黑金"风格改为类似国聘guopin.com的"国企红 + 白底"风格,全站统一。
## 1. 背景
当前前端主题分两套:
- **公开页Portal + Splash**:黑金风格——顶栏 `#1A1A1A`/`#0F0F0F` + 金色 `#C8973A`/`#B8860B`/`#D4AF37`。
- **后台 / 求职者 / 登录**Element Plus 默认蓝 `#409eff`Admin 侧边栏海军蓝 `#001529`
用户要求改为国聘式国企风格,不要黑金,全站统一。
## 2. 设计令牌(全局色板)
`src/style.css` 顶部定义 CSS 变量,并覆盖 Element Plus 主色变量,使全站 `type="primary"` 组件(按钮、分页、链接、开关、标签等)统一变红。
| 令牌 | 值 | 用途 |
|---|---|---|
| `--brand-red` | `#C8161D` | 主色(中国红) |
| `--brand-red-2` | `#A11218` | 悬停 / 深红 |
| `--brand-red-3` | `#E84148` | 浅亮红(强调) |
| `--brand-red-bg` | `#FDECED` | 红色浅底(标签、选中态背景) |
| `--bg-page` | `#F7F8FA` | 页面浅灰底 |
| `--bg-card` | `#FFFFFF` | 卡片白底 |
| `--text-main` | `#1D2129` | 主文字 |
| `--text-muted` | `#86909C` | 次要文字 |
| `--border` | `#E5E6EB` | 分割线/边框 |
Element Plus 主色覆盖(写在 `:root`,全局生效):
- `--el-color-primary: #C8161D`
- `--el-color-primary-light-3/5/7`: 红色浅变体(用于 hover、disabled、边框
- `--el-color-primary-dark-2: #A11218`
同时移除 `style.css``color-scheme: light dark``#242424` 暗色默认,强制亮色白底,避免残留暗色样式。
## 3. 各文件改造点
仅替换颜色/背景/阴影/边框,**不改模板结构、class 名、交互逻辑**。
### 3.1 `src/style.css`
- 新增上述全局令牌与 EP 主色覆盖。
- 移除暗色默认(`#242424`、`color-scheme: light dark`、暗色 `button`/`a` 规则)。
- `body` 背景改为 `var(--bg-page)`,文字 `var(--text-main)`
### 3.2 `src/layouts/PortalLayout.vue`
- 顶部公告条 `#1A1A1A` → 浅灰 `#F2F3F5`,深色文字;星标与链接用红。
- 主导航 `linear-gradient(#1A1A1A,#0F0F0F)` → 白底 `#FFFFFF`,加底部阴影。
- logo金环 `#C8973A` → 红环 `--brand-red`emblem 字、logo-sub 由金改红。
- 导航链接hover/active 下划线与文字色由金改红。
- `btn-ghost` 边框/字色适配白底;底线装饰 `linear-gradient(#C8973A,#D4AF37)``--brand-red`
- 页脚 `#1A1A1A` → 浅灰 `#2B2B2B` 或白底配红顶边(采用:浅灰底 `#1D2129` 文字浅 + 红色顶边 3px
- 局部 `:root` 变量块(`--c-red/--c-gold` 等)清理或重定向到全局令牌。
### 3.3 `src/views/portal/HomeView.vue`
- `--gold/--gold-lt/--dark` 等局部变量替换为全局红色令牌。
- 左栏 `.panel-left` 背景 `--dark(#1A1A1A)``--bg-card` 白底,文字改深色,边框 `--border`
- 选中态 `.org-row.active`:金色 inset 条 + 金色背景 → 红色 inset 条 + `--brand-red-bg`
- `.org-avatar` 金色渐变 → 红色渐变 `linear-gradient(135deg, #C8161D, #8B1014)`
- `.left-count`/`.org-stat em` 金色 → 红。
- 搜索按钮 `.search-btn` 金底 → 红底。
- 学历徽章 `.edu-total-badge` 金系 → 红系(`--brand-red-bg` 底 + 红字 + 红边)。
- 薪资 `#E63329` 保留(本就是红,贴合)。
- 骨架 shimmer 暗色渐变 → 浅灰渐变。
### 3.4 `src/views/SplashView.vue`
- 整体由暗黑改红色国企风。
- 顶栏 `rgba(0,0,0,.45)` → 白底半透 + 红色底线logo 金渐变 → 红渐变nav hover 金 → 红。
- Hero 背景 `linear-gradient(#0d1b2a…)` → 红色渐变 `linear-gradient(160deg, #C8161D, #8B1014 60%, #6B0C10)`;建筑竖线/光晕的金色 `rgba(184,134,11,*)` → 红色 `rgba(255,255,255,*)`/红色微光。
- `.hero-badge` 金边金字 → 白边白字 / 红底白字。
- 主按钮 `.btn-primary-lg` 金渐变 → 白底红字 或 纯白底(红底白字会与红背景融,故 hero 内主按钮用白底红字)。
- 数据区 `.stats-section` 暗底金字 → 白底红字,分割线红浅。
- 特色区 `.features-section` 暗底 → `--bg-page` 浅灰底;卡片 `#161616` → 白卡 + 浅边hover 边框红。
- footer 暗底 → 浅灰底 `#1D2129``--bg-page`,链接 hover 红。
### 3.5 `src/layouts/AdminLayout.vue`
- 侧边栏背景 `#001529` → 深红 `#8B1014`(保留"深色侧边栏"视觉习惯,纳入红色家族)。
- 侧边栏选中项/悬停:调亮红(`#A11218`/`#C8161D`)。
- 硬编码 `#409eff``var(--brand-red)`(其余靠全局 EP 覆盖)。
### 3.6 其余视图JobDetailView / CompanyListView / CompanyDetailView / JobListView / seeker/* / auth/LoginView / RegisterView / ResetPasswordView / admin/*View
- 仅替换 scoped 样式中硬编码的 `#409eff`、`#909399`(链接/强调蓝)为 `var(--brand-red)` 或交由全局 EP 主色覆盖。
- 不动结构与逻辑。
## 4. 不在范围内YAGNI
- 不改组件结构、路由、接口、业务逻辑。
- 不引入 SCSS / 主题切换 / 暗色模式。
- 不新增依赖。
- 不改后端。
## 5. 验证
1. `npm run dev` 起前端(已运行于 5174
2. 浏览器逐页核对Splash(`/`)、首页(`/home`)、公司介绍(`/companies`)、登录(`/login`)、求职者中心、后台。
3. 确认无残留黑金、无 Element Plus 默认蓝。
4. 截图存档对比。
## 6. 风险
- Element Plus 组件内部个别硬编码色(如 `el-tag` type 默认色)可能不被变量覆盖——若出现,按需补 `:deep()` 覆盖。
- scoped 样式中硬编码的 `#409eff`/`#909399` 需逐处替换,遗漏会残留蓝点——实施时全局 grep 兜底。