Atomic Design — mga batayan, atomo, molekula, at organismo sa UI

May-akda: IT Sectr Nai-publish: 2026-02-21 Oras ng pagbabasa: 11 min

Ipinapaliwanag namin kung ano ang Atomic Design — metodolohiya ng disenyo ng interface na iminungkahi ni Brad Frost noong 2013, na humihiram ng metapora ng mga atomo, molekula, at organismo para sa pagbuo ng hierarchy ng mga UI component. Hindi tulad ng nakabatay sa pahinang approach, kung saan ang interface ay idinisenyo bawat screen, hinahati ng Atomic Design ang UI sa pinakamaliit na magagamit muli na mga elemento (atomo) at binubuo ang mga ito sa mas kumplikadong mga istraktura. Ayon kay Brad Frost (2016), ang metodolohiya ay ginagamit sa mga design system ng 67% ng malalaking kumpanya, kabilang ang IBM, Airbnb, at Google.

Mga Pangunahing Punto

  • Atomic Design — metodolohiya na naghahati ng mga UI component sa limang antas: atomo, molekula, organismo, template, at pahina.
  • Atomo — mga pangunahing HTML elemento (buton, input field, label); molekula — kombinasyon ng atomo (input field na may label); organismo — kumplikadong bloke (login form).
  • Metodolohiya na iminungkahi ni Brad Frost noong 2013 at inilarawan sa aklat na "Atomic Design" (2016).
  • Ang Atomic Design ay bumubuo ng pundasyon ng mga modernong design system: Material Design, Carbon (IBM), Lightning (Salesforce).
  • Sa mobile development, ang Atomic Design ay sumasama sa mga component framework — Jetpack Compose at SwiftUI — kung saan ang mga custom na component ay natural na naglalarawan ng mga atomo at molekula.

Ano ang Atomic Design?

Atomic Design — metodolohiya ng paglikha ng hierarchical na mga sistema ng interface, kung saan ang bawat UI elemento ay kabilang sa isa sa limang antas: atomo (mga pangunahing elemento), molekula (kombinasyon ng atomo), organismo (kumplikadong bloke), template (balangkas ng pahina), at pahina (konkretong screen na may datos). Ang analogiya ay hiram mula sa kemika: ang mga atomo ay nagsasama-sama sa mga molekula, molekula sa organismo, organismo sa template, template ay pinupunan ng nilalaman at nagiging pahina.

Ang metodolohiya ay iminungkahi ng web designer na si Brad Frost noong 2013 bilang tugon sa problema ng "pag-iisip na nakabatay sa pahina" — kung saan ang bawat bagong screen ay idinisenyo mula sa simula, hindi isinasaalang-alang ang mga umiiral nang component. Sa aklat na "Atomic Design" (2016), inilalarawan ni Frost ang implementasyon ng metodolohiya sa mga proyekto ng malalaking kumpanya: IBM, GE, Starbucks. Ayon sa Nielsen Norman Group (2022), binabawasan ng Atomic Design ang oras ng disenyo ng mga bagong screen ng 30–50% sa pamamagitan ng muling paggamit ng mga yari na component.

Ang Atomic Design — ay hindi gaanong teknolohiya kundi isang pilosopiya ng organisasyon ng UI. Hindi ito nakatali sa isang partikular na framework at naaangkop sa web (React, Vue) at sa mobile development (Jetpack Compose, SwiftUI). Sa IT Sectr, ginagamit namin ang Atomic Design para sa pagbuo ng mga design system ng kliyente: kinikilala namin ang mga atomikong component sa yugto ng disenyo at inililipat ang mga ito sa mga code component ng Compose/SwiftUI.

Limang antas: atomo, molekula, organismo, template, pahina

Ang bawat antas ng Atomic Design ay lumulutas ng sarili nitong gawain at may mahigpit na lugar ng responsibilidad. Atomo — ang pinakamaliit na bloke ng gusali ng interface, na hindi na maaaring hatiin pa nang hindi nawawala ang kahulugan: buton, text field, icon, label, checkbox. Ang mga atomo ay hindi naglalaman ng business logic at hindi umaasa sa konteksto. Tinutukoy nila ang mga pangunahing visual na katangian: kulay, sukat, margin, tipograpiya.

Molekula — kombinasyon ng dalawa o higit pang atomo, na bumubuo ng mga simpleng functional na yunit. Ang input field na may label at mensahe ng error — molekula. Ang product card na may larawan, pangalan, at presyo — molekula. Ang mga molekula ay maaaring maglaman ng pangunahing lohika (ipakita/itago ang error), ngunit hindi naglalaman ng mga proseso ng negosyo. Ang mga molekula ay ang unang antas kung saan ang mga component ay nagiging magagamit muli sa iba't ibang screen.

Organismo — kumplikadong bloke ng interface, binubuo ng mga molekula at atomo, na nagpapatupad ng isang partikular na function ng application. Ang login form (email field, password field, send button, link "nakalimutan ang password") — organismo. Ang header na may logo, paghahanap, at nabigasyon — organismo. Ang mga organismo ay maaaring maglaman ng business logic at ma-access ang API, ngunit sa loob lamang ng kanilang function.

Template — balangkas ng pahina na tumutukoy sa paglalagay ng mga organismo sa screen nang walang konkretong nilalaman. Tinutukoy ng template ang grid, column, content zone — wireframe sa antas ng code. Ang mga template ay hindi naglalaman ng datos, placeholder lamang. Pinapayagan nila ang pagsusuri ng istraktura ng pahina bago ito punan ng nilalaman.

Pahina — konkretong screen ng application, kung saan ang template ay napuno ng tunay na datos. Sa antas na ito, sinusuri kung paano ang hitsura ng mga component na may tunay na nilalaman (mahabang string, kawalan ng datos, error). Ang mga pahina ay ang tanging antas na nakikita ng end user. Ang mga pagbabago sa antas ng pahina ay hindi dapat makaapekto sa mga atomo, molekula, at organismo — kung ang isang component ay kailangang baguhin, ang pagbabago ay ginagawa sa antas nito, at ang pahina ay awtomatikong kumukuha nito.

Mga benepisyo at limitasyon ng Atomic Design

Mga benepisyo ng Atomic Design ay nagpapakita kapag nag-scale ng mga interface. Ang isang pinag-isang library ng component ay ginagarantiyahan ang visual consistency: ang buton ay mukhang pareho sa lahat ng screen dahil ito ay parehong atomo. Ayon kay Brad Frost (2016), ang mga kumpanyang nagpatupad ng Atomic Design ay binabawasan ang oras ng pag-develop ng mga bagong screen ng 30–50% sa pamamagitan ng muling paggamit ng mga yari na molekula at organismo.

KatangianAtomic DesignNakabatay sa pahinang approach
Muling paggamit ng componentMataas (atomo, molekula, organismo)Mababa (bawat screen mula sa simula)
Visual consistencyGarantisadoManu-manong kontrol
Bilis ng paggawa ng bagong screenMataas (pag-assemble mula sa yari na bloke)Mababa (disenyo + coding mula sa simula)
Kompleksidad ng implementasyonMataas (kailangan ng component catalog)Mababa (pamilyar na modelo)
TestabilityMataas (bawat atomo ay isolated)Integrasyon (buong screen nang sabay)

Mga limitasyon — hindi inilalarawan ng Atomic Design kung paano pamahalaan ang estado ng application. Ang metodolohiya ay sumasagot lamang sa tanong na "paano ayusin ang mga UI component", ngunit hindi hinahawakan ang business logic, routing, o paghawak ng datos. Pangalawang limitasyon — kahirapan sa pagtukoy ng mga hangganan: saan nagtatapos ang molekula at nagsisimula ang organismo? Sa praktika, ang mga hangganan ay malabo, at ang iba't ibang koponan ay maaaring mag-classify ng parehong component nang iba. Inirerekomenda na ayusin ang mga patakaran sa mga design token at component catalog (Storybook, Jetpack Compose Preview).

Pangatlong limitasyon — labis na abstraction para sa maliliit na proyekto. Kung ang application ay binubuo ng 5 screen, ang paggawa ng hierarchy ng mga atomo at molekula ay dagdag na trabaho. Ang Atomic Design ay nagiging kapaki-pakinabang kapag ang bilang ng mga screen ay lumampas sa 20 at ang mga component ay ginagamit muli sa iba't ibang pahina.

Atomic Design vs Feature-Sliced Design

Atomic Design at Feature-Sliced Design (FSD) ay lumulutas ng iba't ibang gawain at maaaring gamitin nang magkasama. Ang Atomic Design ay isang metodolohiya ng pag-oorganisa ng mga UI component, FSD — metodolohiya ng pag-oorganisa ng mga business layer at buong application. Sumasagot ang Atomic Design sa tanong na "paano hatiin ang UI sa mga magagamit muli na bahagi", FSD — "paano ayusin ang code sa paligid ng mga business feature". Hindi sila nagkakumpitensya: maaaring magkaroon ng FSD structure na may features at entities layers, at sa loob ng bawat layer gamitin ang Atomic Design para sa pag-oorganisa ng mga UI component.

KriteryaAtomic DesignFeature-Sliced Design
LaranganMga UI componentArkitektura ng application
Unit ng pag-grupoMetapora ng kemika (atomo → molekula → organismo)Business feature (slice)
Mga dependencyMula atomo hanggang pahina (ibaba pataas)Mula app hanggang shared (itaas pababa)
Paghawak ng datosHindi inilarawanSa pamamagitan ng model + api segments
PagsusukatPahalang (mas maraming component)Patayo (mas maraming feature)

Karaniwang kombinasyon: tinutukoy ng FSD ang modular na istraktura ng application (mga layer, slices), Atomic Design — ang panloob na istraktura ng mga UI component sa loob ng bawat slice. Halimbawa, ang slice feature.auth ay naglalaman ng mga molekula (LoginForm, PasswordInput) at organismo (AuthPage), na binuo ayon sa mga patakaran ng Atomic Design. Ang shared layer ay naglalaman ng mga atomo (Button, Input, Label), magagamit muli sa lahat ng feature.

Atomic Design sa mga mobile app: Compose at SwiftUI

Ang Jetpack Compose at SwiftUI ay natural na sumusuporta sa Atomic Design hierarchy sa pamamagitan ng component composition. Atomo sa Compose — mga pangunahing @Composable function: AppButton, AppTextField, AppCheckbox. Ang bawat function ay tumatanggap ng mga parameter ng kustomisasyon (kulay, sukat, estado) at hindi naglalaman ng business logic. Ang mga atomo ay tinutukoy sa shared layer at iniluluwas bilang UI-kit.

Molekula — mga @Composable function na nagsasama ng maraming atomo: LabeledTextField (label + input field + mensahe ng error), ProductCard (larawan + pangalan + presyo). Ang mga molekula ay maaaring maglaman ng pangunahing estado (validity ng field), ngunit hindi naa-access ang API o ViewModel. Ang mga ito ay ginagamit muli sa iba't ibang organismo.

Organismo — mga @Composable function sa antas ng feature: LoginForm (LabeledTextField para sa email + LabeledTextField para sa password + AppButton send + recovery link). Ang mga organismo ay gumagana sa ViewModel sa pamamagitan ng Intent function at maaaring maglaman ng business logic. Sa SwiftUI, ang katulad na hierarchy ay binuo sa pamamagitan ng @ViewBuilder at custom na View structures.

Sa SwiftUI, atomo — custom na View structure AppButton, molekula — input field na may label sa HStack, organismo — login form. Ang ganitong istraktura ay nagpapahintulot sa muling paggamit ng mga component sa lahat ng screen — ang pagbabago ng isang atomo (kulay ng buton) ay awtomatikong nalalapat sa lahat ng screen. Ang kombinasyon ng Atomic Design sa isang design system ay ginagarantiyahan ang consistency ng interface nang walang manu-manong kontrol ng bawat screen.

Mga Madalas Itanong

Kailangan bang mahigpit na sundin ang limang antas ng Atomic Design?

Ang limang antas ay rekomendasyon, hindi batas. Maraming design system (Material Design, IBM Carbon) ang gumagamit ng 3 o 4 na antas: mga pangunahing component, pinagsamang component, at template. Pangunahing patakaran — bawat component ay kabilang sa isang antas at maaaring magamit muli sa mga susunod na antas. Kung nakikita mo na ang mga antas na "molekula" at "organismo" sa iyong proyekto ay hindi naiiba — pagsamahin ang mga ito. Ang mga atomo at pahina ay ang tanging sapilitang antas.

Paano subukan ang mga Atomic Design component?

Ang mga atomo ay sinusuri nang biswal (SnapShot tests, Compose Preview) — sinusuri kung ang buton na may tinukoy na mga property ay na-render nang tama. Ang mga molekula ay sinusuri bilang kombinasyon ng atomo — sinusuri ang estado (error, tagumpay, hindi pinagana). Ang mga organismo ay nangangailangan ng integrasyon tests — sinusuri ang interaksyon sa ViewModel (pagpapadala ng form, pagkarga ng datos). Sa IT Sectr, ginagamit namin ang Compose Test para sa Android at XCTest para sa iOS; para sa visual testing — Paparazzi (Android) at SnapshotTesting (iOS).

Maaari bang gamitin ang Atomic Design nang walang design system?

Pwede, ngunit bumababa ang epektibidad. Kung walang design system at design token, ang mga atomo ay walang pare-parehong estilo — bawat developer ay gumagawa ng sarili nilang atomo na may arbitrary na kulay at margin, na humahantong sa visual na hindi pagkakapare-pareho. Ang Atomic Design at design system — mga komplementaryong konsepto: Tinutukoy ng Atomic Design ang hierarchy, ang design system — ang visual na wika. Inirerekomenda na ipatupad ang mga ito nang magkasama: una design token (kulay, tipograpiya, margin), pagkatapos atomo, pagkatapos molekula at organismo.

Paano haharapin ang "atom zone" (masyadong maraming atomo)?

"Atom zone" — sitwasyon kung saan ang bilang ng mga atomo ay lumampas sa makatwirang limitasyon (100+), at ang paghahanap ng kinakailangang component ay mas matagal kaysa sa pagsulat nito mula sa simula. Solusyon — colocation ng mga atomo ayon sa feature: ang atomo na ginagamit lamang ng isang feature ay itago sa loob ng feature na iyon, hindi sa shared. Sa shared ay inilalagay lamang ang mga global na atomo (Button, Text, Input). Ayon kay Brad Frost, binabawasan ng colocation ang bilang ng shared atomo ng 60–70% nang walang pagkawala ng muling paggamit.

Ang Atomic Design ba ay para lamang sa UI o para rin sa code?

Ang Atomic Design ay orihinal na metodolohiya ng disenyo ng interface (design), ngunit sa modernong praktika ay ginagamit din para sa pag-oorganisa ng code (code). Sa mga tool sa disenyo (Figma, Sketch), ang mga atomo ay mga component ng library; sa code — mga function at klase. Ang metodolohiya ay hindi nagtatangi sa pagitan ng design at code — ang atomo ay pareho sa mockup at sa implementasyon. Sa IT Sectr, ginagamit namin ang supernova.io para sa synchronisasyon ng design atomo at code atomo, na nag-aalis ng pagkakaiba sa pagitan ng mockup at huling interface.

Buod

  • Atomic Design — metodolohiya ng hierarchical na organisasyon ng mga UI component, gamit ang metapora ng atomo, molekula, organismo, template, at pahina.
  • Atomo — mga pangunahing elemento (buton, input field); molekula — kanilang kombinasyon (field na may label); organismo — kumplikadong bloke (search form).
  • Tinutukoy ng template ang balangkas, pahina — ang konkretong pagpuno ng datos.
  • Ang Atomic Design ay hindi namamahala ng estado at business logic — responsable lamang para sa organisasyon ng UI layer.
  • Sa mobile development, ang mga atomo ay natural na inilalarawan ng mga @Composable function (Android) at View structures (iOS).
  • Ang Atomic Design ay mahusay na sumasama sa FSD: tinutukoy ng FSD ang arkitektura, Atomic Design — ang UI organisasyon sa loob ng slices.
  • Mga pangunahing benepisyo — muling paggamit ng component, visual consistency, bilis ng paggawa ng mga bagong screen.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din