跳到主内容

Colophon

这个小站是怎么搭的:字体、配色、技术栈,以及几个我坚持的设计取舍。

技术栈

框架
Next.js 16 · App Router

服务端渲染 + 按需动态路由,文章与分享数据请求时读取。

语言
TypeScript · React 19

全栈 TS,组件与 API 路由统一类型约束。

样式
Tailwind CSS 4

原子化类 + CSS 变量令牌,深浅两套主题共用一套类。

构建
Turbopack

开发与构建统一引擎,冷启动更快。

部署
nginx + PM2 · Node

阿里云单实例,nginx 反代 443/80,PM2 守护 Next 进程。

数据
JSON 文件 + fs

文章、分享、阅读量落在 data/*.json,后台在线编辑即改即生效。

字体

标题
Noto Serif SC

自托管宋体,给文章标题与刊头「测试即方法」一个衬线的重量。

正文
系统无衬线

跟随系统的中文字面,不额外下载,保证长文滚动时的渲染与性能。

代码 / 数据
ui-monospace

等宽字体处理代码块、期号、标签等需要字符对齐的文本。

配色

强调色
#6d5dfc → #8b7cff

克制的单一紫色,只用于交互与关键强调,不铺满。

深色主题
#080a18 底

近乎纯黑的蓝调底色,文字用高对比的冷白。

浅色主题
纸面 #f5f5f5

与深色孪生的一套浅色,字与发丝线逐值对齐。

设计取舍

  • · 单一强调色,宁少勿多;删掉一个元素若页面更高级,就删。
  • · 深浅双主题共用一套 Tailwind 类,靠 CSS 变量逐值对齐,不写两套。
  • · 所有动效受 prefers-reduced-motion 约束,尊重读者的系统设置。
  • · 内容自托管(字体、图片、统计、评论),不依赖第三方运行时。