通天路TONGTOP · WAYMARKS

Theme · 主题 token

纸墨立秩序,
路金指方向。

主题不是一套好看的色卡,而是一份变量之间的契约:大面积交给纸与墨,界线负责分区,金色只在「路径、当前状态、主行动」三处开口。以下所有 token 与线上站点 static/headless/headless.css:root 一一对应。

七色品牌色板

三个结构色承担 90% 的面积,路金是唯一的强调色,其余三色只在语义需要时出现。

路纸 Paper#F5F0E6页面底色
内容 Canvas#FFFCF5卡片画布
墨 Ink#19150F正文与主按钮
路金 Waymark#B8792C路径 / 当前 / 主行动
苔 Moss#50634D完成 / 生长
远山 Blue#3C5B73远景 / 元信息
锈红 Risk#A14932风险 / 破坏性
为什么 路纸偏暖、墨近黑褐,两者对比成立「纸墨阅读」的底座;画布比纸更亮半度,卡片便自然浮起。金取矿金而非柠檬黄——够醒目但不刺眼,小面积使用也不廉价。苔/蓝/锈是低饱和的环境色,语义到了才出场,平时不参与竞争注意力。

语义 token 映射

组件只消费语义变量,不直接写死色值;换主题即换一套变量,组件不用改。

语义 token取值(浅色)来源色用在哪里
--background#f5f0e6路纸页面 / 外壳底色,也是 theme-color
--foreground#19150f正文与标题文字
--card#fffcf5内容画布卡片 / 弹层表面
--primary#19150f墨(不是金!)主按钮填充;暗色下为米白
--primary-foreground#fff8e8奶油墨色按钮上的文字
--muted#eee7da亚麻次级表面 / 悬停底
--muted-foreground#5f5548灰墨次级文字、说明
--border / --input#d8cdba界线分隔线、输入框描边——秩序的主要来源
--accent#eee7da亚麻(非金)悬停底色;故意不映射金,避免全站 hover 镀金
--ring#b8792c路金焦点环 = 当前状态,保持金色
--brand-gold / -strong / -soft#b8792c / #845414 / #ead9b9路金三阶路标线 / kicker 文字 / 徽章与当前项底
--brand-moss / -blue / -rust苔 / 远山 / 锈红状态与语义色,组件选择接入
--destructive#a14932锈红破坏性操作;全站只有这一种红
--radius0.75rem介于参考板 r-md 与 r-lg 之间的克制圆角
为什么 --primary 是墨而不是金 若主按钮是金色,每个页面到处都是大块金,路金就退成了普通配色。让按钮保持墨色,金色才能继续指路。同理 --accent 刻意保持亚麻色:导航悬停不该「镀金」,金只留给真正的当前项。
为什么界线如此重要 纸墨是低刺激的组合,靠 --border 的暖色界线与 --muted 的次级表面分区,页面秩序来自这些细界线,而不是重底色——这也是「品牌感来自重复的秩序」在变量层的落地。

圆角与阴影

圆角统一 12px,阴影只求把卡片从纸上轻轻托起,不做浮夸投影。

waymark 9px
r-sm 6px
r-md 10px
r-lg 14px
--radius 0.75rem
--shadow 纸上托起
为什么 12px 圆角卡在 r-md 与 r-lg 之间,既有手工纸感又不卡通;阴影统一走暖墨色(rgb(46 31 12 / 42%))而不是纯黑,投影才像落在纸上。不重绘全站每一个 rounded-*,改动成本与视觉收益成比例。

暗色不是黑金霓虹,
而是夜路上的灯。

暗色主题保留完整的高对比纸墨关系——只是纸换成了夜,墨换成了米白。金色变亮为 #D9AA4E,只照亮当前路标,不给所有卡片描金。

主按钮在夜里是米白(--primary: #f2e8d9),墨字压在上面;若主按钮镀金,夜路就变成霓虹街——那不是通天路。

TOKENS · 夜 夜 / 夜卡 / 米白字 --background #0b0907 · --card #15110d · --foreground #f2e8d9 · --border #3b3021
GOLD · 夜金 金只照亮当前路标 --brand-gold #d9aa4e · --ring #d9aa4e · --brand-gold-soft #2b2114(暗色洗金底)
为什么 苔 / 远山 / 锈红三色在夜色里保持原值(theme-stable),只有结构色与金三阶换挡——变化越少,记忆越稳。焦点环在夜里依然是金:黑暗中更需要看清「你现在在哪里」。