Saltar al contenido
Índice de Kit UI
Kit UI Componentes

Fallback de embed.

Patrón canónico de fallback de embed para cochid-graphs, mapas, periodismo2 y firmas y documentos.

Verlo por niveles

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

Nivel 2Compañía de Innovación de Santiago · variación
No pudimos cargar el tablero de empleo

El origen respondió con error 503. Puedes abrir el tablero en el sitio que lo publica.

Ver y copiar el código de este render
HTML del nivel canónico
<section class="ui-sample ui-feedback" data-embed-fallback="true"><strong>No pudimos mostrar el contenido</strong><p>Tu navegador bloqueó el recurso incorporado.</p><div class="ui-actions"><a class="btn btn--primary" href="#vista-completa">Abrir la vista completa</a><a class="btn btn--secondary" href="#descargar">Descargar alternativa</a></div></section>

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
No pudimos mostrar el contenido

Tu navegador bloqueó el recurso incorporado.

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
No pudimos cargar el tablero de empleo

El origen respondió con error 503. Puedes abrir el tablero en el sitio que lo publica.

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
Fallback de embed no tiene una implementación vigente demostrada; sus ejemplos son material candidato.
Cambio propuesto
Publicar en r19 el contrato de Fallback de embed para Patrón canónico de fallback de embed para cochid-graphs, mapas, periodismo2 y firmas y documentos.
Qué ocurre si respondes No
Fallback de embed 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
No pudimos mostrar el contenido

Tu navegador bloqueó el recurso incorporado.

  • Mantén proporción, título accesible, fuente y vista completa.
  • Proporciona consentimiento y fallback cuando depende de terceros.
Antes · problema observadoAnti-ejemplo no interactivo
Contenido incorporadoRectángulo vacío sin fuente, fallback ni vista completa
  • No cargues terceros sin política CSP y privacidad.
  • No dejes un rectángulo vacío cuando falla el origen.

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
No pudimos mostrar el contenido

Tu navegador bloqueó el recurso incorporado.

1280 pxEscritorio
No pudimos cargar el tablero de empleo

El origen respondió con error 503. Puedes abrir el tablero en el sitio que lo publica.

Cobertura

DimensiónContrato
Propietario canónicoSistema de diseño CIS y servicio productor · core/core-style
Consumidorescochid-graphs, Mapas, Periodismo2 y Firmas y Documentos
DependenciasCSP, sandbox, fallback enlazable
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
cargando
disponible
bloqueado
error
sin JavaScript

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
<section class="ui-sample ui-feedback" data-embed-fallback="true"><strong>No pudimos mostrar el contenido</strong><p>Tu navegador bloqueó el recurso incorporado.</p><div class="ui-actions"><a class="btn btn--primary" href="#vista-completa">Abrir la vista completa</a><a class="btn btn--secondary" href="#descargar">Descargar alternativa</a></div></section>

Código TAILWIND

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

Código de referencia
<section class="ui-sample ui-feedback border border-slate-300 bg-white p-4 text-slate-950 grid gap-3" data-embed-fallback="true"><strong>No pudimos mostrar el contenido</strong><p>Tu navegador bloqueó el recurso incorporado.</p><div class="ui-actions"><a class="btn btn--primary underline underline-offset-4" href="#vista-completa">Abrir la vista completa</a><a class="btn btn--secondary underline underline-offset-4" href="#descargar">Descargar alternativa</a></div></section>

Código REACT

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

Código de referencia
export interface EmbedFallbackProps {
  /** Qué no se pudo mostrar; vacío lo oculta. */
  title?: string;
  /** Motivo: bloqueo del navegador, error del origen o formato no admitido; vacío lo oculta. */
  description?: string;
  /** Texto del enlace a la vista completa en el sitio del proveedor; sin él o sin `href` no se muestra. */
  linkLabel?: string;
  href?: string;
  /** Texto del enlace a una versión descargable del contenido; sin él o sin `downloadHref` no se muestra. */
  downloadLabel?: string;
  downloadHref?: string;
  className?: string;
}

/**
 * Alternativa que reemplaza a un contenido incorporado que no cargó, con el motivo y enlaces a la vista completa o a una versión descargable.
 *
 * @example <EmbedFallback href="https://proveedor.example/42" downloadHref="/archivo/42.csv" />
 * @example <EmbedFallback description="El origen respondió con error 503." downloadLabel="" />
 */
export function EmbedFallback({
  title = "No pudimos mostrar el contenido",
  description = "Tu navegador bloqueó el recurso incorporado.",
  linkLabel = "Abrir la vista completa",
  href = "#vista-completa",
  downloadLabel = "Descargar alternativa",
  downloadHref = "#descargar",
  className,
}: EmbedFallbackProps) {
  return (
    <section className={["ui-feedback", className].filter(Boolean).join(" ")} data-embed-fallback>
      {title ? <strong>{title}</strong> : null}
      {description ? <p>{description}</p> : null}
      {(linkLabel && href) || (downloadLabel && downloadHref) ? (
        <div className="ui-actions">
          {linkLabel && href ? <a className="btn btn--primary" href={href}>{linkLabel}</a> : null}
          {downloadLabel && downloadHref ? <a className="btn btn--secondary" href={downloadHref}>{downloadLabel}</a> : null}
        </div>
      ) : null}
    </section>
  );
}