skills/typeset/SKILL.md
Improve UI typography by fixing font choices, type scale, hierarchy, weight, and readability so text feels intentional. Use when the user mentions fonts, typography, type scale, readability, text hierarchy, or sizing that feels off.
npx skillsauth add aladicf/better-web-ui typesetInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Assess and improve typography that feels generic, inconsistent, or poorly structured — turning default-looking text into intentional, well-crafted type.
Users start this workflow with /typeset. Once this skill is active, load $frontend-design — it contains design principles, anti-patterns, and the Context Gathering Protocol. Follow that protocol before proceeding — if no design context exists yet, you MUST load $setup first.
Analyze what's weak or generic about the current type:
Font choices:
Hierarchy:
Sizing & scale:
rem scales for app UIs; fluid clamp() for marketing/content page headings)Readability:
Consistency:
CRITICAL: The goal isn't to make text "fancier" — it's to make it clearer, more readable, and more intentional. Good typography is invisible; bad typography is distracting.
Consult the typography reference from the frontend-design skill for detailed guidance on scales, pairing, loading strategies, and font-selection heuristics. Consult the text hierarchy and readability for line length, line-height, alignment, baseline, label/value handling, semantic-vs-visual hierarchy, link emphasis, and numeric alignment. Consult the hierarchy checklist when typography problems are really hierarchy problems in disguise.
Treat the shared text hierarchy/readability reference as the common source for reading comfort and text-structure rules, then apply the typography-specific changes here.
Create a systematic plan:
If fonts need replacing:
font-display: swap, metric-matched fallbacks)Build a clear type scale:
rem-based type scale, optionally adjusted at 1-2 breakpoints. Fluid sizing undermines the spatial predictability that dense, container-based layouts needclamp(min, preferred, max) for headings and display text. Keep body text fixedmax-width on text containers using ch units (max-width: 65ch)tabular-nums for data tables and numbers that should alignletter-spacing: slightly open for small caps and uppercase, default or slightly tighter for large display text--text-body, --text-heading), not value names (--font-16)font-kerning: normal and consider OpenType features where appropriaterem or px as source values for the scale, then prefer rem in implementation to respect user settingsem-based type scales in nested UI — descendants quickly drift off-systemNEVER:
user-scalable=no)em to define your type scale in nested UIpx for font sizes in implementation — use rem to respect user settingsRemember: Typography is the foundation of interface design — it carries the majority of information. Getting it right is the highest-leverage improvement you can make.
development
Build or improve a UI testing strategy covering visual regression, interaction testing, and accessibility assertions. Use when the user asks to add tests, set up testing, fix flaky tests, improve test coverage, validate UI behavior, catch visual bugs, or establish confidence in shipping frontend changes.
development
Design security-conscious interfaces that protect users without frustrating them. Use when the user asks about MFA, password UX, breach notifications, trust indicators, secure forms, account recovery, or making security feel safe rather than scary.
development
Design or improve search experiences, result presentation, and filtering interfaces. Use when the user asks to add search, redesign search results, improve findability, build autocomplete, add filters, or fix zero-results dead ends.
development
Plan, implement, or improve an internationalization and localization strategy for UI content, formatting, and regional adaptation. Use when the user asks to add i18n, localize, translate, support multiple languages, handle regional formats, manage locale switching, or build a multilingual product.