三个词概括 Glean
编辑选过 · 手工挑出来的 · 反 tech-bro。Glean 想感觉像一份周日早晨的报刊副刊:奶油色印刷纸 + 真正的衬线字 + 可以收藏的周刊。
Glean's brand mark
OKLCH 双层 token
原始 token(OKLCH 色阶,主题无关)+ 语义 token(组件消费的公开 API)。Dark mode 只重映射语义层。
Brand · 60-30-10
Surfaces — warm neutrals
Surfaces — ink (dark)
Accents — 10% by weight
Tag category families
Three buckets so the eye scans card metadata by category, not just text.
单 Serif 系统
Serif 承担层级 + 正文。Sans 只为 code 和 label 服务。正文 400 / 标题 500 / label 600。
Display + body — Source Serif 4
Hand-curated · 拾遗
Frank Grießhammer / Adobe's free, variable-width, optical-size serif designed for screen reading at body sizes.
Display + body — LXGW WenKai (CJK)
一份手挑的双语技术刊
霞鹜文楷 · Vince Chen 主导的免费屏幕优化楷体。
Mono — JetBrains Mono
const editor = team.glean("oklch");
The only "sans-style geometry" on the site — code + label tier.
4pt scale + rhythm
8pt 太粗——4pt 才有 12 这一档"两个标准值之间"的过渡空间。
Spacing ruler
Live components
实活渲染。颜色 / 字体 / 间距全部从 token 解出。
Buttons
Tags / Badges
Status pills (admin)
Do / Don't
✓ Glean does
- 用 serif 通吃 — 长读 = 出版物气质
- 头条卡比次条卡更大 + 更密 — 报刊版式
- 每段 section 节奏不同 — open 96 / tight 48 交替
- 所有触摸目标 ≥ 44 × 44
- Tag 用 3 个家族色编码 — 不彩虹
- Dark mode 通过 prefers-color-scheme
✗ Glean does not
- 用 sans-serif 跑正文(Inter / Roboto / Cormorant 都 ban)
- 3 张完全相同大小的卡片排排坐
- 每段 section 同样 48/48 padding
- 触摸目标 < 44px 不打报告
- tag 上 5+ 种颜色(rainbow vomit)
AI slop black list
这些是 AI 生成站点最易识别的指纹。遇到就重写,不要"调整一下"。
border-left: 3px solid red 当作 accent stripebackground-clip: text + gradient = 渐变文字<details>。A11y checklist
| Criterion | Standard | Status |
|---|---|---|
| Body text contrast | WCAG AA 4.5:1 | ✓ Pass |
| Touch target size | WCAG 2.5.5 AAA 44×44 | ✓ Pass |
| Heading hierarchy (no skip) | WCAG 1.3.1 | ✓ Pass |
| Form labels (for/id or wrap) | WCAG 1.3.1 / 3.3.2 | ✓ Pass |
| Skip link to main | WCAG 2.4.1 | ✓ Pass |
| Visible focus indicator | WCAG 2.4.7 | ✓ Pass |
| html lang declaration | WCAG 3.1.1 | ✓ Pass |
| Reduced motion respected | WCAG 2.3.3 | ✓ Pass |