A simple item with title and description.
Instalación
npx logic2b@next add itemUso
import {
Item,
ItemActions,
ItemContent,
ItemDescription,
ItemMedia,
ItemTitle,
} from "@/components/ui/item"
import { Button } from "@/components/ui/button"
<Item variant="outline">
<ItemContent>
<ItemTitle>Elemento básico</ItemTitle>
<ItemDescription>Un elemento sencillo con título y descripción.</ItemDescription>
</ItemContent>
<ItemActions>
<Button variant="outline" size="sm">Acción</Button>
</ItemActions>
</Item>
Usa asChild para generar el elemento como su nodo hijo, por ejemplo un <a>,
en vez de un div. Así toda la fila se convierte en enlace sin alterar su
distribución.
Ejemplos
Agrupado, con separadores e iconos
Envuelve los elementos en ItemGroup e intercala un ItemSeparator para crear
una lista similar a la de ajustes. ItemMedia variant="icon" añade al icono
inicial un fondo cuadrado atenuado; variant="image" dimensiona y recorta un
<img> del mismo modo para contenido similar a un avatar.
Get notified about account activity.
Require a code at every sign-in.
Email me before a renewal charge.
Partes
| Componente | Uso |
|---|---|
Item |
Raíz de la fila o tarjeta: contenedor flexible de las demás partes. |
ItemGroup |
Agrupa visualmente elementos con semántica neutra; combínalo con ItemSeparator. |
ItemSeparator |
Línea horizontal entre elementos agrupados. |
ItemMedia |
Icono, imagen o avatar inicial. |
ItemContent |
Envuelve ItemTitle y ItemDescription; varios bloques no crecen dentro de un mismo Item. |
ItemTitle |
Línea de título del elemento. |
ItemDescription |
Texto complementario limitado a dos líneas. |
ItemActions |
Botones, interruptores o iconos finales. |
ItemHeader / ItemFooter |
Filas opcionales de ancho completo antes o después del contenido principal. |
Accesibilidad
ItemGroup es semánticamente neutro por defecto porque no todos los grupos
compuestos son listas. Para contenido que sí lo sea, pasa role="list" a
ItemGroup y role="listitem" a cada Item. Si un Item es interactivo, usa
asChild y genera un <a> o <button> real como nodo hijo; no añadas onClick
a un <div> sin semántica, que los lectores de pantalla y métodos de entrada
nativos no reconocerán como accionable. Asigna un nombre accesible a cada botón
de icono o interruptor final.
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.
<Item
variant="outline"
size="default"
>
<ItemContent>
<ItemTitle>Registry release</ItemTitle>
<ItemDescription>Versioned source and accessibility metadata are ready.</ItemDescription>
</ItemContent>
<ItemActions>
<span
className="rounded-full bg-muted px-2 py-1 text-xs"
>Ready</span>
</ItemActions>
</Item>Versioned source and accessibility metadata are ready.
Referencia de API
Generada a partir de las exportaciones públicas de TypeScript en src/ui/item.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.
Item
ComponenteProps: React.ComponentProps<"div"> & VariantProps<typeof itemVariants> & { asChild?: boolean }| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
variant | null | "default" | "outline" | "muted" | No | "default" | — |
size | null | "default" | "sm" | No | "default" | — |
asChild | boolean | No | false | — |
ItemMedia
ComponenteProps: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
variant | null | "image" | "default" | "icon" | No | "default" | — |
ItemContent
ComponenteProps: React.ComponentProps<"div">ItemActions
ComponenteProps: React.ComponentProps<"div">ItemGroup
ComponenteProps: React.ComponentProps<"div">ItemSeparator
ComponenteProps: React.ComponentProps<typeof Separator>ItemTitle
ComponenteProps: React.ComponentProps<"div">ItemDescription
ComponenteProps: React.ComponentProps<"p">ItemHeader
ComponenteProps: React.ComponentProps<"div">ItemFooter
ComponenteProps: React.ComponentProps<"div">Contrato de accesibilidad
Comportamiento legible por máquinas y responsabilidades de quien integra item. Los detalles normativos conservan el texto canónico del registro.
- Soporte
- Contrato de composición
- Patrón
- content item
- HTML div
Semántica incorporada
- Preserves the semantics of nested headings, links and buttons without imposing a role.
Responsabilidades de integración
- Choose list/listitem, article or link semantics at the composition boundary when the surrounding collection requires them.