Skip to main content Skip to docs navigation

Rango (Range)

Utiliza nuestras entradas de rango personalizadas para lograr un diseño consistente entre navegadores y una personalización integrada.

Descripción general

Crea controles personalizados <input type="range"> con .form-range. La pista (el fondo) y el deslizador (el valor) están diseñados para tener la misma apariencia en todos los navegadores. Como solo Firefox admite el "relleno" de su pista desde la izquierda o la derecha del deslizador como medio para indicar visualmente el progreso, actualmente no lo admitimos.

html
<label for="range1" class="form-label">Rango de ejemplo</label>
<input type="range" class="form-range" id="range1">

Deshabilitado

Agrega el atributo booleano disabled en una entrada para darle una apariencia atenuada, eliminar eventos del puntero y evitar el enfoque.

html
<label for="disabledRange" class="form-label">Rango deshabilitado</label>
<input type="range" class="form-range" id="disabledRange" disabled>

Mínimo y máximo (Min and max)

Las entradas de rango tienen valores implícitos para min y max: 0 y 100, respectivamente. Puedes especificar nuevos valores para ellos utilizando los atributos min y max.

html
<label for="range2" class="form-label">Rango de ejemplo</label>
<input type="range" class="form-range" min="0" max="5" id="range2">

Pasos (Steps)

De forma predeterminada, las entradas de rango se "ajustan" a valores enteros. Para cambiar esto, puedes especificar un valor step. En el ejemplo a continuación, duplicamos el número de pasos usando step="0.5".

html
<label for="range3" class="form-label">Rango de ejemplo</label>
<input type="range" class="form-range" min="0" max="5" step="0.5" id="range3">

Valor de salida (Output value)

El valor de la entrada de rango se puede mostrar utilizando el elemento output y un poco de JavaScript.

html
<label for="range4" class="form-label">Rango de ejemplo</label>
<input type="range" class="form-range" min="0" max="100" value="50" id="range4">
<output for="range4" id="rangeValue" aria-hidden="true"></output>

<script>
  // Este es un script de ejemplo, por favor modifícalo según sea necesario
  const rangeInput = document.getElementById('range4');
  const rangeOutput = document.getElementById('rangeValue');

  // Establecer valor inicial
  rangeOutput.textContent = rangeInput.value;

  rangeInput.addEventListener('input', function() {
    rangeOutput.textContent = this.value;
  });
</script>

CSS

Variables Sass

$form-range-track-width:          100%;
$form-range-track-height:         .5rem;
$form-range-track-cursor:         pointer;
$form-range-track-bg:             var(--#{$prefix}secondary-bg);
$form-range-track-border-radius:  1rem;
$form-range-track-box-shadow:     var(--#{$prefix}box-shadow-inset);

$form-range-thumb-width:                   1rem;
$form-range-thumb-height:                  $form-range-thumb-width;
$form-range-thumb-bg:                      $component-active-bg;
$form-range-thumb-border:                  0;
$form-range-thumb-border-radius:           1rem;
$form-range-thumb-box-shadow:              0 .1rem .25rem rgba($black, .1);
$form-range-thumb-focus-box-shadow:        0 0 0 1px $body-bg, $input-focus-box-shadow;
$form-range-thumb-focus-box-shadow-width:  $input-focus-width; // For focus box shadow issue in Edge
$form-range-thumb-active-bg:               tint-color($component-active-bg, 70%);
$form-range-thumb-disabled-bg:             var(--#{$prefix}secondary-color);
$form-range-thumb-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;