skip to content

Atomic Design

Brad Frost's method of composing interfaces from atoms, molecules, organisms, templates and pages. Interviewers use it to see whether you can justify where a component boundary falls.

part ofDesign systems & UX foundationsoverview, primer and where to startread it →
on this pageshow

explore

questions

24

In atomic design, what makes a UI element an atom, and how do you apply the indivisibility test?

level: juniorimportance: must knowfreq 48%

answer

  1. smallest functional unit
  2. split it and see
  3. still a working interface element?
  4. label, input, button, icon
  5. one job, no parts used alone

basics

~20 s

An atom is a basic interface element, such as a label, input, button or icon, that cannot be broken down further without ceasing to be functional. The test: split it; if no part still works alone, it is an atom.

solid answer

~40 s

In Brad Frost's atomic design, atoms are the foundational building blocks: basic elements like form labels, inputs and buttons that cannot be broken down any further without ceasing to be functional. I apply that as a test. Take the candidate and try to split it: if the pieces would still be usable interface elements on their own, it is a composition, not an atom. In a travel-expense tool, the amount input, the currency label, the attach-receipt button and the receipt icon are atoms. The amount field with its label and error message is not, because the label and the message are each usable elements. A useful second check is whether any part of it is ever used somewhere else by itself; if so, that part is the atom.

go deeper

for a junior

Recall the definition: a basic element such as a label, input, button or icon that cannot be broken down further without ceasing to be functional.

for a middle

Explain the indivisibility test step by step and why properties like borders or font sizes belong to atoms rather than being atoms themselves.

for a senior

Show how you would settle a disputed classification on a real system by applying the test consistently and revisiting it when a part starts being used alone.

for a principal

Discuss whether strict atom classification is worth the debate for a given organisation, or whether the vocabulary is simply a shared shorthand.

## Where atoms sit in atomic design **Atomic design** is Brad Frost's methodology for building interface design systems out of five stages: **atoms**, **molecules**, **organisms**, **templates** and **pages**. It borrows the chemistry metaphor: atoms bond into molecules, molecules combine into organisms. Frost is explicit that the stages are a **mental model**, not a linear process where atoms are designed first and pages last. Atoms are the bottom of that hierarchy. Frost describes them as basic elements like form labels, inputs and buttons that **cannot be broken down any further without ceasing to be functional**, and sums them up as UI elements that serve as the elemental building blocks of an interface. In his breakdown of a native mobile app, the atoms are icons, text-level elements and images. ## The indivisibility test The definition turns into a practical check: 1. **Take the candidate element** as it is drawn in the design or built in code. 2. **Try to split it** into smaller visible parts. 3. **Ask whether each part is still a functional interface element on its own.** A label can be used alone; an input can be used alone; a border or a corner radius cannot. 4. **If any part stands on its own, the candidate is a composition** of atoms, and those parts are the atoms. 5. **If no part does,** the candidate is an atom. A second, complementary check: **has any part of it ever been used elsewhere by itself?** If the receipt icon appears inside the upload button and also alone in the expense list, the icon is an atom and the upload button contains it. ## Applying it in a travel-expense tool | Candidate | Split into | Verdict | |---|---|---| | Amount input | Nothing that works alone (its border and padding are properties) | Atom | | Currency label | Nothing that works alone | Atom | | Attach-receipt button | Nothing, if it is text only | Atom | | Receipt icon | Nothing | Atom | | Amount field with label and error | Label, input, error text | Not an atom | | Receipt thumbnail with delete button | Image, button | Not an atom | | Expense line (merchant, date, amount, status) | Several text elements and a status tag | Not an atom | The last three are compositions; exactly which higher level they belong to is a question for the molecule and organism levels, not this one. ## What the test does not mean - **Atoms are not the smallest visual pieces.** A border, a shadow or a corner radius is a **property** of an atom, not an atom, because none of them is a functional element. Frost gives the dimensions of an image and the font size of a heading as examples of an atom's properties. - **Atoms are not "simple" in behaviour.** A plain date input in an expense tool can have complex keyboard and validation behaviour and still be an atom, because none of its parts is used on its own. - **"Atom" is not a quality badge.** Calling something an atom does not make it more reusable or more important; it is only a statement about granularity. ## One job per atom A good atom does **one thing**: a label labels, an input accepts a value, a button triggers an action, an icon represents a concept. When an atom starts taking on a second job (an input that also displays a currency symbol picker, a button that also shows a progress count), that is often a sign it has become a composition and the indivisibility test will show it. ## Across platforms Frost stresses that atomic design applies to any user interface, not only the web. The test works identically for a native mobile app or a desktop tool: the question is always whether the parts are functional elements, never which technology draws them. ## Common mistakes - Treating every small thing on the screen as an atom, including borders and dividers used as decoration. - Calling a labelled field an atom because it is "the basic form element" in the team's head. - Arguing classification by visual size instead of by whether the parts function alone. - Freezing classifications forever; when a part starts being used on its own, the classification changes.

  • Is a date input with a built-in calendar icon an atom?
    Apply the test. If the calendar icon is also used elsewhere on its own, it is an atom, and the date input contains it, which makes the date input a small composition. Many teams still treat such an input as one atom because the icon never appears separately and cannot be removed from it. Either is defensible if the team applies the same rule consistently.
  • Why does the indivisibility test ask about function rather than visual size?
    Because the method is about building interfaces from reusable working parts. A border is smaller than a button but cannot do anything alone, so it is a property. A complex date input can be large yet indivisible. Size tells you nothing about whether a piece can be reused as an element.

saying these in an interview costs you the question

  • Calls borders, shadows or corner radii atoms because they are the smallest pieces.
  • Classifies a labelled input with its error message as a single atom.
  • Judges whether something is an atom by how small it looks on screen.
  • Assumes an atom must have trivial behaviour to count as an atom.
  • Believes atomic design only applies to web interfaces.
open as a page

In atomic design, what does bottom-up composition mean, and why does Brad Frost call the five levels a mental model rather than a linear process?

level: juniorimportance: must knowfreq 50%

basics

~20 s

Bottom-up composition means larger interface parts are assembled from smaller ones: atoms into molecules, organisms, templates and finally pages. Frost stresses the levels are a lens for working on parts and whole at the same time, not five sequential steps.

open as a page

In atomic design, what is a molecule, and why does a support tool's ticket-search field of label, input and button qualify as one?

level: juniorimportance: must knowfreq 48%

basics

~20 s

A molecule is a small group of atoms working as one unit with one focused job. A ticket-search field qualifies because the combination links the parts: the label names the input and the button submits its query.

open as a page

In atomic design, what is an organism, and why is an airline booking site's flight-results list a good example of one?

level: juniorimportance: must knowfreq 45%

basics

~20 s

An organism is a relatively complex component, built from molecules, atoms or other organisms, that forms a distinct section of an interface. A flight-results list qualifies: one flight-option molecule repeated into a self-contained section of the booking screen.

open as a page

In atomic design, what is the difference between a template and a page, and why does the method keep pages as a separate level?

level: juniorimportance: must knowfreq 45%

basics

~20 s

A template is the layout skeleton that shows content structure; a page is one instance of it filled with real, representative content. Pages exist to show the final UI and to test whether the system's parts survive real content.

open as a page

In atomic design, what is a template, and what would a claim-detail template in an insurance claims portal contain and leave out?

level: juniorimportance: must knowfreq 42%

basics

~10 s

A template is a page-level skeleton that places organisms into a layout and shows the content structure, not the final content. A claim-detail template holds regions and placeholder shapes, never a real policyholder's claim.

open as a page

In atomic design, why do atoms rarely stand alone on a real screen, and what is a catalogue of atoms still useful for?

level: middleimportance: should knowfreq 36%

basics

~20 s

An atom does one small job that usually only makes sense beside other elements: a label needs an input, an icon needs context. Alone, atoms serve as a reference for base styles and states, not as proof they work in context.

open as a page

In a design system using atomic design, is a colour, a type style or a spacing value an atom, and why does the answer matter?

level: middleimportance: should knowfreq 34%

basics

~20 s

Usually not. A colour, type style or spacing value is a property that atoms use, not an interface element you can place and use. Keeping values separate from atoms stops the atom list filling with non-functional entries and keeps the indivisibility test meaningful.

open as a page

In a design system, what alternatives to atomic design's five-level taxonomy do teams use, and how do you choose between them?

level: middleimportance: should knowfreq 35%

basics

~20 s

Teams use renamed levels, three tiers such as foundations, components and patterns, ownership tiers, purpose groups, or plain component-driven practice with no level names. Choose by what the organisation most needs to communicate: scale, ownership or purpose.

open as a page

In a component library built with atomic design, why can mirroring the five levels as top-level folders cause problems, and what do teams do instead?

level: middleimportance: should knowfreq 40%

basics

~20 s

Level boundaries are fuzzy and components drift between them, so level folders force classification debates, file moves that can break consumers, and poor discovery. Teams usually organise by component or purpose and keep the atomic words for design conversation.

open as a page

In atomic design, is a support tool's ticket-priority indicator of flag icon plus text an atom or a molecule, and how do you decide?

level: middleimportance: should knowfreq 42%

basics

~20 s

Apply a written boundary test: does it split into atoms the system ships, does combining them add a new relationship, do callers vary the parts separately? A fixed icon-and-text signal is defensibly either; consistency matters more than purity.

open as a page

In a design system, which inputs should a ticket-search molecule of label, input and button atoms expose to callers, and which fix internally?

level: middleimportance: should knowfreq 40%

basics

~20 s

Expose what legitimately varies between uses — label text, hint, current query, submit and change notifications, busy state, density — and forward each to the right atom. Fix the relationships that make it one unit: label names input, button submits.

open as a page

In an airline design system, why is the organism often the first level that knows about flight data, and what should a flight-results organism accept?

level: middleimportance: should knowfreq 38%

basics

~20 s

Common practice keeps molecules on display-ready values so they stay reusable, and lets the organism map domain objects such as flight offers onto them. A shared flight-results organism receives offers and reports selections; it does not fetch them.

open as a page

In atomic design, why should pages use real representative content instead of placeholder text, and where should that content come from?

level: middleimportance: should knowfreq 32%

basics

~20 s

Placeholder text has uniform lengths and no real data shapes, so it hides the breakage pages exist to find. Representative content mirrors production's formats and ranges, drawn from anonymised data, content designers and schemas, never raw customer records.

open as a page

In atomic design, which page variations would you build for a cloud admin console's resource-detail template, and what does each one test?

level: middleimportance: should knowfreq 38%

basics

~20 s

Build pages for the extremes real data produces: first use, heavy volume, shortest and longest strings, missing optional fields, partial failure, and each permission role. Each tests whether the template and its parts survive content they will actually meet.

open as a page

In a design system, what content structure should an insurance claim-detail template specify, and why is identical filler text in every region not enough?

level: middleimportance: should knowfreq 36%

basics

~20 s

It should specify what each region's content is made of: type, length range, count, image ratio, whether it is optional, and heading and landmark structure. Identical filler hides the long, empty and many-item cases that break real layouts.

open as a page

In a warehouse scanner app's design system, reviews stall on whether a scan field with a quantity stepper is a molecule or an organism. How do you resolve such boundary disputes?

level: seniorimportance: should knowfreq 30%

basics

~20 s

Treat the level as a communication aid, not a fact to prove. Decide with a written heuristic on reuse, ownership and whether it forms a screen section, record the call, and keep labels out of names and paths.

open as a page

A support tool's reply-toolbar molecule grew from send and attach buttons to macros, template search, an assignee picker and a status menu; how do you diagnose and fix it?

level: seniorimportance: should knowfreq 30%

basics

~20 s

It has become several components in one: its purpose needs 'and', its contract grew feature switches and unrelated teams edit it. Extract one focused molecule per job and compose them in a larger component that keeps the familiar layout.

open as a page

An airline's flight-summary organism must appear in search results, the seat-selection sidebar and the mobile trip list; how do you make it reusable without per-screen flags?

level: seniorimportance: should knowfreq 34%

basics

~20 s

Define the organism by its job — summarise one itinerary — and express genuine differences as a few meaningful variants such as density and action set, with layout adapting to available space. A context needing a different job gets its own organism.

open as a page

In a design system for a cloud admin console, real data makes long resource names wrap to five lines inside a table row on several pages. How do you fix it through atomic design's levels?

level: seniorimportance: should knowfreq 28%

basics

~20 s

Do not patch the pages. Fix the lowest level that owns the failing decision, usually the name cell's truncation rule; agree the content rule, document it, keep the long name as a permanent example, and recheck every page using it.

open as a page

A claims portal's claim-detail template checks each claim's status to decide whether to show the payment region; what is wrong with that, and how would you restructure it?

level: seniorimportance: should knowfreq 32%

basics

~20 s

The template has absorbed business rules, so it cannot render with placeholders and changes whenever claim rules do. Let the template define regions and how an empty one collapses; the application decides which organism fills each region.

open as a page

In an insurance claims portal, when should auto, home and travel claim-detail screens share one template, and when does each need its own?

level: middleimportance: nice to knowfreq 26%

basics

~20 s

Share one template when the screens have the same skeleton — regions, order, roles and hierarchy — even if different organisms fill them. Give a screen its own template only when its structure differs, not merely its content.

open as a page

A travel-expense tool's design system lists sixty atoms, including a labelled amount field with error text and a separate border atom. What went wrong, and how do you fix it?

level: seniorimportance: nice to knowfreq 26%

basics

~20 s

The label was used as a badge rather than a granularity rule: compositions were promoted to atoms and properties were split into atoms. Re-run the indivisibility test, move compositions up, move properties into foundations, and record rulings for genuinely fuzzy cases.

open as a page

In a design system shared by several airline product teams, which organisms belong in the shared library and which should stay in product code?

level: seniorimportance: nice to knowfreq 28%

basics

~20 s

Share organisms with the same stable job across products, such as a global header. Keep domain-specific or changing ones, like a seat map, in product code built from shared parts, and promote them when a second product needs the same job.

open as a page