Vista previa#
Dos series espejadas. 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, PyramidChart } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<PyramidChart
groups={/* … */}
left={/* … */}
right={/* … */}
ariaLabel="Pyramid 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/pyramid-chart.tsx)
import { ChartTooltipPortal, PyramidChart } from "@carlos-burelo/klin";
/** Pirámide poblacional por grupo de edad (miles de habitantes). */
export default function PyramidChartDemo() {
return (
<ChartTooltipPortal>
<PyramidChart
ariaLabel="Pirámide poblacional de México por grupo de edad y sexo"
groups={[
"0-9",
"10-19",
"20-29",
"30-39",
"40-49",
"50-59",
"60-69",
"70 o más",
]}
left={{
label: "Hombres",
values: [10500, 10200, 9800, 8900, 7400, 5800, 3600, 2100],
}}
right={{
label: "Mujeres",
values: [10200, 10000, 9900, 9100, 7700, 6200, 4000, 2600],
}}
/>
</ChartTooltipPortal>
);
}Props#
17 props · 4 requeridas
Tipo completo: PyramidChartProps en pyramid-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:
pyramid-chart.tsx - Guías: SSR-first · Tema · Tooltip