Table des matières

Principes généraux

Pour concevoir l'architecture graphique de ce site, je me suis inspiré des principes de l'Atomic Design développé par Brad Frost. Cette méthode propose de distinguer cinq niveaux d'organisation graphique :

Page
Le plus « haut » niveau d'organisation graphique est celui de la « page », qui correspond à la composition de tous les autres éléments d'organisation afin de former une unité complète sur laquelle l'expérience d'usage peut être mesurée.

Exemple : Dans le cas de ce site, une « page » correspond à un document HTML associé à une route particulière.

Note :

À un niveau d'organisation « supérieur » à celui de « page », on pourait par exemple, considérer le niveau d'organisation du « site » lui-même. De la même manière, on pourrait concevoir l'organisation des pages à l'intérieur d'un livre. Cependant, je considère que ces niveaux d'organisation « supérieurs » au concept de « page » ne relèvent plus d'un cadre « graphique », mais mobilisent d'autres cadres analytiques.

Patron
Le « patron » (template) prescrit la manière de composer les différents éléments au sein des différentes pages.

Exemple : Dans le cas présent, il s'agit de définir des principes comme la présence du menu de navigation fixe en haut de la zone d'affichage sur toutes les pages, la présence des liens dans le pied-de-page, etc. Techniquement, le concept de blocs dans le langage Twig me permet de construire ces « patrons » grâce à l'instruction {extends}

Organisme
Un « organisme » correspond à une unité graphique de l'interface d'utilisation, qui articule plusieurs éléments fonctionnels dans un ensemble cohérent.

Exemple : le menu de navigation en haut de la page, le menu de pied-de-page, ou les « cartes ».

Molécule
Une « molécule » correspond à une unité fonctionnelle de l'interface graphique, qui répond à un cas d'utilisation particulier.

Exemple : une ligne d'un formulaire, un bouton, etc.

Atome
Enfin, les « atomes » correspondent à des unités élémentaires du langage (ie. constitués d'un élément HTML sans enfant, ou ne contenant que des nœuds de texte), qui peuvent être articulés ensemble pour former les « molécules »

Exemple : un champ de formulaire <input>, qui forme une molécule lorsqu'il est combiné avec son étiquette <label>.

Patrons

Tous les différents patrons des pages de ce site se composent de 4 parties principales :

Navigation générale
La barre de navigation principale est fixée en haut de la zone d'affichage, de manière à être toujours accessible (excepté pour les clients comme les imprimantes, qui ne nécessitent pas de navigation).
En-tête
Le haut de la page comprend trois organismes graphiques :
  1. un fil d'Ariane permettant de situer la page par rapport à l'architecture plus globale du site ;
  2. une bannière avec le titre de la page et une courte description ;
  3. un sommaire qui résume le contenu de la page, avec des liens pour accéder aux différentes sections principales.
Contenu principal
Le corps de la page se compose d'un ou plusieurs éléments <article>, lesquels doivent être identifiés par un élément <h2>-<h6>, ou bien d'éléments <section>. Le patron de chaque page adapte le contenu et la forme de ces éléments en fonction des besoins.
Pied de page
Le pied de page contient différents liens utiles et informations légales obligatoires.

Ces différents éléments forment une base, à partir de laquelle les patrons des différentes pages peuvent être construits, en ajustant la composition de la banière et le contenu du corps de la page. Les titres de chaque article qui composent la page sont automatiquement ajoutés au sommaire via JavaScript.

Organismes

Navigation générale

Le menu de navigation principal se divise en deux sous-parties principales :

Marque
Le logo du site avec un lien vers la page d'accueil
Menu
Le menu à proprement parler, qui contient la liste des liens principaux, mais aussi des menus d'actions pour accéder aux différentes traductions du contenu.

Le menu de navigation exhibe deux comportements différents en fonction de la taille de la zone d'affichage :

  • Sur petits écrans, le contenu du menu est caché, et ne s'affiche qu'en appuyant sur un bouton dédié. Le menu occupe alors l'ensemble de l'espace de l'écran, avec le menu d'actions en bas.
  • Sur les écrans plus larges, le contenu du menu s'affiche en ligne, avec des menus déroulables qui s'étendent en dessous, et le menu d'action aligné à droite.

Exemple :

Fil d'Ariane

Le fil d'Ariane permet d'afficher les liens vers les différentes sections liées à la page courante. Il se compose d'une succession de liens sur lesquels des pseudo-éléments sont ajoutés automatiquement pour indiquer les relations de dépendence entre un lien et le suivant.

Exemple :

Bannière

Une bannière permet d'afficher une image en arrière-plan d'un contenu, avec un fond qui permet d'assurer un contraste suffisant pour garantir la lisibilité du contenu.

Exemple :

Sommaire

Le sommaire regroupe automatiquement des liens vers les différentes sections principales de la page (c'est-à-dire les différents éléments <article> qui contiennent un titre de niveau <h2>).

Exemple :

Cartes

Une carte est un élément qui comporte une en-tête, un contenu principal, et éventuellement une section dédiée à une liste d'actions, et qui prennent la forme de petites cartes qui peuvent être placées les unes à côté des autres.

Exemple :

Beatae voluptatem saepe est nam ab recusandae. Beatae possimus quia laborum et culpa doloremque. Voluptate eos vel et odit quia. Commodi veniam minima aspernatur ullam id maiores. Qui vel excepturi deleniti qui.

Et ab laboriosam quae ipsa exercitationem voluptatem

Voluptatibus repellendus ut est aut voluptatibus.

Aut sit magni tempora quod harum. Eligendi pariatur perferendis omnis inventore nam et culpa numquam. Numquam rem sit autem atque est necessitatibus laboriosam. Dolores et quaerat et alias.

At ut minus esse vero hic voluptate. Et quae adipisci maiores qui. Asperiores ab aut suscipit. Sunt impedit consequatur quasi quae.

Ligne de temps

Affichage d'une séquence de sections organisées selon une ligne temporelle.

Exemple :
2026—2027

Voluptatibus temporibus aliquam

Autem atque

Est tempore quia praesentium autem. Quia consequuntur sequi ea blanditiis labore sit aut quo. Sint omnis nostrum corporis at non.

Dolores occaecati vitae temporibus et ipsam nulla. Labore nobis non ut sapiente. Nihil nesciunt voluptas sed facere quia voluptas quis. Et quia doloribus ipsam qui ipsa.

Tempora voluptatem reiciendis corrupti deserunt ut est itaque. Rem earum et aperiam est. Modi alias aperiam ratione. Sequi vel cumque iure. Et est similique ipsum tempora dignissimos.

Accusamus quos placeat soluta quod aut odit. Aut in tempora ex molestias. Mollitia debitis quis quae ut. Voluptates eum ipsa neque saepe excepturi aperiam ab.

2025—2026

porro aperiam nulla

Distinctio aut quae est consectetur iste

Ipsum non quod nesciunt enim eos. Facilis vero voluptatem harum est architecto excepturi quas. Tempore ut aut dolorem dolorum delectus commodi autem. Omnis delectus nam culpa eligendi officia dolores. Laboriosam ut voluptas corrupti libero adipisci sit et cum.

Sunt rerum porro sint dolores non. Qui voluptate ipsa aut quos consequatur incidunt deserunt.

Aut eos consequatur praesentium dolorum. Qui qui voluptatem blanditiis doloremque consequuntur et molestiae rerum. Ut assumenda ut rerum quae quos autem. Incidunt molestias perspiciatis dolorem laborum ullam exercitationem est autem.

Ut aut qui mollitia voluptatem. Molestiae non corporis deleniti enim animi. Aut qui sint aut voluptates.

2024—2025

Omnis ea ad harum iure. Consequuntur velit quis qui fugit quia.

Nisi excepturi molestiae ipsa aut consequatur architecto. Porro quos dolor voluptatibus sit odio. Voluptatem et quos sit dignissimos perspiciatis. Temporibus occaecati est aut beatae.

Et cum et aliquam rerum et at. Enim dignissimos dolor voluptas commodi aspernatur explicabo fugiat. Voluptas soluta aperiam autem commodi eos qui aut. A vel ex sit molestiae vel maxime nihil.

Numquam commodi odit earum nesciunt porro voluptate qui. Vel illum ipsum et qui. Rerum nesciunt explicabo dolore dolor culpa autem labore doloribus. Natus voluptate quos quam consectetur qui quos qui. Blanditiis suscipit iusto ut ad.

Quidem quos dolores non voluptas laborum. Explicabo nemo fugit officiis. Et dicta rerum omnis non. Distinctio illo ullam temporibus in.

Molécules

Formulaires

.form-row

Une ligne de formulaire, qui comprend à la fois le champ du formulaire ainsi que les éléments d'aide (<label> etc.), et qui occupe toute la largeur du conteneur.

Exemple :
.btn

Un élément qui prend la forme d'un bouton (qu'il s'agisse d'un objet de type <button> ou d'un lien <a>, tant qu'il s'agit d'un élément interactif).

Exemple : saepe quae aperiam delectus
.btn.form-row
Exemple : reprehenderit quisquam sint nemo

Atomes