Vista previa#
Intersecciones de 2 o 3 conjuntos. 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, VennDiagram } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<VennDiagram
sets={/* … */}
ariaLabel="Venn Diagram"
/>
</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/venn-diagram.tsx)
import type { VennSet } from "@carlos-burelo/klin";
import { ChartTooltipPortal, VennDiagram } from "@carlos-burelo/klin";
const sets: [VennSet, VennSet, VennSet] = [
{ label: "Correo", value: 5200 },
{ label: "Mensaje de texto", value: 3800 },
{ label: "Aplicación móvil", value: 2900 },
];
const intersections = [
{ sets: [0, 1], value: 1450 },
{ sets: [0, 2], value: 980 },
{ sets: [1, 2], value: 760 },
{ sets: [0, 1, 2], value: 410 },
];
function format(value: number): string {
return `${new Intl.NumberFormat("es-MX").format(Math.round(value))} personas`;
}
export default function VennDiagramDemo() {
return (
<ChartTooltipPortal>
<VennDiagram
sets={sets}
intersections={intersections}
ariaLabel="Traslape de canales de notificación usados por la ciudadanía"
format={format}
/>
</ChartTooltipPortal>
);
}Props#
13 props · 2 requeridas
Tipo completo: VennDiagramProps en venn-diagram.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:
venn-diagram.tsx - Guías: SSR-first · Tema · Tooltip