Tailwind CSS Academy · Leçon

Valeurs arbitraires et coût associé

Utilisez une notation entre crochets telle que w-[347px] pour les valeurs ponctuelles et comprenez le compromis entre flexibilité et feuille de style potentiellement volumineuse.

Leçon 4 sur 413 étapes

Valeurs arbitraires et coût associé est une leçon Tailwind CSS Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Tailwind CSS Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Tailwind CSS Academy comprend 4 leçons au total.

Que sont les valeurs arbitraires

La syntaxe des valeurs arbitraires de Tailwind vous permet d’utiliser directement n’importe quelle valeur CSS dans un nom de classe, en employant une notation entre crochets. Au lieu d’être limité à l’échelle prédéfinie de Tailwind, vous pouvez écrire w-[347px], text-[#1a2b3c] ou grid-cols-[1fr_2fr_1fr].

Cette fonctionnalité, activée par le moteur JIT, est l’une des capacités les plus puissantes de Tailwind. Elle comble l’écart entre les classes utilitaires et les rares cas où une valeur précise, en dehors de l’échelle, est réellement nécessaire.

<div class="w-[347px] h-[calc(100vh-64px)] bg-[#1a1a2e] text-[#e2e8f0]">
  Arbitrary values for precise control
</div>

<div class="grid grid-cols-[1fr_2fr_1fr] gap-[22px]">
  Custom grid layout with arbitrary columns
</div>

Référence de syntaxe des valeurs arbitraires

La syntaxe entre crochets fonctionne avec n’importe quel préfixe d’utilitaire Tailwind. La valeur entre les crochets est transmise directement comme valeur CSS. Les espaces à l’intérieur de la valeur sont représentés par des traits de soulignement (Tailwind les remplace avant l’analyse).

Pour les utilitaires qui génèrent plusieurs propriétés CSS, seule la propriété concernée reçoit la valeur arbitraire. Par exemple, p-[12px] définit les quatre valeurs de remplissage à 12px, comme p-4, mais avec une valeur personnalisée.

<!-- Width and height -->
<div class="w-[240px] h-[180px]"></div>

<!-- Custom color -->
<div class="bg-[#f0a500] text-[#2d3748]"></div>

<!-- Calc values -->
<div class="top-[calc(50%_-_24px)]"></div>

<!-- CSS variables -->
<div class="bg-[var(--primary-color)]"></div>

<!-- Custom grid -->
<div class="grid-cols-[200px_1fr_minmax(200px,_1fr)]"></div>

<!-- Spacing with custom value -->
<div class="mt-[7px] px-[18px]"></div>

Quand utiliser les valeurs arbitraires

Les valeurs arbitraires conviennent dans certaines situations précises :

  • Positionnement précis : une info-bulle qui doit s’aligner exactement sur un point de référence (top-[3px])
  • Contraintes externes : adapter la hauteur ou le rayon de bordure d’un composant tiers
  • Couleurs de marque uniques : une couleur de marque qui ne correspond pas bien à la palette Tailwind (bg-[#e63946])
  • Expressions CSS dynamiques : valeurs calc, min, max ou clamp

Elles ne conviennent PAS aux valeurs qui appartiennent au système de design : utilisez plutôt l’extension du thème.

<!-- Appropriate: precise positioning calculation -->
<div class="absolute top-[calc(50%_-_24px)] left-[calc(50%_-_24px)]"
     aria-label="Loading">
  Loading spinner centered
</div>

<!-- Appropriate: brand color not in default palette -->
<header class="bg-[#e63946] text-white">
  Brand header
</header>

<!-- Inappropriate: use theme extension instead -->
<!-- <div class="w-[96px]"> Use w-24 (96px) from default scale instead! -->
<div class="w-24">Use the scale utility</div>

Valeurs arbitraires ou extension du thème

Lorsqu’une valeur est utilisée à plusieurs endroits de votre projet, elle doit figurer dans l’extension du thème plutôt que sous forme de valeur arbitraire. Son ajout au thème lui donne un nom sémantique, garantit sa cohérence et vous permet de la modifier à un seul endroit.

Une bonne règle consiste à promouvoir une valeur arbitraire dans le thème si vous l’utilisez deux fois dans des fichiers différents. Si elle n’apparaît qu’une seule fois dans un contexte très précis, la valeur arbitraire convient.

// Instead of repeating w-[347px] in 5 components:
// ❌ Scattered arbitrary values
// <div class="w-[347px]">...</div>  (component A)
// <div class="w-[347px]">...</div>  (component B)
// <div class="w-[347px]">...</div>  (component C)

// ✅ Theme extension — one source of truth
// tailwind.config.js:
module.exports = {
  theme: {
    extend: {
      width: {
        'sidebar': '347px',
      },
    },
  },
};
// Usage:
// <div class="w-sidebar">...</div>  -- consistent and named

Le coût de chaque valeur arbitraire

Chaque valeur arbitraire unique génère une règle CSS unique. Cinq utilisations de w-[347px] dans le même fichier ne génèrent qu’une seule règle CSS (JIT déduplique les règles). En revanche, w-[347px], w-[348px] et w-[349px] dans des composants différents génèrent chacun une règle distincte : trois règles distinctes pour des valeurs qui ne diffèrent que d’un pixel.

C’est le coût des valeurs arbitraires : elles peuvent empêcher la réutilisation du CSS qui rend les classes utilitaires efficaces. Dix largeurs arbitraires légèrement différentes génèrent dix règles distinctes plutôt qu’un utilitaire partagé.

/* Each generates a separate CSS rule */
.w-\[347px\] { width: 347px; }
.w-\[348px\] { width: 348px; }
.w-\[349px\] { width: 349px; }
.top-\[calc\(50\%-24px\)\] { top: calc(50% - 24px); }
.top-\[calc\(50\%-32px\)\] { top: calc(50% - 32px); }

/* Compare: the scale utilities share values across all usages */
/* .w-24 is generated once and reused wherever w-24 appears */

Syntaxe des propriétés arbitraires

Au-delà des préfixes d’utilitaires, le JIT de Tailwind prend également en charge les propriétés CSS arbitraires avec la syntaxe [property:value] : des crochets contenant à la fois le nom d’une propriété CSS et une valeur séparés par deux-points.

C’est la solution de secours pour les propriétés CSS auxquelles Tailwind ne fournit pas d’utilitaire, comme [mask-image:linear-gradient(...)], [scroll-snap-type:x_mandatory] ou les propriétés préfixées par un fournisseur. Utilisez cette possibilité avec modération : si vous constatez que vous employez de nombreuses propriétés arbitraires, envisagez plutôt d’ajouter un plugin Tailwind.

<!-- Arbitrary CSS property -->
<div class="[mask-image:linear-gradient(to_bottom,black,transparent)]
            [scroll-snap-type:y_mandatory]
            [-webkit-line-clamp:3]">
  Content with non-utility CSS properties
</div>

<!-- Also works with variants -->
<div class="hover:[text-decoration:underline_wavy_red]
            focus:[outline:2px_solid_blue]">
  Custom hover/focus styles via arbitrary property
</div>

Valeurs arbitraires avec des variantes

Les valeurs arbitraires se combinent entièrement avec tous les préfixes de variantes. Vous pouvez associer les variantes réactives, de survol, de focus, de mode sombre et autres à n’importe quelle valeur arbitraire, exactement comme avec les utilitaires standard.

Vous bénéficiez ainsi de toute la puissance du système de variantes de Tailwind pour les valeurs personnalisées. Une couleur de survol personnalisée hors échelle, une largeur personnalisée réactive ou une couleur arbitraire personnalisée en mode sombre fonctionnent toutes parfaitement.

<!-- Responsive arbitrary width -->
<div class="w-[240px] md:w-[320px] lg:w-[400px]">
  Width changes at each breakpoint
</div>

<!-- Dark mode arbitrary color -->
<div class="bg-[#f8f9fa] dark:bg-[#1a1a2e] text-[#212529] dark:text-[#f8f9fa]">
  Light/dark mode with arbitrary hex colors
</div>

<!-- Hover with arbitrary value -->
<button class="bg-[#e63946] hover:bg-[#c1121f] text-white px-4 py-2 rounded-lg">
  Custom brand button
</button>

Valeurs arbitraires de couleur et opacité

Lorsque vous utilisez des couleurs hexadécimales arbitraires, vous pouvez également appliquer le modificateur d’opacité avec une barre oblique : bg-[#e63946]/50 définit l’arrière-plan avec une opacité de 50 %. Cela fonctionne car la syntaxe d’opacité avec barre oblique est une fonctionnalité de JIT qui s’applique que la couleur de base provienne de la palette ou soit une valeur arbitraire.

Vous pouvez également utiliser directement les fonctions rgba() ou hsl() entre les crochets pour contrôler arbitrairement l’opacité ou le modèle de couleur.

<!-- Arbitrary color with opacity modifier -->
<div class="bg-[#e63946]/50">50% opacity red</div>
<div class="bg-[#e63946]/75">75% opacity red</div>

<!-- RGB function -->
<div class="bg-[rgb(230,57,70)]">RGB red</div>

<!-- HSL function -->
<div class="bg-[hsl(353,76%,55%)]">HSL red</div>

<!-- RGBA for direct alpha control -->
<div class="bg-[rgba(230,57,70,0.5)]">RGBA with alpha</div>

Caractères d’échappement dans les valeurs arbitraires

Certains caractères à l’intérieur des valeurs arbitraires doivent être échappés car ils ont une signification en CSS ou en HTML. Dans les valeurs arbitraires de Tailwind, utilisez des traits de soulignement pour les espaces (Tailwind les convertit automatiquement) et échappez les parenthèses ainsi que les autres caractères spéciaux dans calc() en utilisant des traits de soulignement pour les espaces à l’intérieur de la fonction.

Pour les valeurs d’URL (comme les images d’arrière-plan), placez la valeur entre apostrophes : bg-[url('/img/hero.png')]. Tailwind conserve les apostrophes dans le CSS généré.

<!-- Underscore = space in arbitrary values -->
<div class="grid grid-cols-[200px_1fr] gap-[10px_20px]">
  Column gap 10px, row gap 20px
</div>

<!-- calc with underscore-spaces -->
<div class="w-[calc(100%_-_64px)]">
  Full width minus 64px
</div>

<!-- URL as background image -->
<div class="bg-[url('/img/hero.jpg')] bg-cover bg-center h-64">
  Hero image
</div>

Auditer vos valeurs arbitraires

Recherchez régulièrement dans votre base de code toutes les utilisations de valeurs arbitraires afin d’identifier celles qui pourraient être intégrées au thème. Un grep rapide repère chaque classe entre crochets de votre projet :

Toute valeur apparaissant plus de deux fois dans des fichiers différents est une excellente candidate pour devenir un jeton de thème nommé. Toute valeur apparaissant une seule fois peut rester une valeur arbitraire. Les valeurs qui semblent appartenir à une échelle cohérente (comme w-[350px], w-[360px], w-[370px]) indiquent qu’un modèle d’utilisation hors échelle doit être standardisé.

# Find all arbitrary value usages in your project
grep -roh 'class="[^"]*\[[^\]]*\][^"]*"' src/ | sort | uniq -c | sort -rn

# Or more targeted: find classes with bracket notation
grep -roh '[a-z:-]*\[[^\]]*\]' src/ --include='*.{html,js,jsx,ts,tsx}' | sort | uniq -c | sort -rn

# Review high-count arbitrary values — add to theme if used 3+ times

Combiner des valeurs arbitraires et des utilitaires

Les valeurs arbitraires se combinent naturellement avec les classes utilitaires standard dans la même chaîne de classes. Vous pouvez mélanger librement les utilitaires d’échelle et les valeurs arbitraires : c’est un choix intentionnel, pas une solution de contournement. Le système de design couvre 95 % des cas avec les utilitaires d’échelle ; les valeurs arbitraires couvrent les 5 % restants.

La règle essentielle consiste à utiliser d’abord les utilitaires d’échelle et à ne recourir aux valeurs arbitraires que lorsque l’échelle ne fournit réellement pas ce dont vous avez besoin. Faites respecter cette règle lors des revues de code afin d’éviter que votre balisage ne devienne une collection de valeurs arbitraires hors échelle.

<!-- Mixing utilities and arbitrary values naturally -->
<div class="flex items-center gap-4 px-6 py-3    <!-- scale utilities -->
            w-[480px]                              <!-- arbitrary: specific width -->
            bg-[#1a1a2e]                          <!-- arbitrary: brand color -->
            rounded-xl shadow-lg                  <!-- scale utilities again -->
            text-sm font-medium text-white">
  A card using both
</div>

Vérification rapide

Testez votre compréhension des concepts de maîtrise de Tailwind CSS abordés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que les valeurs arbitraires utilisent la syntaxe entre crochets [value] pour définir n’importe quelle valeur CSS sur n’importe quel utilitaire, grâce à la génération à la demande de JIT ; que chaque valeur arbitraire unique génère une règle CSS unique, de sorte que les valeurs hors échelle répétées dans plusieurs fichiers doivent être intégrées au thème ; et que les traits de soulignement représentent les espaces dans les valeurs arbitraires (par exemple calc(100%_-_64px)). Ce cours sur JIT et l’optimisation en production s’achève ici ; nous allons maintenant explorer les jetons de design et la thématisation systématique.

Gratuit pour commencer

Apprends HTML avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Valeurs arbitraires et coût associé » est-elle gratuite ?

Oui — le texte complet de « Valeurs arbitraires et coût associé » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Tailwind CSS Academy, passe à CoddyKit PRO. Le cours Tailwind CSS Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Valeurs arbitraires et coût associé » ?

Utilisez une notation entre crochets telle que w-[347px] pour les valeurs ponctuelles et comprenez le compromis entre flexibilité et feuille de style potentiellement volumineuse. Tu pratiques Tailwind CSS Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Tailwind CSS Academy ?

Aucune expérience préalable n'est requise. Tailwind CSS Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Valeurs arbitraires et coût associé » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Tailwind CSS Academy ?

Oui. Chaque leçon Tailwind CSS Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Fonctionnement du moteur JIT
  2. Classes dynamiques autorisées
  3. Analyser et réduire la taille du paquet
  4. Valeurs arbitraires et coût associé
← Retour à Tailwind CSS Academy