Vista previa#
Progreso por segmentos con %. 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, StackedBar } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<StackedBar
rows={/* … */}
segments={/* … */}
ariaLabel="Stacked Bar"
/>
</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/stacked-bar.tsx)
import { ChartTooltipPortal, StackedBar } from "@carlos-burelo/klin";
/** Avance de proyectos por estado (horas). */
export default function StackedBarDemo() {
return (
<ChartTooltipPortal>
<StackedBar
ariaLabel="Avance de proyectos por estado de tareas"
percentOf="completado"
segments={[
{ key: "completado", label: "Completado" },
{ key: "encurso", label: "En curso" },
{ key: "pendiente", label: "Pendiente" },
]}
rows={[
{
detail: "Portal de alumnos",
label: "Portal web",
values: { completado: 120, encurso: 45, pendiente: 35 },
},
{
detail: "App de pagos",
label: "App móvil",
values: { completado: 80, encurso: 60, pendiente: 60 },
},
{
detail: "Migración de datos",
label: "Migración",
values: { completado: 150, encurso: 20, pendiente: 30 },
},
]}
/>
</ChartTooltipPortal>
);
}Props#
17 props · 3 requeridas
Tipo completo: StackedBarProps en stacked-bar.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:
stacked-bar.tsx - Guías: SSR-first · Tema · Tooltip