Descriptions
UIVista de detalle de solo lectura para mostrar pares etiqueta/valor de un registro: páginas «ver», perfiles y resúmenes.
Uso básico
Subcomponentes: la API principal, para valores con formato rico usando otros componentes.
Usuario
- Nombre
- Oscar Villa
- oscar@mail.com
- Estado
- Activo
<x-kore::descriptions title="Usuario" :columns="2">
<x-kore::descriptions.item label="Nombre" value="Oscar Villa" />
<x-kore::descriptions.item label="Email" value="oscar@mail.com" />
<x-kore::descriptions.item label="Estado">
<x-kore::badge label="Activo" color="success" />
</x-kore::descriptions.item>
</x-kore::descriptions><x-kore::descriptions title="Usuario" :columns="2">
<x-kore::descriptions.item label="Nombre" value="Oscar Villa" />
<x-kore::descriptions.item label="Email" value="oscar@mail.com" />
<x-kore::descriptions.item label="Estado">
<x-kore::badge label="Activo" color="success" />
</x-kore::descriptions.item>
</x-kore::descriptions>Valores con formato
El slot del item admite cualquier componente: ideal para estados, verificaciones o avatares.
- Estado
- Activo
- Verificado
<x-kore::descriptions :columns="2">
<x-kore::descriptions.item label="Estado">
<x-kore::badge label="Activo" color="success" />
</x-kore::descriptions.item>
<x-kore::descriptions.item label="Verificado">
<x-kore::boolean :value="true" />
</x-kore::descriptions.item>
</x-kore::descriptions><x-kore::descriptions :columns="2">
<x-kore::descriptions.item label="Estado">
<x-kore::badge label="Activo" color="success" />
</x-kore::descriptions.item>
<x-kore::descriptions.item label="Verificado">
<x-kore::boolean :value="true" />
</x-kore::descriptions.item>
</x-kore::descriptions>Layout vertical
Etiqueta encima del valor, útil en columnas estrechas.
- Plan
- Pro
- Ciclo
- Anual
- Renovación
- 15 jul 2026
<x-kore::descriptions layout="vertical" :columns="3">
<x-kore::descriptions.item label="Plan" value="Pro" icon="badge-check" />
<x-kore::descriptions.item label="Ciclo" value="Anual" icon="repeat" />
<x-kore::descriptions.item label="Renovación" value="15 jul 2026" icon="calendar" />
</x-kore::descriptions><x-kore::descriptions layout="vertical" :columns="3">
<x-kore::descriptions.item label="Plan" value="Pro" icon="badge-check" />
<x-kore::descriptions.item label="Ciclo" value="Anual" icon="repeat" />
<x-kore::descriptions.item label="Renovación" value="15 jul 2026" icon="calendar" />
</x-kore::descriptions>Bordered
Rejilla con celdas y bordes tipo tarjeta.
Factura
- Folio
- A-1024
- Fecha
- 15 jul 2026
- Cliente
- Acme S.A.
- Total
- $ 12,400.00
- Notas
- Entrega en almacén central.
<x-kore::descriptions title="Factura" :columns="2" bordered>
<x-kore::descriptions.item label="Folio" value="A-1024" />
<x-kore::descriptions.item label="Fecha" value="15 jul 2026" />
<x-kore::descriptions.item label="Cliente" value="Acme S.A." />
<x-kore::descriptions.item label="Total" value="$ 12,400.00" />
<x-kore::descriptions.item label="Notas" :span="2" value="Entrega en almacén central." />
</x-kore::descriptions><x-kore::descriptions title="Factura" :columns="2" bordered>
<x-kore::descriptions.item label="Folio" value="A-1024" />
<x-kore::descriptions.item label="Fecha" value="15 jul 2026" />
<x-kore::descriptions.item label="Cliente" value="Acme S.A." />
<x-kore::descriptions.item label="Total" value="$ 12,400.00" />
<x-kore::descriptions.item label="Notas" :span="2" value="Entrega en almacén central." />
</x-kore::descriptions>Data-driven
Atajo con un array para datos simples. Cada entrada acepta label, value, icon, span y html.
- Nombre
- Oscar Villa
- oscar@mail.com
- Rol
- Administrador
- Alta
- 15 jul 2026
<x-kore::descriptions :columns="2" :items="[
['label' => 'Nombre', 'value' => 'Oscar Villa'],
['label' => 'Email', 'value' => 'oscar@mail.com'],
]" /><x-kore::descriptions :columns="2" :items="[
['label' => 'Nombre', 'value' => 'Oscar Villa'],
['label' => 'Email', 'value' => 'oscar@mail.com'],
]" />Cuándo usarlo
Antes de armar a mano un bloque de labels y valores para una vista de detalle.
Descriptions es el espejo de solo lectura del formulario: el mismo modelo mental de «etiqueta + valor», pero sin inputs, sin wire:model y sin validación. Úsalo en páginas «ver», perfiles y resúmenes, donde el usuario consulta datos en vez de editarlos.
Es el compañero natural del DataTable: la tabla lista muchos registros, Descriptions muestra el detalle de uno solo. Un patrón habitual es una fila de tabla que navega a una página con un Descriptions.
Los items heredan layout, bordered y size del contenedor vía @aware, así que no hace falta repetirlos en cada descriptions.item.
Props del contenedor
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
title
|
string|null | null | Encabezado opcional |
description
|
string|null | null | Subtítulo opcional |
columns
|
int | 1 | Columnas de la rejilla (1, 2, 3) — responsive desde sm |
layout
|
string | horizontal | horizontal (label al lado) o vertical (label encima) |
bordered
|
bool | false | Rejilla con celdas y bordes tipo tarjeta |
size
|
string | md | Densidad: sm, md, lg |
items
|
array|null | null | Atajo data-driven; si se usa, ignora el slot |
Props de item
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
label
|
string | vacío | Etiqueta del campo |
value
|
string|null | null | Valor simple; si es null se usa el slot (para badge, boolean, etc.) |
icon
|
string|null | null | Icono Lucide junto a la etiqueta |
span
|
int | 1 | Columnas que ocupa la entrada |