Digito

Apariencia y modo oscuro del embed

Personaliza el embed con variables CSS, estilos propios y un contenedor adaptable.

Las props cssVars y css permiten adaptar los colores, los bordes y los elementos del embed a tu aplicación. Conserva espacio para leer el PDF, revisar los campos y completar la autenticación con Digito ID.

Los ejemplos usan el contrato previsto de los paquetes de Digito. Consulta su estado de publicación y la guía de tu framework.

El CSS personalizado y las variables CSS se aplican cuando tu organización tiene habilitada la personalización del embed. Si los estilos no cambian, comprueba esa configuración con el administrador de tu organización.

Variables CSS

Pasa un objeto a cssVars. Las claves usan camelCase; sus valores de color pueden ser hexadecimales, RGB, HSL o nombres de colores CSS. Usa valores concretos, como #4338ca o rgb(67, 56, 202), para que el embed pueda convertirlos a su tema.

Este ejemplo de React utiliza una paleta clara y deshabilita el modo oscuro dentro del embed:

import { EmbedSignDocument } from '@digitogroup/embed-react';

export function FirmaConTema({ token }: { token: string }) {
  return (
    <div className="embed-firma">
      <EmbedSignDocument
        token={token}
        host="https://business.digito.do"
        language="es"
        className="embed-firma-marco"
        darkModeDisabled={true}
        cssVars={{
          background: '#ffffff',
          foreground: '#172033',
          widget: '#f8fafc',
          widgetForeground: '#172033',
          primary: '#4338ca',
          primaryForeground: '#ffffff',
          border: '#cbd5e1',
          ring: '#4338ca',
          radius: '0.75rem',
        }}
      />
    </div>
  );
}

token es el token del destinatario de un documento ya preparado. Consulta firma con embed para obtenerlo desde tu servidor y manejar los callbacks.

Colores admitidos

VariableQué personaliza
backgroundFondo base.
foregroundTexto principal.
mutedFondos secundarios o tenues.
mutedForegroundTexto secundario.
popoverFondo de menús y elementos desplegables.
popoverForegroundTexto de menús y elementos desplegables.
cardFondo de tarjetas.
cardBorderBorde de tarjetas.
cardBorderTintMatiz o resaltado del borde de tarjetas.
cardForegroundTexto de tarjetas.
fieldCardFondo de tarjetas de campos.
fieldCardBorderBorde de tarjetas de campos.
fieldCardForegroundTexto de tarjetas de campos.
widgetFondo del panel de firma.
widgetForegroundTexto del panel de firma.
borderColor general de los bordes.
inputBorde de los controles de entrada.
primaryColor de las acciones principales.
primaryForegroundTexto de las acciones principales.
secondaryColor de las acciones secundarias.
secondaryForegroundTexto de las acciones secundarias.
accentFondo de elementos resaltados.
accentForegroundTexto de elementos resaltados.
destructiveColor de acciones destructivas y errores.
destructiveForegroundTexto sobre el color de acciones destructivas.
ringIndicador de foco.
warningColor de advertencias.
envelopeEditorBackgroundFondo del editor de sobres V2; se utiliza con los componentes de editor con embed.

Bordes

VariableQué personaliza
radiusRadio de los bordes. Usa una longitud como 0, 0.5rem u 8px; admite unidades rem, px, em, % y pt.

Las variables que omitas conservan sus valores del tema. Las mismas opciones están disponibles en los otros frameworks; cambia la sintaxis de las props según su guía.

CSS personalizado

Utiliza css para pasar una cadena de estilos al contenido del embed. Este ejemplo ajusta el panel de firma y la separación del documento en pantallas amplias:

<EmbedSignDocument
  token={token}
  host="https://business.digito.do"
  language="es"
  css={`
    .embed--DocumentWidgetContainer {
      box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.08);
    }

    @media (min-width: 48rem) {
      .embed--DocumentContainer {
        gap: 2rem;
      }
    }
  `}
/>

Clases del embed

Cada clase aparece cuando corresponde a ese elemento o estado del flujo. Usa las clases del embed para personalizar elementos internos; className se aplica al marco que monta el componente en tu aplicación.

ClaseElemento
.embed--RootContenedor principal del embed.
.embed--ActionsÁrea de acciones del documento.
.embed--DocumentContainerÁrea que reúne el documento y los controles de firma.
.embed--DocumentViewerVisor del documento.
.embed--DocumentWidgetContainerContenedor externo del panel de firma.
.embed--DocumentWidgetPanel de firma, en las vistas que lo utilizan.
.embed--DocumentWidgetHeaderCabecera de los controles de firma.
.embed--DocumentWidgetContentContenido del panel de firma.
.embed--DocumentWidgetFormFormulario de los controles de firma.
.embed--DocumentWidgetFooterAcciones al pie del panel de firma.
.embed--DocumentCompletedVista de finalización de la participación del destinatario.
.embed--DocumentRejectedVista de rechazo del documento.
.field--FieldRootContainerContenedor de un campo sobre el documento.

Atributos de los campos

Los campos exponen atributos que permiten aplicar estilos según su tipo y estado:

AtributoValoresQué describe
data-field-typePor ejemplo, SIGNATURE, TEXT, CHECKBOX o RADIO.Tipo del campo.
data-insertedtrue, false.Si el campo contiene un valor.
data-validatetrue cuando el campo se marca para validación.Estado de validación del campo.
data-readonlytrue, false.Si el campo es de solo lectura.

Por ejemplo, esta regla distingue los campos que ya contienen un valor sin ocultar su contenido:

.field--FieldRootContainer[data-inserted='true'] {
  background-color: #eef2ff;
}

Estos atributos describen los campos de la interfaz. Un campo con valor no demuestra que una firma ni el documento completo hayan finalizado; consulta el resultado con la API.

Contenedor adaptable

El CSS del contenedor se aplica a tu aplicación; las props css y cssVars personalizan el contenido del embed. Para el contenedor del primer ejemplo:

.embed-firma {
  width: 100%;
  height: 48rem;
  min-height: 34rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
  overflow: hidden;
}

.embed-firma-marco {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 40rem) {
  .embed-firma {
    height: calc(100dvh - 5rem);
    border-radius: 0.5rem;
  }
}

Revisa ambos modos

darkModeDisabled={true} deshabilita el modo oscuro dentro del embed; no cambia el tema de tu aplicación. Para conservar el modo oscuro, omite esa prop o establece false, y revisa tus colores en ambos modos.

  • Conserva contraste entre texto, fondo, controles y estados de error.
  • Usa un logo de Digito que siga siendo visible en fondos claros y oscuros.
  • Permite navegación por teclado y no ocultes el foco.
  • Comprueba que el PDF, las acciones y la autenticación de Digito ID sigan visibles en pantallas pequeñas.
  • Revisa los estados de carga, error, rechazo y finalización del embed, además de su pantalla inicial.

Antes de cada acción de firma, el firmante se autentica de nuevo con Digito ID. Los estilos deben conservar los controles, los avisos de autorización y la información de evidencia que presente el flujo. No uses CSS para ocultarlos ni para saltar la autenticación.

Embed en tu aplicación · Firma con embed · Editor con embed.

Editor de Digito Business integrado en una aplicación en modo claro, con un documento de muestra y el destinatario seleccionado.

Vista del editor de embed en modo claro, con el PDF y sus controles legibles.

El mismo editor de Digito Business en modo oscuro, con un documento de muestra y controles legibles.

El mismo documento de muestra en modo oscuro, con contraste entre el PDF, la interfaz y los controles.