Atomic Design — fondamenti, atomi, molecole e organismi nell'interfaccia utente

Autore: IT Sectr Pubblicato: 2026-02-21 Tempo di lettura: 11 min

Spieghiamo cos'è l'Atomic Design — una metodologia di progettazione delle interfacce proposta da Brad Frost nel 2013, che prende in prestito la metafora di atomi, molecole e organismi per costruire una gerarchia di componenti dell'interfaccia utente. A differenza dell'approccio basato sulle pagine, in cui l'interfaccia viene progettata schermo per schermo, l'Atomic Design suddivide l'interfaccia utente negli elementi riutilizzabili più piccoli (atomi) e li assembla in strutture più complesse. Secondo Brad Frost (2016), la metodologia è utilizzata nei sistemi di design del 67% delle grandi aziende, tra cui IBM, Airbnb e Google.

Punti chiave

  • Atomic Design — una metodologia che suddivide i componenti dell'interfaccia utente in cinque livelli: atomi, molecole, organismi, template e pagine.
  • Gli atomi sono elementi HTML di base (pulsante, campo di input, etichetta); le molecole sono combinazioni di atomi (campo di input con etichetta); gli organismi sono blocchi complessi (modulo di accesso).
  • La metodologia è stata proposta da Brad Frost nel 2013 e descritta nel libro "Atomic Design" (2016).
  • L'Atomic Design è alla base dei moderni sistemi di design: Material Design, Carbon (IBM), Lightning (Salesforce).
  • Nello sviluppo mobile, l'Atomic Design si integra con i framework a componenti — Jetpack Compose e SwiftUI — dove i componenti personalizzati descrivono naturalmente atomi e molecole.

Cos'è l'Atomic Design?

L'Atomic Design è una metodologia per creare sistemi di interfacce gerarchici, in cui ogni elemento dell'interfaccia utente appartiene a uno dei cinque livelli: atomi (elementi di base), molecole (combinazioni di atomi), organismi (blocchi complessi), template (wireframe di pagina) e pagine (schermate specifiche con dati). L'analogia è presa in prestito dalla chimica: gli atomi si combinano in molecole, le molecole in organismi, gli organismi in template, i template vengono riempiti di contenuto e diventano pagine.

La metodologia è stata proposta dal web designer Brad Frost nel 2013 come risposta al problema del "pensiero basato sulle pagine" — quando ogni nuova schermata viene progettata da zero senza considerare i componenti esistenti. Nel libro "Atomic Design" (2016), Frost descrive l'implementazione della metodologia in progetti di grandi aziende: IBM, GE, Starbucks. Secondo Nielsen Norman Group (2022), l'Atomic Design riduce il tempo di progettazione di nuove schermate del 30–50% grazie al riutilizzo di componenti pronti.

L'Atomic Design non è tanto una tecnologia quanto una filosofia di organizzazione dell'interfaccia utente. Non è legato a un framework specifico ed è applicabile sia nel web (React, Vue) che nello sviluppo mobile (Jetpack Compose, SwiftUI). In IT Sectr, utilizziamo l'Atomic Design per costruire sistemi di design per i clienti: identifichiamo i componenti atomici nella fase di progettazione e li trasferiamo in componenti di codice in Compose/SwiftUI.

Cinque livelli: atomi, molecole, organismi, template, pagine

Ogni livello dell'Atomic Design risolve il proprio problema e ha un'area di responsabilità rigorosa. Gli atomi sono i più piccoli elementi costitutivi dell'interfaccia che non possono essere ulteriormente suddivisi senza perdere significato: pulsante, campo di testo, icona, etichetta, casella di controllo. Gli atomi non contengono logica di business e non dipendono dal contesto. Definiscono le caratteristiche visive di base: colore, dimensione, spaziatura, tipografia.

Le molecole sono combinazioni di due o più atomi che formano unità funzionali semplici. Un campo di input con etichetta e messaggio di errore è una molecola. Una scheda prodotto con immagine, nome e prezzo è una molecola. Le molecole possono contenere logica di base (mostrare/nascondere errore), ma non contengono processi di business. Le molecole sono il primo livello in cui i componenti diventano riutilizzabili su schermate diverse.

Gli organismi sono blocchi di interfaccia complessi composti da molecole e atomi che implementano una funzione specifica dell'applicazione. Un modulo di accesso (campo email, campo password, pulsante di invio, link "password dimenticata") è un organismo. Un'intestazione con logo, ricerca e navigazione è un organismo. Gli organismi possono contenere logica di business e accedere all'API, ma solo nell'ambito della loro funzione.

I template sono wireframe di pagina che definiscono la disposizione degli organismi sullo schermo senza contenuto specifico. Un template definisce la griglia, le colonne, le aree di contenuto — un wireframe a livello di codice. I template non contengono dati, solo segnaposti. Permettono di valutare la struttura della pagina prima di riempirla con il contenuto.

Le pagine sono schermate specifiche dell'applicazione in cui il template viene riempito con dati reali. A questo livello, si verifica l'aspetto dei componenti con contenuto reale (stringhe lunghe, dati mancanti, errori). Le pagine sono l'unico livello che l'utente finale vede. Le modifiche a livello di pagina non devono influenzare atomi, molecole e organismi — se un componente deve essere modificato, la modifica viene apportata al suo livello e la pagina lo recepisce automaticamente.

Vantaggi e limiti dell'Atomic Design

I vantaggi dell'Atomic Design diventano evidenti quando si scalano le interfacce. Una libreria di componenti unica garantisce la coerenza visiva: un pulsante appare uguale su tutte le schermate perché è lo stesso atomo. Secondo Brad Frost (2016), le aziende che hanno implementato l'Atomic Design riducono i tempi di sviluppo di nuove schermate del 30–50% grazie al riutilizzo di molecole e organismi pronti.

CaratteristicaAtomic DesignApproccio basato sulle pagine
Riutilizzo dei componentiAlto (atomi, molecole, organismi)Basso (ogni schermata da zero)
Coerenza visivaGarantitaControllo manuale
Velocità di creazione di nuove schermateAlta (assemblaggio da blocchi pronti)Bassa (progettazione + markup da zero)
Complessità di implementazioneAlta (richiede un catalogo componenti)Bassa (modello familiare)
TestabilitàAlta (ogni atomo è isolato)Integrazione (intera schermata in una volta)

Limiti — l'Atomic Design non descrive come gestire lo stato dell'applicazione. La metodologia risponde solo alla domanda "come organizzare i componenti dell'interfaccia utente" ma non affronta la logica di business, il routing o la gestione dei dati. Il secondo limite è la difficoltà di definire i confini: dove finisce una molecola e dove inizia un organismo? In pratica, i confini sono sfumati e team diversi possono classificare lo stesso componente in modo diverso. Si consiglia di stabilire regole nei token di design e in un catalogo componenti (Storybook, Jetpack Compose Preview).

Il terzo limite è l'astrazione eccessiva per progetti piccoli. Se un'applicazione è composta da 5 schermate, creare una gerarchia di atomi e molecole è un lavoro inutile. L'Atomic Design diventa vantaggioso quando il numero di schermate supera 20 e i componenti vengono riutilizzati su pagine diverse.

Atomic Design vs Feature-Sliced Design

L'Atomic Design e il Feature-Sliced Design (FSD) risolvono problemi diversi e possono essere usati insieme. L'Atomic Design è una metodologia per organizzare i componenti dell'interfaccia utente, il FSD è una metodologia per organizzare i layer di business e l'applicazione nel suo complesso. L'Atomic Design risponde alla domanda "come suddividere l'interfaccia utente in parti riutilizzabili", il FSD risponde a "come organizzare il codice intorno alle funzionalità di business". Non sono in competizione: si può avere una struttura FSD con layer features ed entities, e all'interno di ogni layer utilizzare l'Atomic Design per organizzare i componenti dell'interfaccia utente.

CriterioAtomic DesignFeature-Sliced Design
AmbitoComponenti dell'interfaccia utenteArchitettura dell'applicazione
Unità di raggruppamentoMetafora chimica (atomo → molecola → organismo)Funzionalità di business (slice)
DipendenzeDagli atomi alle pagine (dal basso verso l'alto)Dall'app allo shared (dall'alto verso il basso)
Gestione dei datiNon descrittaTramite segmenti model + api
ScalabilitàOrizzontale (più componenti)Verticale (più funzionalità)

Combinazione tipica: il FSD definisce la struttura modulare dell'applicazione (layer, slice), l'Atomic Design definisce la struttura interna dei componenti dell'interfaccia utente all'interno di ogni slice. Ad esempio, lo slice feature.auth contiene molecole (LoginForm, PasswordInput) e organismi (AuthPage) assemblati secondo le regole dell'Atomic Design. Il layer shared contiene atomi (Button, Input, Label) riutilizzati in tutte le funzionalità.

Atomic Design nelle applicazioni mobili: Compose e SwiftUI

Jetpack Compose e SwiftUI supportano naturalmente la gerarchia dell'Atomic Design attraverso la composizione dei componenti. Gli atomi in Compose sono funzioni @Composable di base: AppButton, AppTextField, AppCheckbox. Ogni funzione accetta parametri di personalizzazione (colore, dimensione, stato) e non contiene logica di business. Gli atomi sono definiti nel layer shared ed esportati come kit dell'interfaccia utente.

Le molecole sono funzioni @Composable che combinano più atomi: LabeledTextField (etichetta + campo di input + messaggio di errore), ProductCard (immagine + nome + prezzo). Le molecole possono contenere stato di base (validità del campo) ma non accedono all'API o alla ViewModel. Vengono riutilizzate in diversi organismi.

Gli organismi sono funzioni @Composable a livello di funzionalità: LoginForm (LabeledTextField per l'email + LabeledTextField per la password + AppButton di invio + link di recupero). Gli organismi lavorano con la ViewModel tramite funzioni Intent e possono contenere logica di business. In SwiftUI, una gerarchia simile viene costruita tramite @ViewBuilder e strutture View personalizzate.

In SwiftUI, un atomo è una struttura View personalizzata AppButton, una molecola è un campo di input con etichetta su HStack, un organismo è un modulo di accesso. Questa struttura consente di riutilizzare i componenti su tutte le schermate — la modifica di un atomo (colore del pulsante) si applica automaticamente a tutte le schermate. La combinazione dell'Atomic Design con un sistema di design garantisce la coerenza dell'interfaccia senza controllo manuale di ogni schermata.

Domande frequenti

È necessario seguire rigorosamente i cinque livelli dell'Atomic Design?

I cinque livelli sono una raccomandazione, non una legge. Molti sistemi di design (Material Design, IBM Carbon) utilizzano 3 o 4 livelli: componenti di base, componenti compositi e template. La regola principale è che ogni componente appartiene a un livello e può essere riutilizzato ai livelli superiori. Se notate che i livelli "molecola" e "organismo" nel vostro progetto non si distinguono — fondeteli. Atomi e pagine sono gli unici livelli obbligatori.

Come testare i componenti dell'Atomic Design?

Gli atomi vengono testati visivamente (test Snapshot, Compose Preview) — si verifica che un pulsante con determinate proprietà venga renderizzato correttamente. Le molecole vengono testate come combinazione di atomi — si verifica lo stato (errore, successo, disabilitato). Gli organismi richiedono test di integrazione — si verifica l'interazione con la ViewModel (invio del modulo, caricamento dei dati). In IT Sectr, utilizziamo Compose Test per Android e XCTest per iOS; per i test visivi — Paparazzi (Android) e SnapshotTesting (iOS).

Si può usare l'Atomic Design senza un sistema di design?

Si può, ma l'efficienza diminuisce. Senza un sistema di design e token di design, gli atomi non hanno uno stile unificato — ogni sviluppatore crea i propri atomi con colori e spaziature arbitrarie, portando a incoerenza visiva. L'Atomic Design e il sistema di design sono concetti complementari: l'Atomic Design definisce la gerarchia, il sistema di design definisce il linguaggio visivo. Si consiglia di implementarli insieme: prima i token di design (colori, tipografia, spaziature), poi gli atomi, poi le molecole e gli organismi.

Come gestire la "zona atomica" (troppi atomi)?

La "zona atomica" è una situazione in cui il numero di atomi supera i limiti ragionevoli (100+) e trovare il componente necessario richiede più tempo che scriverlo da zero. La soluzione è la colocazione degli atomi per funzionalità: un atomo utilizzato da una sola funzionalità deve essere memorizzato all'interno di quella funzionalità, non nello shared. Nello shared vengono inseriti solo gli atomi globali (Button, Text, Input). Secondo Brad Frost, la colocazione riduce il numero di atomi condivisi del 60–70% senza perdere riutilizzabilità.

L'Atomic Design è solo per l'interfaccia utente o anche per il codice?

L'Atomic Design era originariamente una metodologia di progettazione delle interfacce, ma nella pratica moderna viene utilizzato anche per organizzare il codice. Negli strumenti di progettazione (Figma, Sketch), gli atomi sono componenti di libreria; nel codice, sono funzioni e classi. La metodologia non distingue tra progettazione e codice — l'atomo è lo stesso sia nel mockup che nell'implementazione. In IT Sectr, utilizziamo supernova.io per sincronizzare gli atomi di progettazione e gli atomi di codice, eliminando le discrepanze tra il mockup e l'interfaccia finale.

Riepilogo

  • L'Atomic Design è una metodologia di organizzazione gerarchica dei componenti dell'interfaccia utente, utilizzando la metafora di atomi, molecole, organismi, template e pagine.
  • Gli atomi sono elementi di base (pulsante, input); le molecole sono le loro combinazioni (campo con etichetta); gli organismi sono blocchi complessi (modulo di ricerca).
  • I template definiscono la struttura, le pagine — il riempimento specifico con dati.
  • L'Atomic Design non gestisce lo stato o la logica di business — si occupa solo dell'organizzazione del layer dell'interfaccia utente.
  • Nello sviluppo mobile, gli atomi sono naturalmente descritti da funzioni @Composable (Android) e strutture View (iOS).
  • L'Atomic Design si combina bene con FSD: FSD definisce l'architettura, l'Atomic Design organizza l'interfaccia utente all'interno degli slice.
  • I principali vantaggi sono il riutilizzo dei componenti, la coerenza visiva e la velocità di creazione di nuove schermate.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche