Atomic Design in Practice: From Atoms to Pages
Build interfaces like chemists build molecules. Learn Brad Frost's 5-level methodology—atoms, molecules, organisms, templates, pages—with practical React examples.
Thiago Saraiva

Atomic Design in Practice: From Atoms to Pages
What if we could build interfaces like chemists build molecules?
That's the premise of Atomic Design, a methodology created by Brad Frost that changed how we think about interface components.
The Chemistry Metaphor
In chemistry:
- Atoms are the basic building blocks
- Atoms combine to form molecules
- Molecules combine to form organisms
In interface design:
- Atoms are basic elements (buttons, inputs, labels)
- Molecules are groups of atoms (search form, media block)
- Organisms are complete sections (header, footer, card grid)
- Templates are layouts without real content
- Pages are templates with final content
The 5 Levels
1. Atoms
The smallest possible components. They can't be broken down without losing meaning.
Examples of atoms:
- Buttons
- Inputs
- Labels
- Icons
- Images
- Headings
- Paragraphs
2. Molecules
Groups of atoms working together as a unit.
Examples of molecules:
- Search form
- Media block
- Nav item
- Card (simple)
- Product thumbnail
3. Organisms
Distinct interface sections composed of molecules and/or atoms.
Examples of organisms:
- Header
- Footer
- Sidebar
- Product grid
- Comment section
- Newsletter signup
4. Templates
Layouts that define page structure without real content.
Templates are structure without content. They use placeholders or props to receive organisms.
5. Pages
Templates filled with real content.
Folder Structure
src/
components/
atoms/
Button/
Input/
Icon/
Text/
molecules/
SearchForm/
MediaBlock/
NavItem/
ProductCard/
organisms/
Header/
Footer/
ProductGrid/
FilterSidebar/
templates/
ProductListTemplate/
ProductDetailTemplate/
CheckoutTemplate/
pages/
ProductListPage/
ProductDetailPage/
CheckoutPage/
Advantages of Atomic Design
1. Consistency
Same atom used throughout the app = same look everywhere.
2. Reusability
Smaller components are more reusable.
1 Button × 50 uses = 1 component
vs
50 different buttons = 50 components
3. Maintainability
Change in one atom propagates automatically.
4. Testability
Small components are easier to test.
5. Onboarding
New devs understand the structure quickly.
Implementing in Practice
Step 1: Visual Audit
Before creating components, take inventory:
- Screenshot all project screens
- Cut out repeating elements
- Group by similarity
- Identify variations
Step 2: Define Atoms
Start with the most basic elements:
□ Typography (h1-h6, p, span)
□ Button (primary, secondary, ghost)
□ Input (text, email, password)
□ Select
□ Checkbox/Radio
□ Icon set
□ Image/Avatar
□ Badge/Tag
□ Link
Step 3: Compose Molecules
Identify groups that always appear together:
□ Form Field (label + input + error)
□ Search Bar (input + button)
□ Card (image + title + description)
□ Nav Item (icon + label + badge)
□ User Avatar (image + name + status)
Step 4: Build Organisms
Complete interface sections:
□ Header (logo + nav + search + user)
□ Footer (links + social + copyright)
□ Sidebar (filters + categories)
□ Hero (title + subtitle + cta + image)
□ Product Grid (title + cards)
Step 5: Define Templates
Content-less layouts:
□ Home Layout
□ List Layout
□ Detail Layout
□ Dashboard Layout
□ Auth Layout
Common Pitfalls
1. Over-engineering
Not everything needs to be an atom. If something is used once, it doesn't need to be componentized.
2. Wrong Coupling
Atoms shouldn't know about context:
3. Too Many Props
If an atom has 20 props, it should probably be a molecule.
4. Rigid Levels
The 5 levels are guides, not rules. If something doesn't fit perfectly, that's okay.
Storybook + Atomic Design
The Atomic Design structure maps perfectly to Storybook:
└── Stories
├── Atoms/
│ ├── Button
│ ├── Input
│ └── Icon
├── Molecules/
│ ├── SearchForm
│ └── MediaBlock
├── Organisms/
│ ├── Header
│ └── ProductGrid
└── Templates/
└── ProductList
Conclusion
Atomic Design isn't about following rigid rules — it's about thinking in systems.
When you look at an interface and see atoms, molecules, and organisms instead of "a bunch of divs", you start building more consistently, reusably, and maintainably.
The chemistry metaphor is powerful: just as all the complexity of the physical universe emerges from ~100 elements, all the complexity of an interface can emerge from a few dozen well-designed components.