Passer au contenu principal

CSS-only Tailwind CSS range slider with primary, secondary, accent, and semantic color variants. Sizes xs–xl. WCAG AA accessible, works with Django, HTMX, Laravel, React, and any stack.

Les composants de plage permettent aux utilisateurs de sélectionner une valeur numérique dans une plage définie à l'aide d'un curseur interactif. Construits avec des entrées de plage HTML natives et un style fluide, les curseurs de plage offrent un contrôle intuitif sur les valeurs continues. Le système de la gamme Frutjam prend en charge plusieurs tailles, couleurs et états, ce qui est idéal pour les contrôles de volume, les filtres de prix et le nettoyage de la chronologie.

CSS uniquement, aucun JavaScript requis. WCAG AA accessible et indépendant du framework – fonctionne avec Django, HTMX, Laravel, React et n'importe quelle pile.

Classe Taper Description
rangeBaseEntrée du curseur de plage stylisée
range-xsTailleTrès petit
range-smTaillePetit
range-mdTailleMoyen (par défaut)
range-lgTailleGrand
range-xlTailleTrès grand
range-primaryCouleurCouleur du thème principal
range-secondaryCouleurCouleur du thème secondaire
range-accentCouleurCouleur du thème d'accentuation
range-neutralCouleurCouleur du thème neutre
range-infoCouleurCouleur sémantique de l'information
range-successCouleurCouleur sémantique du succès
range-warningCouleurCouleur sémantique d’avertissement
range-errorCouleurCouleur sémantique des erreurs

Utilisation de base

<input type="range" min="0" max="100" value="40" class="range">
<input type="range" min="0" max="100" value="40" className="range">

Tailles de gamme

html
1
2
3
4
5
<input type="range" min="0" max="100" value="40" class="range range-xs">
<input type="range" min="0" max="100" value="40" class="range range-sm">
<input type="range" min="0" max="100" value="40" class="range range-md">
<input type="range" min="0" max="100" value="40" class="range range-lg">
<input type="range" min="0" max="100" value="40" class="range range-xl">

Couleurs de la gamme

html
1
2
3
4
5
6
7
8
<input type="range" min="0" max="100" value="40" class="range">
<input type="range" min="0" max="100" value="40" class="range range-primary">
<input type="range" min="0" max="100" value="40" class="range range-secondary">
<input type="range" min="0" max="100" value="40" class="range range-accent">
<input type="range" min="0" max="100" value="40" class="range range-info">
<input type="range" min="0" max="100" value="40" class="range range-success">
<input type="range" min="0" max="100" value="40" class="range range-warning">
<input type="range" min="0" max="100" value="40" class="range range-error">

Gamme avec marches

html
1
2
3
<input type="range" min="0" max="100" step="10" value="40" class="range">
<input type="range" min="0" max="100" step="5" value="40" class="range range-primary">
<input type="range" min="0" max="100" step="1" value="40" class="range range-secondary">

Gamme avec étiquette

html
1
2
3
4
5
6
7
8
9
<label>
  <span class="block text-sm font-medium mb-2">Volume</span>
  <input type="range" min="0" max="100" value="70" class="range range-primary">
</label>

<label>
  <span class="block text-sm font-medium mb-2">Price Range: $20 - $80</span>
  <input type="range" min="0" max="100" value="50" class="range">
</label>

Portée désactivée

html
<input type="range" min="0" max="100" value="40" class="range" disabled>

Gamme avec marques

0 25 50 75 100
html
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<div>
  <div class="flex justify-between text-xs mb-2">
    <span>0</span>
    <span>25</span>
    <span>50</span>
    <span>75</span>
    <span>100</span>
  </div>
  <input type="range" min="0" max="100" value="50" class="range range-primary w-full">
</div>