跳转到主要内容

博物志的设计说明书

· 约 7 分钟

最近更新于

Overview(概述)

本文采用 Apple Human Interface Guidelines (HIG) 1 的分类方式组织,从基础到具体:Foundations → Patterns → Components。设计元素的取舍受《写给大家看的设计书》2 启发,展示方式参考了 awesome-design-md 3 项目,机器可读的 DESIGN.md 原文可通过 /design.md 访问(很奇妙吧,加个 .md 就可以了)。

HIG 原则博客体现
Clarity(清晰)内容优先,UI 元素用途一目了然,无装饰性复杂度
Consistency(一致)统一的 token 系统,相同组件在不同页面使用相同样式
Deference(克制)克制的 hover 效果,动效保持最小化,UI 不干扰阅读

Foundations(基础)

Color(色彩)

配色只有两点是我认为重要的:

  1. Obsidian Shiba Inu 主题 4: 我在用的一个主题,最开始就是让 Claude 模仿其中的配色,不过后面逐渐走偏,变成了当前的风格。
  2. #FB8F68: 这个颜色源于《宝石之国》的一个角色莲花刚玉 5,我心目中的偶像。尽可能地,我希望用这个颜色来代表我,所以一般我认为需要强调的重要的,我都会用这个颜色。

切换页面主题可查看深色 / 浅色效果。(然后你会发现强调色都是 #FB8F68 😂)

Background

Page Primary page background
Surface Card / panel
Muted Secondary background

Text

Primary Headings, emphasis
Secondary Body text
Muted Captions, metadata

Accent

Accent Primary accent (Padparadscha)
Deep Accent Links, hover states
Accent Tint Subtle highlights

Border & Semantic

Border Dividers, card edges
Success Positive states
Warning Caution states
Danger Error states
Note Info callouts

Typography(排版)

基础字号 17px,符合 Apple HIG 推荐的移动端阅读标准。标题行高 1.22(紧凑),正文行高 1.75(宽松,适合长时间阅读),中文字距 0.01em。

中英文统一使用 open 粉圓 6jf-openhuninn-2.0),来自台湾字型团队 justfont 的开源字体。第一次知道 justfont 是通过一期播客 7,后来挑选字体时发现他们有开源的粉圓體,圆润温暖的笔画很契合博客的调性,就用上了。

博物志 Bokushi

H1 — 36px / 700 / 1.22

设计基础 Design Foundations

H2 — 30px / 800 / 1.22 / -0.02em

色彩系统 Color System

H3 — 24px / 700 / 1.22 / -0.01em

浅色主题 Light Theme

H4 — 20px / 700 / 1.22

正文排版服务于长时间阅读,行高宽松,字距微调。The quick brown fox jumps over the lazy dog. 粉圓體赋予页面温暖手写感。

Body — 17px / 400 / 1.75 — jf-openhuninn-2.0

图片说明、脚注和次要信息

Small — 15px / 400 / 1.65

标签 · 日期 · 元数据

Caption — 13px / 400 / 1.75

const design = await vibe.coding()

Code — 11px / 500 — Fira Code

在正文中,粗体会以强调色渲染,而非普通的黑色加粗。这是一个有意为之的设计选择,用于视觉强调。

Dark Mode(深色模式)

正文行长控制在一行 60-80 个字符左右,避免阅读时视线来回跳太远。其余间距和圆角没什么特别的,看页面就能感受到。

深色模式采用三态循环切换:system → light → dark → system,状态保存在 localStorage,页面加载时提前注入避免闪烁。保持暖色调基底(夜棕 #140e0b 而非冷黑),阴影更厚重以在深色背景上保持深度感知。

Patterns(模式)

Content Architecture(内容架构)

站点包含三种内容类型:长文(blog)、月记(monthly)、TIL(til),三者共享统一的 frontmatter schema、排版样式和标签索引系统。

首页

文章索引 /blog

文章页 /[slug]

目录

灯箱

评论

动态 /channel

帖子卡片

链接预览

回复引用

漫画表情包 /mangashots

标签索引 /tags

动态内容方面,Telegram 频道(/channel)采用 SSR 渲染 + 5 分钟缓存,双栏布局,支持链接预览、回复引用和长帖自动折叠。漫画表情包(/mangashots)使用无限滚动 + Cloudflare D1 存储。

Interaction(交互)

桌面端使用固定顶部导航栏,移动端切换为抽屉式导航。所有模态场景(灯箱、抽屉、目录)共享统一行为:ESC 或点击遮罩关闭、打开时锁定滚动、关闭后焦点回到触发元素。

主题切换采用三态循环按钮,点击依次切换 system → light → dark:

Components(组件)

Cards(卡片)

卡片是最常用的容器组件,提供 5 种变体。Hover 效果仅限边框颜色变化,不使用 translateY 上浮——保持视觉克制。

Default

.surface-card

White bg, soft border, soft shadow

Soft

.surface-card--soft

No shadow, muted bg blend

Flat

.surface-card--flat

No shadow, subtle border

Compact

.surface-card--compact

Smaller radius (md)

Hover: border

.surface-card--hover-border

Hover to see border change

Buttons(按钮)

博客只使用图标按钮(.icon-btn),不含文字。所有尺寸满足 44px 最小触控目标,hover 时文字颜色变为 accent,无位移或缩放。

XS round SM round bordered MD square MD square bordered

Pills & Tags(标签)

.pill 组件用于文章标签和过滤器,背景使用强调色的淡化版本,hover 时背景加深、边框显现。

Default pill Accent pill Clickable pill Accent clickable

Shadow & Elevation(阴影与层级)

深色模式下阴影透明度更高(更「厚重」),因为深色背景需要更强的阴影才能感知到深度。

--shadow-soft Cards, tables, images
--shadow-strong Unused (reserved)
--shadow-lightbox Lightbox overlay
--shadow-button-hover Button hover glow

Border Radius(圆角)

--radius-xs 2px
--radius-sm 6px
--radius-md 10px
--radius-lg 16px
--radius-full 9999px

Spacing(间距)

--space-1
0.25rem (4px)
--space-2
0.5rem (8px)
--space-3
0.75rem (12px)
--space-4
1rem (16px)
--space-5
1.25rem (20px)
--space-6
1.5rem (24px)
--space-8
2rem (32px)
--space-12
3rem (48px)

Spoiler(剧透遮罩)

点击黑色区域揭示隐藏内容,用于剧透或彩蛋:

Lightbox(灯箱)

点击图片可打开灯箱预览,支持键盘 ← → 切换、ESC 关闭。更多表情包见 /mangashots

这可不好说。—— 魔法少女挑错了啊!我拒绝 —— 硬汉⇔萝莉妈妈快看 有人类啊!—— 硬汉⇔萝莉好像有种莫名其妙的感觉呢 —— 逃不出章鱼酱的手掌心太好了 嗷嗷啊啊啊 —— 魔族女幹部溺愛年幼勇者机会难得 我们去吃寿司吧!—— 脑洞学生会你真厉害! —— 为美好的世界献上祝福我们再玩一次 cosplay 吧!—— 硬汉⇔萝莉要各奔东西了 —— 超人X

Music Player(音乐播放器)

内嵌播放器组件,支持网易云音乐,黑胶唱片旋转动画。这首来自 VA-11 Hall-A 的赛博酒吧:

Loading...

Guidelines(设计原则)

Do:

  • 所有颜色使用 CSS 变量,不硬编码 hex
  • 使用语义化 Tailwind token(text-secondarybg-surface
  • Hover 效果仅限颜色/边框变化
  • <strong> 用强调色渲染
  • 尊重 prefers-reduced-motion

Don’t:

  • 不要在 hover 时使用 translateY 位移动画
  • 不要新增阴影层级——只用 shadow-softshadow-strong
  • 不要引入新字体或更改 17px 基础字号
  • 不要绕过三态主题切换(system/light/dark)

所有文字配色满足 WCAG AA 标准 8(4.5:1+),可交互元素满足 Apple HIG 1 44x44pt 最小触控目标。键盘导航支持 ESC 关闭对话框、← → 切换灯箱图片、Tab 循环焦点。检测到 prefers-reduced-motion 时禁用所有动画。

References(参考资料)

Footnotes

  1. Apple Human Interface Guidelines - Apple 官方设计规范,涵盖 Clarity、Consistency、Deference 三大原则以及色彩、排版、无障碍等全部设计领域。本文的章节结构(Foundations → Patterns → Components)直接参考了 HIG 的组织方式。 2

  2. 写给大家看的设计书(第4版) - 亲密性、对齐、对比、重复。对于完全没有设计感的人来说,具象化了这四个名词,让跟 AI 聊博客设计的时候方便了不少。

  3. awesome-design-md - 从知名网站提取设计系统的开源项目,提供标准化的 DESIGN.md 格式和可视化预览。本文的组件展示方式受其启发。

  4. Obsidian Shiba Inu 主题 - 一款暖色调 Obsidian 主题,开源可自行安装体验。

  5. 莲花刚玉 | 萌娘百科 - 《宝石之国》中的角色,博客强调色 #FB8F68 的灵感来源。

  6. open 粉圓 | justfont - justfont 的开源圆体字体,可免费下载使用。

  7. 帶你認識「字型設計師」!ft. justfont | YouTube - 好客室播客第 83 期,聊台湾字体设计师的工作日常。

  8. WCAG 2.1 Understanding Docs - W3C 的无障碍标准解读文档,逐条解释每个成功准则的含义和达标方法。博客的对比度(4.5:1+)和触控目标(44px)等要求均来源于此。

评论

链接已复制