Saltar al contenido
Índice de Kit UI
Kit UI Componentes

Calidad de datos.

Patrón canónico de calidad de datos para cochid, periodismo2, situación y admin.

Verlo por niveles

Primero el componente, después la variación de marca y finalmente su uso dentro de una página.

Nivel 1Componente canónico
Calidad: validado
Nivel 2Compañía de Innovación de Santiago · variación
Calidad: parcial · 15 de 16 regiones con datos
Nivel 3Dentro de una página
Sitio · sección
Calidad: validado
Ver y copiar el código de este render
HTML del nivel canónico
<span class="ui-sample badge badge--ok" data-quality="validado" title="Cobertura y sumas verificadas">Calidad: validado</span>

Variaciones por marca y sitio

Cada cambio visible declara su autoridad; lo que permanece canónico no se vuelve a inventar en el producto.

cochid.cl

COCHID

Autoridad: core-style/DECISIONES.md M15 y LOGOS-CANONICOS.md
Calidad: validado

Cambia en esta marca

  • Cuadrado azul y namebrand de tres líneas
  • Azul COCHID en selección, capas y series

Permanece canónico

  • Estructura y semántica comunes
  • Fuentes, unidades y alternativa tabular
innovacionsantiago.cl

Compañía de Innovación de Santiago

Autoridad: CONSTITUTION.md + LOGOS-CANONICOS.md
Calidad: parcial · 15 de 16 regiones con datos

Cambia en esta marca

  • Navegación y contenido propios del servicio
  • Acento reservado para acciones y datos

Permanece canónico

  • Mark CIS y namebrand de tres líneas
  • IBM Plex Sans, foco, espaciado y anatomía

Comparación histórica recuperable

Compara la propuesta con cortes reales del repositorio. La ausencia de una muestra se declara y nunca se reconstruye de memoria.

Estado actual
Calidad de datos no tiene una implementación vigente demostrada; sus ejemplos son material candidato.
Cambio propuesto
Publicar en r19 el contrato de Calidad de datos para Patrón canónico de calidad de datos para cochid, periodismo2, situación y admin.
Qué ocurre si respondes No
Calidad de datos queda fuera de r19 y sus ejemplos siguen sólo como evidencia pendiente de reformulación.

Preparando comparación histórica…

Antes / r19

La comparación convierte una regla abstracta en una diferencia visible y verificable.

r19 · correctoContrato canónico renderizado
Calidad: validado
  • Incluye fuente, período, unidad y alternativa tabular.
  • Usa escalas comparables y distingue cero de ausencia.
Antes · problema observadoAnti-ejemplo no interactivo
62%CONFIRMADOSin fuente, período ni denominador
  • No encierres una cifra aislada en una tarjeta decorativa.
  • No declares estados o tendencias que no provienen de datos reales.

Responsive

La misma anatomía debe conservar lectura, foco y acciones sin cortar contenido ni crear scroll horizontal en la página.

320 pxMóvil y zoom
Calidad: validado
1280 pxEscritorio
Calidad: parcial · 15 de 16 regiones con datos

Cobertura

DimensiónContrato
Propietario canónicoSistema de diseño CIS y COCHID · core/core-style
ConsumidoresCOCHID, Periodismo2, Situación y Admin
Dependenciascochid-graphs cuando corresponde
Estadocandidato

Evidencia de adopción

Patrón propuesto. 0 implementaciones observadas en 0 repositorios.

La observación demuestra uso existente; la aceptación canónica sigue dependiendo de esta ficha y de su propietario.

DatoResultado
ClasificaciónPatrón propuesto
Implementaciones0 implementaciones observadas
RepositoriosNingún repositorio observado
Snapshotkit/componentes/componentes-observados.json

Consumidores observados

El inventario conserva repositorio, archivo fuente y criterio de asociación. Observar una implementación no la convierte automáticamente en canónica.

Estados

Estado requerido
con datos
sin datos
cargando
error

Accesibilidad

  • Conserva nombre accesible, orden de lectura y foco visible.
  • Funciona a 320 px, con zoom de 200% y texto largo.
  • El color nunca es la única señal de estado o acción.
  • El contenido esencial permanece disponible sin JavaScript.

Código HTML

Copia el bloque completo; después cambia contenido y destinos, no su anatomía.

Código de referencia
<span class="ui-sample badge badge--ok" data-quality="validado" title="Cobertura y sumas verificadas">Calidad: validado</span>

Código TAILWIND

Copia el bloque completo; después cambia contenido y destinos, no su anatomía.

Código de referencia
<span class="ui-sample badge badge--ok border border-slate-300 bg-white p-4 text-slate-950" data-quality="validado" title="Cobertura y sumas verificadas">Calidad: validado</span>

Código REACT

Copia el bloque completo; después cambia contenido y destinos, no su anatomía.

Código de referencia
/** Niveles de calidad habituales. Otro valor de `quality` se acepta tal cual. */
export type QualityBadgeQuality = "validado" | "parcial" | "sin validar";

/** Tono de la insignia: `ok` validado, `warn` parcial o provisorio, `err` sin validar o con errores, `neutral` sin tono. */
export type QualityBadgeTone = "ok" | "warn" | "err" | "neutral";

export interface QualityBadgeProps {
  /** Nivel de calidad del dato; va en `data-quality` y en el texto. */
  quality?: QualityBadgeQuality | (string & {});
  /** Texto visible; por defecto, `Calidad: ${quality}`. */
  label?: string;
  /** Qué se verificó o qué falta (atributo `title`); sólo `validado` trae uno por defecto y el texto vacío lo omite. */
  detail?: string;
  /** Muestra el detalle también como texto visible, después del nivel; el atributo `title` se conserva. */
  showDetail?: boolean;
  /** Tono de la insignia; sin valor se deduce de `quality` (validado: `ok`; parcial, provisorio: `warn`; sin validar, con errores, rechazado: `err`) y si no lo reconoce es `neutral`. */
  tone?: QualityBadgeTone;
  className?: string;
}

const DETALLES: Partial<Record<string, string>> = { validado: "Cobertura y sumas verificadas" };

const QUALITY_BADGE_TONOS: Partial<Record<string, QualityBadgeTone>> = {
  validado: "ok",
  verificado: "ok",
  parcial: "warn",
  provisorio: "warn",
  preliminar: "warn",
  "sin validar": "err",
  "con errores": "err",
  rechazado: "err",
};

const QUALITY_BADGE_CLASES: Record<QualityBadgeTone, string> = {
  ok: "badge badge--ok",
  warn: "badge badge--warn",
  err: "badge badge--err",
  neutral: "badge",
};

/**
 * Insignia de calidad de un dato o serie (validado, parcial, sin validar) junto a cifras, tablas y gráficos.
 *
 * El nivel se lee en el texto y el tono lo refuerza. El detalle va en `title`; si la advertencia importa para leer la cifra, pásalo con `showDetail` para que quede a la vista.
 *
 * @example <QualityBadge />
 * @example <QualityBadge quality="parcial" detail="15 de 16 regiones con datos" showDetail />
 */
export function QualityBadge({ quality = "validado", label, detail, showDetail = false, tone, className }: QualityBadgeProps) {
  const titulo = detail ?? DETALLES[quality];
  const tono = tone ?? QUALITY_BADGE_TONOS[quality.toLowerCase()] ?? "neutral";
  const texto = label ?? `Calidad: ${quality}`;
  const visible = showDetail && titulo ? titulo : "";
  return (
    <span className={[QUALITY_BADGE_CLASES[tono], className].filter(Boolean).join(" ")} data-quality={quality} title={titulo || undefined}>
      {texto}
      {visible ? <>{texto ? " · " : null}<span>{visible}</span></> : null}
    </span>
  );
}