Changelog
Every shipped change to the design system. We bump major when we break, minor when we add, patch when we fix. This page is the source of truth – if it isn’t listed here, it didn’t ship.
| Current | v1.2.1 |
| Released | 8 May 2026 |
| Versioning | SemVer 2.0 |
| Cadence | As foundations land |
Semver in this system
SemVer applied to design tokens. The intent is the same as in any package: tell consumers what kind of update they’re about to take, and let them decide in ten seconds whether they need to act.
Breaking.
Existing code stops working without edits. We do not ship these casually.
- – A token is renamed or removed without an alias.
- – A semantic mapping is inverted (
—es-color-text-primarynow points to white instead of ink). - – A component’s required prop is renamed or its type changes.
Additive.
Nothing existing breaks. You can take the update without reading it.
- – A new foundation ships (motion, states, modes scaffolding).
- – New tokens are added (a new ramp, a new size step).
- – A new component or variant lands.
Fix.
A wrong number, a typo, a docs improvement. No CSS surface area changes.
- – A token value was off by a pixel and is corrected.
- – A docs page miscounts shipped foundations.
- – An accessibility note is clarified.
The deprecation contract
Tokens and props we want to retire stay aliased for one minor cycle, then go at the next major. Three rules, no exceptions:
- The retiring token is marked
@deprecatedin the source.tokens.jsonand continues to resolve to the same value via an alias. - The release that deprecates it must name the release that will remove it (“scheduled for v2.0”).
- The removal release lands the breaking change as a major bump – never a minor or patch.
If a token is not listed under Deprecated in a release entry below, it is supported. If you find a token aliased without an entry here, that’s a bug – open an issue.
Releases
Reverse chronological. Each entry is dated, tagged, and grouped into Added, Changed, Deprecated, Removed, Fixed. Empty sections are omitted.
Documentation pass.
- Overview foundation count corrected to 9 shipped (Colour, Type, Spacing, Motion, States, Icons, Data viz, Voice, Imagery) – was reporting 8.
- Overview Typography card now reads
15 sizesto match the2xs → 10xltoken scale – was 13. - Overview section heading “Six layers” → “Nine layers” to match the shipped foundations grid.
- Topbar nav on Overview and Changelog now lists every shipped page (adds Voice, Imagery, Modes, Motion, States, Icons, Data viz, Buttons, Forms, Naming).
- v1.1.0 typography entry updated: editorial family is now Freight Text Pro (self-hosted), replacing the earlier Manrope reference. Token alias
—es-font-family-editorialadded pointing to—es-font-family-serif-text. - v1.0.0 entry: ramp list corrected to the nine ramps actually shipped – Teal, Navy, Stone, Mustard, Orange, Red, Lavender, Sage, Sky (previous text named non-existent “Rose” and “Cream” ramps).
- Focus-ring offset documented as
2pxoutside the bounding box; previous prose said “flush” which contradicted the token. - Motion easing copy clarified:
—es-motion-easing-standardis for entrances,—es-motion-easing-emphasisedfor moments that need weight. The prior sentence had them reversed.
Spacing & layout, plus Buttons v1.0.
tokens/spacing.tokens.json– 4-px base scale (17 stops), semantic slots (inline · stack · inset · section), 8 corner radii plus 6 semantic, 4 border widths, 5-step elevation ramp plus focus shadow, 6 breakpoints, 5 container widths, 12-column grid with responsive gutters.tokens/spacing.css– CSS variables and utility classes (.es-container,.es-grid,.es-stack-*,.es-inline-*).- Spacing styleguide page – scale visualisation, semantic-slot demos, live grid, breakpoint table, radii / border / shadow displays, do/don’t usage rules.
- Editorial type scale – three additional steps above
10xlreserved for cover-style headlines on long-form pages. - Buttons v1.0 – primary, secondary, ghost, and link variants. Sizes
sm · md · lg. Loading and disabled states bound to motion and states tokens. - Getting-started page with role-based paths for developers, marketing, and leadership.
- Brand page with placeholder mark, clear-space rules, on-colour applications, and don’ts.
- ”Tokens in action” composed strip on overview – six small examples (button, input, card, tag, callout, page header) using only existing tokens.
- Stone semantic mapping refined –
—es-color-surface-mutednow resolves to—es-color-stone-100(wasstone-50) for a slightly warmer card surface on cream pages. Old alias retained, no breaking change. - Topbar nav switched to a single-row layout with
flex-wrap: nowrapto support more foundation links without wrapping.
- Overview hero eyebrow now reads
v1.2 · May 2026– was out of sync with the footer.
Typography, motion, and modes scaffolding.
tokens/typography.tokens.json– three-family system: Inter (UI), Freight Text Pro (editorial), Freight Big Pro (display). 15-step scale (2xs→10xl, 11 → 96 px) anchored to the magazine’s working sizes. Composite styles for display, heading, body, label, caption, overline, code, quote.tokens/typography.css– primitives as CSS variables. Includes—es-font-family-editorialalias pointing to—es-font-family-serif-textfor long-form contexts.tokens/motion.tokens.json– durations (50 · 100 · 200 · 300 · 500 ms), easings (standard · emphasised · decelerate · accelerate), and theprefers-reduced-motionoverrides.- Modes scaffolding –
data-theme=“light”attribute hook on:root, with light tokens as the default. Dark binding is wired but not yet finalised. - Typography styleguide page – specimen, scale table, semantic styles, do/don’t usage, WCAG AA pairing matrix.
- Multi-foundation overview page with foundations grid and roadmap.
- Freight Text Pro confirmed as the editorial register – persona docs, pull-quotes, magazine moments. Freight Big Pro for display headlines. Inter remains the UI family. All three share negative tracking so the system reads as one publication.
- Tracking codified:
-0.022emfor display,-0.011emfor body – matched to existing Figma usage exactly.
First stable release.
tokens/color.tokens.json– primitive ramps (50 → 950) for Teal, Navy, Stone, Mustard, Orange, Red, Lavender, Sage, and Sky. Plus paper, cream, and ink anchors. Generated via OKLCH from magazine anchor colours.- Semantic colour tokens: surface · text · action · feedback · border. Two-tier architecture (primitive → semantic).
tokens/color.css– CSS custom properties for every primitive and semantic token.- Colour styleguide page – anchor colours, ramp visualisations, semantic token table, full WCAG 2.2 AA contrast matrix, usage do/don’ts.
- Initial repository structure –
tokens/for source,system/for styleguide. - Iconography v1 – 64 stroke-based icons at 16 / 20 / 24 px, single-weight, single-colour.
What’s coming
Intent for the next minor and major. Dated when the design work is signed off, not when the work begins.
- v1.3.0 — Forms In design Inputs, textareas, selects, checkboxes, radios, switches. Bound to states and motion.
- v1.3.0 — Modes In design Dark binding finalised. data-theme='dark' resolves to a full token set, not an inverted hack.
- v1.4.0 — Tabs & Modal Planned Two of the most-asked-for component surfaces. Modal includes focus trap and scroll lock.
- v2.0.0 — Token rename pass Planned Removes anything marked @deprecated as of v1.x. Scoped, audited, and dated before it lands.
How to read this
Every entry should let you decide in ten seconds whether you need to act. If a release is tagged Patch, you can take it without reading. If it’s Minor, scan Added to see what’s new. If it’s Major, read every line – something you depend on has changed.