Aller au contenu

Comment construire une règle clamp() à partir de deux tailles extrêmes

Le calculateur transforme deux tailles extrêmes et les largeurs de fenêtre où elles s’appliquent en une seule expression clamp(). Il écrit la règle pour font-size, padding, gap ou margin, affiche la valeur à toute largeur de l’intervalle et copie le CSS final. Tout s’exécute dans la page.

L’aperçu ne redimensionne pas votre fenêtre : le curseur simule une largeur de fenêtre et l’élément de démonstration reçoit la même valeur en px que l’expression produirait à cette largeur. Sous la plus petite largeur, le navigateur conserve la taille minimale ; au-dessus de la plus grande, la maximale.

  1. Choisissez la propriété CSS que la règle doit définir : font-size, padding, gap ou margin.
  2. Saisissez la taille minimale et la taille maximale en px ainsi que les largeurs de fenêtre correspondantes. Les valeurs par défaut — 16 px et 32 px entre 320 px et 1440 px — décrivent un titre qui grandit du mobile au bureau.
  3. Choisissez l’unité de sortie. rem divise chaque longueur par la taille de police racine, 16 par défaut et modifiable ; px conserve les nombres saisis. Le coefficient vw est identique dans les deux cas.
  4. Faites glisser le curseur d’aperçu ou saisissez une largeur de l’intervalle pour lire la valeur résolue à côté. Les trois pastilles sous l’aperçu donnent la valeur aux largeurs minimale, médiane et maximale.
  5. Copy CSS reprend la règle entière ; Reset ramène les huit champs à leurs valeurs par défaut.

L’arithmétique derrière la chaîne clamp()

De deux tailles extrêmes à la chaîne clamp()

L’expression est la droite qui relie les deux extrêmes. Avec les valeurs par défaut, la pente vaut (32 − 16) ÷ (1440 − 320) × 100 = 1.4286vw et l’ordonnée à l’origine 16 − 1.4286 × 320 ÷ 100 = 11.4286px : la règle s’écrit clamp(1rem, 0.7143rem + 1.4286vw, 2rem).

À 960 px, le terme central donne 0.7143rem + 1.4286vw = 25.14px, exactement ce qu’affichent la lecture et l’élément d’aperçu. Les termes sont arrondis à quatre décimales et la valeur affichée à deux.

Sortie en rem et taille de police racine

Avec l’unité rem, chaque longueur de l’expression est divisée par la taille de police racine : avec les 16 px par défaut, l’intervalle 16 → 32 px devient 1rem → 2rem, tandis qu’une racine de 20 le transforme en 0.8rem → 1.6rem. Le coefficient vw n’est pas converti, car un vw est une fraction de la fenêtre et non de la racine.

Le champ racine est une constante de conversion, pas un réglage envoyé au navigateur. Le rendu ne correspond à l’aperçu que si ce champ correspond au font-size de l’élément html de la page qui recevra la règle.

Ce que les champs acceptent, et quand la sortie se vide

Les tailles acceptent les décimales et doivent être supérieures ou égales à 0 ; le maximum ne peut pas être inférieur au minimum et la plus grande largeur doit dépasser la plus petite. Des extrêmes égaux sont autorisés et donnent une règle plate comme clamp(1rem, 1rem + 0vw, 1rem).

Un intervalle impossible ou un champ de taille ou de largeur vide efface la règle, les pastilles d’exemple, la lecture et l’aperçu, et désactive Copy CSS jusqu’à ce que l’intervalle redevienne valide : le presse-papiers ne reçoit jamais une règle qui ne correspond pas aux champs affichés. Le champ racine n’est requis que lorsque l’unité de sortie est rem.

Outils récents :