ATOMS btn input label icon avatar MOLECULES search field form field card header ORGANISMS navigation header product card grid TEMPLATES PAGES complete interface atomic design · atoms · molecules · organisms · templates · pages · consistency scales when components compose

Atomic Design

Build interfaces from the smallest possible pieces — and everything larger takes care of itself.

Design Systems Component Libraries UI Consistency Frontend Architecture Design-Dev Handoff Scalable Design

Two sentences.

Atomic Design is a methodology developed by Brad Frost in 2013 that organises user interface design into five hierarchical levels — atoms (the smallest indivisible UI elements: buttons, inputs, labels), molecules (simple combinations of atoms that form a functional unit: a search field combining a label, an input, and a button), organisms (complex UI sections built from molecules and atoms: a navigation header, a product card grid), templates (page-level arrangements of organisms that define layout without real content), and pages (specific instances of templates filled with real content) — providing a shared mental model and vocabulary that design and engineering teams can use to build, maintain, and scale interfaces consistently. The framework's core insight is that interfaces are not designed from the top down — from pages to elements — but understood and built from the bottom up, because consistency at the atomic level propagates through every higher level of the hierarchy automatically.

The methodology emerged from Frost's observation that the industry was simultaneously becoming more complex — more responsive breakpoints, more device contexts, more feature surface area — and more siloed, with designers producing page-level compositions that engineers then re-interpreted as components, producing inevitable inconsistency between design intent and implemented reality. Atomic Design provides a shared structural vocabulary that makes design and engineering speak the same language about the same things — a button in the design system is the same button in the component library is the same button on every page where it appears.

Apply this when…

A new product is being designed from scratch and the team wants to establish scalable design-engineering consistency from the foundation rather than retrofitting it later
An existing product has accumulated significant UI inconsistency — slightly different spacing values, multiple button variants that serve the same purpose, form fields that look different on different pages
A design system initiative is being launched and the team needs a shared mental model and vocabulary for organising and naming components
Design-to-engineering handoff is producing inconsistency — engineers are rebuilding components from scratch on each new page rather than drawing from a shared library
The product is expanding to new surfaces — mobile, tablet, different product areas — and the team needs a component architecture that works across contexts
A growing design team needs a shared structure for managing component ownership, design decisions, and documentation at scale

When NOT to apply it

Skip it when the interface is a one-time, non-scalable deliverable — a marketing campaign microsite, a one-page event website, a prototype that will be discarded — where the investment in an atomic hierarchy exceeds its useful life. Also skip it when the team is too small to maintain a design system, or when the product UI is so specialised or bespoke that standard component composition does not apply.

The mechanism

Atomic Design works by establishing a common level of abstraction — the component — at which both design and engineering operate simultaneously. Instead of designers producing page compositions that engineers must decompose into buildable units, both teams work from the same component hierarchy: atoms defined once, combined into molecules, assembled into organisms, arranged into templates. When the atom changes — a button border radius, an input field height, a label font size — the change propagates through every molecule, organism, template, and page that contains it. Consistency becomes structural rather than manual.

01
Chemistry as an interface design metaphor
Frost drew the atomic metaphor from chemistry: just as all matter is composed of atoms that combine into molecules that combine into more complex structures, all interfaces are composed of basic UI elements that combine into functional units that combine into full page sections. The metaphor provides a structural principle for deciding where each UI element belongs: an atom is any UI element that cannot be meaningfully broken down further without losing its function. A button is an atom. An input is an atom. The combination of a label, an input field, and a validation message is a molecule — a functional form unit. The structure is determined by function, not by visual complexity.
02
Five levels in detail
Atoms are the fundamental building blocks: buttons, input fields, labels, icons, colour swatches, typographic scales. Molecules are simple, functional groups of atoms: a search form (label + input + button), a card header (image + title + subtitle). Organisms are relatively complex UI sections: a site header (logo atom + navigation molecule + search molecule + CTA button), a product listing grid. Templates are page-level layouts showing how organisms are arranged spatially without real content. Pages are instances of templates populated with real content, representing actual user states and exposing how the system performs under real conditions.
03
The hierarchy is a mental model, not a rigid rule
Teams new to Atomic Design sometimes treat the five levels as a strict classification system — spending significant time debating whether a specific component is a molecule or an organism. This is a symptom of misunderstanding the methodology's purpose. The five levels are a shared mental model for thinking about components at different levels of abstraction and composability — not a formal taxonomy that every component must fit cleanly into. A complex component that sits between molecule and organism can live in either category depending on how the team uses it. The hierarchy is a tool for communication and shared understanding, not a classification system with enforceable boundaries.
04
How to measure it — component reuse rate, consistency, and velocity
Atomic Design produces three primary measurable outcomes. Component reuse rate measures what proportion of UI elements on any given screen are drawn from the shared library rather than created ad hoc. Design-engineering consistency measures whether the same component looks and behaves identically across design files and code — divergence between Figma components and React components indicates the atomic contract is breaking down. New screen velocity measures how quickly new screens can be designed and built — a mature atomic system should enable new screens to be assembled from existing components in hours rather than days.

Methodology, not system

Atomic Design is a methodology for organising design systems — it is not a design system itself. A design system built on Atomic Design principles still requires decisions about visual language (colour, typography, spacing), interaction patterns, accessibility standards, and documentation practices that the atomic methodology does not specify. Teams that adopt Atomic Design's naming convention without investing in the underlying design decisions produce a well-organised library of inconsistent components — which is organised but not a system.

Airbnb's design language system and the atomic rebuild

When Airbnb's design team undertook the creation of their Design Language System (DLS) — one of the most widely cited design system initiatives in the industry — they used Atomic Design's component hierarchy as the structural foundation for organising a system that needed to work across iOS, Android, and web simultaneously. The challenge was not just visual consistency but cross-platform consistency: a button on iOS needed to feel like the same button on Android and on the web, despite the fundamentally different implementation requirements of each platform.

Starting from atoms — defining a shared colour palette, typographic scale, spacing system, and icon set that would be platform-agnostic — the team built upward through molecules and organisms that could be implemented differently on each platform while sharing the same design specification. The DLS allowed Airbnb's design team to ship new features across three platforms simultaneously rather than sequentially, because designers working from the same component library and engineers working from the same component specifications were building the same molecules and organisms regardless of platform. The reduction in design-engineering rework was measurable and significant, and the cross-platform consistency it produced was visible to users.

Airbnb · DLS · Cross-platform
Atomic component hierarchy enables cross-platform design-engineering consistency at scale
ATOMS colour · type · spacing · icons MOLECULES form field card header nav item ORGANISMS search panel listing card iOS Android Web iOS Android Web Same component specification · different platform implementation · same user experience Airbnb DLS · atomic hierarchy · cross-platform consistency · atoms defined once · used everywhere
Doing it right — three platforms, one atomic design system

Test yourself & see real examples

No examples yet — be the first.

Spotted a product whose UI components are visibly inconsistent — buttons that look slightly different on each page, spacing that varies randomly — or one where the design system consistency is so complete it is invisible? Submit what you observed.

✓ Reviewed before publishing ✓ Your name on every example you submit ✓ Violation or fix — both welcome

Seen Atomic Design applied well or ignored in a real product? Help grow the evidence base.

Where teams go wrong

Building a component library without documenting usage guidelines. A well-organised library of atoms, molecules, and organisms in Figma and code is not a design system if it lacks usage guidelines: when to use this component versus that one, what variants exist and when each is appropriate, what accessibility requirements each component must meet. Without usage guidelines, designers and engineers make independent decisions that diverge over time. The documentation is not supplementary — it is the contract that makes the library a system rather than a collection.
Defining atoms at the wrong level of granularity. Teams often define atoms too broadly — treating a card as an atom because it feels fundamental — or too narrowly — treating every CSS property as an atom. The correct granularity test is function: an atom is the smallest UI element that performs a meaningful function in isolation. A button performs a function. A button's border radius does not — it is a styling decision, not a component. A form field with a label performs a function. A label in isolation does not without the input it labels.
Treating Atomic Design as a Figma organisational system rather than a shared design-engineering contract. Teams that name their Figma frames "Atoms," "Molecules," and "Organisms" without mapping those frames to corresponding code structures have organised their design files without establishing the design-engineering contract. The consistency benefit of Atomic Design materialises in the code, not in the Figma frame names. Atoms in Figma must correspond to tokens in code, molecules to shared components, organisms to feature sections.
Building the system in isolation from real product screens. Design systems built entirely from first principles — defining every atom theoretically before testing in real screens — consistently produce components that look correct in the library and fail in practice. A button defined in isolation may look perfect; a button placed within a complex organism with competing visual elements may look wrong despite being correctly specified. Atomic Design systems are most effectively built by extracting components from real product screens rather than by inventing components and then applying them.

Connected ideas

Atomic Design is a methodology for structuring design systems — it sits at the intersection of design practice and frontend architecture. Its closest relationships are with the tools and practices that implement its principles in real product workflows.

The most important pairing is Atomic Design with a documented token system. Design tokens — named variables for colour, spacing, typography, and other visual properties that are shared between design files and code — are the lowest level of the atomic hierarchy and the mechanism by which design-engineering consistency is enforced programmatically. An Atomic Design system without tokens has components that are visually defined in Figma and independently re-implemented in code, producing the design-engineering drift that Atomic Design is intended to prevent.

Run it right now

⏱ 10 minutes · Solo · No prep

The Component Audit

1. Open your product and navigate to three different screens — ideally screens from different parts of the product that were built at different times. For each screen, identify the primary call-to-action button.

2. For each button, note: what colour is it? What border radius? What font size and weight? What padding values? Write down the values as precisely as you can estimate from observation.

3. Compare the three buttons. If any visual property differs between the three — if one button has a slightly different border radius, or a subtly different shade, or different padding — you have identified a design system atom that exists in your product but is not consistently defined. This is atomic design debt: the button atom has been independently recreated multiple times with small variations.

4. Count the number of properties that are inconsistent across the three buttons. Each inconsistency is a token that should be defined at the atom level and propagated through the system. If more than two properties are inconsistent, your product's atom layer has accumulated enough drift to justify a design system audit — and Atomic Design's component hierarchy is the framework for conducting that audit systematically.

10 minutes