Herramientas HTML

Gratis Generador de Shadow DOM declarativo

Crea snippets HTML para Shadow DOM declarativo con CSS aislado, slots y renderizado del servidor.

Cargando herramienta...

Qué es Generador de Shadow DOM declarativo?

Declarative Shadow DOM es una función del navegador que crea Shadow DOM a partir de marcado HTML sin JavaScript. Un elemento template con el atributo shadowrootmode dentro de un elemento host indica al navegador que cree un shadow root y lo poblene con el contenido de la plantilla. Esto permite la renderización del lado del servidor de componentes web con CSS con alcance, que funciona antes de que se cargue JavaScript.

Respuesta rápida

Declarative Shadow DOM crea DOM encapsulado y CSS con alcance a partir de marcado HTML sin JavaScript. Use <template shadowrootmode="open"> dentro de una etiqueta host de elemento personalizado. Compatible con Chrome, Edge y Safari. Incluya contenido de fallback para Firefox.

Last updated: 2026-05-28

Limitaciones

  • Firefox aún no admite Declarative Shadow DOM (a partir de 2026). Siempre incluya contenido de fallback mostrado a través de CSS cuando DSD no sea compatible.
  • Declarative Shadow DOM solo crea el shadow root y el contenido durante el análisis inicial de la página. El marcado DSD agregado dinámicamente no se procesa — use attachShadow() imperativo para creación del lado del cliente.
  • Algunos frameworks y bibliotecas JavaScript aún no se integran con Declarative Shadow DOM para hidratación SSR. Verifique la compatibilidad del framework antes de adoptar DSD en una aplicación basada en framework.

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

Cómo usar esta herramienta

  1. Ingrese una etiqueta host de elemento personalizado con un guión (requerido para nombres de elementos personalizados válidos).
  2. Elija el modo de shadow root abierto o cerrado — open permite acceso JavaScript a través de shadowRoot.
  3. Agregue el contenido HTML interno con elementos slot para proyección de contenido.
  4. Opcionalmente agregue CSS con alcance que solo se aplique dentro de este shadow root.
  5. Copie el fragmento e inclúyalo en su salida SSR o HTML estático.

Para qué puedes usarla

  • Renderizar un componente web con CSS con alcance en el servidor para que aparezca inmediatamente sin JavaScript.
  • Crear un widget HTML autocontenido con estilos aislados para incrustar en cualquier página.
  • Construir un componente de sitio estático con encapsulación shadow DOM sin un paso de compilación.

Casos de uso

Ejemplos prácticos

Ejemplo

Tarjeta de usuario renderizada en servidor

Un componente de tarjeta de usuario muestra un avatar, nombre y rol. Use Declarative Shadow DOM para renderizar la tarjeta con CSS con alcance en el servidor. La tarjeta aparece estilizada inmediatamente y JavaScript la hidrata para interactividad.

Ejemplo

Widget CSS con alcance

Un widget incrustable usa Declarative Shadow DOM para encapsular sus estilos. El CSS de la página host no puede afectar al widget y el CSS del widget no puede filtrarse. No se necesita iframe.

Errores comunes

  • Usar una etiqueta host sin guión — los nombres de elementos personalizados deben contener un guión para ser válidos.
  • Configurar shadowrootmode closed y esperar acceder al shadow root desde JavaScript externo — el modo cerrado bloquea todo acceso JavaScript externo.
  • Olvidar el contenido de fallback para navegadores que no admiten Declarative Shadow DOM — los usuarios no ven nada en lugar de contenido.

Verificación

  1. Abra el panel Elements de DevTools y verifique que haya un #shadow-root presente dentro del elemento host.
  2. Pruebe la página con JavaScript deshabilitado para confirmar que el shadow DOM se renderiza correctamente sin scripts.

FAQ

Preguntas sobre Generador de Shadow DOM declarativo

Qué navegadores admiten Declarative Shadow DOM?

Chrome 90+, Edge 90+ y Safari 17+ admiten Declarative Shadow DOM. El soporte de Firefox está en desarrollo (a partir de 2026). Para navegadores no compatibles, incluya contenido de fallback dentro del elemento host y use CSS @supports para mostrar/ocultarlo.

Puedo usar declarative shadow DOM con slots?

Sí. Los slots funcionan de la misma manera en declarative shadow DOM que en imperative shadow DOM. Los slots nombrados (slot name=heading) proyectan contenido específico en el shadow root. El slot por defecto proyecta cualquier contenido no asignado. Use slots para hacer que los componentes declarative shadow DOM sean componibles.

Herramientas relacionadas

Más herramientas html

Prueba también

Prueba también