Atomic Design — alapok, atomok, molekulák és organizmusok a UI-ban

Szerző: IT Sectr Megjelenés: 2026-02-21 Olvasási idő: 11 perc

Elmagyarázzuk, mi az Atomic Design — Brad Frost által 2013-ban javasolt interfésztervezési módszertan, amely az atomok, molekulák és organizmusok metaforáját kölcsönzi a UI-komponensek hierarchiájának felépítéséhez. Ellentétben az oldal-alapú megközelítéssel, ahol a felület képernyőnként kerül kialakításra, az Atomic Design a UI-t a legkisebb újrafelhasználható elemekre (atomokra) bontja, és azokból épít összetettebb struktúrákat. Brad Frost (2016) szerint a módszertant a nagyvállalatok 67%-ának tervezési rendszerei használják, beleértve az IBM-et, az Airbnb-t és a Google-t.

Főbb pontok

  • Atomic Design — módszertan, amely a UI-komponenseket öt szintre osztja: atomok, molekulák, organizmusok, sablonok és oldalak.
  • Atomok — alapvető HTML-elemek (gomb, beviteli mező, címke); molekulák — atomok kombinációi (beviteli mező címkével); organizmusok — összetett blokkok (bejelentkezési űrlap).
  • A módszertant Brad Frost javasolta 2013-ban, és az "Atomic Design" (2016) című könyvében írta le.
  • Az Atomic Design a modern tervezési rendszerek alapját képezi: Material Design, Carbon (IBM), Lightning (Salesforce).
  • A mobilfejlesztésben az Atomic Design integrálódik a komponens keretrendszerekkel — Jetpack Compose és SwiftUI — ahol az egyedi komponensek természetes módon írják le az atomokat és molekulákat.

Mi az Atomic Design?

Atomic Design — hierarchikus felületrendszerek létrehozásának módszertana, amelyben minden UI-elem az öt szint egyikéhez tartozik: atomok (alapelemek), molekulák (atomok kombinációi), organizmusok (összetett blokkok), sablonok (oldalvázak) és oldalak (konkrét adatokkal rendelkező képernyők). Az analógia a kémiából származik: az atomok molekulákká, a molekulák organizmusokká, az organizmusok sablonokká egyesülnek, a sablonok tartalommal töltődnek fel és oldalakká válnak.

A módszertant Brad Frost webtervező javasolta 2013-ban, válaszul az "oldal-alapú gondolkodás" problémájára — amikor minden új képernyőt a semmiből terveznek, figyelmen kívül hagyva a meglévő komponenseket. Az "Atomic Design" (2016) című könyvében Frost leírja a módszertan bevezetését nagyvállalati projektekben: IBM, GE, Starbucks. A Nielsen Norman Group (2022) szerint az Atomic Design 30–50%-kal csökkenti az új képernyők tervezési idejét a kész komponensek újrafelhasználásának köszönhetően.

Az Atomic Design — nem annyira technológia, mint inkább a UI-szervezés filozófiája. Nem kötődik egy adott keretrendszerhez, és alkalmazható mind a weben (React, Vue), mind a mobilfejlesztésben (Jetpack Compose, SwiftUI). Az IT Sectr-nél az Atomic Design-t használjuk az ügyfelek tervezési rendszereinek felépítéséhez: az atomi komponenseket a tervezési szakaszban azonosítjuk, és átültetjük őket Compose/SwiftUI kódkomponensekbe.

Öt szint: atomok, molekulák, organizmusok, sablonok, oldalak

Az Atomic Design minden szintje megoldja a saját feladatát, és szigorú felelősségi körrel rendelkezik. Atomok — a felület legkisebb építőkövei, amelyek nem bonthatók tovább jelentésvesztés nélkül: gomb, szövegmező, ikon, címke, jelölőnégyzet. Az atomok nem tartalmaznak üzleti logikát, és nem függnek a kontextustól. Meghatározzák az alapvető vizuális jellemzőket: szín, méret, margók, tipográfia.

Molekulák — két vagy több atom kombinációi, amelyek egyszerű funkcionális egységeket alkotnak. A beviteli mező címkével és hibaüzenettel — molekula. A termékkártya képpel, névvel és árral — molekula. A molekulák tartalmazhatnak alapvető logikát (hiba megjelenítése/elrejtése), de nem tartalmaznak üzleti folyamatokat. A molekulák az első szint, ahol a komponensek újrafelhasználhatóvá válnak a különböző képernyők között.

Organizmusok — összetett felületi blokkok, amelyek molekulákból és atomokból állnak, és az alkalmazás egy konkrét funkcióját valósítják meg. A bejelentkezési űrlap (e-mail mező, jelszó mező, küldés gomb, "elfelejtett jelszó" link) — organizmus. A fejléc logóval, kereséssel és navigációval — organizmus. Az organizmusok tartalmazhatnak üzleti logikát és hozzáférhetnek az API-hoz, de csak a saját funkciójuk keretein belül.

Sablonok — oldalvázak, amelyek meghatározzák az organizmusok elhelyezkedését a képernyőn konkrét tartalom nélkül. A sablon meghatározza a rácsot, oszlopokat, tartalomzónákat — wireframe kód szinten. A sablonok nem tartalmaznak adatokat, csak helykitöltőket. Lehetővé teszik az oldal szerkezetének értékelését a tartalommal való feltöltés előtt.

Oldalak — az alkalmazás konkrét képernyői, ahol a sablon valós adatokkal van feltöltve. Ezen a szinten ellenőrzik, hogy a komponensek hogyan néznek ki valódi tartalommal (hosszú sorok, adatok hiánya, hibák). Az oldalak az egyetlen szint, amelyet a végfelhasználó lát. Az oldalak szintjén végzett változtatások nem érinthetik az atomokat, molekulákat és organizmusokat — ha egy komponenst módosítani kell, a változtatást annak szintjén kell elvégezni, és az oldal automatikusan átveszi azt.

Az Atomic Design előnyei és korlátai

Előnyei az Atomic Design-nak a felületek skálázásakor mutatkoznak meg. Az egységes komponenskönyvtár vizuális konzisztenciát garantál: a gomb minden képernyőn ugyanúgy néz ki, mert ugyanaz az atom. Brad Frost (2016) szerint az Atomic Design-t bevezető vállalatok 30–50%-kal csökkentik az új képernyők fejlesztési idejét a kész molekulák és organizmusok újrafelhasználásának köszönhetően.

JellemzőAtomic DesignOldal-alapú megközelítés
Komponensek újrafelhasználásaMagas (atomok, molekulák, organizmusok)Alacsony (minden képernyő a semmiből)
Vizuális konzisztenciaGarantáltKézi ellenőrzés
Új képernyő létrehozásának sebességeMagas (összeszerelés kész blokkokból)Alacsony (tervezés + kódolás a semmiből)
Bevezetés összetettségeMagas (komponenskatalógus szükséges)Alacsony (ismert modell)
TesztelhetőségMagas (minden atom elkülönített)Integrációs (teljes képernyő egyszerre)

Korlátai — az Atomic Design nem írja le, hogyan kell kezelni az alkalmazás állapotát. A módszertan csak arra a kérdésre válaszol, hogy "hogyan szervezzük a UI-komponenseket", de nem érinti az üzleti logikát, az útválasztást vagy az adatkezelést. Második korlát — a határok meghatározásának nehézsége: hol végződik a molekula és hol kezdődik az organizmus? A gyakorlatban a határok elmosódottak, és különböző csapatok eltérően osztályozhatják ugyanazt a komponenst. Javasolt a szabályok rögzítése a tervezési tokenekben és a komponenskatalógusban (Storybook, Jetpack Compose Preview).

Harmadik korlát — túlzott absztrakció kis projektek esetén. Ha az alkalmazás 5 képernyőből áll, az atomok és molekulák hierarchiájának létrehozása felesleges munka. Az Atomic Design akkor válik előnyössé, ha a képernyők száma meghaladja a 20-at, és a komponensek több oldalon is újrafelhasználásra kerülnek.

Atomic Design kontra Feature-Sliced Design

Atomic Design és Feature-Sliced Design (FSD) különböző feladatokat oldanak meg, és együtt is használhatók. Az Atomic Design a UI-komponensek szervezésének módszertana, az FSD — az üzleti rétegek és a teljes alkalmazás szervezésének módszertana. Az Atomic Design arra a kérdésre válaszol, hogy "hogyan osszuk fel a UI-t újrafelhasználható részekre", az FSD — "hogyan szervezzük a kódot az üzleti funkciók köré". Nem versenyeznek: lehet FSD-struktúrája features és entities rétegekkel, és minden rétegen belül használni az Atomic Design-t a UI-komponensek szervezésére.

KritériumAtomic DesignFeature-Sliced Design
TerületUI-komponensekAlkalmazásarchitektúra
Csoportosítási egységKémiai metafora (atom → molekula → organizmus)Üzleti funkció (szelet)
FüggőségekAtomoktól az oldalakig (alulról felfelé)App-tól a shared-ig (felülről lefelé)
AdatkezelésNincs leírvaModel + api szegmenseken keresztül
SkálázásVízszintes (több komponens)Függőleges (több funkció)

Tipikus kombináció: az FSD meghatározza az alkalmazás moduláris szerkezetét (rétegek, szeletek), az Atomic Design — a UI-komponensek belső szerkezetét az egyes szeleteken belül. Például a feature.auth szelet molekulákat (LoginForm, PasswordInput) és organizmusokat (AuthPage) tartalmaz, amelyek az Atomic Design szabályai szerint épülnek fel. A shared réteg atomokat (Button, Input, Label) tartalmaz, amelyek minden funkcióban újrafelhasználhatók.

Atomic Design mobilalkalmazásokban: Compose és SwiftUI

A Jetpack Compose és a SwiftUI természetes módon támogatja az Atomic Design hierarchiát a komponenskompozíción keresztül. Atomok a Compose-ban — alapvető @Composable függvények: AppButton, AppTextField, AppCheckbox. Minden függvény testreszabási paramétereket fogad (szín, méret, állapot), és nem tartalmaz üzleti logikát. Az atomok a shared rétegben vannak meghatározva és UI-kitként exportálva.

Molekulák — @Composable függvények, amelyek több atomot kombinálnak: LabeledTextField (címke + beviteli mező + hibaüzenet), ProductCard (kép + név + ár). A molekulák tartalmazhatnak alapvető állapotot (mező érvényessége), de nem férnek hozzá az API-hoz vagy a ViewModel-hez. Különböző organizmusokban használhatók újra.

Organizmusok — @Composable függvények funkció szinten: LoginForm (LabeledTextField e-mailhez + LabeledTextField jelszóhoz + AppButton küldés + helyreállítási link). Az organizmusok Intent függvényeken keresztül dolgoznak a ViewModel-lel, és tartalmazhatnak üzleti logikát. A SwiftUI-ban hasonló hierarchia építhető @ViewBuilder és egyedi View struktúrák segítségével.

A SwiftUI-ban az atom — egyedi View struktúra AppButton, a molekula — beviteli mező címkével HStack-ben, az organizmus — bejelentkezési űrlap. Ez a struktúra lehetővé teszi a komponensek újrafelhasználását minden képernyőn — egy atom módosítása (gomb színe) automatikusan alkalmazódik az összes képernyőre. Az Atomic Design és a tervezési rendszer kombinációja garantálja a felület konzisztenciáját minden képernyő kézi ellenőrzése nélkül.

Gyakran Ismételt Kérdések

Szigorúan követni kell az Atomic Design öt szintjét?

Az öt szint ajánlás, nem törvény. Sok tervezési rendszer (Material Design, IBM Carbon) 3 vagy 4 szintet használ: alapkomponensek, összetett komponensek és sablonok. Fő szabály — minden komponens egy szinthez tartozik, és a következő szinteken újrafelhasználható. Ha úgy látja, hogy a "molekula" és "organizmus" szintek a projektjében nem különböznek — vonja össze őket. Az atomok és az oldalak az egyetlen kötelező szintek.

Hogyan kell tesztelni az Atomic Design komponenseket?

Az atomokat vizuálisan tesztelik (SnapShot tesztek, Compose Preview) — ellenőrzik, hogy a megadott tulajdonságokkal rendelkező gomb helyesen jelenik-e meg. A molekulákat atomok kombinációjaként tesztelik — ellenőrzik az állapotot (hiba, siker, letiltva). Az organizmusok integrációs teszteket igényelnek — ellenőrzik a ViewModel-lel való interakciót (űrlap elküldése, adatok betöltése). Az IT Sectr-nél Compose Test-et használunk Androidhoz és XCTest-et iOS-hez; vizuális teszteléshez — Paparazzi (Android) és SnapshotTesting (iOS).

Használható az Atomic Design tervezési rendszer nélkül?

Használható, de a hatékonyság csökken. Tervezési rendszer és tervezési tokenek nélkül az atomoknak nincs egységes stílusuk — minden fejlesztő saját atomokat hoz létre tetszőleges színekkel és margókkal, ami vizuális rendezetlenséghez vezet. Az Atomic Design és a tervezési rendszer — kiegészítő fogalmak: az Atomic Design meghatározza a hierarchiát, a tervezési rendszer — a vizuális nyelvet. Javasolt együtt bevezetni őket: először tervezési tokenek (színek, tipográfia, margók), aztán atomok, majd molekulák és organizmusok.

Hogyan kezeljük az "atomi zónát" (túl sok atom)?

"Atomi zóna" — olyan helyzet, amikor az atomok száma meghaladja az ésszerű határt (100+), és a szükséges komponens megtalálása több időt vesz igénybe, mint a semmiből való megírása. Megoldás — atomok elhelyezése funkciók szerint: a csak egy funkció által használt atomot tároljuk a funkción belül, ne a shared-ben. A shared-be csak a globális atomok kerülnek (Button, Text, Input). Brad Frost szerint az atomok funkciók szerinti elhelyezése 60–70%-kal csökkenti a shared atomok számát az újrafelhasználhatóság elvesztése nélkül.

Az Atomic Design csak UI-ra vonatkozik, vagy kódra is?

Az Atomic Design eredendően interfésztervezési módszertan (design), de a modern gyakorlatban kód szervezésére is használják (code). Tervezőeszközökben (Figma, Sketch) az atomok könyvtári komponensek; kódban — függvények és osztályok. A módszertan nem tesz különbséget design és code között — az atom ugyanaz a makettben és a megvalósításban. Az IT Sectr-nél a supernova.io-t használjuk a design atomok és kód atomok szinkronizálására, ami kiküszöböli a makett és a végleges felület közötti eltérést.

Összegzés

  • Atomic Design — a UI-komponensek hierarchikus szervezésének módszertana, az atomok, molekulák, organizmusok, sablonok és oldalak metaforáját használva.
  • Atomok — alapelemek (gomb, beviteli mező); molekulák — kombinációik (mező címkével); organizmusok — összetett blokkok (kereső űrlap).
  • A sablonok meghatározzák a vázat, az oldalak — a konkrét adatokkal való feltöltést.
  • Az Atomic Design nem kezeli az állapotot és az üzleti logikát — csak a UI réteg szervezéséért felelős.
  • A mobilfejlesztésben az atomokat természetesen írják le @Composable függvények (Android) és View struktúrák (iOS).
  • Az Atomic Design jól kombinálható FSD-vel: az FSD meghatározza az architektúrát, az Atomic Design — a UI szervezését a szeleteken belül.
  • Fő előnyök — komponensek újrafelhasználása, vizuális konzisztencia, új képernyők létrehozásának sebessége.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is