From the margin
Underline once. Never highlighter yellow. Keep the measure under 65 characters.
popular
暖纸上的墨迹,像一本摊开的笔记本。
适合: 阅读产品、笔记、知识库、温和品牌站
不适合: 交易终端、游戏、高密度后台
墨迹笔记
Specimen
---
version: alpha
name: Paper
description: Ink on warm paper — a notebook left open.
colors:
primary: "#8C4A32"
secondary: "#7A6A58"
tertiary: "#C4A574"
background: "#F6F1E8"
surface: "#FFFBF4"
onPrimary: "#F4F4F5"
onSecondary: "#F4F4F5"
onTertiary: "#F4F4F5"
onBackground: "#18181B"
onSurface: "#18181B"
outline: "#E4D8C4"
muted: "#8A7B68"
success: "#3F7A55"
warning: "#B5812F"
error: "#B24A3A"
typography:
h1:
fontFamily: Fraunces
fontSize: 40px
fontWeight: 600
lineHeight: 1.12
letterSpacing: -0.03em
h2:
fontFamily: Fraunces
fontSize: 28px
fontWeight: 600
lineHeight: 1.2
letterSpacing: -0.02em
h3:
fontFamily: Fraunces
fontSize: 20px
fontWeight: 600
lineHeight: 1.3
letterSpacing: -0.01em
body:
fontFamily: Newsreader
fontSize: 16px
fontWeight: 400
lineHeight: 1.55
letterSpacing: 0em
label:
fontFamily: Newsreader
fontSize: 13px
fontWeight: 500
lineHeight: 1.3
letterSpacing: 0.02em
caption:
fontFamily: Newsreader
fontSize: 12px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0em
mono:
fontFamily: JetBrains Mono
fontSize: 13px
fontWeight: 500
lineHeight: 1.45
letterSpacing: 0em
rounded:
sm: 2px
md: 6px
lg: 10px
xl: 16px
full: 999px
spacing:
xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 32px
2xl: 48px
3xl: 64px
components:
navbar:
backgroundColor: "{colors.background}"
textColor: "{colors.onBackground}"
hero:
backgroundColor: "{colors.background}"
textColor: "{colors.onBackground}"
list-item:
backgroundColor: "{colors.surface}"
textColor: "{colors.onSurface}"
height: 44px
card:
backgroundColor: "{colors.surface}"
textColor: "{colors.onSurface}"
rounded: "{rounded.lg}"
padding: "{spacing.lg}"
footer:
backgroundColor: "{colors.background}"
textColor: "{colors.muted}"
---
# Paper
## Overview
暖纸上的墨迹,像一本摊开的笔记本。 整体气质是 日常应用适中、错落不对称、动效 流畅 CSS 动效。品牌语气:warm / quiet / tactile。密度 4/10,变化 5/10,动效 4/10。 材质:暖纸底 + 0.5–1px 墨色细线,阴影带纸色相,禁止纯白卡片浮在彩色底上。
How to use: 把本文件放到仓库根目录。在 Cursor / Claude Code / Codex 提示词中写:请阅读 DESIGN.md 并严格遵守其中的 tokens 与 Do/Don't。
## Colors
Semantic roles for the light theme. Keep a single accent; do not introduce a second brand hue.
- **primary** (`#8C4A32`)
- **secondary** (`#7A6A58`)
- **tertiary** (`#C4A574`)
- **background** (`#F6F1E8`)
- **surface** (`#FFFBF4`)
- **outline** (`#E4D8C4`)
- **muted** (`#8A7B68`)
- **success** (`#3F7A55`)
- **warning** (`#B5812F`)
- **error** (`#B24A3A`)
- **onPrimary** (`#F4F4F5`)
- **onSecondary** (`#F4F4F5`)
- **onTertiary** (`#F4F4F5`)
- **onBackground** (`#18181B`)
- **onSurface** (`#18181B`)
## Typography
Hierarchy comes from weight and size, not from shouting. Body line length stays near 65 characters.
- **h1**: Fraunces 600 / 40px / 1.12 / -0.03em
- **h2**: Fraunces 600 / 28px / 1.2 / -0.02em
- **h3**: Fraunces 600 / 20px / 1.3 / -0.01em
- **body**: Newsreader 400 / 16px / 1.55 / 0em
- **label**: Newsreader 500 / 13px / 1.3 / 0.02em
- **caption**: Newsreader 400 / 12px / 1.4 / 0em
- **mono**: "JetBrains Mono" 500 / 13px / 1.45 / 0em
## Layout
Spacing scale: xs=4px, sm=8px, md=16px, lg=24px, xl=32px, 2xl=48px, 3xl=64px.
iOS:触控目标 ≥ 44pt,尊重 Safe Area 与 Dynamic Type,图标用 SF Symbols,导航使用 Large Title / 分组列表。
Web:移动优先,<768px 单列,正文 ≥ 16px,标题用 clamp(),容器 max-width 约 1120–1400px,全高区块用 min-h-[100dvh]。
Every element occupies its own spatial zone. No overlapping hero text. Collapse multi-column layouts below 768px.
## Elevation & Depth
- sm: `0 1px 0 rgba(92,64,40,0.08)`
- md: `0 10px 30px rgba(92,64,40,0.08)`
- lg: `0 24px 50px rgba(92,64,40,0.12)`
- surface: `paper`
- recipe: 暖纸底 + 0.5–1px 墨色细线,阴影带纸色相,禁止纯白卡片浮在彩色底上。
Tint shadows toward the background hue. High-density layouts may replace cards with hairline dividers.
## Shapes
Radius scale: sm=2px, md=6px, lg=10px, xl=16px, full=999px.
## Components
- **导航栏** (`web.navbar` / default / md): 桌面横导航含 logo、带图标的链接和一个主 CTA。
- **Hero** (`web.hero` / left / lg): Hero 使用 left 布局,最多一个主 CTA,禁止「Scroll to explore」。
- **列表行** (`list-item` / chevron / md): 行高至少 44pt,标题 + 说明,右侧可放 chevron。
- **列表行** (`list-item` / chevron / md): 行高至少 44pt,标题 + 说明,右侧可放 chevron。
- **列表行** (`list-item` / chevron / md): 行高至少 44pt,标题 + 说明,右侧可放 chevron。
- **列表行** (`list-item` / chevron / md): 行高至少 44pt,标题 + 说明,右侧可放 chevron。
- **卡片** (`card` / outline / md): 卡片只在需要层级时使用,阴影带背景色相。
- **页脚** (`web.footer` / default / md): 页脚克制,链接分组清晰。
## Do's and Don'ts
### Do
- Use semantic color tokens, never raw hex in components.
- Keep a single accent; hierarchy comes from type weight and space.
- Define default, hover, focus-visible, pressed, disabled, and loading states.
- Meet WCAG 2.2 AA contrast for body text and interactive labels.
- Touch targets are at least 44×44pt on iOS and 44px on web.
### Don't
- Do not use Inter as the display face for premium work.
- Do not use pure black #000000 for large surfaces.
- Do not add neon outer glows or custom mouse cursors.
- Do not ship three equal feature cards as the default layout.
- Do not hide focus rings or drop below AA contrast.