海浪

设计语言

以 Kami 的纸色、Flexoki 的配色和 Heti 的中文排版为起点,整理成海浪自己的页面语言。

设计原则

色调Color palette

纸色与暖灰构成底色,不用纯白、纯黑或冷灰。

字重Font weight

字号区分层级;只有需要强调时,才增加字重。

留白Whitespace

优先用空间安排内容,分隔线只在必要时出现。

动效Motion

不加阴影,不做位移。交互只用颜色回应。

色彩

同一组颜色适配浅色与深色模式;深色模式随系统设置切换。

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成功

错误、警告与成功各有对应的颜色。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

标题不额外加粗;下划线贯穿整行,让标题与链接保持为一体。

中英文混排时沿用同一套无衬线字形,避免字形和字重忽然跳变。

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

傍晚沿河走回家,路过常去的书店,想起 The Old Ways 里写过的那条路。 A short walk before the rain.

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

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

日期、标题和标签常在中文里穿插英文与数字。细小的字间距由排版自动处理,不必逐处调整。

中文与西文、数字之间增加 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)
  • 页面两侧留白随屏幕宽度变化:16px、24px 或 32px
  • 页头上下留白 32px;标题左对齐,导航右对齐,下方以细线分隔
4px 基准间距
xs4px
sm8px
md16px
lg24px
xl40px
2xl64px
3xl96px
圆角
sm · 4px
md · 8px
lg · 12px

动效与焦点

不使用阴影或位移动效,层级由颜色和留白区分。悬停时颜色过渡 150ms。

平面样式
交互前后保持在同一平面,不使用阴影或位移。
焦点

输入框聚焦时以 cy 标出边框,可用 Tab 键查看下方表单。其他链接、按钮和导航项保留浏览器的焦点提示。

组件

按钮 — 不使用块状按钮

按钮不做成色块。主要操作沿用正文样式,次要操作降低文字对比并使用等宽字体;两者都不加粗、不描边。ink 不用于按钮。

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

下划线与 cy 一起标出当前位置,不加底色,也不加重字重。适用于导航、标签页和筛选器。

链接

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

步进导航

前后内容用文字链接串联,不做成按钮。需要时显示当前位置;到达首尾便不显示不存在的方向。

引用
引文保留斜体,以底色和左侧色条标出,不另加引号。
代码

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

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

图片不加阴影或边框,与正文之间留出距离。插画、贴纸等小图宽度不超过 300px。

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

输入框只留底边框,聚焦时变为 cy,禁用时文字变淡。多选项以边框颜色表示选中状态。 提交结果用颜色区分:gr 表示成功,ye 表示警告,re 表示失败;输入错误也用 re。

空状态
暂无内容

内容为空时,只显示一行居中的浅色文字,不添加多余装饰。

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

中英文文章放在同一列表里,默认显示当前语言的标题。另一语言版本收在日期旁的小标记中,点击即可前往。

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