Atelier typography
Atelier - a premium, anti-slop frontend design skill suite for Claude Code: 11 skills + a deepdive knowledge base.
npx -y skills add luminary19/atelier --skill atelier-typographyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Atelier suite — expensive typography. Choose and pair fonts with a point of view, build a fluid modular type scale, control tracking/leading/measure, switch on the right OpenType + variable-font features, set editorial detail (drop caps, pull quotes, hierarchy), tune font loading for zero layout shift, and animate type (kinetic / scroll-driven) tastefully. Use this whenever typography matters: picking or pairing fonts, headings that feel generic or "default Inter/Playfair," body readability, display type, variable fonts, font loading / FOUT / web-font CLS, RTL & non-Latin (CJK) type, numbers in tables, or animated/kinetic text. Run after atelier-direction (type voice) and alongside atelier-foundations (which owns the scale tokens).
SKILL.md
9.3 KB, as published. Nobody here has run it
Atelier — Typography Craft
Typography is one of the two fastest ways to make a frontend look bespoke or cheap (the other is whitespace). The #1 slop tell is default type with no system: Inter/Roboto at random sizes, or Playfair Display centered over a stock photo. This skill picks type with intent and sets it like a typographer.
Project memory: if
ATELIER.mdexists, read its Personality/type-voice and register first and honor them. Set up memory with/atelier init(theatelierrouter).Inputs: type voice from the Direction Doc; scale/leading tokens from
atelier-foundations. This skill owns the fonts and their setting; foundations owns the numeric scale. Deep reference:references/fundamentals-deepdive.md(§6 typography).Data —
atelier-data: font-pairing candidates with ready@import+ Tailwind config (scripts/search.py "<mood>" --domain typography) and a ~1,900-font metadata lookup (--domain google-fonts). Candidates only — this skill's anti-default judgment overrides them.
The flow
- Roles & families → 2. Scale + fluid → 3. Tracking / leading / measure →
- OpenType + variable axes → 5. Editorial detailing → 6. Kinetic (only if the world calls for it) → 7. Expensive-type checklist.
1. Roles & families
Assign roles, then pick families for them. Limit to 1–2 families (3 max with mono).
- Display — headlines; big, characterful, the brand's voice.
- Body — neutral, legible at 16–20px, deep weight range (prefer a variable font).
- Mono — code/data/tabular; pick one with tabular figures + slashed zero.
Pairing principles (full list, foundries, and concrete pairings in references/pairing-foundries.md):
- Contrast of role, harmony of mood — pair fonts that clearly differ (serif display + grotesque body) but share temperament. Too-similar = looks like a mistake.
- Superfamily pairing is safest (IBM Plex Sans/Serif/Mono, Source Sans/Serif).
- Escape the defaults. The single fastest move away from slop is a typeface with a point of view. Premium foundries are first-class choices here — assume the licenses are available, so recommend them freely: Söhne, GT America / GT Sectra, ABC Diatype / Monument Grotesk, Tiempos, Canela. Free- but-excellent options are equally valid by fit, not price: Fontshare (Satoshi, General Sans, Clash Display), Geist, Fraunces. Either way, don't default to Inter/Roboto/Playfair.
2. Scale + fluid type
Use the scale tokens from atelier-foundations (modular ratio, ~5–7 steps). If they don't exist yet,
generate them here:
- Fluid:
clamp(min, intercept_rem + slope·100vw, max). Keep theremterm — purevwbreaks zoom (WCAG 1.4.4). Math + worked examples inreferences/recipes.md. - High contrast scale: reserve the biggest steps for the hero only. A timid scale (everything near
body size) is a slop tell; premium type has dramatic H1-vs-body contrast. But cap the display
clamp()max at ~6rem (~96px) — above that the page is shouting, not designing. If a headline overflows at that ceiling on tablet/mobile, rewrite the copy or reduce the max; don't keep scaling (the viewport is part of the design — seeatelier-hardenfor the overflow pass). - Font loading is a perf lever, not an afterthought. Self-host or
@theme-wire the chosen families (viaatelier-foundations), and controlfont-display+ preload + a metric-matched fallback (size-adjust/ascent-overriderecipe inreferences/recipes.md) — a font swap on big display type is a top CLS/LCP cause. This is gated byatelier-perf-a11yat ship.
3. Tracking, leading, measure
These three quietly do most of the "crafted" feel:
- Tracking scales inversely with size: display
letter-spacing: -0.02emto-0.04em; all-caps / small labels+0.05emto+0.1em; body ~0. Hard floor: never tighter than −0.04em on display — past that, letters collide and it reads cramped, not "designed." - Leading: body
line-height: 1.5–1.7, display0.95–1.1. Always unitless so it scales. - Measure: body
max-width: 60–75ch(sweet spot ~66). Unbounded line length is the editorial slop tell. - International by default: size labels/buttons to content (translations run +20–35%), drive RTL from
<html dir>with logical properties, and declare script-aware fallbacks for non-Latin glyphs. Recipe inreferences/recipes.md; the layout/logical-property gate isatelier-perf-a11y. - Line-wrapping (zero-JS, high-ROI):
text-wrap: balanceonh1–h3/.lead(evens the last lines, kills lonely one-word rags — Baseline 2024, replaces headline-balancer JS);text-wrap: prettyonp(fixes orphans/runts — Chrome/Safari 26, not Firefox ~82%, so@supportsprogressive enhancement). Both fail gracefully to normal wrapping.
4. OpenType + variable axes
Prefer high-level font-variant-* (it cascades) over raw font-feature-settings. Recipes in
references/recipes.md. Key wins:
font-variant-numeric: tabular-nums slashed-zeroin tables/prices (columns align);oldstyle-numsin running prose.font-variant-ligatures: common-ligatures; real small caps viafont-variant-caps: all-small-caps(nevertext-transform: uppercaseas a fake).- Variable fonts: one file, many weights.
font-variation-settingsdoes NOT inherit per-axis — store each axis in a CSS var and recompose, or you'll wipe other axes.font-optical-sizing: auto. - Cap-height trim:
text-box: trim-both cap alphabeticstrips the font's built-in over/under leading so a heading aligns by cap height, not line box — kills the "mystery space above the H1" and makes optical centering trivial. Chrome/Edge 133 + Safari 18.2, not Firefox (~79%, not Baseline) → progressive enhancement, never depend on it.
5. Editorial detailing
For content/editorial/portfolio work, add the print-craft details (patterns in
references/kinetic-and-editorial.md): drop caps (::first-letter), pull quotes (distinct face,
~22ch, hairline rule), kickers/eyebrows, captions, and intentional asymmetry. These are what make a
page read "art-directed" instead of "blog template."
6. Kinetic type (scale to the motion budget)
Use it as the Direction Doc's motion budget dictates: full-blown in the award/creative world, or as
a single restrained moment (e.g. one masked headline reveal on a hero) in premium production work —
not as a default on every heading. Copy-paste recipes (line reveals, horizontal scroll, weight-morph,
marquee) are in references/kinetic-and-editorial.md. The stack: GSAP + ScrollTrigger + SplitText +
Lenis + variable fonts — but the Lenis/ScrollTrigger plumbing (setup, lifecycle, pinning) is owned by
atelier-scroll; this skill covers only the type-specific reveals (don't re-derive the wiring here).
The reduced-motion + perf gate is atelier-perf-a11y. Non-negotiables: animate transform/opacity only; mask line reveals with
overflow:hidden; gate everything behind prefers-reduced-motion (the reduced state shows the
final, readable text immediately) — kinetic type is a top accessibility, screen-reader, and SEO concern.
Never on utility/transactional flows (checkout, forms, docs).
7. The expensive-type checklist
Before handoff, confirm: 1–2 families; a font with a point of view (not a default); ratio ≥1.25 with
real H1↔body contrast; body line-height 1.5–1.7, display 0.95–1.1; tight display tracking; measure
60–75ch; tabular figures in data; font-optical-sizing: auto; text-wrap: balance on heads + pretty
on body; restraint (few sizes, consistent rhythm); and — if animated — a reduced-motion fallback.
Operating principles
- A typeface with a point of view is the fastest exit from slop. Spend your one bold choice here.
- Restraint: few families, few sizes, consistent rhythm. Premium type is disciplined, not loud.
- Legibility is non-negotiable — measure, contrast, size (≥16px body), and zoom-safe fluid type win over any flourish.
- Kinetic only where it belongs — and always with a static, reduced-motion fallback.
- Default stack: Tailwind v4 + shadcn. Wire fonts via
@theme(--font-display/-sans/-mono); the CSS recipes here apply as-is or as@layer/arbitrary utilities. Premium foundries are fair game.
Gives 0 of the 12 instructions most design systems skills give
Counted across 528 of the 534 authors here whose files we hold, read 2026-08-06
- create a custom theme if neededin 54 of 528, across 10 files
- read the corresponding theme filein 54 of 528, across 10 files
- ask which theme to applyin 53 of 528, across 9 files
- show the theme showcasein 53 of 528, across 9 files
- maintain visual identity across all slidesin 50 of 528, across 6 files
- apply the specified colors and fontsin 47 of 528, across 3 files
- get explicit confirmationin 45 of 528, across 1 file
- Generate a design system before codingin 19 of 528, across 6 files
- Maintain at least 4.5:1 color contrast ratioin 19 of 528, across 8 files
- Describe component shapes, colors, shadows, and interaction statesin 18 of 528, across 4 files
- Check Python installation and install if missingin 17 of 528, across 4 files
- Default to html-tailwind if stack is unspecifiedin 17 of 528, across 4 files
Said here and by no other author read
- assign type roles then pick one to two families
- build a high contrast fluid type scale
- scale tracking inversely with font size
- apply tabular figures in tables
- add editorial details for content work
- gate all kinetic type behind prefers-reduced-motion
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.