[Devoxx] Tu te mets combien en responsive CSS ? Edition 2026
Jusquâen 2008, il nây avait pas besoin de responsive css, parce que les Ă©crans avaient Ă peu prĂšs les mĂȘmes formes. Mais en 2008, avec lâintroduction de lâiPhone, on se retroue avec des Ă©crans qui ont des formes trĂšs diffĂ©rentes.
En 2010, lâarticle Responsive Web Design invente la mĂ©thode, inspirĂ©e de lâarchitecture. LâidĂ©e, câest de crĂ©er un design qui, sans ĂȘtre parfait partout, peut rester fonctionnel dans tous les Ă©crans.
Allez, on commence
La page vide
Julien et Théo ont conçu un éditeur WYSIWYG pour montrer les différents rendus, et ils arrivent bien à afficher leur page blanche.
Le paragraphe
Pour afficher un paragraphe, ça peut ĂȘtre intĂ©ressant de limiter la taille du bloc pour quâil ne prene pas tout lâĂ©cran, en donnant en plus une taille maximal. Mais attention, parce que pour lâaccessibilitĂ©, il faut pouvoir supporter une grande taille. Donc pour ça, il faut passer Ă une unitĂ© basĂ©e sur la taille de la police, lâincroyable em.
Le jeu de morpion
Câest une belle grille 3Ă3, et on voit que sur les grands Ă©crans ça semble bizarre. Et on passe Ă une width en vmin. Et il faut ajouter une taille minimale, ce qui se fait avec clamp. Les tailles dâĂ©cran, ça marche bien sur ordinateur, mais moins bien sur les tĂ©lĂ©phones pour lesquels des unitĂ©s complĂ©mentaires ont Ă©tĂ© dĂ©finies (lvh, svh, dvh). Et câest utilisable sur la plupart des navigateurs (dont tous les navigateurs rĂ©cents) !
Lâimage de fond
Ici, ThĂ©o va utiliser du responsive HTML avec une balise picture , lâimg de base en mode par dĂ©faut, et diffĂ©rentes source selon la taille de lâĂ©cran. On peut aussi les Ă©crans de rĂ©solution trĂšs diffĂ©rents en ajoutant des conditions dans lâattribut media. Et ça marche aussi avec les vidĂ©os.
La documentation
On va faire une page de documentation classique avec trois colonnes.
Et pour lâinstant, Julien et ThĂ©o ne nous ont pas parlĂ© de media queries. Mais ça change maintenant !
Et il utilise encore une nouvelle unité : le fr. Et en combinant une media query et une grid, ça se fait trÚs facilement.
Mais pourquoi on fait du mobile first ?
GĂ©nĂ©ralement, il faut moins de CSS pour faire lâaffichage mobile que pour faire lâaffichage de bureau. Et si le design mobile rentre plus facilement sur un Ă©cran plus grand.
La galerie de photos
Ils vont faire maintenant une galerie de photos avec des miniatures adaptĂ©es Ă lâĂ©cran.
Pour ça, un display: flex, du contenu centrĂ©, et ça a lâair sympa. Mais il ya parfois des marges. Ca se comble avec flex-grow qui a lâinconvĂ©nient que la derniĂšre ligne contient des images dâune taille incohĂ©rente.
Essayons autrement, avec une grid. Et en mettant un autofill, le nombre de colonnes sâadapte Ă la taille de lâĂ©cran, sauf dans certains cas.
La rĂšgle dâor chez les front, câest que flex est plutĂŽt bien adaptĂ© quand il faut manipuler une dimension, et grid plutĂŽt adaptĂ© quand il faut manipuler deux dimensions.
La plateforme de contenu
Câest une espĂšce de youtube-like avec des prĂ©sentations variables. Et pour les afficher, on va utiliser des container queries, qui vont modifier le rendu selon lâespace disponible pour le container. Et ils font des dĂ©mos qui me font penser Ă un trĂšs vieil article Swing sur les « transmogrifying widgets ». Le rĂ©sultat est en franchement spectaculaire en terme dâadaptabilitĂ©.
Dans les design systems, les container queries sont trĂšs utiles (voir par exemple le Karkinos Design System).
Ca vaut le coup de nommer les containers. On peut combiner les container queries et les media queries. En revanche, il faut Ă©viter de trop sâen servir pour Ă©viter lâeffet sapin de NoĂ«l. Et il existe Ă©videment des unitĂ©s spĂ©cifiques au container quâil vaut mieux utiliser avec parcimonie.
Le monde réel
Il faut maintenant adapter ces techniques au monde rĂ©el. Et utiliser ces techniques vous aidera beaucoup, parce que les agents IA sont incapables pour lâinstant de les mettre en oeuvre correctement.
#conférence #css #devoxx