Vista previa#
Partición rectangular. Demo completa con datos realistas, renderizada en el servidor. Más abajo están las configuraciones, una por una.
Ejemplos#
Todas las configuraciones del componente, cada una viva y con datos propios. Cambia entre Preview y Code en cada tarjeta y copia lo que necesites.
Uso#
Ejemplo mínimo con las props requeridas. Copia, pega y cambia los datos:
import { ChartTooltipPortal, IcicleChart } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<IcicleChart
root={/* … */}
ariaLabel="Icicle Chart"
/>
</ChartTooltipPortal>La gráfica es función pura de props a SVG: el HTML llega renderizado y sin JS se ve completa.
Envuelve en ChartTooltipPortal solo si quieres tooltip rico; sin JS queda \<title\> nativo.
Lee la guía /docs/ssr-first una vez y listo.
Código de esta demo#
Ver fuente (src/demos/icicle-chart.tsx)
import type { IcicleNode } from "@carlos-burelo/klin";
import { ChartTooltipPortal, IcicleChart } from "@carlos-burelo/klin";
const root: IcicleNode = {
label: "Presupuesto 2025",
children: [
{
label: "Servicios públicos",
children: [
{ label: "Agua potable", value: 320 },
{ label: "Alumbrado", value: 180 },
{ label: "Limpia", value: 150 },
],
},
{
label: "Obra pública",
children: [
{ label: "Pavimentación", value: 410 },
{ label: "Parques", value: 120 },
{ label: "Drenaje", value: 260 },
],
},
{
label: "Seguridad",
children: [
{ label: "Patrullaje", value: 290 },
{ label: "Videovigilancia", value: 140 },
],
},
],
};
function format(value: number): string {
return new Intl.NumberFormat("es-MX", {
style: "currency",
currency: "MXN",
maximumFractionDigits: 0,
}).format(value);
}
export default function IcicleChartDemo() {
return (
<ChartTooltipPortal>
<IcicleChart
root={root}
format={format}
ariaLabel="Distribución del presupuesto municipal por rubro y programa en pesos: obra pública concentra el mayor gasto y parques es el programa más pequeño"
/>
</ChartTooltipPortal>
);
}Props#
14 props · 2 requeridas
Tipo completo: IcicleChartProps en icicle-chart.tsx.
Accesibilidad#
- Toda gráfica exige
ariaLabeldescriptivo; el SVG usarole="img"con\<title\>. - Cada forma lleva
\<title\>nativo (tooltip sin JS) ydata-chart-tippara el portal rico. - Sin datos se renderiza estado vacío homogéneo (
ChartEmpty), nunca SVG roto. - Detalle del contrato en /docs/accesibilidad.
Recursos#
- Fuente del componente:
icicle-chart.tsx - Guías: SSR-first · Tema · Tooltip