CYBER STAR · 视觉设计规范 v2
适用范围:CYBER STAR 虚拟偶像 Top12 出道企划官网(首页、排行榜、艺人详情页、个人中心)
设计语言:赛博 / 暗黑 / 紫色霓虹 / 太空感
更新时间:2026-05-12
1. 品牌识别
1.1 Logo
- 主 Logo:金属铬质
CYBER STAR 文字 + 右侧星形装饰(PNG 透明背景)
- 路径:
/public/logo.png(待放置)
- 原始比例:约 2.7 : 1
- 最小展示宽度:120px
- 顶栏使用高度:32px,对应宽度约 86px
- 简化 Logo(favicon / 极窄场景):紫色四角星 SVG(自定义 path 或 lucide
Sparkles),单独使用时配紫色辉光
1.2 关键词
赛博朋克、未来感、神秘、紫色霓虹、深空、半透明、辉光、玻璃质感(glassmorphism)
1.3 不要做的事
- 禁止:不使用扁平色块大面积铺底
- 禁止:不使用强烈的彩虹色 / 多色对比
- 禁止:不使用阳光、暖色调
- 禁止:不使用粗线条 / 卡通风格的图标
2. 色彩系统
2.1 背景层级(暗紫调)
| Token |
HEX |
用法 |
--color-deepest |
#08051A |
页面最底层背景 |
--color-deep |
#0D0A24 |
导航 / Footer 背景 |
--color-base |
#13102E |
主要区块背景 |
--color-surface |
#1A1638 |
一级卡片 / 输入框 |
--color-elevated |
#221D4A |
浮层 / 弹窗 / Hover 态 |
--color-card |
#1E1840 |
艺人卡片底色 |
视觉策略:层级越深、颜色越亮一点点,营造空间纵深感。
2.2 主调紫 · Royal Violet
| Token |
HEX |
用法 |
--color-purple-100 |
#EDE9FE |
极淡紫,几乎不用 |
--color-purple-200 |
#DDD6FE |
高亮文字 |
--color-purple-300 |
#C4B5FD |
主要文字高亮 / 标题点缀 |
--color-purple-400 |
#A78BFA |
边框 / 图标 / 次级按钮文字 |
--color-purple-500 |
#8B5CF6 |
主品牌色,按钮、徽章 |
--color-purple-600 |
#7C3AED |
按钮 hover / 强调 |
--color-purple-700 |
#6D28D9 |
按钮 active / 渐变深端 |
--color-purple-800 |
#5B21B6 |
极深紫,渐变深端 |
2.3 文字颜色
| 用途 |
值 |
备注 |
| 主标题 / 强调 |
#FFFFFF (white) |
100% 不透明 |
| 正文 |
rgba(255,255,255,0.85) |
二级阅读文字 |
| 次要说明 |
rgba(255,255,255,0.65) |
slogan / placeholder |
| 弱化 |
rgba(255,255,255,0.45) |
元数据 / 提示 |
| 几近隐藏 |
rgba(255,255,255,0.25) |
disabled 文字 |
| 紫色强调 |
var(--color-purple-300) |
票数 / 标签 / 排名 |
| 错误 |
var(--color-pink-500) #EC4899 |
限警告类文案 |
2.4 边框
| Token |
值 |
用法 |
--border-subtle |
rgba(255,255,255,0.08) |
默认分隔 |
--border-default |
rgba(255,255,255,0.14) |
卡片 / 输入框边框 |
--border-purple |
rgba(139,92,246,0.55) |
强调态边框 |
--border-glow |
rgba(196,181,253,0.65) |
辉光边框 |
2.5 渐变
| Token |
用法 |
--grad-hero |
Hero 区放射状暗紫,Hero 视频缺失时的降级背景 |
--grad-purple |
主按钮渐变(135°,深紫 → 中紫 → 浅紫) |
--grad-purple-deep |
深沉版主渐变 |
--grad-card |
艺人卡片背景(155°,elevated → surface) |
--grad-violet-glow |
放射状辉光,装饰用 |
--grad-shine |
按钮微光扫过效果 |
2.6 辅助色(仅限点缀)
| 名 |
HEX |
限定场景 |
| Cyan-400 |
#38D9F5 |
数据点缀、统计强调,不用作大面积 |
| Blue-500 |
#2D7FFF |
链接 hover,不用作背景 |
| Magenta |
#D946EF |
特殊状态 |
| Pink-500 |
#EC4899 |
错误、警示 |
Token 中保留的 --color-gold-400 / --color-silver / --color-bronze 当前不使用,预留给后续可能的徽章升级;本规范及当前设计稿只用紫色统一表达排名层级。
3. 字体系统
3.1 字体族
| 用途 |
字体 |
Fallback |
font-logo |
Orbitron(500 / 700 / 900) |
Audiowide, sans-serif |
font-display |
Audiowide |
sans-serif |
font-label(英文标签全大写) |
Cinzel |
serif |
font-body(中英文正文) |
Inter |
Source Han Sans SC, PingFang SC, Microsoft YaHei |
中文一律使用 font-body,不要尝试用 display 字体显示中文(不支持字形)。
3.2 字号阶梯
| 用途 |
桌面尺寸 |
移动尺寸 |
tracking |
| Hero 主标题 H1 |
clamp(64px, 7vw, 96px) |
48px |
0.35em |
| 区块标题 H2 |
18px |
16px |
0.2em |
| 卡片标题 |
14px |
13px |
normal |
| 正文 |
14px |
13px |
normal |
| 标签 / Eyebrow(uppercase) |
11px |
10px |
0.3em ~ 0.4em |
| 数字(票数 / 排名) |
用 tabular-nums |
— |
normal |
3.3 排版规则
- 英文 uppercase + tracking 是品牌核心调性,所有英文 label 必须大写 + 字间距 ≥ 0.2em
- 中文不强制全大写、不强制字间距
- 行高:标题 1.1-1.2,正文 1.6
- 数字必须
tabular-nums(票数对齐)
4. 间距 & 布局
4.1 基础栅格
- 间距基数:4px
- 常用间距:
4 / 8 / 12 / 16 / 20 / 24 / 32 / 40 / 64
4.2 容器
| 元素 |
值 |
| Page max-width |
1280px(max-w-7xl) |
| 水平 padding(移动) |
16px |
| 水平 padding(桌面) |
32px |
| Section 之间纵向间距 |
桌面 64px / 移动 40px |
4.3 艺人卡片网格
| 断点 |
列数 |
gap |
< 640px |
2 |
12px |
≥ 640px |
3 |
16px |
≥ 768px |
4 |
16px |
≥ 1024px |
5 |
16px |
4.4 Top12 头像横排
- 头像直径:
64-72px(响应式)
- 头像间距:12-16px
- 单行铺满,不允许换行;移动端横向滚动
5. 圆角 & 阴影 & 辉光
5.1 圆角
| 用途 |
值 |
| 小标签 / Pill |
9999px(完全圆) |
| 小元素(徽章) |
9999px(圆) |
| 输入框 / 小按钮 |
8px |
| 卡片 / 容器 |
12px |
| 大卡片 / 弹窗 |
16-20px |
| Hero 区 |
20-24px |
5.2 阴影
| Token |
值 |
用法 |
--shadow-card |
0 8px 32px rgba(0,0,0,0.65) |
卡片默认 |
--shadow-purple |
0 0 24px rgba(139,92,246,0.5), 0 0 60px rgba(139,92,246,0.18) |
紫色辉光(按钮 / 选中态) |
--shadow-glow |
0 0 40px rgba(196,181,253,0.25) |
高光氛围 |
5.3 文字辉光
.glow-text-purple {
text-shadow:
0 0 16px rgba(196, 181, 253, 0.55),
0 0 32px rgba(139, 92, 246, 0.35);
}
仅用于:Hero 主标题、激活态导航项。
6. 动效规范
| 名称 |
时长 |
Easing |
用法 |
| Hover 微抬升 |
200ms |
ease-out |
卡片 translateY(-2px) |
| 按钮渐变 |
180ms |
ease-out |
颜色 / 阴影变化 |
| 弹窗进入 |
280ms |
cubic-bezier(0.22, 1, 0.36, 1) |
scale 0.94→1 + opacity |
| 弹窗退出 |
200ms |
ease-in |
scale 1→0.96 + opacity |
pulse-glow |
2.4s infinite |
ease-in-out |
VOTE 按钮 / 当前排名 |
float |
3s infinite |
ease-in-out |
滚动提示 / 装饰 |
spin-slow |
20s infinite |
linear |
Hero 装饰光环 |
7. 组件规范
7.1 导航栏(Navigation)
┌──────────────────────────────────────────────────────────┐
│ [LOGO] 首页 排行榜 [Search] [登录/注册] │
└──────────────────────────────────────────────────────────┘
示意图中 [Search] 表示 lucide Search SVG 图标(36×36 圆形按钮),代码实现绝不使用搜索 emoji。
| 属性 |
值 |
| 高度 |
64px |
| 背景 |
rgba(13,10,36,0.85) + backdrop-blur(xl) |
| 底边 |
1px solid rgba(255,255,255,0.08) |
| 行为 |
sticky top-0,z-index 50 |
| Logo |
高度 32px |
| 导航项间距 |
32px |
| 导航项字体 |
font-display、12px、tracking-[0.25em]、uppercase |
| 默认色 |
rgba(255,255,255,0.65) |
| 激活色 |
var(--color-purple-300) + .glow-text-purple + 底部 1px 紫线 |
| 搜索图标 |
36×36 圆形按钮,rgba(255,255,255,0.04) 背景 |
| 登录按钮 |
36 高度,紫色描边胶囊,padding-x 20px |
注意:倒计时不放在导航栏,仍保留在 Hero 内。
7.2 Hero 区(全屏视频背景)
┌─────────────────────────────────────────────┐
│ TOP 12 VIRTUAL IDOL DEBUT PROJECT │
│ ┌────────────────┐ │
│ │ 距离投票结束 │ │ ← 浅紫边框胶囊
│ │ 12天 03:24:16 │ │
│ └────────────────┘ │
│ CYBER ✦ STAR │
│ │
│ 虚拟偶像出道企划 │
│ │
│ [VolumeX] │ ← 仅声音按钮
└─────────────────────────────────────────────┘
| 属性 |
值 |
| 高度 |
70vh(最小 480px / 最大 720px) |
| 圆角 |
20px |
| 背景 |
全屏视频 object-cover + 半透明黑色蒙层 |
| 视频行为 |
autoPlay loop muted playsInline |
| 蒙层 |
顶部 45% 黑 → 中部 15% 黑 → 底部 75% 黑(垂直渐变) |
| 禁止:Hero 内不放任何按钮 |
删除 "Play Debut PV"、删除左上 "Debut PV 自动播放" tag |
| 倒计时位置 |
右上角,距边 24px |
| 倒计时容器 |
padding: 8px 16px + 1px solid rgba(196,181,253,0.4) 浅紫边框 + rounded-full 胶囊 + rgba(13,10,36,0.55) 半透明深紫底 + backdrop-blur |
| 倒计时文字 |
12-13px 白字 + 紫色高亮数字 + tabular-nums |
| 声音按钮位置 |
右下角,距边 20px |
| 声音按钮 |
36×36 圆形 / rgba(0,0,0,0.55) + backdrop-blur + 白色 Volume2 / VolumeX SVG(lucide-react) |
| 视频缺失降级 |
用 --grad-hero 渐变填充 |
7.3 Top 12 出道位
┌───────────────────────────────────────────────┐
│ [Trophy] 实时 Top12 出道位 查看完整榜单 [→] │
│ │
│ (o)(o)(o)(o)(o)(o)(o)(o)(o)(o)(o)(o) │ ← 圆形头像
│ 1 2 3 4 5 6 7 8 9 10 11 12 │ ← 紫色序号圆
│ 艺人 A 艺人 B … │
│ 12.6W 票 … │
└───────────────────────────────────────────────┘
示意图中 [Trophy] [→] 表示 lucide Trophy ChevronRight SVG,绝不使用奖杯 emoji。
| 元素 |
规范 |
| 容器 |
rgba(13,10,36,0.95) + border-subtle + rounded-xl + padding 16px |
| 头像 |
圆形,直径 64-72px,2px 紫色边框(--color-purple-500),紫色辉光 |
| 序号徽章 |
独立的、头像下方居中、紫色实心圆、20×20、白字数字 |
| 名字 |
12px、白色、居中、单行省略 |
| 票数 |
11px、--color-purple-300、居中、tabular-nums |
| 全部 12 位 |
统一紫色边框 + 紫色辉光,不区分 1-3 / 4-12 |
| 移动端 |
横向滚动 + snap |
| 禁止 |
不要再加 VOTE NOW 侧栏 |
7.4 筛选 + 搜索栏
┌───────────────────────────────────────────────────┐
│ 全部 舞蹈担当 声乐担当 rap担当 全能型 [Sort] [Search][G/L]│
└───────────────────────────────────────────────────┘
[Sort] = lucide ArrowUpDown、[Search] = lucide Search、[G/L] = lucide LayoutGrid + List SVG(视图切换)。
| 元素 |
规范 |
| 标签按钮 |
文字 only、无边框、padding 6px 12px、12px |
| 默认色 |
rgba(255,255,255,0.55) |
| Hover |
rgba(255,255,255,0.85) |
| 激活 |
--color-purple-300 + 底部 2px 紫线 |
| 排序触发 |
12px、含图标、rgba(255,255,255,0.04) 背景 |
| 搜索框 |
高度 36、--color-surface 背景、左侧搜索图标、placeholder 45% 白 |
| 视图切换 |
36×36 双按钮组、激活态 --color-purple-500/12 紫色背景 |
标签筛选(固定 5 项 · 不可改)
| 标签 key |
中文文案 |
默认筛选行为 |
all |
全部 |
显示全部 35 位(默认激活态) |
dance |
舞蹈担当 |
筛选 tags 含 dance 的艺人 |
vocal |
声乐担当 |
筛选 tags 含 vocal 的艺人 |
rap |
rap担当 |
筛选 tags 含 rap 的艺人(注意:小写 rap,无空格) |
all-rounder |
全能型 |
筛选 tags 含 all-rounder 的艺人 |
移除 visual leader 等其它标签的筛选入口(数据可保留,但不在筛选栏暴露)。
7.5 艺人卡片(关键组件)
┌─────────────────┐
│ (1) │ ← 紫色圆形排名徽章(左上)
│ │
│ [立绘 4:5] │
│ │
├─────────────────┤ ← 信息区与立绘明确分隔
│ No.001 │
│ 艺人 A │
│ 樱花校园系 │
│ [♥] 12.5w 票 │ ← [♥] = lucide Heart SVG
│ │
│ ┌─────────────┐ │
│ │ 投票 │ │ ← 紫色实心、占满整行
│ └─────────────┘ │
└─────────────────┘
通用规范
| 元素 |
规范 |
| 圆角 |
12px |
| 背景 |
var(--grad-card) |
| 立绘 |
aspect-[4/5],object-cover |
| 立绘 / 信息分隔 |
1px 顶部 border-subtle + 信息区底色 rgba(0,0,0,0.4) 叠加 |
| Padding(信息区) |
12px |
| 编号 No.xxx |
11px、rgba(255,255,255,0.55)、font-display |
| 艺人名 |
14px、白色、font-semibold、truncate |
| Slogan |
11px、rgba(255,255,255,0.55)、truncate |
| Heart SVG + 票数 |
12px、--color-purple-300、font-display、tabular-nums(图标用 lucide Heart size=12,禁用心形 emoji) |
| 排名徽章 |
28×28 圆形、--color-purple-500 实心、白字 14px、shadow-purple-glow、左上 distance 8px |
投票按钮(所有排名统一样式)
| 属性 |
值 |
| 高度 |
36px |
| 圆角 |
8px |
| 文案 |
「投票」(中文,不是 "Vote") |
| 样式 |
--grad-purple 实心 + 白字 + 紫色辉光(shadow-[0_0_12px_rgba(139,92,246,0.35)]) |
| Hover |
brightness(1.1) + 更强辉光 |
| Active |
brightness(0.95) |
注意:所有 35 张卡片的投票按钮完全相同,不因排名 Top12 / 13+ 而变样式。
排名差异化(严格按设计稿:二档制)
仅通过 2 个变量差异化,不动按钮:
| 排名段 |
立绘 |
边框 + 辉光 |
排名徽章 |
投票按钮 |
| Top 1-12(出道位) |
鲜艳(opacity 1) |
--border-purple 紫边 + --shadow-purple 紫辉光 |
紫色实心圆 + 紫色辉光 |
紫色实心(同下行) |
| 13+(候选区) |
轻度暗化(opacity 0.78) |
14% 白边框 + 无辉光 |
暗色徽章(--color-elevated 底 + 55% 白字) |
紫色实心(与上行完全相同) |
卡片结构 100% 一致,便于复用同一 React 组件,仅通过 inTop12 布尔变量控制立绘 opacity + 边框样式 + 徽章样式三处。
© 2026 CYBER STAR · All Rights Reserved
| 属性 |
值 |
| 高度 |
64px |
| 背景 |
--color-deep |
| 文字 |
11px、rgba(255,255,255,0.35)、居中 |
| 不放链接 |
极简化 |
7.7 按钮(通用)
| 变体 |
用途 |
样式 |
| Primary |
主操作(投票、确认) |
--grad-purple + 白字 + --shadow-purple |
| Outline |
次操作(登录、注册) |
透明背景 + --border-purple 边框 + 紫色文字 |
| Ghost |
工具栏(搜索、关闭) |
5% 白背景 + 14% 白边框 + 70% 白文字 |
| Danger |
退出登录 |
--color-pink-500 + 白字 |
| 尺寸 |
高度 |
padding-x |
font-size |
| sm |
32 |
14 |
10 |
| md |
44 |
24 |
12 |
| lg |
56 |
40 |
14 |
7.8 弹窗 / 遮罩层
| 属性 |
值 |
| 遮罩 |
rgba(0,0,0,0.75) + backdrop-blur(md) |
| 弹窗容器 |
--color-elevated 95% 透明度 + border-default + rounded-2xl |
| 阴影 |
0 24px 80px rgba(0,0,0,0.7), 0 0 40px rgba(139,92,246,0.12) |
| 禁止:顶部光条 |
删除(不要 2px 紫色横条,保持容器干净) |
| 关闭按钮 |
右上角 24×24,lucide X SVG,55% 白色 |
| 居中 |
position:fixed、inset:0、flex items-center justify-center |
| z-index |
100 |
8. 图标 & 装饰
8.1 图标库(铁律)
- 禁止:严禁使用任何 emoji(包括奖杯、心形、放大镜、喇叭、播放三角、上下箭头等所有彩色 / Unicode 装饰字符)
- 唯一例外:
CYBER ✦ STAR 品牌字标中间的 ✦(U+2726),保留原字符使用
- 使用:统一使用
lucide-react(线条风、stroke 1.5-2)
- 严禁混用 filled / outlined / cartoon icons
- 标准尺寸:12 / 14 / 16 / 20 / 24
8.2 场景对应的 lucide 图标
| 场景 |
lucide 组件名 |
备注 |
| 票数前缀 |
Heart |
fill="currentColor" 实心;颜色 --color-purple-300 |
| Top12 榜单标题 |
Trophy |
紫色 stroke |
| 标题装饰星 |
Sparkles 或自定义 <svg> |
四角星形 |
| 查看更多链接 |
ChevronRight |
12-14px |
| 搜索 |
Search |
16-18px |
| 静音 / 取消静音 |
VolumeX / Volume2 |
14-16px |
| 视图切换 |
LayoutGrid / List |
16px |
| 排序 |
ArrowUpDown |
14px |
| 弹窗关闭 |
X |
18px |
| 加载中 |
Loader2 + animate-spin |
14-16px |
| 投票心形(按钮内) |
Heart |
14px,按钮内置 |
| 播放(仅艺人详情视频用) |
Play Pause |
Hero 内不使用 |
8.3 装饰符号(仅以 SVG 形式出现)
- CYBER STAR 中间的 ✦:使用原
✦ 字符(Unicode U+2726 BLACK FOUR POINTED STAR)作为装饰,配合紫色辉光。这是品牌字标的一部分,是 §8.1 emoji 禁令的唯一例外
- 页面装饰光斑 / 粒子:通过
body::before body::after 的 radial-gradient 实现,不引入额外图标
8.4 环境装饰层
body::before 提供低饱和紫色雾光(左上、右下双焦点),body::after 提供 8 个静态星点。不要在内容区单独添加大面积装饰光斑,避免视觉拥挤。
9. 响应式断点
| 断点 |
设备 |
行为 |
< 640px |
手机 |
单列 / 双列卡片、横滚 Top12、隐藏 nav 文字 |
≥ 640px |
大手机 / 平板竖 |
3 列卡片 |
≥ 768px |
平板横 |
4 列卡片,nav 文字显示 |
≥ 1024px |
桌面 |
5 列卡片,完整布局 |
≥ 1280px |
大桌面 |
容器 max-w-7xl 居中 |
10. 通用 UI/UX 网页设计规范(必须遵守)
10.1 可访问性(WCAG 2.1 AA)
- 所有交互元素必须有
aria-label 或可见文字
- 颜色对比度:正文文字与背景 ≥ 4.5:1,大号文字 ≥ 3:1
- 紫色辉光按钮文字必须保持白色不透明,不要降到半透明
- 不依赖颜色单独传达信息(必须配合图标 / 文字)
- 视频自动播放必须
muted,并提供解除静音控件
- 弹窗:Escape 关闭、聚焦陷阱(focus trap)、
aria-modal="true"、关闭后焦点归还触发元素
10.2 焦点指示(Keyboard Navigation)
- 所有可聚焦元素(按钮、链接、输入框、卡片)必须有可见
:focus-visible 轮廓
- 标准:2px 紫色实线 + 2px 偏移,颜色
var(--color-purple-400)
- 不要使用
outline: none 而不提供替代焦点样式
- Tab 顺序遵循视觉顺序(左→右、上→下)
10.3 触控目标(Touch Target)
- 移动端最小触控目标 44 × 44 px(iOS HIG)/ 48 × 48 dp(Material)
- 相邻可点击元素之间至少留 8px 间距
- 卡片整体可点(跳详情)+ 内部投票按钮独立可点 → 必须用
event.preventDefault + stopPropagation 隔离
10.4 加载与反馈状态(Loading / Empty / Error)
每个数据展示组件必须实现以下三态:
| 状态 |
视觉 |
| 加载中(Loading) |
骨架屏(skeleton)— 紫灰渐变占位,不用 spinner 占整页 |
| 空状态(Empty) |
居中插画 / 图标 + 一句说明文字 + 可选行动按钮 |
| 错误(Error) |
居中错误图标(pink-500)+ 描述 + 「重试」按钮 |
异步操作(投票、登录):
- 触发后立即在按钮内显示 loading spinner,按钮
disabled 防重复
- 成功 / 失败用
react-hot-toast 全局 toast 反馈,不用 alert / confirm
10.5 表单设计
- Label 始终在输入框上方(不用浮动 label,避免遮挡)
- 错误提示:输入框下方红色文字 + 边框转
pink-500
- Placeholder 不能代替 label,仅给示例
- 必填字段标
*(紫色)
- 按钮文案说明动作而非"提交"(如「立即登录」「发送验证码」)
10.6 链接与按钮的语义区分
| 元素 |
用途 |
视觉 |
<button> |
触发动作(投票、打开弹窗、提交) |
实心 / 描边 / Ghost |
<a href> |
跳转页面(详情页、外链) |
文字 + hover 下划线 |
禁止:用按钮做跳转 / 用链接做表单提交。
10.7 信息密度与留白
- 同一区块内最多 3 个字号层级
- 每个 section 之间纵向留白 ≥ 40px(移动)/ 64px(桌面)
- 卡片内部 padding 不小于 12px
- 文字段落最大宽度 ≤ 75 字符(避免长行难读)
10.8 文案与本地化
- 中文用中文标点(。,!?:")
- 英文 label 全大写 + tracking
- 数字千位分隔(12,650 / 12.6W)
- 时间用相对时间("3 分钟前")+ tooltip 显示绝对时间
- 长文本截断必须用
... 并在 hover 提供 tooltip
10.9 性能预期
- LCP < 2.5s(Hero 视频懒加载、poster 先显示)
- CLS < 0.1(所有图片 / 视频留好 aspect-ratio 占位)
- 卡片立绘必须
width / height 属性或 aspect-ratio 防回流
10.10 暗色模式专属规则
- 禁止纯黑 #000:用
#08051A 作为最深色,避免 OLED 屏闪烁感
- 禁止纯白 #FFF 大面积:白文字用,白背景不用
- 阴影改为辉光(box-shadow with color),传统黑色阴影在暗色背景不可见
- 图片 / 视频缩略图加 4% 白色 overlay,避免在暗背景"漂浮"感
11. 内容文案约定
| 场景 |
文案 |
| 投票按钮 |
「投票」(不用 "Vote") |
| 顶部 nav |
「首页」「排行榜」 |
| 标签筛选 |
「全部」「舞蹈担当」「声乐担当」「rap担当」「全能型」(rap 小写、无空格) |
| 排名榜标题 |
<Trophy size={14}/> + 「实时 Top12 出道位」 |
| 倒计时前缀 |
「距离投票结束」 |
| 投票成功 |
「已为 {名字} 投出 {N} 票」 |
| 票数耗尽 |
「今日票数已用完,明天再来吧」 |
| 卡片票数 |
<Heart size={12} fill="currentColor"/> + 「12.6W 票」(W 大写)。禁用心形 emoji |
| 版权 |
「© {当年} CYBER STAR · All Rights Reserved」 |
12. 设计稿与代码 token 映射表(交付辅助)
| Figma 颜色名 |
CSS 变量 |
Tailwind 工具类 |
| Background / Deepest |
var(--color-deepest) |
bg-deepest |
| Background / Card |
var(--color-card) |
bg-card |
| Brand / Purple 500 |
var(--color-purple-500) |
bg-purple-500 text-purple-500 |
| Brand / Purple 300 |
var(--color-purple-300) |
text-purple-300 |
| Border / Subtle |
var(--border-subtle) |
border-white/[0.08] |
| Shadow / Purple Glow |
var(--shadow-purple) |
shadow-purple-glow |
| Gradient / Purple |
var(--grad-purple) |
bg-grad-purple |
设计师交付时直接引用 Tailwind 工具类名,开发可零成本接入。