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
| Variable | Qué personaliza |
|---|---|
background | Fondo base. |
foreground | Texto principal. |
muted | Fondos secundarios o tenues. |
mutedForeground | Texto secundario. |
popover | Fondo de menús y elementos desplegables. |
popoverForeground | Texto de menús y elementos desplegables. |
card | Fondo de tarjetas. |
cardBorder | Borde de tarjetas. |
cardBorderTint | Matiz o resaltado del borde de tarjetas. |
cardForeground | Texto de tarjetas. |
fieldCard | Fondo de tarjetas de campos. |
fieldCardBorder | Borde de tarjetas de campos. |
fieldCardForeground | Texto de tarjetas de campos. |
widget | Fondo del panel de firma. |
widgetForeground | Texto del panel de firma. |
border | Color general de los bordes. |
input | Borde de los controles de entrada. |
primary | Color de las acciones principales. |
primaryForeground | Texto de las acciones principales. |
secondary | Color de las acciones secundarias. |
secondaryForeground | Texto de las acciones secundarias. |
accent | Fondo de elementos resaltados. |
accentForeground | Texto de elementos resaltados. |
destructive | Color de acciones destructivas y errores. |
destructiveForeground | Texto sobre el color de acciones destructivas. |
ring | Indicador de foco. |
warning | Color de advertencias. |
envelopeEditorBackground | Fondo del editor de sobres V2; se utiliza con los componentes de editor con embed. |
Bordes
| Variable | Qué personaliza |
|---|---|
radius | Radio 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.
| Clase | Elemento |
|---|---|
.embed--Root | Contenedor principal del embed. |
.embed--Actions | Área de acciones del documento. |
.embed--DocumentContainer | Área que reúne el documento y los controles de firma. |
.embed--DocumentViewer | Visor del documento. |
.embed--DocumentWidgetContainer | Contenedor externo del panel de firma. |
.embed--DocumentWidget | Panel de firma, en las vistas que lo utilizan. |
.embed--DocumentWidgetHeader | Cabecera de los controles de firma. |
.embed--DocumentWidgetContent | Contenido del panel de firma. |
.embed--DocumentWidgetForm | Formulario de los controles de firma. |
.embed--DocumentWidgetFooter | Acciones al pie del panel de firma. |
.embed--DocumentCompleted | Vista de finalización de la participación del destinatario. |
.embed--DocumentRejected | Vista de rechazo del documento. |
.field--FieldRootContainer | Contenedor de un campo sobre el documento. |
Atributos de los campos
Los campos exponen atributos que permiten aplicar estilos según su tipo y estado:
| Atributo | Valores | Qué describe |
|---|---|---|
data-field-type | Por ejemplo, SIGNATURE, TEXT, CHECKBOX o RADIO. | Tipo del campo. |
data-inserted | true, false. | Si el campo contiene un valor. |
data-validate | true cuando el campo se marca para validación. | Estado de validación del campo. |
data-readonly | true, 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.

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

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