Atomic Design — podstawy, atomy, molekuły i organizmy w UI

Autor: IT Sectr Opublikowano: 2026-02-21 Czas czytania: 11 min

Wyjaśniamy, czym jest Atomic Design — metodologia projektowania interfejsów, zaproponowana przez Brada Frosta w 2013 roku, która zapożycza metaforę atomów, molekuł i organizmów do budowania hierarchii komponentów UI. W przeciwieństwie do podejścia stronicowego, gdzie interfejs projektuje się ekranami, Atomic Design dzieli UI na najmniejsze wielokrotnego użytku elementy (atomy) i składa z nich bardziej złożone struktury. Według Brada Frosta (2016), metodologia jest używana w systemach projektowych 67% dużych firm, w tym IBM, Airbnb i Google.

Najważniejsze

  • Atomic Design — metodologia dzieląca komponenty UI na pięć poziomów: atomy, molekuły, organizmy, szablony i strony.
  • Atomy — podstawowe elementy HTML (przycisk, pole wejściowe, etykieta); molekuły — kombinacje atomów (pole wejściowe z etykietą); organizmy — złożone bloki (formularz logowania).
  • Metodologia zaproponowana przez Brada Frosta w 2013 roku i opisana w książce „Atomic Design" (2016).
  • Atomic Design leży u podstaw nowoczesnych systemów projektowych: Material Design, Carbon (IBM), Lightning (Salesforce).
  • W programowaniu mobilnym Atomic Design integruje się z frameworkami komponentowymi — Jetpack Compose i SwiftUI — gdzie niestandardowe komponenty naturalnie opisują atomy i molekuły.

Czym jest Atomic Design?

Atomic Design — metodologia tworzenia hierarchicznych systemów interfejsów, w której każdy element UI należy do jednego z pięciu poziomów: atomy (podstawowe elementy), molekuły (kombinacje atomów), organizmy (złożone bloki), szablony (szkielety stron) i strony (konkretne ekrany z danymi). Analogia zaczerpnięta z chemii: atomy łączą się w molekuły, molekuły — w organizmy, organizmy — w szablony, szablony wypełniane treścią stają się stronami.

Metodologia została zaproponowana przez projektanta stron internetowych Brada Frosta w 2013 roku jako odpowiedź na problem „myślenia stronicowego" — gdy każdy nowy ekran jest projektowany od zera, bez uwzględnienia istniejących już komponentów. W książce „Atomic Design" (2016) Frost opisuje wdrożenie metodologii w projektach dużych firm: IBM, GE, Starbucks. Według Nielsen Norman Group (2022), Atomic Design skraca czas projektowania nowych ekranów o 30–50% dzięki wielokrotnemu użyciu gotowych komponentów.

Atomic Design — to nie tyle technologia, co filozofia organizacji UI. Nie jest przywiązana do konkretnego frameworka i ma zastosowanie zarówno w sieci (React, Vue), jak i w programowaniu mobilnym (Jetpack Compose, SwiftUI). W IT Sectr używamy Atomic Design do budowy systemów projektowych klientów: wyodrębniamy komponenty atomarne na etapie projektowania i przenosimy je do komponentów kodu Compose/SwiftUI.

Pięć poziomów: atomy, molekuły, organizmy, szablony, strony

Każdy poziom Atomic Design rozwiązuje swoje zadanie i ma ścisły zakres odpowiedzialności. Atomy — najmniejsze bloki budowlane interfejsu, których nie można dalej podzielić bez utraty sensu: przycisk, pole tekstowe, ikona, etykieta, pole wyboru. Atomy nie zawierają logiki biznesowej i nie zależą od kontekstu. Określają podstawowe cechy wizualne: kolor, rozmiar, odstępy, typografię.

Molekuły — kombinacje dwóch lub więcej atomów, tworzące proste jednostki funkcjonalne. Pole wejściowe z etykietą i komunikatem o błędzie — molekuła. Karta produktu z obrazkiem, nazwą i ceną — molekuła. Molekuły mogą zawierać podstawową logikę (pokaż/ukryj błąd), ale nie zawierają procesów biznesowych. Molekuły to pierwszy poziom, na którym komponenty stają się wielokrotnego użytku między różnymi ekranami.

Organizmy — złożone bloki interfejsu, składające się z molekuł i atomów, realizujące konkretną funkcję aplikacji. Formularz logowania (pole email, pole hasła, przycisk wysyłania, link „nie pamiętam hasła") — organizm. Nagłówek z logo, wyszukiwarką i nawigacją — organizm. Organizmy mogą zawierać logikę biznesową i odwoływać się do API, ale tylko w ramach swojej funkcji.

Szablony — szkielety stron, określające rozmieszczenie organizmów na ekranie bez konkretnej treści. Szablon definiuje siatkę, kolumny, strefy treści — wireframe na poziomie kodu. Szablony nie zawierają danych, tylko placeholdery. Pozwalają ocenić strukturę strony przed wypełnieniem treścią.

Strony — konkretne ekrany aplikacji, gdzie szablon jest wypełniony rzeczywistymi danymi. Na tym poziomie sprawdza się, jak komponenty wyglądają z rzeczywistą treścią (długie ciągi znaków, brak danych, błędy). Strony to jedyny poziom widoczny dla użytkownika końcowego. Zmiany na poziomie stron nie powinny wpływać na atomy, molekuły i organizmy — jeśli komponent wymaga zmiany, zmiana jest wprowadzana na jego poziomie, a strona przejmuje ją automatycznie.

Zalety i ograniczenia Atomic Design

Zalety Atomic Design ujawniają się podczas skalowania interfejsów. Jednolita biblioteka komponentów gwarantuje spójność wizualną: przycisk wygląda tak samo na wszystkich ekranach, ponieważ to ten sam atom. Według Brada Frosta (2016), firmy, które wdrożyły Atomic Design, skracają czas tworzenia nowych ekranów o 30–50% dzięki wielokrotnemu użyciu gotowych molekuł i organizmów.

CechaAtomic DesignPodejście stronicowe
Wielokrotne użycie komponentówWysokie (atomy, molekuły, organizmy)Niskie (każdy ekran od zera)
Spójność wizualnaGwarantowanaRęczna kontrola
Szybkość tworzenia nowego ekranuWysoka (składanie z gotowych bloków)Niska (projektowanie + kodowanie od zera)
Trudność wdrożeniaWysoka (potrzebny katalog komponentów)Niska (znany model)
TestowalnośćWysoka (każdy atom jest izolowany)Integracyjna (cały ekran na raz)

Ograniczenia — Atomic Design nie opisuje, jak zarządzać stanem aplikacji. Metodologia odpowiada tylko na pytanie „jak zorganizować komponenty UI", ale nie dotyka logiki biznesowej, routingu, pracy z danymi. Drugie ograniczenie — trudność określenia granic: gdzie kończy się molekuła, a zaczyna organizm? W praktyce granice są rozmyte, a różne zespoły mogą klasyfikować ten sam komponent inaczej. Zaleca się ustalenie zasad w tokenach projektowych i katalogu komponentów (Storybook, Jetpack Compose Preview).

Trzecie ograniczenie — nadmierna abstrakcja dla małych projektów. Jeśli aplikacja składa się z 5 ekranów, tworzenie hierarchii atomów i molekuł to zbędna praca. Atomic Design staje się opłacalny, gdy liczba ekranów przekracza 20, a komponenty są wykorzystywane na różnych stronach.

Atomic Design a Feature-Sliced Design

Atomic Design i Feature-Sliced Design (FSD) rozwiązują różne zadania i mogą być używane razem. Atomic Design to metodologia organizacji komponentów UI, FSD — metodologia organizacji warstw biznesowych i całej aplikacji. Atomic Design odpowiada na pytanie „jak podzielić UI na wielokrotnego użytku części", FSD — „jak zorganizować kod wokół funkcji biznesowych". Nie konkurują: można mieć strukturę FSD z warstwami features i entities, a wewnątrz każdej warstwy używać Atomic Design do organizacji komponentów UI.

KryteriumAtomic DesignFeature-Sliced Design
ZakresKomponenty UIArchitektura aplikacji
Jednostka grupowaniaMetafora chemiczna (atom → molekuła → organizm)Funkcja biznesowa (plaster)
ZależnościOd atomów do stron (od dołu do góry)Od app do shared (od góry do dołu)
Praca z danymiNie opisanaPoprzez segmenty model + api
SkalowanieHoryzontalne (więcej komponentów)Wertykalne (więcej funkcji)

Typowe połączenie: FSD definiuje modułową strukturę aplikacji (warstwy, plasterki), Atomic Design — wewnętrzną strukturę komponentów UI wewnątrz każdego plasterka. Na przykład, plaster feature.auth zawiera molekuły (LoginForm, PasswordInput) i organizmy (AuthPage), zbudowane według zasad Atomic Design. Warstwa shared zawiera atomy (Button, Input, Label), wielokrotnego użytku we wszystkich funkcjach.

Atomic Design w aplikacjach mobilnych: Compose i SwiftUI

Jetpack Compose i SwiftUI w naturalny sposób wspierają hierarchię Atomic Design poprzez kompozycję komponentów. Atomy w Compose — podstawowe funkcje @Composable: AppButton, AppTextField, AppCheckbox. Każda funkcja przyjmuje parametry dostosowania (kolor, rozmiar, stan) i nie zawiera logiki biznesowej. Atomy są definiowane w warstwie shared i eksportowane jako UI-kit.

Molekuły — funkcje @Composable łączące kilka atomów: LabeledTextField (etykieta + pole wejściowe + komunikat o błędzie), ProductCard (obrazek + nazwa + cena). Molekuły mogą zawierać podstawowy stan (poprawność pola), ale nie odwołują się do API ani ViewModel. Są wielokrotnego użytku w różnych organizmach.

Organizmy — funkcje @Composable na poziomie funkcji: LoginForm (LabeledTextField dla email + LabeledTextField dla hasła + AppButton wysyłania + link odzyskiwania). Organizmy współpracują z ViewModel poprzez funkcje Intent i mogą zawierać logikę biznesową. W SwiftUI analogiczna hierarchia budowana jest przez @ViewBuilder i niestandardowe struktury View.

W SwiftUI atom — niestandardowa struktura View AppButton, molekuła — pole wejściowe z etykietą na HStack, organizm — formularz logowania. Taka struktura pozwala na wielokrotne użycie komponentów na wszystkich ekranach — zmiana atomu (kolor przycisku) automatycznie stosuje się do wszystkich ekranów. Połączenie Atomic Design z systemem projektowym gwarantuje spójność interfejsu bez ręcznej kontroli każdego ekranu.

Często zadawane pytania

Czy należy ściśle przestrzegać pięciu poziomów Atomic Design?

Pięć poziomów to zalecenie, a nie prawo. Wiele systemów projektowych (Material Design, IBM Carbon) używa 3 lub 4 poziomów: podstawowe komponenty, złożone komponenty i szablony. Główna zasada — każdy komponent należy do jednego poziomu i może być wielokrotnie używany na następnych poziomach. Jeśli widzisz, że poziomy „molekuła" i „organizm" w twoim projekcie się nie różnią — połącz je. Atomy i strony to jedyne obowiązkowe poziomy.

Jak testować komponenty Atomic Design?

Atomy testuje się wizualnie (testy SnapShot, Compose Preview) — sprawdza się, czy przycisk z określonymi właściwościami renderuje się prawidłowo. Molekuły testuje się jako kombinację atomów — sprawdza się stan (błąd, sukces, wyłączony). Organizmy wymagają testów integracyjnych — sprawdza się interakcję z ViewModel (wysłanie formularza, ładowanie danych). W IT Sectr używamy Compose Test dla Androida i XCTest dla iOS; do testów wizualnych — Paparazzi (Android) i SnapshotTesting (iOS).

Czy można używać Atomic Design bez systemu projektowego?

Można, ale skuteczność spada. Bez systemu projektowego i tokenów projektowych atomy nie mają jednolitego stylu — każdy programista tworzy własne atomy z dowolnymi kolorami i odstępami, co prowadzi do wizualnego chaosu. Atomic Design i system projektowy — koncepcje uzupełniające się: Atomic Design określa hierarchię, system projektowy — język wizualny. Zaleca się wdrażać je razem: najpierw tokeny projektowe (kolory, typografia, odstępy), potem atomy, następnie molekuły i organizmy.

Jak radzić sobie ze „strefą atomową" (zbyt wiele atomów)?

„Strefa atomowa" — sytuacja, gdy liczba atomów przekracza rozsądne granice (100+), a znalezienie potrzebnego komponentu zajmuje więcej czasu niż napisanie go od nowa. Rozwiązanie — kolokacja atomów według funkcji: atom używany tylko przez jedną funkcję przechowuj wewnątrz tej funkcji, a nie w shared. Do shared trafiają tylko globalne atomy (Button, Text, Input). Według Brada Frosta, kolokacja zmniejsza liczbę shared-atomów o 60–70% bez utraty wielokrotnego użytku.

Atomic Design — dotyczy tylko UI czy również kodu?

Atomic Design pierwotnie — metodologia projektowania interfejsów (design), ale we współczesnej praktyce jest używana także do organizacji kodu (code). W narzędziach projektowych (Figma, Sketch) atomy to komponenty biblioteki; w kodzie — funkcje i klasy. Metodologia nie rozróżnia design i code — atom jest ten sam zarówno w makiecie, jak i w implementacji. W IT Sectr używamy supernova.io do synchronizacji atomów projektowych i kodu, co eliminuje rozbieżność między makietą a gotowym interfejsem.

Podsumowanie

  • Atomic Design — metodologia hierarchicznej organizacji komponentów UI, wykorzystująca metaforę atomów, molekuł, organizmów, szablonów i stron.
  • Atomy — podstawowe elementy (przycisk, pole wejściowe); molekuły — ich kombinacje (pole z etykietą); organizmy — złożone bloki (formularz wyszukiwania).
  • Szablony określają szkielet, strony — konkretne wypełnienie danymi.
  • Atomic Design nie zarządza stanem i logiką biznesową — odpowiada tylko za organizację warstwy UI.
  • W programowaniu mobilnym atomy naturalnie opisują funkcje @Composable (Android) i struktury View (iOS).
  • Atomic Design dobrze łączy się z FSD: FSD określa architekturę, Atomic Design — organizację UI wewnątrz plasterków.
  • Główne zalety — wielokrotne użycie komponentów, spójność wizualna, szybkość tworzenia nowych ekranów.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również