Préparation d'entretien 100% Gratuit angularforall.com

Entretien Tailwind CSS Débutant — Utilities et Bases

Tailwind Tailwindcss Debutant Quiz-Tailwind-Debutant Utility-First Flexbox-Tailwind Responsive-Tailwind Tailwind-Config Dark-Mode Entretien-Tailwind Qcm-Tailwind Apprendre-Tailwind Front-End Css-Utility
Débutant 🔀 Mixte 20 questions ⏱ 15 min
📝

Entretien Tailwind CSS Débutant — Utilities et Bases

20 questions Tailwind CSS niveau débutant : utility-first, espacements, couleurs, Flexbox, breakpoints, hover, dark mode. Préparez votre premier entretien front-end.

20 questions ⏱ ~15 min Niveau Débutant

Partager

Banque de révision : les 60 questions corrigées

Voici l'intégralité des 60 questions de « Entretien Tailwind CSS Débutant — Utilities et Bases », chacune avec sa bonne réponse et son explication. Le quiz interactif ci-dessus en tire une sélection aléatoire à chaque tentative — utilisez cette liste complète pour réviser.

  • p-4
  • m-4 (bonne réponse)
  • mx-4
  • mt-4
Explication : Tailwind utilise m-{n} pour margin (externe) et p-{n} pour padding (interne). L'échelle par défaut : 4 = 1rem, 2 = 0.5rem, 8 = 2rem. mx-4 = horizontal seulement, mt-4 = top seulement.

  • p-2
  • p-4
  • p-8 (bonne réponse)
  • p-16
Explication : L'échelle Tailwind est calée sur 0.25rem par unité : p-1 = 0.25rem, p-4 = 1rem, p-8 = 2rem, p-16 = 4rem. Astuce : multiplie l'unité par 0.25rem.

  • Écrire un seul fichier CSS pour tout le projet
  • Composer le style directement dans le HTML avec des petites classes utilitaires (bonne réponse)
  • Générer des composants prêts à l'emploi automatiquement
  • Utiliser uniquement des classes sémantiques BEM
Explication : Utility-first = on assemble des classes ultra-petites (flex, p-4, text-red-500) directement dans le HTML, plutôt que d'écrire des classes sémantiques (.btn-primary) avec du CSS séparé. Avantage : pas de nommage à inventer, pas de CSS qui grossit, design system cohérent.
En entretien, mentionne le compromis : HTML plus verbeux mais CSS final minuscule (purge), refactoring plus rapide, design system imposé par tailwind.config.js.

  • font-thin
  • font-medium
  • font-bold (bonne réponse)
  • font-light
Explication : L'échelle font-weight de Tailwind : font-thin (100), font-light (300), font-normal (400), font-medium (500), font-semibold (600), font-bold (700), font-extrabold (800), font-black (900).

  • align-center
  • text-center (bonne réponse)
  • justify-center
  • items-center
Explication : text-center applique text-align: center. À ne pas confondre : justify-center aligne sur l'axe principal Flex/Grid, items-center sur l'axe transverse, align-* n'existe pas en Tailwind comme tel.

  • display-flex
  • d-flex
  • flex (bonne réponse)
  • flexbox
Explication : En Tailwind, on utilise simplement flex pour display: flex. Pour inline-flex : inline-flex. Pour grid : grid. Pas de préfixe d- (c'est Bootstrap).

  • Centre verticalement les éléments enfants
  • Centre horizontalement (axe principal) les enfants (bonne réponse)
  • Justifie le texte en mode paragraphe
  • Aligne le texte des enfants au centre
Explication : justify-* contrôle l'axe principal en Flexbox (horizontal par défaut). justify-center centre les enfants horizontalement. Pour centrer verticalement, utilise items-center (axe transverse).

  • Aucune, ce sont des alias
  • justify-* = axe principal, items-* = axe transverse (bonne réponse)
  • justify-* centre le texte, items-* centre les images
  • justify-* est pour Grid, items-* est pour Flex
Explication : En Flexbox : justify-content (Tailwind justify-*) gère l'axe principal (horizontal si flex-row). align-items (Tailwind items-*) gère l'axe transverse (vertical si flex-row). Pour centrer parfaitement : flex justify-center items-center.
Astuce d'entretien : si tu inverses la direction avec flex-col, les rôles s'inversent aussi (justify devient vertical, items horizontal).

  • color-red
  • text-red
  • text-red-500 (bonne réponse)
  • red-text
Explication : Les couleurs Tailwind suivent text-{couleur}-{intensité}. L'intensité va de 50 (très clair) à 950 (très sombre), avec 500 comme milieu de référence. Exemples : text-red-500, text-blue-600, text-gray-700.

  • bg-blue-500 color-white
  • bg-blue-500 text-white (bonne réponse)
  • background-blue-500 text-white
  • bg-blue text-white-100
Explication : Pour le fond on utilise bg-{couleur}-{intensité} et pour le texte text-{couleur}-{intensité}. text-white et text-black existent sans intensité (cas particuliers).

  • rounded
  • rounded-md
  • rounded-lg
  • rounded-full (bonne réponse)
Explication : rounded-full applique border-radius: 9999px, ce qui transforme un carré en cercle. Échelle : rounded-sm, rounded, rounded-md, rounded-lg, rounded-xl, rounded-2xl, rounded-3xl, rounded-full.

  • border
  • border border-gray-300 (bonne réponse)
  • border-gray-300
  • border-1 gray-300
Explication : border (sans suffixe) applique border-width: 1px. La couleur se précise en plus avec border-{couleur}-{intensité}. Exemple complet : border border-gray-300. Sans border, la classe couleur n'a aucun effet visible (largeur = 0).

  • Il compresse manuellement le CSS final
  • Il scanne les fichiers sources (HTML/JS/PHP) et ne génère que les classes utilisées (purge / JIT) (bonne réponse)
  • Il charge dynamiquement les classes via un CDN
  • Il utilise des variables CSS qui s'effacent automatiquement
Explication : Depuis Tailwind v3, le moteur JIT (Just-In-Time) scanne les fichiers déclarés dans content: [] de tailwind.config.js et génère uniquement le CSS des classes détectées. Résultat : un CSS final souvent < 10 Ko gzipped, même avec un design riche.
À retenir : déclare bien tous tes patterns dans content (HTML, JS, JSX, PHP, MDX...) sinon des classes seront supprimées en prod.

  • hidden
  • invisible (bonne réponse)
  • opacity-0
  • sr-only
Explication : invisible = visibility: hidden (l'élément n'apparaît pas mais occupe l'espace). hidden = display: none (retiré du flux). opacity-0 = transparent mais cliquable. sr-only = visible uniquement par les lecteurs d'écran.

  • hidden md:block (bonne réponse)
  • block md:hidden
  • sm:hidden
  • hidden:md
Explication : Tailwind est mobile-first : la classe sans préfixe s'applique partout, puis les préfixes sm: md: lg: xl: 2xl: écrasent à partir du breakpoint. hidden md:block = caché par défaut (mobile), affiché en bloc dès md (≥768px).

  • 640px
  • 768px (bonne réponse)
  • 1024px
  • 1280px
Explication : Breakpoints Tailwind par défaut : sm: 640px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px. Tous sont min-width (mobile-first). Modifiables dans theme.screens du config.

  • active:bg-red-500
  • focus:bg-red-500
  • hover:bg-red-500 (bonne réponse)
  • visited:bg-red-500
Explication : Tailwind expose les pseudo-classes via des préfixes : hover:, focus:, active:, disabled:, visited:, group-hover:... Exemple : bg-blue-500 hover:bg-blue-700 = bleu standard, plus sombre au survol.

  • bg-blue-500 :hover-blue-700
  • bg-blue-500 hover:bg-blue-700 (bonne réponse)
  • hover-bg-blue-700 bg-blue-500
  • bg-blue-500 over:bg-blue-700
Explication : Le préfixe correct est hover: (avec deux-points). hover:bg-blue-700 applique bg-blue-700 uniquement quand l'élément est survolé. On peut combiner plusieurs préfixes : md:hover:bg-blue-700 = au survol, à partir du breakpoint md.

  • drop-shadow
  • shadow-lg
  • shadow-md (bonne réponse)
  • box-shadow-md
Explication : Échelle box-shadow Tailwind : shadow-sm, shadow, shadow-md, shadow-lg, shadow-xl, shadow-2xl, shadow-inner, shadow-none. drop-shadow-* est différent (filtre, contour réel des formes/transparences).

  • w-100
  • w-full (bonne réponse)
  • w-screen
  • w-auto
Explication : w-full = width: 100% (relatif au parent). w-screen = 100vw (relatif à la fenêtre). w-auto = auto. w-100 n'existe pas dans l'échelle par défaut (c'est de la syntaxe Bootstrap).

  • h-full
  • h-screen (bonne réponse)
  • h-100
  • h-vh
Explication : h-screen applique height: 100vh (hauteur de la viewport). h-full = 100% (relatif au parent). h-svh et h-dvh existent depuis v3.4 pour le viewport mobile dynamique.

  • gap-4
  • space-y-4 (bonne réponse)
  • spacing-4
  • mt-y-4
Explication : space-y-{n} applique une marge entre les enfants directs sur l'axe vertical (utile pour des stacks). space-x-{n} fait pareil sur l'axe horizontal. gap-{n} fonctionne uniquement sur Flex et Grid (pas sur du block classique).

  • space-x-4
  • gap-4 (bonne réponse)
  • spacing-4
  • columns-gap-4
Explication : gap-{n} est la propriété CSS moderne (compatible Flex et Grid depuis 2021). Plus propre que space-x-* car elle gère le wrapping. gap-x-4 et gap-y-4 permettent de différencier horizontal/vertical.

  • gap est plus rapide à compiler
  • space-* ajoute des marges qui cassent l'espacement quand les enfants passent à la ligne (bonne réponse)
  • gap est rétrocompatible IE11
  • space-* ne fonctionne pas avec flex
Explication : space-x-4 applique margin-left à tous les enfants sauf le premier — ça marche bien sur une seule ligne, mais quand les enfants wrappent, la marge gauche apparaît au début de la nouvelle ligne et casse l'alignement. gap-4 gère proprement les sauts de ligne car c'est la propriété CSS native pour Flex/Grid.
Règle simple : si ton flex contient flex-wrap ou si c'est du grid, utilise toujours gap-*.

  • &lt;script src="cdn.tailwindcss.com"&gt; (bonne réponse)
  • &lt;link href="tailwind.min.css"&gt; seulement
  • npm install tailwindcss --cdn
  • &lt;tailwind /&gt; en JSX
Explication : Le Play CDN Tailwind (https://cdn.tailwindcss.com) est un script JS qui génère le CSS à la volée dans le navigateur. Idéal pour un prototype ou un Codepen, mais déconseillé en production (poids, FOUC). En prod, utilise l'install npm + build.

  • package.json
  • tailwind.config.js (bonne réponse)
  • postcss.config.js
  • webpack.tailwind.js
Explication : tailwind.config.js (ou .ts) contient la configuration : chemins content, thème personnalisé (theme.extend), plugins, dark mode... Généré via npx tailwindcss init.

  • @import tailwind;
  • @tailwind base; @tailwind components; @tailwind utilities; (bonne réponse)
  • @use tailwind/all;
  • @tailwind all;
Explication : Les 3 directives obligatoires (Tailwind v3) : @tailwind base (reset preflight), @tailwind components (composants), @tailwind utilities (utilitaires). À placer en haut du fichier CSS principal traité par PostCSS. Note : Tailwind v4 introduit @import "tailwindcss"; simplifié.

  • italic (bonne réponse)
  • font-italic
  • text-italic
  • em-text
Explication : italic = font-style: italic. not-italic annule cet état (utile en hover ou breakpoint).

  • underline (bonne réponse)
  • text-underline
  • line-text
  • u-text
Explication : underline applique text-decoration: underline. Variantes : line-through (barré), overline, no-underline (annuler), decoration-{couleur}, decoration-{épaisseur}.

  • caps
  • uppercase (bonne réponse)
  • text-uppercase
  • upper-text
Explication : uppercase, lowercase, capitalize, normal-case contrôlent text-transform. Pas de préfixe text-.

  • text-md
  • text-base
  • text-lg (bonne réponse)
  • text-xl
Explication : L'échelle font-size Tailwind : text-xs (0.75), text-sm (0.875), text-base (1rem), text-lg (1.125), text-xl (1.25), text-2xl (1.5)... text-md n'existe pas par défaut.

  • m-auto
  • mx-auto (bonne réponse)
  • my-auto
  • auto-margin
Explication : mx-auto applique margin-left: auto + margin-right: auto. Combiné avec une largeur fixe (ex: w-1/2 ou max-w-xl), cela centre le bloc dans son parent.

  • w-4xl
  • max-w-4xl (bonne réponse)
  • maxw-4xl
  • width-max-4xl
Explication : max-w-{taille} applique max-width. Échelle : max-w-xs (20rem), max-w-sm, max-w-md, max-w-lg, max-w-xl, max-w-2xl... max-w-4xl = 56rem (≈896px).

  • cursor-hand
  • cursor-pointer (bonne réponse)
  • pointer-cursor
  • cursor-link
Explication : cursor-pointer = cursor: pointer (la main). Autres valeurs utiles : cursor-default, cursor-not-allowed, cursor-wait, cursor-text, cursor-move, cursor-grab.

  • Il est plus court à écrire que #hex
  • Il garantit un contraste cohérent et accessible entre teintes claires et sombres dans le design system (bonne réponse)
  • Il évite d'avoir à gérer le dark mode
  • Il n'a aucun avantage technique réel
Explication : L'échelle d'intensité (50, 100, 200, ..., 900, 950) est calibrée pour le contraste. blue-500 a un contraste lisible avec blue-50 ou blue-900. Cela facilite : alternance claire/sombre, hover plus foncé (blue-600), états désactivés (blue-300), accessibilité WCAG AA.
En entretien : Tailwind 3.0+ utilise OKLCH (espace perceptuel), garantissant des écarts de luminosité réguliers entre intensités.

  • grid grid-3
  • grid grid-cols-3 (bonne réponse)
  • grid columns-3
  • grid grid-template-3
Explication : grid grid-cols-3 applique display: grid + grid-template-columns: repeat(3, minmax(0, 1fr)). Pour des lignes : grid-rows-{n}. Pour fusionner : col-span-{n}, row-span-{n}.

  • flex-grow
  • flex-1 (bonne réponse)
  • flex-fill
  • fill-flex
Explication : flex-1 = flex: 1 1 0% (grow + shrink + base 0). Variantes : flex-auto (1 1 auto), flex-initial (0 1 auto), flex-none (none). Pour grow seul : grow, grow-0.

  • hidden (bonne réponse)
  • invisible
  • block-none
  • display-none
Explication : hidden applique display: none et retire l'élément du flux. À combiner avec un breakpoint pour conditionner l'affichage : hidden md:block.

  • pos-absolute
  • absolute (bonne réponse)
  • fixed
  • relative
Explication : Tailwind nomme directement les valeurs : static, relative, absolute, fixed, sticky. Les offsets se font avec top-{n}, right-{n}, bottom-{n}, left-{n}, inset-{n} (les 4 d'un coup).

  • absolute top-right
  • absolute top-0 right-0 (bonne réponse)
  • absolute corner-tr
  • fixed top right
Explication : Combine absolute + top-0 + right-0. Important : le parent doit avoir relative sinon l'élément se positionne par rapport à <body>.

  • overflow-hidden (bonne réponse)
  • hide-overflow
  • no-overflow
  • overflow-none
Explication : Préfixe overflow-{valeur} : overflow-auto, overflow-hidden, overflow-clip, overflow-visible, overflow-scroll. Possibilité d'axer : overflow-x-*, overflow-y-*.

  • truncate (bonne réponse)
  • text-truncate
  • line-1
  • nowrap
Explication : truncate est un raccourci qui combine overflow: hidden + text-overflow: ellipsis + white-space: nowrap. Pour limiter à plusieurs lignes : line-clamp-2, line-clamp-3...

  • Utiliser uniquement le CSS classique pour les composants
  • Extraire les classes dans une variable et utiliser clsx ou tailwind-merge pour gérer les conditions et conflits (bonne réponse)
  • Toujours mettre toutes les classes sur une seule ligne énorme
  • Compiler manuellement chaque combinaison
Explication : En pratique, les composants React/Vue/Angular utilisent clsx (ou classnames) pour assembler des classes conditionnelles, et tailwind-merge pour résoudre les conflits (ex: p-2 + p-4 doit garder p-4). Combo très utilisé : cn(...) dans shadcn/ui.
Pattern cn() = twMerge(clsx(...args)), devenu standard dans l'écosystème (shadcn, Vercel, etc.).

  • transition-all (bonne réponse)
  • transition
  • transition-smooth
  • animate-all
Explication : transition-all = transition-property: all avec durée 150ms par défaut. transition sans suffixe couvre les propriétés communes (color, bg, opacity, transform...). Pour personnaliser : duration-300, ease-in-out, delay-100.

  • opacity-50 (bonne réponse)
  • opacity-0.5
  • opacity-half
  • op-50
Explication : opacity-{n} où n va de 0 à 100 par pas de 5/10. opacity-0, opacity-25, opacity-50, opacity-75, opacity-100. Pour des valeurs custom : opacity-[0.42] (syntaxe arbitraire).

  • leading-wide
  • tracking-wide (bonne réponse)
  • spacing-wide
  • letter-wide
Explication : tracking-{n} contrôle letter-spacing : tracking-tighter, tracking-tight, tracking-normal, tracking-wide, tracking-wider, tracking-widest. leading-* contrôle line-height, à ne pas confondre.

  • tracking-{n}
  • leading-{n} (bonne réponse)
  • line-{n}
  • spacing-{n}
Explication : leading-{n} = line-height. Échelle : leading-none (1), leading-tight (1.25), leading-snug (1.375), leading-normal (1.5), leading-relaxed (1.625), leading-loose (2), ou leading-{number} en rem.

  • w-123px
  • w-[123px] (bonne réponse)
  • w-arbitrary-123
  • w(123px)
Explication : Depuis Tailwind v3, la syntaxe arbitraire entre crochets permet n'importe quelle valeur : w-[123px], bg-[#1a2b3c], text-[14.5px], top-[calc(50%-2rem)]. À utiliser avec parcimonie (échappe au design system).

  • darkMode: 'media'
  • darkMode: 'class' (bonne réponse)
  • darkMode: true
  • darkMode: 'auto'
Explication : darkMode: 'class' active le mode sombre quand <html class="dark"> est présent (contrôle JS). 'media' suit prefers-color-scheme. 'selector' (v3.4) permet un sélecteur custom. Usage : bg-white dark:bg-gray-900.

  • night:bg-black
  • dark:bg-black (bonne réponse)
  • theme-dark:bg-black
  • nightmode:bg-black
Explication : Le préfixe officiel est dark:. Combinable avec d'autres préfixes : md:dark:hover:bg-gray-800 = au survol, en mode sombre, à partir de md.

  • bg-linear bg-blue-500 to-purple-500
  • bg-gradient-to-r from-blue-500 to-purple-500 (bonne réponse)
  • gradient-r blue-purple
  • bg-gradient(blue, purple)
Explication : Combo Tailwind : bg-gradient-to-{direction} + from-{couleur} + (via-*) + to-*. Directions : -r, -l, -t, -b, -tr, -tl, -br, -bl. Tailwind v4 utilise bg-linear-to-r.

  • ::placeholder text-gray-400
  • placeholder:text-gray-400 (bonne réponse)
  • input-placeholder-gray
  • holder-gray-400
Explication : Le préfixe placeholder: cible ::placeholder. Exemple : <input class="placeholder:text-gray-400 placeholder:italic" />. Autres pseudo-éléments : before:, after:, first-letter:, marker:.

  • Pour des raisons techniques de compilation
  • Pour imposer un design system cohérent et éviter les valeurs aléatoires (« presque mais pas tout à fait ») (bonne réponse)
  • Parce que les pixels libres ralentissent le navigateur
  • C'est obligatoire en CSS moderne
Explication : L'échelle contraint le designer, ce qui produit un rythme visuel cohérent : marges, paddings, tailles partagent un multiple commun (0.25rem). Sans ça, on retrouve des 13px, 17px, 23px qui cassent l'harmonie. La syntaxe arbitraire [123px] reste possible mais doit être l'exception.
Argument design : un design system rigoureux est plus rapide à maintenir qu'une infinie liberté pixel-parfaite.

  • z-50 (bonne réponse)
  • z-index-50
  • index-50
  • depth-50
Explication : Échelle z-index Tailwind : z-0, z-10, z-20, z-30, z-40, z-50, z-auto. Pour des valeurs personnalisées : z-[999].

  • text-right (bonne réponse)
  • right-text
  • align-right
  • justify-end
Explication : text-{left|center|right|justify|start|end} contrôle text-align. justify-end est pour Flex/Grid (axe principal), à ne pas confondre.

  • inline
  • inline-block (bonne réponse)
  • block-inline
  • d-inline-block
Explication : Tailwind nomme directement les valeurs : block, inline, inline-block, flex, inline-flex, grid, inline-grid, contents, flow-root, hidden.

  • border-b-2 (bonne réponse)
  • border-bottom-2
  • b-border-2
  • border-2 b
Explication : Tailwind permet de cibler chaque côté : border-t (top), border-r (right), border-b (bottom), border-l (left), border-x (gauche+droite), border-y (haut+bas). Avec épaisseur : border-b-2, border-t-4...

  • fit-cover
  • object-cover (bonne réponse)
  • cover
  • image-cover
Explication : object-{fit} : object-cover (couvre, peut couper), object-contain (contient, lettrebox), object-fill, object-none, object-scale-down. Combine avec object-{position} : object-center, object-top, etc.

  • Créer un composant React/Vue/Angular qui encapsule les classes (pratique recommandée)
  • Utiliser @apply dans un fichier CSS pour créer une classe custom (acceptable)
  • Extraire dans un partial HTML/PHP
  • Toutes les réponses ci-dessus sont valables selon le contexte (bonne réponse)
Explication : Trois approches valables : (1) composant (React/Vue/Angular) — la plus recommandée car réutilise aussi le comportement ; (2) @apply .btn { @apply px-4 py-2 bg-blue-500 ...; } dans un fichier CSS, utile pour quelques composants courts ; (3) partial PHP/HTML pour du templating server-side. La doc Tailwind déconseille @apply à outrance car cela recrée le problème CSS classique.
En entretien : prouve que tu connais les compromis. @apply est légitime pour .btn, .card, mais pas pour .dashboard-page.

  • @include
  • @apply (bonne réponse)
  • @use
  • @compose
Explication : @apply permet d'embarquer des classes utilitaires Tailwind dans une classe CSS : .btn { @apply px-4 py-2 bg-blue-500 text-white rounded; } À utiliser avec parcimonie (la philosophie reste utility-first dans le HTML).