Atomic Design

par Adeline & Godefroy

22' du 7 janvier 2022

Aider les Lonestoniens à utiliser et mieux comprendre l’Atomic Design

Qu’est-ce que l’Atomic Design ?

Approche du design modulaire
conçue par Brad Frost

https://bradfrost.com/blog/post/atomic-web-design/

 

C’est une méthode de design par composants qui permet d’anticiper la manière de les découper et de les organiser, en définissant une granularité.

Objectif : créer des Design Systems à partir de composants plus simples :

On l’utilise déjà sur une partie de nos projets.

 

C’est facile à apprendre

⬇️

✅ Quick win en perspective !

À quoi ça sert ?

  • Conserver une cohérence de style et de représentation
     
  • Gain de temps pour les équipes grâce à la standardisation
    • La passation des maquettes est facilitée
    • On sait où ranger les composants
    • On sait où trouver un composant

Atomes

Un atome est un composant simple qui ne peut pas être divisé sans devenir non fonctionnel

Atomes

Exemples :

  • Couleur
  • Icon
  • Typo
  • Label
  • Bouton
  • Avatar
  • Switch
  • Input Control
  • Images
  • Shadow
  • Gradient

Atomes

Atomes

Atomes

Molécules

Une molécule est un composant qui utilise plusieurs atomes

Molécules

Exemples :

  • Un input + button

  • Dropdown

  • Toggles

  • Pagination

Molécules

Organismes

Un organisme est un composant complexe
qui utilise plusieurs molécules et/ou atomes

Organismes

Exemples :

  • Header
  • Footer
  • Navigation
  • Card
  • Tableau
  • Modale

Organismes

Templates

Un template est un squelette de page sans contenu.

 

Il est composé d’organismes et/ou molécules et/ou atomes.

Templates

Exemples :

  • Article de blog
  • Fiche produit

Pages

Une page est issue d’un template et contient son contenu propre.

C’est le résultat final !

Pages

Exemples :

  • Page produits
  • Page de blog
  • Page utilisateur
  • Sur facebook : un mur

Point de vue Designer

Prévoir dans les maquettes de rendre la distinction bien claire pour les devs.

 

Le niveau de granularité peut évoluer selon le projet et le designer, c’est pourquoi il est important d’avoir une représentation en début et pendant le projet.

 

⚠️ Il arrive que la granularité change pendant le design du produit. (Ajout d’éléments, de composants...)

Point de vue Dev

En opposition à :

  • L’approche par modules
  • La séparation HTML / CSS / JS

Point de vue Dev

Arborescence :

Point de vue Dev

Arborescence :

On se pose moins de questions sur la manière de ranger les composants dans les dossiers.

 

Tous les atomes sont par exemple en vrac dans le dossier atoms.

Si on commence à avoir trop d’atomes, on peut les regrouper dans des dossiers thématiques au sein du dossier atoms, mais on ne casse pas cette arborescence.

 

On voit tout de suite dans les imports si les dépendances semblent cohérentes. Par exemple un atome ne devrait pas importer une molécule.

Point de vue Dev

Data / API :

En général on va avoir un usage de la data différent
selon la granularité.
 

  • Atomes et molécules :
    Composants controlés, pas d’appels API
     
  • Organismes et pages :
    Appels API possibles

Y'a plus qu'à !

 

Merci pour votre attention

Atomic Design

By lonestone

Atomic Design

  • 323