Start from the problem, not the list
Design system roundups are usually organised by company, which is the least useful axis — you already know who Airbnb is, and that fact does not tell you whether their system will help you. Here is the same set organised by what you are trying to figure out.
| Read | Because | |
|---|---|---|
| "Where do product-specific components go?" | Carbon, Encore | Both solved it with layers: a foundation that cannot be overridden, specialised subsystems above it |
| "How do I make people actually follow it?" | Stripe, SLDS 2 | One removes the capability to deviate; the other lints for it. Documentation is the third option and it loses |
| "How do I keep four platforms consistent?" | Airbnb DLS | Components defined by contract rather than composition — the only thing that survives four implementations |
| "How do I let customers theme it deeply?" | SLDS 2, Stripe Elements | Decoupling structure from visual style, and a theme→variables→rules ladder |
| "Why does my product look generic?" | Linear | Identity comes from what a system refuses to do, and refusals are what most systems omit |
| "How should I ship it to consumers?" | Polaris | Whether you or your consumers control the version follows from who is accountable for the look |
The rest of this walks through each, with what is available and what is worth taking.
The three that changed in the last eighteen months
Reading Carbon, Polaris and Lightning together turns up something none of them is discussed for individually. All three restructured recently, in different ways, on the same premise: the code consuming a design system is increasingly not written by a human reading the documentation.
| What changed | The bet | |
|---|---|---|
| IBM Carbon | Shipped an MCP server exposing docs, component code examples, charts and experimental components to agents | Agents should retrieve the system at generation time rather than recall it from training data |
| Salesforce Lightning | SLDS 2: CSS architecture decoupled from the default visual style, styling hooks as custom properties, a linter validating markup | Structure and appearance must separate, and violations must be caught mechanically |
| Shopify Polaris | React deprecated in favour of framework-agnostic web components served from a CDN | Delivery must not assume what framework generated the page |
Salesforce is the most explicit about it, describing SLDS 2 as the foundation for its agentic design system and referring to dynamically generated user experiences. IBM's stated reason for the MCP server includes higher-fidelity generated code. Shopify's framing is about apps looking native to the admin, but the effect is the same: components that render identically regardless of what assembled them.
Nobody coordinated this. Three companies with different products, different constraints and no reason to agree arrived at compatible conclusions in the same window — which is usually the sign that the underlying change is real rather than fashionable.
The open, installable ones
IBM Carbon
Open source, funded and built by IBM, built on the IBM Design Language as a separate brand-foundation layer, with domain systems (IBM Products, Cloud, IBM.com) above the core. React, Web Components and Elements are maintained by the Carbon team; Angular, Vue and Svelte are community-maintained, and the documentation says so — which is the honest disclosure most systems skip.
Take: the three-layer separation, and the practice of publishing who maintains each implementation. Skip: adopting it wholesale if visual differentiation matters to your product, because the density and interaction idioms carry IBM's identity even after you retheme the colours. Full read.
Shopify Polaris
Foundations, tokens, components and over 400 commerce-focused icons. The React library is now labelled deprecated; web components load from a Shopify CDN and are added automatically by Shopify CLI.
Take: the commerce icon set if you build in that space, the token naming approach, and the delivery-model reasoning. Skip: the components outside a Shopify app — they will make your product look like Shopify. Full read.
Salesforce Lightning
SLDS 1 launched in 2015 as a CSS framework with the appearance baked in. SLDS 2 rebuilt it around CSS custom properties, added a Figma library whose token names match the code exactly, and shipped linting tools that validate markup against the rules.
Take: the Figma-code naming parity, and the linter as the enforcement mechanism. Both are copyable without adopting a line of Salesforce CSS. Skip: the framework itself unless you build on the Lightning Platform. Full read.
GOV.UK Design System
The strongest example of a system built around a constraint nobody else takes as seriously: it has to work for everyone, including people on old devices, poor connections, screen readers and under stress. Components come with published research on how they were tested and why they look the way they do.
Take: the practice of publishing the evidence behind each component. Almost nobody does this, and it is the difference between a system you follow and one you argue with. Skip: the aesthetic, which is deliberately institutional.
Atlassian Design System
Long-running, thoroughly documented, and unusually strong on content and voice guidance rather than only visual specification — the part of a design system that most teams never write.
Take: the writing and content standards. If your system has no section on how things are worded, this is the model. Skip: nothing in particular; it is a reasonable general reference.
The documented-but-private ones
This category confuses people, so it is worth stating plainly: several of the most-cited design systems cannot be downloaded. What exists is the team's published writing about them, which is often more useful than the code would have been.
| Available | The insight worth having | |
|---|---|---|
| Stripe | Two public integration systems (Apps UI toolkit, Elements Appearance API); the internal system is not published | Posture follows the trust boundary: closed vocabulary on Stripe's surface, a customisation ladder on yours |
| Airbnb DLS | Published team accounts; no package | Components as self-contained units with declared elements, explicitly rejecting atomic composition |
| Spotify Encore | Published design-team writing; no package | Concentric layers, and a public admission that flexibility swung too far and needed a new layer to fix |
| Linear | Nothing first-party; third-party extractions of varying reliability | Identity is carried by constraint — a narrow weight band, hairlines instead of shadows, one accent used sparingly |
Be careful with third-party "extractions" of private systems. A scraped style report can tell you a surface is a particular grey. It cannot tell you whether that grey is a deliberate step in a scale or an accident on one page, and it never captures the prohibitions — which is the part that would have made the copy work.
There is a pattern in that table worth noticing: the systems with the strongest visual identities publish the least. That is not a coincidence or a competitive secret. A system that exists to make one product feel like itself has nothing to gain from being installable, and a system built to be adopted by thousands of teams has to be neutral enough to survive that. Neutrality and identity trade against each other.
The rest of the field, briefly
The systems above are the ones worth reading closely. These are worth knowing exist, with the one thing each is actually good for.
Platform systems
| Take | Watch out for | |
|---|---|---|
| Material Design | The most thorough public treatment of motion and state layers anywhere. Its elevation and interaction-state model is worth reading even if you never use it | Adopting it wholesale makes a web product look like an Android app. Its opinions are strong and legible to users |
| Apple Human Interface Guidelines | The clearest writing about *why* a convention exists rather than what it is. Excellent on platform idioms and accessibility | It is guidance, not a component library. There is nothing to install, and applying it off-platform mostly does not transfer |
Both matter for a reason that is easy to miss: they set the conventions your users have already learned. Even if you build nothing with them, they define what "the back button behaves normally" means. Airbnb's DLS drew its platform-divergence line precisely around what these two own.
Large product systems
| Worth it for | |
|---|---|
| GitHub Primer | Unusually good documentation of *when not* to use a component, plus a mature approach to shipping the same system across Rails, React and static pages |
| Microsoft Fluent | The largest published attempt at one system across desktop, web and mobile with genuinely different native shells. Instructive mostly for how hard that is |
| AWS Cloudscape | The best public example of a system designed specifically for dense, data-heavy console UI — tables, filters, resource lists. Rare and useful if you build that kind of product |
| Uber Base Web | A strong theming architecture and an override model that lets consumers reach into component internals in a structured way |
Cloudscape is the underrated one. Most published systems are optimised for marketing and general application UI; very few take dense operational interfaces seriously, and the ones that do rarely publish. If you build admin or console software, it is closer to your problem than Material or Polaris.
Primitives and distribution
| What it is | What it is not | |
|---|---|---|
| Radix Primitives | Unstyled, accessible behaviour for the hard components — menus, dialogs, comboboxes | A design system. It has deliberately no opinion about how anything looks |
| shadcn/ui | A distribution mechanism plus a token convention: components copied into your repo, not installed as a dependency | A design system either. It decides your token names, not your density, composition, motifs or prohibitions |
| Tailwind | A constraint system for spacing, colour and type applied at the class level | Opinionated about your product. Its defaults are neutral and widely used, which is why they read as generic |
This row deserves emphasis because it is where most teams actually are. Adopting Radix plus shadcn plus Tailwind gives you excellent accessible behaviour, a token layer and a distribution story — and no decisions about density, composition, motifs or what is forbidden. That combination produces the consistent, competent, entirely interchangeable interface that people then describe as looking AI-generated. The distinction, in full.
The directories, and what they are good for
Several large catalogues index public design systems, and they answer a narrow question well: has anyone in my sector solved this, and what did they call it? A component gallery is genuinely useful for seeing eleven takes on a date picker side by side before you design a twelfth.
What they do not do is tell you which system is worth studying. A directory entry is a link and a screenshot; the reasoning lives in the team's writing, not in the catalogue. Use them for breadth and go to the source for depth.
What a system looks like applied, rather than documented
Every example above is documentation you read. That is the format's built-in limitation: a design system is only judgeable once the same decisions are carried across screens that have nothing to do with each other. A landing page proves a system can look good once. A landing page, a dashboard and a component sheet built from one token set prove it holds.
These are complete systems rendered live, not screenshots. Each is one token set applied across three unrelated surfaces — so what you are checking is not whether you like the colours, but whether the *same* decisions survive a marketing hero and a dense table.
Kit showcase · live surfaces
Verdant Finance
Live renderVerdant Finance rendered from its real tokens across 3 surfaces.
Sample headline
Supporting copy goes here.
Active users
12.7k
+11%
MRR
$55.7k
+12%
Retention
95%
+4%
Why Verdant
Everything you need to ship
Personal budgeting apps
Clear defaults keep every screen consistent from first draft to launch.
Expense tracking dashboards
Accessible components and visible states are built into the system.
Transaction history views
Reusable patterns give product, marketing, and content one visual language.
By the numbers
Growth you can measure
Monthly recurring revenue
$55.7k+12%
Targets
Activity
Last 12 months of usage
Start building with Verdant today
Sage-green fintech kit with yellow-gold active surfaces and dark-olive secondary rows, uppercase labels, and tabular numerics.
Dashboard
Welcome back — here's how Verdant is performing today.
Active users
12.7k
+11%Trending up this month
vs. previous 30 days
MRR
$55.7k
+12%Strong recurring growth
Net of churn
Retention
95%
+4%Engagement above target
Rolling 28-day window
NPS
75
+5Meets growth projections
Survey · n=1,204
Total revenue
Last 12 months
$55.7k+18.2%
Recent sales
You closed 265 deals this month.
Alex Rivera
alex@verdantfinance.com
Mira Okonkwo
mira@verdantfinance.com
Jonas Feld
jonas@verdantfinance.com
Sana Qureshi
sana@verdantfinance.com
Theo Lindgren
theo@verdantfinance.com
Recent transactions
View all| Customer | Status | Date | Amount |
|---|---|---|---|
AR Alex Rivera Founder & CEO | Paid | 2m ago | $1,999.00 |
MO Mira Okonkwo Head of Product | Pending | 1h ago | $39.00 |
JF Jonas Feld Design Lead | Processing | 3h ago | $299.00 |
SQ Sana Qureshi Engineering Lead | Paid | Yesterday | $99.00 |
TL Theo Lindgren Brand Director | Refunded | 2d ago | $2,400.00 |
Sample headline
Supporting copy goes here.
Starter
For side projects and early experiments.
Free forever
What's included
Pro
For teams shipping to production.
Billed annually ($290/yr)
Everything in Starter, plus
Enterprise
For organizations that need control.
Billed annually ($990/yr)
Everything in Pro, plus
Questions? Compare all plans or talk to sales.
The question to ask of any example
Not "is this attractive" but "could I predict the next screen?" A real system makes the twelfth screen predictable from the first three. If you cannot guess what a modal would look like after studying the landing page and the dashboard, the system is a style, and a style does not survive a second designer or an agent.
Running a teardown yourself
The most valuable version of this exercise is one nobody has published, on a product in your own sector. It takes about an hour.
- 1
Capture three screens, not one
One screen shows you the palette. Three show you which decisions repeat, and repetition is what distinguishes a system from a page.
- 2
Read computed values, do not eyeball
Open dev tools and write down font-weight, letter-spacing, border-width, border-radius and padding. "Tight tracking" is an impression; -0.022em above 48px is a rule.
- 3
Look for the range, not the value
The finding is rarely one number. It is that every weight falls between 400 and 510, or that radius is only ever 6 or 12. Ranges are rules; single values are samples.
- 4
Write down what is absent
No shadows. No gradients. No second accent. No weight above 510. Absences are the highest-value output of a teardown and the first thing lost in any automated extraction.
- 5
Convert each observation into an instruction
"Elevation is a surface step plus a 1px border, never a box-shadow" is executable. "Minimal and precise" is not. This step is where a teardown becomes a design system.
Step four is the one to insist on. We sampled 299 DESIGN.md files written to give AI agents design guidance and found that 76% contain no prohibitions at all, alongside 86% specifying colours as raw hex with no semantic role and 57% defining no distinctive motifs. Those files describe a palette. The identity they were trying to capture was in the absences.
Three quarters of design guidance in the wild forbids nothing. But identity is carried by refusal, and a copied palette leaves the refusals behind.
The mistake to avoid
There is a version of studying design systems that produces something worse than starting from nothing. It happens when the exercise becomes acquisitive: assemble the best parts of nine systems and you get a competent interface with no argument behind it.
Every system above is downstream of a decision about a reader. Linear's density is an argument that a power user in a tool all day wants quiet and information. GOV.UK's plainness is an argument that the reader may be stressed, on a bad connection, and cannot be assumed to have anything. Carbon's neutrality is an argument that thousands of teams will adopt it and none of them are IBM's brand team.
Use these to calibrate rigour — how specific the numbers get, how many things get forbidden, how narrow the ranges are. Then make your own argument about your own reader, and let the rules follow from it.
Identity Forge design kits are complete systems in this sense: semantic colour roles across light and dark, type and spacing scales, motifs, and explicit do's and don'ts, serialised into a DESIGN.md a coding agent can execute. Browse the kits, or read what a DESIGN.md file is.
What are the best design system examples to learn from?
It depends on your question. Carbon and Spotify's Encore for layering, Stripe and SLDS 2 for enforcement and theming, Airbnb's DLS for cross-platform contracts, Polaris for delivery, Linear for how constraint creates identity, and GOV.UK for publishing the research behind each component.
Which major design systems can I actually download?
Carbon, Polaris, Lightning, GOV.UK and Atlassian are publicly available. Stripe's internal system, Airbnb's DLS, Spotify's Encore and Linear's system are not — what exists for those is the teams' published writing, which is often the more useful artefact anyway.
Should I copy a design system I admire?
Copy the rigour, not the content. Every good system is a set of answers to questions about a specific reader, and lifting the answers without the questions gives you an interface optimised for someone else's product. Use teardowns to calibrate how specific your own rules should be.
Why do so few companies publish their design systems?
Because a system built to make one product feel distinctive has nothing to gain from being installable, while a system built for wide adoption has to be neutral enough to work for thousands of unrelated products. Publishing pushes a system toward neutrality, which is the opposite of what a strong brand wants.
Are design system directories worth using?
For breadth, yes — they are good for seeing many implementations of the same component side by side before you design your own. For depth, no. A directory entry is a link and a screenshot; the reasoning that makes a system worth studying lives in the team's own writing.