→ Consult typography reference for OpenType features, web font loading, and the deeper material on scales.
Choose fonts that are beautiful, unique, and interesting. Pair a distinctive display font with a refined body font.
<typography_principles>
Always apply these — do not consult a reference, just do them:
- Use a modular type scale with fluid sizing (clamp) for headings on marketing/content pages. Use fixed scales for app UIs and dashboards (no major design system uses fluid type in product UI).
- Use fewer sizes with more contrast. A 5-step scale with at least a 1.25 ratio between steps creates clearer hierarchy than 8 sizes that are 1.1× apart.
- Line-height scales inversely with line length. Narrow columns want tighter leading, wide columns want more. For light text on dark backgrounds, ADD 0.05-0.1 to your normal line-height — light type reads as lighter weight and needs more breathing room.
- Cap line length at ~65-75ch. Body text wider than that is fatiguing.
</typography_principles>
<font_selection_procedure>
DO THIS BEFORE TYPING ANY FONT NAME.
The model's natural failure mode is "I was told not to use Inter, so I will pick my next favorite font, which becomes the new monoculture." Avoid this by performing the following procedure on every project, in order:
Step 1. Read the brief once. Write down 3 concrete words for the brand voice (e.g., "warm and mechanical and opinionated", "calm and clinical and careful", "fast and dense and unimpressed", "handmade and a little weird"). NOT "modern" or "elegant" — those are dead categories.
Step 2. List the 3 fonts you would normally reach for given those words. Write them down. They are most likely from this list:
<reflex_fonts_to_reject>
Fraunces
Newsreader
Lora
Crimson
Crimson Pro
Crimson Text
Playfair Display
Cormorant
Cormorant Garamond
Syne
IBM Plex Mono
IBM Plex Sans
IBM Plex Serif
Space Mono
Space Grotesk
Inter
DM Sans
DM Serif Display
DM Serif Text
Outfit
Plus Jakarta Sans
Instrument Sans
Instrument Serif
</reflex_fonts_to_reject>
Reject every font that appears in the reflex_fonts_to_reject list. They are your training-data defaults and they create monoculture across projects. Syne in particular is the most overused "distinctive" display font and is an instant AI design tell. Never use it.
Step 3. Browse a font catalog with the 3 brand words in mind. Sources: Google Fonts, Pangram Pangram, Future Fonts, Adobe Fonts, ABC Dinamo, Klim Type Foundry, Velvetyne. Look for something that fits the brand as a physical object — a museum exhibit caption, a hand-painted shop sign, a 1970s mainframe terminal manual, a fabric label on the inside of a coat, a children's book printed on cheap newsprint. Reject the first thing that "looks designy" — that's the trained reflex too. Keep looking.
Step 4. Cross-check the result. The right font for an "elegant" brief is NOT necessarily a serif. The right font for a "technical" brief is NOT necessarily a sans-serif. The right font for a "warm" brief is NOT Fraunces. If your final pick lines up with your reflex pattern, go back to Step 3.
</font_selection_procedure>
<typography_rules>
DO use a modular type scale with fluid sizing (clamp) on headings.
DO vary font weights and sizes to create clear visual hierarchy.
DO vary your font choices across projects. If you used a serif display font on the last project, look for a sans, monospace, or display face on this one.
DO NOT use overused fonts like Inter, Roboto, Arial, Open Sans, or system defaults — but also do not simply switch to your second-favorite. Every font in the reflex_fonts_to_reject list above is banned. Look further.
DO NOT use Syne. Ever. It is an instant AI design tell.
DO NOT use monospace typography as lazy shorthand for "technical/developer" vibes.
DO NOT put large icons with rounded corners above every heading. They rarely add value and make sites look templated.
DO NOT use only one font family for the entire page. Pair a distinctive display font with a refined body font.
DO NOT use a flat type hierarchy where sizes are too close together. Aim for at least a 1.25 ratio between steps.
DO NOT set long body passages in uppercase. Reserve all-caps for short labels and headings.
</typography_rules>
→ 参考「排版参考」了解OpenType特性、Web字体加载以及字号体系的深度内容。
选择美观、独特、有辨识度的字体,将有特色的展示字体和精致的正文字体搭配使用。
<typography_principles>
请始终遵循以下规则,无需查阅参考,直接执行:
- 营销/内容页面的标题使用带流式尺寸的模块化字号体系,应用UI和仪表盘使用固定字号体系(没有主流设计系统会在产品UI中使用流式字号)。
- 使用更少的字号、更大的对比度。步长比例至少1.25的5阶字号体系,比步长1.1倍的8阶字号体系层级更清晰。
- 行高和行宽成反比:窄列使用更小的行高,宽列使用更大的行高。深色背景上的浅色文字,需要在常规行高基础上增加0.05-0.1——浅色文字视觉上更轻,需要更多的留白空间。
- 行宽上限控制在~65-75ch,超过这个宽度的正文会增加阅读疲劳。
</typography_principles>
<font_selection_procedure>
在输入任何字体名称前请先执行以下流程:
模型的固有缺陷是「既然不让用Inter,我就选我第二喜欢的字体,最后还是会造成新的同质化」。请在每个项目中按顺序执行以下流程规避该问题:
步骤1:通读需求说明,写下3个描述品牌调性的具象词汇(例如「温暖、机械、有主见」、「冷静、严谨、细致」、「高效、密集、克制」、「手工、有点怪」),不要用「现代」、「优雅」这类空泛的词汇。
步骤2:列出看到这些词汇后你第一反应会使用的3个字体,这些字体大概率来自以下列表:
<reflex_fonts_to_reject>
Fraunces
Newsreader
Lora
Crimson
Crimson Pro
Crimson Text
Playfair Display
Cormorant
Cormorant Garamond
Syne
IBM Plex Mono
IBM Plex Sans
IBM Plex Serif
Space Mono
Space Grotesk
Inter
DM Sans
DM Serif Display
DM Serif Text
Outfit
Plus Jakarta Sans
Instrument Sans
Instrument Serif
</reflex_fonts_to_reject>
拒绝所有出现在上述列表中的字体,它们是训练数据带来的默认选择,会导致不同项目的设计同质化。尤其是Syne,它是目前被滥用最多的「有特色」展示字体,是AI设计的典型标志,绝对不要使用。
步骤3:结合你写下的3个品牌调性词汇浏览字体库,可选来源:Google Fonts、Pangram Pangram、Future Fonts、Adobe Fonts、ABC Dinamo、Klim Type Foundry、Velvetyne。寻找和品牌「实体质感」匹配的字体——比如博物馆展览说明、手绘店铺招牌、1970年代大型机终端手册、大衣内侧的面料标签、印在廉价新闻纸上的儿童读物。不要选第一个看起来「很有设计感」的字体,那也是训练出来的条件反射,继续往下找。
步骤4:交叉验证结果。「优雅」需求对应的字体不一定是衬线字体,「技术感」需求对应的字体不一定是无衬线字体,「温暖」需求对应的字体绝对不是Fraunces。如果你最终选的字体符合你的惯性选择,回到步骤3重新挑选。
</font_selection_procedure>
<typography_rules>
✅ 标题使用带
流式尺寸的模块化字号体系
✅ 调整字体字重和尺寸构建清晰的视觉层级
✅ 不同项目使用不同的字体搭配,如果上一个项目用了衬线展示字体,这个项目可以尝试无衬线、等宽或者其他展示字体
❌ 不要使用Inter、Roboto、Arial、Open Sans这类被滥用的字体,也不要直接换成你的第二偏好字体,所有上面reflex_fonts_to_reject列表里的字体都禁止使用,寻找更多小众选项
❌ 绝对不要使用Syne,它是AI设计的典型标志
❌ 不要用等宽字体作为「技术/开发者」风格的偷懒标签
❌ 不要在每个标题上方放大尺寸圆角图标,几乎没有价值,还会让网站看起来像模板生成的
❌ 不要整个页面只使用一种字体系列,搭配有特色的展示字体和精致的正文字体
❌ 不要使用层级扁平的字号体系,步长比例至少要达到1.25
❌ 不要把长段正文设置为全大写,全大写仅用于短标签和标题
</typography_rules>