better-typography

Reviews and fixes CSS typography covering type scales, spacing, wrapping, and OpenType features.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/squidllee/skills --skill better-typography-squidllee
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: better-typography
Source: https://github.com/squidllee/skills/tree/main/better-typography
Command: npx skills add https://github.com/squidllee/skills --skill better-typography-squidllee

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Web interfaces often ship with typography issues that only appear at real content lengths: bad wrapping, orphaned words, synthesized font weights, shifting numbers, and broken heading hierarchy. This Skill provides a systematic review checklist and exact CSS values to make text render, wrap, and behave correctly across a product. ## Core Features & Use Cases - Type system enforcement: Defines semantic type scales, descending heading sizes, role-based line-height and letter-spacing rules, and measure caps of 60-75 characters per line. - Rendering and wrapping fixes: Covers text-wrap balance/pretty, truncation with ellipsis and line-clamp, tabular numbers for changing values, font-metric underlines, and iOS 16px input zoom fixes. - Variable fonts and OpenType guidance: Explains when to use font properties over raw axis/feature tags, how to avoid synthesized faces, and how to enable small caps, superscripts, and stylistic sets. - Use Case: While reviewing a dashboard UI, you notice a price column shifting as values update and a card description clipped awkwardly. This Skill directs you to apply font-variant-numeric: tabular-nums and line-clamp with a tooltip fallback, with Tailwind equivalents from the cheat sheet. ## Quick Start Review the typography in my dashboard page and report any wrapping, hierarchy, or font-loading issues with fixes.

Frequently Asked Questions about better-typography

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix text wrapping and orphaned words in CSS?▼

Use text-wrap: balance on headings to distribute lines evenly and text-wrap: pretty on descriptions to prevent a single short word on the final line. Skip both in long-form text, and add overflow-wrap: break-word where long strings could escape their container.

How do I stop numbers from shifting layout when values change?▼

Apply font-variant-numeric: tabular-nums to any value that updates, such as timers, counters, and prices. Default digits have varying widths, so tabular numbers keep every digit the same width and prevent layout shift.

Should I use font-variation-settings or font-weight for variable fonts?▼

Use the CSS property when one exists: font-weight, font-optical-sizing, and font-variant-numeric keep working when a non-variable fallback font renders. Reserve font-variation-settings and font-feature-settings for custom axes and niche features with no property equivalent.

Why does iOS Safari zoom in when focusing an input?▼

iOS Safari zooms the page when an input's font-size is below 16px, treating smaller text as too hard to read. Fix it by sizing the input to 16px on mobile, or keep font-size at 16px and scale the rendered text down with a CSS transform.

What font format should I use on the web?▼

Use .woff2 on the web for Brotli compression and broad browser support, with .woff only as a fallback for very old browsers. .ttf and .otf are desktop formats without web compression and should be avoided.

What is the ideal line length for body text?▼

Cap long-form text at 60-75 characters per line so the eye can find the next line easily. Any unit works: 65ch measures characters directly, while Tailwind's max-w-xl or max-w-2xl land in range at a 16px body size.