海浪

设计语言

参考 Kami 的纸色、Flexoki 色板与 Heti 中文排版,是「海浪」全站统一遵循的设计标准。

设计原则

克制的温度Restrained warmth

纸色代替纯白纯黑,不用冷灰。

字重立秩序Weight for hierarchy

字重只有 400 和 600 两级,600 只用于字号不足以区分层级的小标题。

留白即呼吸Whitespace as breath

4px 基准间距,靠留白分层级,少用分割线。

克制的光Minimal light

零阴影、零位移,只有 150ms 颜色过渡。

色彩

中性色阶浅色 / 深色并列展示。深色模式跟随系统设置,不提供站内切换。

TokenLightDark用途
bg
#F7F5EE
#100F0F
页面画布(主背景)
bg-2
#FAF9F3
#1C1B1A
象牙面(卡片 / 提升层)
ui
#E6E4D9
#282726
沙面(引用块 / 代码块 / 表头)
ui-2
#DAD8CE
#343331
次级分隔 / 边框
ui-3
#CECDC3
#403E3C
弱分隔线
tx-3
#B7B5AC
#575653
禁用 / 极弱文本
tx-2
#6F6E69
#878580
次要文本 / 分割线(复用)
tx
#100F0F
#CECDC3
正文主文本
ink
#1B365D / #7EA0D6

站内唯一的品牌色,只用于站标或极少数强调,面积不超过页面的 5%。 功能链接和交互仍用 cy

扩展色板 分类标签 / 代码高亮预留

re
or
ye
gr
cy
bl
pu
ma

状态色

re消极 / 错误
ye警示 / 中间态
gr积极 / 成功

re / ye / gr 的含义固定,不随场景改变。cy 专用于交互(链接、当前选中项),不承担状态反馈, 避免和可点击元素混淆。

字体

站标 · font-cjk-serif · weight 600 · 唯一用衬线的地方
海浪 Aa

全站唯一使用衬线的位置。站标固定为「海浪」两字,不参与中英文混排。

内容标题 · font-cjk-sans · 大标题 400 / 小标题 600
静谧之地 Aa
正文小标题 Aa

文章大标题 32px,独占页面顶部,由字号和留白区分层级,字重 400。 正文中的小标题字号接近正文,最小一级小于正文,字重 600。

其余一律 400:列表标题、卡片、表头、按钮、标签,由字号、颜色和留白区分。 层级不通过更换字体实现。

列表标题 · font-cjk-sans · weight 400
使用 Home manager 管理 Workspace

列表中重复出现的标题不加粗,由下划线标识「标题 / 链接」。

这类标题常见中英文混排(Home manager、NixOS、AI),无衬线中文字体自带配套西文字形, 混排时字重与字面一致,因此一律用无衬线。

body / sans · font-cjk-sans · weight 400

这段文字用于演示中文排版。标题与正文统一使用无衬线字体,由字重区分层级—— This paragraph mixes Chinese and English to demonstrate optical spacing and justification in the browser.

正文用无衬线中文字体,行高 1.8,单行宽度不超过 42em。

mono · font-mono · 标签 / 日期 / 代码
#设计 · 2026-09-05 · const base = 4
中西文混排

列表标题、日期、标签常混排中文、英文和数字(例如 2026年4月5日、梦 No.12),字符之间需要间距。

中文与西文 / 数字之间留 0.25em 间距,全站自动应用,不逐处手调字距。

等宽字体用于标签与日期,需包含可用的中文字形,中西文不来自两套质感不同的字体。

链接下划线画在整个行内盒子下方,不被混排间距截断。

字号阶梯
text-xs海浪 Aa
text-sm海浪 Aa
text-base海浪 Aa
text-lg海浪 Aa
text-xl海浪 Aa
text-2xl海浪 Aa
text-3xl海浪 Aa
text-4xl海浪 Aa

布局与间距

布局
42em · 单栏 · 居中 · 无侧边栏
  • 内容宽度 42em(约 672px),所有页面统一
  • 页面左右边距 16 / 24 / 32px,随视口宽度分三级
  • 页头上下留白 32px,一条分隔线,标题居左,导航居右
4px 基准间距
xs4px
sm8px
md16px
lg24px
xl40px
2xl64px
3xl96px
圆角
sm · 4px
md · 8px
lg · 12px

光与动效

没有阴影 token,也没有位移类动效,层级由色块深浅和留白区分。悬浮态为 150ms 颜色过渡。

flat(唯一状态)
静止、悬浮、点击为同一平面,不升起,不投影。
焦点

可编辑元素(输入框)的焦点由边框变为交互色(cy)表达,替换默认轮廓;「表单」一节的输入框可以用键盘 Tab 到,看到实际效果。 其余可交互元素(链接、按钮、导航项)保留浏览器默认的焦点轮廓,不做覆盖。

组件

按钮 — 站内没有块状按钮

按钮不填色、不描边、不加粗,由颜色和字体分两级。ink 不用于按钮。

选中态
选项 A选项 B选项 C

在一组同级选项中标识当前项:下划线 + 交互色(cy),不改变字重或背景。 用于导航、标签页、筛选器一类"这是我现在所在的位置"的场景。

链接

正文链接的标准样式是下划线 + 悬停变色,不做其他变体。

步进导航

用于线性浏览一组有序内容:纯文字链接,不做按钮外观;位置计数可选,两端内容不对等时可省略。

引用
摘录原文时使用:斜体,由底色和左侧色条区分,不加引号。
代码

行内代码如 const base = 4,不加边框。

function contrast(bg, tx) {
  return luminance(tx) / luminance(bg)
}
图片
示例图片

无阴影、无边框,与正文之间只留上下间距。行内小图(如插画、贴纸)限制最大宽度 300px,避免撑满整行。

表单
提交成功已经提交过提交失败

输入框无边框、无底色,仅底部一条分隔线;聚焦变 cy,禁用变 tx-3。多选项用同一套边框按钮,选中态填边框色。 提交结果用状态色的文字提示:成功 gr,需留意 ye,失败 re——与输入框校验错误共用 re。

空状态
暂无内容

集合为空时的占位:单行文字,弱化色(tx-3),居中,不加边框、背景或图标。

列表条目 · 双语徽章
2026年9月5日EN

列表统一后不再按语言分区:条目默认展示"当前站点语言"对应的标题,另一语言版本以日期旁的小徽章(如 EN / 中)呈现,点击直达该语言的详情页。

表格
Token用途
cy链接 / 交互态
ink品牌强调(稀有)