Resizable
Paneles donde el usuario decide el espacio (tabla + detalle). Arrastrá o usá flechas.
Dos paneles con un divisor que se arrastra o se mueve con teclado.
Instalación
shadcn
npx shadcn@latest add https://design.moodinary.com/r/resizable.jsonimport
import { Resizable } from "@moodinary/ui/components/resizable";Ejemplos
Paneles
Lista y detalle. El tamaño es en porcentaje del panel inicial.
Equipos
4.º A · Equipo Ventas · Equipo Soporte
Detalle
Espacio para el detalle del equipo. Contenido ilustrativo.
Código
panels.tsx
import { Resizable } from "@moodinary/ui/components/resizable";
export default function ResizablePanels() {
return (
<Resizable
end={
<div>
<h3 className="font-medium">Detalle</h3>
<p className="mt-1 text-ink-2">
Espacio para el detalle del equipo. Contenido ilustrativo.
</p>
</div>
}
label="Ancho de la lista de equipos"
start={
<div>
<h3 className="font-medium">Equipos</h3>
<p className="mt-1 text-ink-2">
4.º A · Equipo Ventas · Equipo Soporte
</p>
</div>
}
/>
);
}Props
Resizable
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
| start | ReactNode | - | Panel inicial. |
| end | ReactNode | - | Panel final. |
| defaultSize | number | 40 | Tamaño inicial en %. |
| minSize | number | 20 | Mínimo en %. |
| maxSize | number | 80 | Máximo en %. |
| label | string | "Redimensionar" | Nombre del divisor. |
| className | string | - | Clases extra. |
Cuándo sí y cuándo no
Hacé
- Poné límites para que ningún panel desaparezca.
- Usalo en vistas de lista y detalle.
- Nombrá el divisor.
Evitá
- No lo uses en mobile como única forma de ver contenido.
- No pongas más de dos paneles.
- No guardes tamaños sin que la persona lo sepa.
Accesibilidad
- El divisor es un separator con
aria-valuenow. - Flechas mueven el divisor.