首页/UI/UX 设计/web-typography
W

web-typography

by @wondelaiv
4.4(25)

为网页项目选择、搭配并实施字体,优化视觉呈现和用户体验。,AI Agent Skill,提升工作效率和自动化能力

web-fontsresponsive-typographycss-typographyreadabilityuser-interface-(ui)GitHub
安装方式
npx skills add wondelai/skills --skill web-typography
compare_arrows

Before / After 效果对比

1
使用前

为网页项目选择、搭配和实现字体时,缺乏专业指导,导致排版混乱,影响用户阅读体验和品牌形象。

使用后

提供专业的网页字体选择、搭配和实现指导,确保排版美观易读,显著提升用户体验和网站视觉效果。

SKILL.md

Web Typography

A practical guide to choosing, pairing, and implementing typefaces for the web. Typography serves communication — the best typography is invisible, immersing readers in content rather than calling attention to itself.

Core Principle

Typography is the voice of your content. The typeface you choose sets tone before a single word is read. A legal site shouldn't feel playful; a children's app shouldn't feel corporate.

The "clear goblet" principle: Typography should be like a crystal-clear wine glass — the focus is on the wine (content), not the glass (type). Readers should absorb meaning, not notice letterforms.

Readers don't read, they scan. Eyes jump 7-9 characters at a time (saccades), pausing briefly (fixations). Good typography supports this natural pattern.

Scoring

Goal: 10/10. When reviewing or creating typography implementations, rate them 0-10 based on adherence to the principles below. A 10/10 means full alignment with all guidelines; lower scores indicate gaps to address. Always provide the current score and specific improvements needed to reach 10/10.

Two Contexts for Type

All typography falls into two categories:

ContextPurposePriorities
Type for a momentHeadlines, buttons, navigation, logosPersonality, impact, distinctiveness
Type to live withBody text, articles, documentationReadability, comfort, endurance

Workhorse typefaces excel at "type to live with" — they're versatile across sizes, weights, and contexts without drawing attention to themselves. Examples: Georgia, Source Sans, Freight Text, FF Meta.

Typography Framework

1. How We Read

Core concept: Understanding reading mechanics is the foundation for every typography decision. Eyes don't scan smoothly — they jump in bursts, and good typography supports this natural pattern.

Why it works: When typography aligns with how the brain processes text — through word shape recognition, consistent rhythm, and clear letterform distinction — readers absorb content faster with less fatigue. Fighting these mechanics creates friction that drives readers away.

Key insights:

  • Saccades — eyes jump in 7-9 character bursts, not smooth scanning. Line length and letter spacing directly affect saccade efficiency
  • Fixation points — eyes pause briefly to absorb content. Dense or poorly spaced text increases fixation duration and slows reading
  • Word shapes (bouma) — experienced readers recognize word silhouettes, not individual letters. Maintaining distinct boumas aids recognition speed
  • Legibility vs. readability — legibility is whether individual characters can be distinguished (a typeface concern); readability is whether text can be comfortably read for extended periods (a typography concern — size, spacing, line length). A typeface can be legible but poorly set, making it unreadable

Product applications:

ContextApplicationExample
Long-form contentOptimize for sustained reading comfort16-18px body text, 1.5-1.7 line height, 45-75 char lines
Dashboard UIOptimize for rapid scanningDistinct weight hierarchy, ample whitespace between data groups
Mobile readingAccount for variable distance and lightingSlightly larger body size (17-18px), higher contrast
DocumentationSupport both scanning and deep readingClear heading hierarchy with generous paragraph spacing
E-commerceEnable quick product comparisonConsistent number formatting, tabular figures
AccessibilitySupport readers with varying abilitiesHigh contrast, generous spacing, distinct letterforms

Copy patterns:

/* Optimal reading rhythm for body text */
.prose {
  font-size: 1.125rem;     /* 18px */
  line-height: 1.6;
  max-width: 65ch;          /* ~45-75 characters */
  letter-spacing: normal;   /* Don't force tracking on body text */
}

Ethical boundary: Typography decisions should always prioritize reader comprehension and comfort over visual novelty. Sacrificing readability for aesthetic effect excludes readers and undermines the content's purpose.

See: references/typeface-anatomy.md for terminology, letterform parts, and classification systems.

2. Evaluating Typefaces

Core concept: A typeface must pass technical, structural, and practical quality checks before it earns a place in a project. Beautiful specimens fail on screen; rigorous evaluation prevents costly mid-project typeface swaps.

Why it works: Screen rendering, variable bandwidth, and diverse devices impose constraints that print never faced. A typeface that passes structural assessment (consistent strokes, open counters, distinct letterforms) and practical assessment (file size, license, rendering) will perform reliably across the full range of real-world conditions.

Key insights:

  • Technical quality — consistent stroke weights, even color (visual density) across text blocks, good kerning pairs (AV, To, Ty), complete character set (accents, punctuation, figures), and multiple weights (at minimum: regular, bold, italic)
  • Structural assessment — adequate x-height (larger = better screen readability), open counters and apertures (a, e, c shapes), distinct letterforms (Il1, O0, rn vs. m), and appropriate contrast (thick/thin stroke variation)
  • Practical needs — works at intended sizes (test at actual use size), renders well on target screens and browsers, acceptable file size for web loading, and appropriate license for the project
  • Real content testing — always test with real content, not Lorem ipsum. Dummy text hides problems with character frequency, word length, and paragraph rhythm

Product applications:

ContextApplicationExample
Body text selectionPrioritize x-height, open counters, even colorSource Serif Pro over Didot for long reads
Headline selectionPrioritize personality and distinctiveness at large sizesPlayfair Display for editorial impact
UI/System textPrioritize legibility at small sizes and weight rangeInter or SF Pro for interface elements
Multilingual productVerify complete glyph coverage for target languagesNoto Sans for broad Unicode support
Performance-critical siteEvaluate file size and subsetting optionsVariable font single file vs. multiple static weights
Brand refreshAssess whether typeface conveys intended personalityCompare specimen at actual use sizes against brand attributes

Copy patterns:

/* Test typeface at actual use sizes */
body { font-size: 16px; }           /* Minimum body size */
.caption { font-size: 0.75rem; }    /* Stress-test small sizes */
h1 { font-size: 3rem; }            /* Check large-size character */

/* Verify rendering with font-smoothing */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

Ethical boundary: Always verify typeface licensing before implementation. Using unlicensed fonts exposes projects to legal risk and undermines the type design community that creates these tools.

See: references/evaluating-typefaces.md for detailed quality assessment criteria and structural analysis.

3. Choosing Typefaces

Core concept: Start with purpose, not aesthetics. The content's tone, reading context, duration, and personality should drive typeface selection — not personal preference or trend following.

Why it works: When typeface selection is grounded in content requirements, the result feels inevitable rather than arbitrary. Purpose-driven choices also survive stakeholder review better because they can be justified with clear reasoning rather than subjective taste.

Key insights:

  • Define the job first — body text, headlines, and UI elements may each need different faces. Clarify the role before browsing specimens
  • Match tone to content — a financial report needs different type than a bakery menu. The typeface should feel like a natural voice for the subject matter
  • Test at actual sizes — a face beautiful at 72px may be illegible at 14px. Always evaluate at the sizes where the typeface will actually be used
  • Check the family — ensure needed weights, italics, and styles exist before committing. Discovering missing weights mid-project forces compromises
  • Safe starting points — for body text, Georgia, Source Serif Pro, Charter (serif) and system fonts, Source Sans Pro, Inter, IBM Plex Sans (sans-serif) reliably work across contexts

Product applications:

ContextApplicationExample
Content-heavy siteSelect a workhorse serif or sans for sustained readingSource Serif Pro or Charter for articles
SaaS dashboardChoose a clean sans with strong tabular figuresInter or IBM Plex Sans for data-rich interfaces
Marketing landing pagePair a distinctive display face with a readable body facePlayfair Display headlines + Source Sans Pro body
Documentation sitePrioritize clarity and weight range for code + proseIBM Plex Mono for code, IBM Plex Sans for prose
Brand-driven productCommission or license a face that embodies brand valuesCustom typeface or carefully chosen match to brand personality
Accessibility-focusedSelect faces designed for maximum legibilityAtkinson Hyperlegible for vision-impaired users

Copy patterns:

/* Safe system font stack */
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',
               Roboto, Oxygen, Ubuntu, sans-serif;
}

/* Reliable web font body stack */
body {
  font-family: 'Source Sans Pro', -apple-system,
               BlinkMacSystemFont, sans-serif;
}

Ethical boundary: Avoid choosing typefaces solely to appear trendy or sophisticated at the expense of readability. Typography that excludes readers with lower vision or reading difficulties in favor of visual style fails its fundamental purpose.

See: references/evaluating-typefaces.md for quality assessment to apply during selection.

4. Pairing Typefaces

Core concept: Successful typeface pairings create clear contrast — faces should be obviously different, not confusingly similar. One to two typefaces maximum; more requires exceptional skill.

Why it works: Contrast between typefaces creates visual hierarchy and rhythm. When two faces are too similar, they create tension without purpose — the reader senses something is "off" without knowing why. Clear structural contrast (serif + sans, light + bold, humanist + geometric) lets each face play a distinct role while coexisting harmoniously.

Key insights:

  • Contrast types — structure (serif + sans), weight (light + regular), era (humanist + geometric), and width (condensed + normal) all create effective contrast
  • Same designer strategy — faces designed by one person often share DNA that harmonizes (e.g., FF Meta + FF Meta Serif)
  • Superfamilies — typeface families designed to work together eliminate guesswork (e.g., Roboto + Roboto Slab)
  • Pairing mistakes — two serifs or two sans faces that look almost alike, both faces trying to be distinctive, mixing renaissance and postmodern without intention, one face overwhelming the other in weight

Product applications:

ContextApplicationExample
Editorial siteSerif headlines + sans body for classic readabilityPlayfair Display + Source Sans Pro
Tech productSuperfamily for guaranteed harmonyRoboto + Roboto Slab
Corporate siteSame-designer pairing for subtle cohesionFF Meta + FF Meta Serif
E-commerceDistinctive display + neutral bodyCondensed headline face + system sans-serif body
DocumentationMonospace code + sans-serif prose from same familyIBM Plex Mono + IBM Plex Sans
Minimal brandSingle family with weight variationInter at varying weights and sizes

Copy patterns:

/* Classic serif + sans-serif pairing */
h1, h2, h3 {
  font-family: 'Playfair Display', Georgia, serif;
}
body {
  font-family: 'Source Sans Pro', -apple-system, sans-serif;
}

/* Superfamily pairing */
h1, h2, h3 {
  font-family: 'Roboto Slab', serif;
}
body {
  font-family: 'Roboto', sans-serif;
}

Ethical boundary: When in doubt, use one family with weight variation rather than forcing a pairing. A mismatched pairing creates cognitive friction that undermines the content, and adding complexity without purpose serves the designer's ego rather than the reader's needs.

See: references/pairing-strategies.md for specific combinations, contrast methods, and proven pairings.

5. Typographic Measurements

Core concept: Three measurements — font size, line length, and line height — form the foundation of comfortable reading. Getting these right matters more than typeface choice.

Why it works: These measurements directly govern how the eye tracks across and down text. Optimal line length (45-75 characters) matches the saccade pattern. Adequate line height (1.4-1.8) prevents the eye from jumping to the wrong line on the return sweep. Sufficient font size (16-18px minimum) ensures letterforms are large enough for comfortable recognition on screen.

Key insights:

  • Body font size — 16px minimum; err larger (18px) for reading-heavy sites. Mobile users hold phones farther than designers assume
  • Line length (measure) — 45-75 characters ideal, 66 characters optimal. Use the ch unit or max-width to enforce. Longer lines need more line height to compensate
  • Line height — 1.4-1.8 for body text. Longer lines need more; shorter lines need less. Headlines need tighter spacing (1.1-1.25)
  • Heading scale — use a consistent ratio (1.2-1.5) between heading levels to establish clear hierarchy without extremes

Product applications:

ContextApplicationExample
Blog / articleEnforce 65ch max-width with 1.6 line height.prose { max-width: 65ch; line-height: 1.6; }
DocumentationSlightly wider measure with increased line heightmax-width: 75ch; line-height: 1.7;
Mobile UILarger body size, auto-constrained measurefont-size: 17px; with viewport-width constraint
DashboardTighter line height for dense data displayline-height: 1.3; for table cells and labels
Landing pageGenerous sizing and spacing for scanabilityfont-size: 1.25rem; line-height: 1.7;
Email templateConstrained width for email client compatibilitymax-width: 600px; with inline sizing

Copy patterns:

/* Optimal body text measurements */
.prose {
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  line-height: 1.6;

...

用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量2.7K
评分4.4 / 5.0
版本
更新日期2026年5月23日
对比案例1 组

用户评分

4.4(25)
5
28%
4
52%
3
20%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

时间线

创建2026年3月16日
最后更新2026年5月23日