Ir al contenido

Range

Selecciona valores numéricos usando un control deslizante interactivo.

import { Range } from 'asterui'

Range básico

Control deslizante de rango simple con configuración predeterminada.

import { Range } from 'asterui'

function App() {
  return (
      <Range />
    )
}

export default App

Con visualización de valor

Control deslizante de rango mostrando el valor actual.

50
import { Range } from 'asterui'

function App() {
  return (
      <Range showValue />
    )
}

export default App

Con pasos

Control deslizante de rango con marcadores de pasos visibles.

|||||||||||
import { Range } from 'asterui'

function App() {
  return (
      <Range showSteps step={10} />
    )
}

export default App

Controlado

Control deslizante de rango controlado con gestión de estado.

50

Value: 50

import { Range } from 'asterui'
import { useState } from 'react'

function App() {
  const [value, setValue] = useState(50);
  
  return (
      <div>
        <Range value={value} onChange={setValue} showValue />
        <p className="mt-2 text-sm text-base-content/70">Value: {value}</p>
      </div>
    )
}

export default App

Rango personalizado

Control deslizante de rango con valores mín, máx y paso personalizados.

5
import { Range } from 'asterui'

function App() {
  return (
      <Range min={0} max={10} step={0.5} defaultValue={5} showValue />
    )
}

export default App

Colores

Controles deslizantes de rango en varios colores de tema.

import { Range, Space } from 'asterui'

function App() {
  return (
      <Space>
        <Range color="primary" defaultValue={25} />
        <Range color="secondary" defaultValue={35} />
        <Range color="accent" defaultValue={45} />
        <Range color="success" defaultValue={55} />
        <Range color="warning" defaultValue={65} />
        <Range color="info" defaultValue={75} />
        <Range color="error" defaultValue={85} />
      </Space>
    )
}

export default App

Tamaños

Controles deslizantes de rango en varios tamaños.

import { Range, Space } from 'asterui'

function App() {
  return (
      <Space size="lg">
        <Range size="xs" defaultValue={25} />
        <Range size="sm" defaultValue={50} />
        <Range size="md" defaultValue={75} />
        <Range size="lg" defaultValue={90} />
      </Space>
    )
}

export default App

Deshabilitado

Control deslizante de rango deshabilitado.

import { Range } from 'asterui'

function App() {
  return (
      <Range disabled defaultValue={60} />
    )
}

export default App

Ejemplo de control de volumen

Ejemplo del mundo real de un control de volumen.

🔊
50%
import { Range } from 'asterui'
import { useState } from 'react'

function App() {
  const [volume, setVolume] = useState(50);
  
  return (
      <div className="p-4 border border-base-300 rounded-lg">
        <div className="flex items-center gap-3">
          <span className="text-2xl">
            {volume === 0 ? '🔇' : volume < 50 ? '🔉' : '🔊'}
          </span>
          <Range
            value={volume}
            onChange={setVolume}
            color="primary"
            className="flex-1"
          />
          <span className="text-sm font-medium w-12 text-right">{volume}%</span>
        </div>
      </div>
    )
}

export default App

En formulario

Control deslizante de rango integrado con componente Form.

50

 

75

 

import { Range, Form, Button } from 'asterui'

function App() {
  const handleSubmit = (values: Record<string, unknown>) => {
    console.log('Form values:', values);
    alert(JSON.stringify(values, null, 2));
  };
  
  return (
      <Form onFinish={handleSubmit} initialValues={{ volume: 50, brightness: 75 }}>
        <Form.Item name="volume" label="Volume">
          <Range showValue color="primary" />
        </Form.Item>
  
        <Form.Item name="brightness" label="Brightness">
          <Range showValue color="warning" />
        </Form.Item>
  
        <Form.Item>
          <Button htmlType="submit" color="primary">
            Submit
          </Button>
        </Form.Item>
      </Form>
    )
}

export default App
PropiedadDescripciónTipoPredeterminado
valueValor controladonumber-
defaultValueValor predeterminado (no controlado)number50
onChangeCallback cuando cambia el valor(value: number) => void-
minValor mínimonumber0
maxValor máximonumber100
stepIncremento de pasonumber1
sizeTamaño del rango'xs' | 'sm' | 'md' | 'lg''md'
colorTema de color del rango'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'info' | 'error'-
disabledDeshabilitar la entrada de rangobooleanfalse
showValueMostrar valor actual debajo del rangobooleanfalse
showStepsMostrar marcadores de pasos debajo del rangobooleanfalse
classNameClases CSS adicionalesstring-
data-testidID de prueba para pruebasstring-
  • Usa <input type="range"> nativo para accesibilidad completa
  • El valor se anuncia por lectores de pantalla como porcentaje
  • Navegación por teclado con teclas de flecha soportada
  • Funciona con showValue para visualización de valor visual