Saltar al contenido
Logic2BUI

Buscar en la documentación

Busca componentes y documentación

Nuevo
Menú

Selector

Muestra una lista de opciones que se abre desde un botón.

Instalación

npx logic2b@next add select

Uso

import {
  Select,
  SelectContent,
  SelectItem,
  SelectTrigger,
  SelectValue,
} from "@/components/ui/select"

<Select>
  <SelectTrigger aria-label="Selecciona una fruta" className="w-[180px]">
    <SelectValue placeholder="Selecciona una fruta" />
  </SelectTrigger>
  <SelectContent>
    <SelectItem value="apple">Manzana</SelectItem>
  </SelectContent>
</Select>

Ejemplos

Opciones agrupadas

Con una opción desactivada

Accesibilidad

Está construido sobre Select de Radix y sigue el patrón listbox de WAI-ARIA.

  • Se maneja completamente con teclado: abre con Enter, Espacio o las flechas, muévete con las flechas y escribe para saltar a una opción.
  • Escape cierra la lista y devuelve el foco al disparador.
  • Da a SelectTrigger un nombre accesible explícito con aria-label o aria-labelledby. El placeholder comunica que no hay valor, pero no sustituye el nombre del campo.
  • Agrupa opciones relacionadas con SelectGroup y SelectLabel.

Playground interactivo

Edita las propiedades del componente y revisa el JSX exacto antes de copiarlo. La vista previa se carga solo cuando esta sección entra en pantalla.

JSX generado
<Select
  defaultValue="team"
>
  <SelectTrigger
    className="w-56"
    aria-label="Workspace plan"
  >
    <SelectValue
      placeholder="Choose a plan"
     />
  </SelectTrigger>
  <SelectContent>
    <SelectItem
      value="starter"
    >Starter</SelectItem>
    <SelectItem
      value="team"
    >Team</SelectItem>
    <SelectItem
      value="enterprise"
    >Enterprise</SelectItem>
  </SelectContent>
</Select>

Referencia de API

Generada a partir de las exportaciones públicas de TypeScript en src/ui/select.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.

Ver JSON

Select

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Root>

SelectContent

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Content>
PropiedadTipoObligatoriaValor predeterminadoDescripción
position"item-aligned" | "popper"No"popper"—

SelectGroup

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Group>

SelectItem

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Item>

SelectLabel

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Label>

SelectScrollDownButton

Componente
Props: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>

SelectScrollUpButton

Componente
Props: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>

SelectSeparator

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Separator>

SelectTrigger

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Trigger> & { size?: "sm" | "default" }
PropiedadTipoObligatoriaValor predeterminadoDescripción
size"sm" | "default"No"default"—

SelectValue

Componente
Props: React.ComponentProps<typeof SelectPrimitive.Value>

Contrato de accesibilidad

Comportamiento legible por máquinas y responsabilidades de quien integra select. Los detalles normativos conservan el texto canónico del registro.

Ver JSON
Soporte
Gestionado por la primitiva
Patrón
listbox select
Radix Select
Interacciones de teclado para select
TeclasComportamiento
Enter SpaceActivate the focused control.
ArrowUp ArrowDown ArrowLeft ArrowRightMove within the composite control.
Home EndMove to the first or last option.
EscapeClose the open surface and restore focus.

Semántica incorporada

  • Manages combobox/listbox/option semantics, selected state and trigger-value linkage.

Responsabilidades de integración

  • Provide a visible label or aria-label for the trigger.