从冷灰到暖褐:一次博客设计系统的进化
为什么我把博客的蓝色换成了琥珀色,把无衬线标题换成了衬线体,以及这些选择背后的设计思考
缘起
每个开发者博客都长一个样。
打开十个用 Next.js + Tailwind 搭建的技术博客,你会看到同样的蓝色强调色,同样的 zinc 灰色调,同样的 Inter 或 Roboto 字体。它们都很"干净",都很"专业",但放在一起,你分不清哪个是谁的。
我的博客也曾经是其中之一。Space Grotesk 标题,DM Sans 正文,#2563EB 蓝色链接,#FAFAFA 灰白背景。标准的"工程师博客"模板。功能上没问题,但它没有性格。
最近我决定改变这一点。不是推倒重来,而是一次有意识的进化。先看看效果:
设计哲学:编辑感 × 工业感
我想让这个博客读起来像一本技术期刊,而不是一个 SaaS 仪表盘。
核心方向是编辑感(Editorial)遇上工业感(Industrial)。编辑感来自出版物的传统:讲究字体层次、留白、阅读节奏。工业感来自工程文化:精确、功能优先、不做多余的装饰。
两者结合,就是:看起来值得慢慢读,用起来不会碍事。
字体系统
这是最大的变化。技术博客几乎全部使用无衬线字体做标题,因为无衬线 = 现代 = 科技。但这个等式太老了。
新方案用 Instrument Serif 做标题,DM Sans 做正文,JetBrains Mono 做代码。三种字体,三个职责,零混淆。
点击下面每一行,查看具体的字体参数:
衬线标题 + 无衬线正文的组合在出版设计中已经被验证了几百年。Instrument Serif 锐利、克制、有当代感,不像 Times New Roman 那样学术气。它传达的信息是:"这里的文字值得仔细读。"
正文行高从 1.625 提升到 1.75,给阅读更多呼吸空间。标题使用 font-weight: 400(常规粗细),衬线体在常规粗细下最优雅。
色彩系统
原来用的是 Tailwind 的 zinc 色阶(偏冷)+ blue-600 强调色。新方案换成了 stone 色阶(偏暖)+ amber-700 琥珀色。
点击下面的色块查看完整的调色板:
单独看每对新旧颜色,差异几乎看不出来。但整体搭配起来,整个页面从"冷屏幕"变成了"暖纸张"。
色彩设计的微妙之处不在于某一个颜色好不好看,而在于所有颜色是否讲同一个故事。#FAF9F6 暖奶白背景 + #1C1917 石墨黑文字 + #B45309 琥珀强调 + #E7E5E4 暖石边框,它们都在说同一句话:温暖、克制、值得停留。
为什么告别蓝色?
#2563EB,Tailwind 的 blue-600,可能是全世界用得最多的强调色。每个 SaaS 产品都用它。它安全、可靠、无趣。
新的强调色 #B45309 是一个深琥珀/赭色。这个选择有风险,琥珀色不像蓝色那样"科技感"。但这正是重点:这是一个个人博客,不是一个企业产品。 它应该有自己的声音。
语义色保持了行业惯例:绿色成功、黄色警告、红色错误、蓝色信息。这些不需要个性化,它们的工作就是在零认知负担下传递状态。
阴影与圆角
阴影从纯黑 rgba(0,0,0,x) 改成了暖色调 rgba(28,25,23,x),和整体暖色系统保持一致。圆角从 4px(标签)到 9999px(头像)分四个层级。glow 效果也从蓝色光晕换成了琥珀色光晕。
试试切换不同的阴影和圆角级别:
暗色模式
暗色模式不是简单地反转颜色。Stone 灰色调在暗色下保持了温暖感:背景 #1C1917(stone-900),卡片 #292524(stone-800),边框 #44403C(stone-700)。琥珀色提亮到 #D97706(amber-600),确保对比度。
试试点击页面右上角的主题切换按钮,上面所有的交互组件都会跟着切换。
技术实现
整个改动涉及 25+ 个文件:
tailwind.config.js:更新色彩令牌、字体族、阴影globals.css:更新 CSS 自定义属性、Google Fonts URLlayout.tsx:移除了未使用的 Inter 字体导入(节省约 20-30KB)- 20+ 组件文件:批量替换
zinc→stone、gray→stone、blue→amber
构建零错误。所有改动都是纯视觉的,不影响功能逻辑。
结语
设计系统不是一组颜色和字体。它是一套关于"这个产品想要成为什么"的回答。
冷灰 + 蓝色 + 无衬线说的是:"我是一个专业工具。" 暖石 + 琥珀 + 衬线说的是:"我是一个值得停留的地方。"
两种回答都没有错。但对于一个个人博客来说,我更想让来访者感觉:这里有人在认真写东西,值得花时间读。
这就是为什么一个 #FAF9F6 比 #FAFAFA 重要。差别只在最后两位 hex,但它改变了整个故事。