Home
cd ../playbooks
Developer ToolsIntermediate

Better Web Typography

Web typography engineering as a review discipline, not a style guide — CSS properties over raw variable-font tags, a semantic type scale with descending heading sizes, deliberate text-wrap usage (balance vs. pretty), tabular numbers for changing values, mobile input zoom fixes, and a severity-rated review report format with a concrete common-mistakes table.

5 minutes
By jakubkrehel (skills)Source
#typography#css#web-design#frontend#accessibility#design-review

A heading two levels down that's the same size as its parent, a timer whose digits shift width every second, or a mobile input that triggers iOS Safari's page-zoom — none of these are edge cases, they're the specific, nameable typography mistakes that show up in nearly every unreviewed interface, and each one has a one-line CSS fix.

Who it's for: frontend developers who want typography rules that are specific and checkable instead of vague 'make it look better' feedback, designers and engineers debugging widows, orphans, or bad line-wrapping at real content lengths, teams setting up a semantic type scale for a design system, anyone reviewing a PR for typography issues and wanting a severity-rated report format instead of a scattered comment list

Example

"Review this component for typography issues" → The rendered page checked at real content lengths (not just the code) for wrapping, widows, and truncation, findings grouped by which principle they violate with severity ratings and file:line locations, a before/after CSS fix for each — a heading missing text-wrap: balance, a price display missing tabular-nums, a 14px input missing the mobile zoom fix — and a final Block/Approve verdict based on whether any HIGH-severity issue remains

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

Or install from your terminal:
npx ccplaybooks add better-typography
# Better Typography

Web typography that comes with the craft: type scale, spacing, sizing, variable fonts, OpenType features, wrapping, truncation, and the details that make typography feel great across a product. Typography is mostly restraint — a sensible scale, comfortable spacing, enough contrast. A label, a table cell, a marketing headline, and an article paragraph do not share one set of rules.

When reviewing, read the rendered page instead of scanning the code — bad wrapping, widows, and truncation only show up at real content lengths.

## Serve the Right Format

Use `.woff2` on the web for Brotli compression and broad support. `.woff` is a fallback for very old browsers. `.ttf` and `.otf` are desktop formats with no web compression.

## Properties Over Raw Tags

Get new playbooks like this one

One email a week with new Claude Code workflows. Free, like everything here.

No spam. Unsubscribe anytime.

README.md

What This Does

A dense, checkable reference for web typography — not a style guide of opinions, but a set of specific rules each tied to a concrete CSS property and a nameable failure mode. It covers font loading correctly (real weights instead of browser-synthesized ones, .woff2 over other formats, CSS properties like font-weight: 650 preferred over raw font-variation-settings tags so a non-variable fallback still works), a semantic type scale with heading sizes that descend by level so a child heading can never visually overpower its parent, line-height and letter-spacing rules by content role, and the four text-wrap/overflow-wrap/white-space declarations each doing one specific job — balance for headings, pretty to stop an orphaned word on a description's last line, nowrap for labels that shouldn't break.

It closes with two things that make it more than a reference: a table of twelve specific, common mistakes mapped directly to their fixes (a thin font weight on 14px UI text, leading-none on a three-line card description, justified text in application UI), and a structured review-report format with severity ratings (HIGH blocks, MEDIUM breaks the type system, LOW is polish), an explicit verification method for reviewing with or without a browser, and a rule against approving coverage that wasn't actually inspected. It also scopes itself honestly against neighboring concerns — word choice belongs to a writing skill, semantic heading structure to an accessibility skill, RTL layout to a layout skill, contrast measurement to a color skill — this one owns specifically how text renders, wraps, and behaves.


Quick Start

Step 1: Create a Project Folder

mkdir better-typography && cd better-typography

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ./

Step 3: Review or Fix Typography

claude

Ask Claude to review a component or page for typography issues, or to fix a specific problem — bad wrapping, an inconsistent type scale, a mobile input zoom bug. For a review, it will check the rendered output at real content lengths and produce a severity-rated report with file:line locations and before/after fixes.


Tips & Best Practices

  • Always review typography by looking at the rendered page, not just the code — widows, orphans, and truncation only become visible at real content lengths, and code alone won't reveal them.
  • Apply -webkit-font-smoothing: antialiased once on the root layout, never per-component — a per-component approach produces inconsistent text weight across the page on macOS.
  • When choosing between the two 16px-mobile-input fixes (sizing up the input vs. transform: scale()), ask which visual tradeoff the design actually wants rather than defaulting to one — they look meaningfully different on small screens.

Limitations

  • Deliberately scoped to typography rendering and behavior — word choice, semantic heading structure, RTL/logical-property layout, and contrast measurement are explicitly out of scope and belong to neighboring accessibility, writing, layout, and color skills.
  • The review-report format assumes a codebase where typography lives in inspectable CSS/Tailwind classes; a heavily inline-styled or CSS-in-JS-obfuscated codebase may need more manual tracing to locate each finding's file:line.
  • Recommendations assume a standard web rendering context — a canvas-rendered or WebGL text layer won't benefit from CSS-level fixes like text-wrap or font-variant-numeric.

$Related Playbooks

Developer Tools

Automated PR Code Review

High-signal automated PR review using parallel agents with a validation pass that filters out false positives before anything gets posted.

10 minutes
Advanced
Developer Tools

Auto Repo Setup

Turn Claude Code into an environment doctor that diagnoses, fixes, and verifies a codebase so non-technical teammates can run it without understanding the stack.

10 minutes
Intermediate
Developer Tools

Artifacts Builder

Create elaborate multi-component HTML artifacts using React, Tailwind CSS, and shadcn/ui components with professional bundling.

15 minutes
Advanced
Developer Tools

Claude Code Cost Optimizer

A static audit of a project's Claude Code setup for the handful of well-known token-cost leaks — oversized CLAUDE.md prepended every turn, bloated memory files, never-invoked skills loaded into the index, unscoped subagent fan-out, and the cache-killing hook that silently ~10x's cost — each with a PASS/WARN/FAIL check and a concrete fix, ranked by biggest win per effort.

5 minutes
Beginner
Developer Tools

Cinematic GSAP + Lenis Motion System

Build a connected, premium web motion language with GSAP, ScrollTrigger, and Lenis smooth scroll — a full token system for eases/durations/staggers, Lenis-driven-by-the-GSAP-ticker setup, a reusable data-attribute markup API for text reveals and parallax, and reduced-motion handling built in from the start, not bolted on after.

15 minutes
Advanced
Developer Tools

CEO-Mode Plan Review

Review a technical or product plan the way a great CEO would — pick a mode (expand scope, cherry-pick expansions, hold scope, or cut ruthlessly), then apply nine prime directives and eleven cognitive patterns to catch every silent failure, missing edge case, and unnamed error before it ships.

10 minutes
Advanced
Developer Tools

Claude Code Project Architecture

A setup guide for structuring a Claude Code project's full toolkit — layered CLAUDE.md context, slash commands, sub-agents, skills, hooks, and plugins — each used for what it's actually good at instead of one mechanism for everything.

20 minutes
Intermediate
Developer Tools

Claude Model Migration Assistant

Migrate code and prompts between Claude models — update model strings, remove incompatible beta headers, and adjust prompts only for reported behavioral differences.

5 minutes
Beginner
Developer Tools

Claude Code Plugin Builder

End-to-end guided workflow for building Claude Code plugins — structure, commands, agents, skills, hooks, and MCP integration — with a validation checklist before you distribute.

15 minutes
Advanced
Developer Tools

CLAUDE.md Progressive Disclosurer

Slim down and restructure a bloated CLAUDE.md (or AGENTS.md) using progressive disclosure — move low-frequency detail to Level 2 references while keeping Level 1 lean, with zero information loss.

15 minutes
Intermediate
Developer Tools

Claude Usage Analyst

Analyze Claude Code token usage, cost, quota burn, model mix, and cache read/write using ccusage evidence — and explain in human terms why your quota got exhausted.

10 minutes
Beginner
Developer Tools

CLI Demo Generator

Generate professional animated CLI demos as GIFs using VHS terminal recordings — with self-bootstrapping setup, output filtering, and frame-level verification.

15 minutes
Intermediate

Browse all Developer Tools playbooks →