STYLE GUIDEFOR IMPLEMENTERS · GENSOKYO ZINE
设计系统手册
给实现者的说明书:日夜两套纸色、字体、间距、描边与阴影、组件与状态。所有数值都来自
theme.css 的
light-dark() 变量,组件直接引用即可;
圆角、贴纸与手写体是可爱的地方,规则是让它不散架的地方。
先立规矩,
再贴贴纸。
四个高饱和主色负责记忆点,浅色系负责贴纸底色,纸与墨负责文字与描边。日间与夜间是同一套语义 token,只是 light-dark(日, 夜) 的两端;切换主题只改color-scheme。色块左半为日间、右半为夜间;小字号文字改用加深色(--coral-deep、--ink-soft),保证正文对比度 ≥ 4.5:1。
高饱和主色 4 COLORS MAX
贴纸浅色 TINTS · 大面积底色
纸与墨 PAPER & INK
主题专用 THEME TOKENS
日间文本对比度 DAY · ACCESSIBILITY CHECK
墨 on 纸(正文) 正文 17px / 2.0212.73 : 1
浅墨 on 纸(元信息) 元信息 12px4.98 : 1
深墨 on 主色蓝(主按钮) 按钮文字 15.5px6.97 : 1
深墨 on 珊瑚(贴纸) 贴纸文字 12px5.46 : 1
深珊瑚 on 浅蓝(小字) 章节号 / 周末日期5.02 : 1
纸白 on 墨(反白) 深底标签 / 印章12.73 : 1
夜间文本对比度 NIGHT · ACCESSIBILITY CHECK
月光墨 on 夜色纸(正文) 正文 17px / 2.0213.50 : 1
夜浅墨 on 夜色纸(元信息) 元信息 12px7.40 : 1
深墨 on 主色蓝(主按钮) 按钮文字 15.5px6.97 : 1
深墨 on 珊瑚(贴纸) 贴纸文字 12px5.46 : 1
亮蓝链接 on 夜色纸 正文链接 17px8.74 : 1
月光墨 on 深色淡黄(便签) 便签正文 13.5px10.15 : 1
代码字 on 代码底 代码 13.5px16.09 : 1
※ 珊瑚 #ef6f5e直接配纸白只有 2.9:1,只允许出现在装饰性印章、24px 以上大字或描边里;小字一律换--coral-deep。夜间把墨色反转为月光墨后,所有双值 token 由 light-dark() 自动重算,切换只改color-scheme。
标题一律使用站点自有的 ChillRoundF(只有 400 一个字重,所以不做伪粗:用字号、硬阴影与细描边建立层次);正文使用系统中文黑体(Noto Sans SC / PingFang SC / 微软雅黑按系统可用性回落);拉丁数字用 Baloo 2(OSS 自托管分片);元信息用 Cascadia Mono;手写体 HappyZcool-2016 只做小面积点缀。
Display / Hero--font-title · ChillRoundF
的幻想乡
clamp(2.7rem, 6.1vw, 4.8rem) · line-height 1.1 · letter-spacing 0.03em · 墨色文字 + 蓝色/墨色双层硬阴影 + 0.5px 描边Page titleChillRoundF 400
周报归档
clamp(2rem, 4.2vw, 3.15rem) · line-height 1.22 · 3px 淡蓝硬阴影Section titleChillRoundF 400
最新周报 / 章节目录
clamp(1.35rem, 2.2vw, 1.72rem) · 前接旋转的编号贴纸(01 / 02 / 03)Card titleChillRoundF 400
2026 年第 42 周
clamp(1.05rem, 1.5vw, 1.2rem) · line-height 1.8 · 长标题使用 text-wrap: pretty 防孤字Body系统中文黑体 · 400
周中发现背包上的挂件链子被扯断了,好在挂件本身还算完好,转为收藏了。这周 DS 还崩了 5 小时,不过对我影响不算大。
正文 17px / line-height 2.02;卡片摘要 13.5–15px / 1.95;中文行高 ≥ 1.75,段间距 1.35emMetaCascadia Mono 400
2026.10.12 — 10.18 · WEEK 42 · 约 3 分钟
9–12px · letter-spacing 0.02–0.2em · 日期、周数、页码、英文小标签HandHappyZcool-2016 400
这一周,也好好记下来了。
13–19px · 仅用于便签批注、拍立得签名、章末、页码旁的碎碎念,单屏不超过 3 处Latin displayBaloo 2 800
LOTUSLAND 2026 · W42
英文贴纸、统计数字、年份;只加载 600/700/800 三个字重以 4px 为基准的间距刻度;页面内容最大宽度 1210px,左侧装订条 86px(手机转顶部活页条 54px),纸页内边距 clamp(18px, 3.4vw, 52px),正文阅读宽度 700px,文章整体 970px。
间距刻度 4PX BASE
4px / --sp-1
8px / --sp-2
12px / --sp-3
16px / --sp-4
24px / --sp-6
32px / --sp-8
48px / --sp-12
64px / --sp-16
布局常量 LAYOUT
- 页面最大宽 1210px(.notebook-wrap)
- 装订条 86px;≤960px 变 54px 顶部活页条
- 纸页内边距 clamp(18px, 3.4vw, 52px)
- 正文阅读宽 700px;文章布局 970px
- 卡片圆角 14 / 16 / 20 / 22 / 24 / 28px
- 内容节奏 区块间距 clamp(34px, 4.6vw, 54px)
- 断点 1260 / 1080 / 960 / 820 / 700 / 420px
- 页签 / 胶带 绝对定位,≤1260px 隐藏右侧页签
所有纸片都是 2–3px 墨色描边 + 圆角 + 向外偏移的硬阴影(印刷贴纸感),禁止模糊投影堆叠与玻璃拟态。阴影只分两档:贴纸级 2–4px 实墨,纸片级 4–8px 半透明墨。
圆角 RADIUS
6px10px14px22px28px
描边与阴影 BORDER & HARD SHADOW
2px + 2px2.5px + 3px3px + 4px卡片软影 6×8px
手帐质感零件 TEXTURE PARTS
和纸胶带装订孔图钉印章点阵纸
旋转纪律:纸片 ≤ ±1.5°,小贴纸 / 印章 ≤ ±8°;≤700px 时大卡片旋转归零,只保留小贴纸的轻微倾斜。
所有可交互元素都要有 hover 上浮 + focus-visible 珊瑚虚线描边。按钮最小高度 46px,导航 42px,主题票签 40px,触控目标 ≥ 40px。
BUTTON · 默认 / hover / focus-visible
PILL · 导航 / hover / active
THEME SWITCH · 日 / 自动 / 夜
三档 radio group,与页头开关同步;无 JS / 初始化失败时隐藏。
TAG · 标签与贴纸
同人创作
逆转裁判世界观
连载 5 章
生活
本周记录WEEK 42
动效只负责“贴上去”和“翻一页”的感觉,不负责表演。默认进场 rise-in 0.55s、贴纸 hover 150–250ms、下沉 2–4px;prefers-reduced-motion: reduce时全部动画与过渡降到 0.001ms。
- 进场 rise-in 0.55s ease(卡片错峰 0–0.16s)
- hover transform 150–250ms + 阴影加深 1 档
- 旋转回正 旋转卡片 hover 时 rotate → 0deg
- 滚动 仅 html scroll-behavior: smooth(可被 reduced-motion 关闭)
- 不做 视差、全屏粒子、自动轮播、循环抖动
- 翻页 归档分页使用 :target 纯 CSS 切换,不依赖 JS
- 焦点 3px 珊瑚虚线 + offset 3px(:focus-visible)
- 触控 导航/按钮 ≥ 42px,主要按钮 ≥ 46px,主题票签 40px,触控目标 ≥ 40px
- 对比度 日/夜正文均 ≥ 4.5:1;大标题/装饰印章 ≥ 3:1;珊瑚小字加深
- 主题 三档 radio group(日/自动/夜),方向键可切换;无 JS 时跟随系统并隐藏控件
- 语义 header / nav / main / footer / article / aside + aria-label
- 装饰 SVG 与胶带一律 aria-hidden,不进入无障碍树
- 跳转 首元素为 skip-link,直达 #main
- 缩放 字号用 rem/clamp;390px 下无横向滚动
- 字体 ChillRoundF 仅 400,不用伪粗体;正文回退系统中文黑体
FOCUS-VISIBLE DEMO · Tab 聚焦查看
DO- 高饱和主色 ≤ 4 个,只做填充、描边和贴纸
- 颜色一律走 theme.css 语义 token;双值写 light-dark()
- 深色模式只换 token,不改布局、字号与间距
- 实色主色底上的文字必须用 --on-accent
- 卡片一律 2–3px 墨色描边 + 向外硬阴影;深色阴影用 --shadow-ink
- 旋转只给纸片与贴纸,手机端纸片归零
- 手写体只在便签、签名、章末出现
- 正文行高 ≥ 1.8,中文标点、中英混排留白
- 装饰全部 aria-hidden,交互必须能键盘到达
DON'T- 不要 emoji 当图标、不要满屏贴纸与胶带
- 不要所有卡片都转、不要超过 ±3° 的大面积旋转
- 不要玻璃拟态、模糊阴影、渐变紫白底
- 不要用主色直接写小字(对比度不够)
- 不要在组件里写死 hex / rgba 颜色或 #fff 纸底
- 不要用二元 checkbox 代替三档主题切换
- 不要在卡片里再套一层带描边的卡片
- 不要把 ChillRoundF 伪造成粗体
09页面与实现映射
PAGE & TOKEN MAPPING
这套稿子的每个页面都对应正式站点的真实路由与 Astro 组件;主题 token 定义在 src/styles/theme.css,用light-dark(日, 夜) 描述两端,由html[data-theme] 上的color-scheme 决定生效值。
- HTML 契约 html[data-theme="auto|light|dark"]
- 存储键 lotusland:theme(缺省 / 非法值回落 auto)
- 首屏 head 内联脚本先落 data-theme 与 html 背景,再渲染 body
- 换页 astro:after-swap / astro:page-load 同步 checked 与 meta theme-color
- 无 JS auto + light-dark() 仍跟随系统;切换器因 data-theme-ready 不存在而隐藏
- 动效 用户点击时 220ms View Transition 交叉淡入;系统变化与 reduced-motion 不做动画
| 原型页面 | 正式路由 | 复用组件 |
|---|
| index.html | / | Header / Footer / 周报卡 / 便签列表 / 合集封面 |
| weekly.html | /weekly、/weekly/[year] | 年份切换 / 归档行 / 分页 / 周数印章 |
| article.html | /weekly/[year]/[week] | 文章页眉 / 面包屑 / 正文 / 上一篇-下一篇 / 作者卡 |
| notes.html | /notes、/notes/[page] | 合集条 / 便签卡 / 分页 |
| collection.html | /collections/[slug] | 同人志封面 / 章节目录 / 设定小卡 |
| 404.html | /404 | 404 插画 / 返回入口 |
:root {
color-scheme: light dark;
--paper: light-dark(#fffdf6, #1b2438);
--ink: light-dark(#22314f, #f4efe3);
--blue: #6db0ec;
--coral: #ef6f5e;
--mint: #79cdb4;
--butter: #f7c948;
--on-accent: #16203a;
--shadow-ink: light-dark(#22314f, #080d17);
--code-bg: light-dark(#22314f, #0b1220);
--font-title: "ChillRoundF";
--bd: 3px;
}
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }
:root[data-theme="auto"] { color-scheme: light dark; }※ 本页与 404 为内部页面,不进入主导航;它们与其它页面共用同一套 Header / Footer / 纸页外壳。