Skip to content

Atomic Design

Atomic Design is a methodology for building UI systems by breaking interfaces into smaller, reusable parts. It was introduced by Brad Frost and is often used as a way to structure design systems and component libraries.

Reference: Atomic Design

I use Atomic Design as an organizing framework for this portfolio’s component library. It helps keep the system consistent as it grows, and it makes it easier to reason about where a component belongs and how it should be reused.

LevelDescriptionExamples
AtomsSmallest, indivisible UI elementsButton, Input, Icon
MoleculesGroups of atoms functioning togetherForm Field, Nav Item
OrganismsComplex components made of molecules/atomsHeader, Footer, Hero
TemplatesPage structure with placeholder contentLayout, Blog Layout
PagesTemplates populated with actual contentHome, Projects, Blog

Atomic Design is flexible, and the boundaries won’t always be perfect. These are the guidelines I use to keep the system consistent:

  • If it’s a single UI element with one job, it’s usually an atom
  • If it combines a few atoms into a reusable pattern, it’s usually a molecule
  • If it defines a recognizable section of UI, it’s usually an organism
  • If it sets layout and structure without real content, it’s usually a template
  • If it’s a full route with real content and context, it’s a page

A component can move between levels over time. The goal is clarity and reuse, not strict classification.

Atomic design hierarchy