Segmented

Selector de opción única tipo iOS para alternar vistas o rangos. Controlado o no controlado, con variantes pill y outline, iconos por opción y modo de ancho completo.

Instalación#

bash
pnpm add @tsukira/ui

Uso#

tsx
import { Segmented } from "@tsukira/ui"; <Segmented  options={[    { value: "dia", label: "Día" },    { value: "semana", label: "Semana" },  ]}  value={range}  onValueChange={setRange}/>

Ejemplos#

Playground

cambia las props y el código se regenera

options*

size

fullWidth

Inactivo

variant

disabled

Inactivo

aria-label

className

style

Controlado

value: "semana"

Variante outline · con iconos

Ancho completo · tamaño sm

API#

SegmentedProps
PropTipoDefaultDescripción
options*SegmentedOption<T>[]Opciones renderizadas como items del grupo.
valueTValor controlado.
onValueChange((value: T) => void)Callback de cambio. Solo single-select.
defaultValueTValor inicial no controlado.
size'sm' | 'md' | 'lg'`md`Tamaño visual. Default `md`.
fullWidthbooleanAncho completo en su contenedor.
variant'pill' | 'outline'`pill`Variante visual. Default `pill`.
disabledbooleanDeshabilita todo el grupo.
aria-labelstringEtiqueta accesible — recomendada cuando no hay label visible.
idstringNombre / id opcional para integraciones de form.
classNamestringclassName extra.
styleReact.CSSPropertiesstyle inline.