Un Web Component es un elemento HTML personalizado, creado con estándares del navegador (Custom Elements, Shadow DOM y HTML Templates). Permite encapsular HTML + CSS + JS en un único bloque reutilizable, sin depender de frameworks.
¿Dónde se utiliza?
Funciona en cualquier entorno donde exista HTML:
- Aplicaciones web clásicas (PHP, Java, .NET)
- Frameworks modernos (Svelte, React, Vue, Angular)
- CMS (WordPress, Drupal)
- Apps híbridas (Electron, Ionic)
- Sistemas grandes con equipos múltiples
¿Cómo se usa en HTML?
Una vez registrado el componente, usarlo es tan simple como:
<mi-componente titulo="Hola" modo="dark"></mi-componente>
El navegador lo trata como si fuera una etiqueta nativa.
Repositorios de Web Components gratuitos
- WebComponents.org — El mayor catálogo público de Web Components. Reúne componentes de Google, Vaadin, Shoelace, FAST y cientos de desarrolladores independientes.
- Shoelace — Biblioteca moderna de componentes UI (botones, modales, tabs, formularios). 100% Web Components, sin framework y altamente personalizable.
- Vaadin Web Components — Componentes empresariales de alta calidad: grids, formularios, layouts, pickers. Muy usados en aplicaciones corporativas.
- FAST Components — Componentes de Microsoft, rápidos, accesibles y con diseño adaptable. Ideales para apps modernas.
- Elix — Componentes avanzados de UI (carousels, date pickers, menús complejos) con un enfoque en accesibilidad y rendimiento.
- PatternFly Elements — Componentes creados por Red Hat para interfaces profesionales y dashboards.
- Lion Web Components — Componentes minimalistas y accesibles creados por ING, perfectos para formularios y validación.
Objetivo
Una vez que ya sabemos cómo construir Aplicaciones en Svelte 5, analizar los cambios a realizar para desarrollar WEB Components con Svelte 5.
Las funcionalidades que deseamos comprobar:
- Integrarse en páginas HTML de aplicaciones WEB, del lenguaje PHP o ASP, etc.
- Validas para instanciarse varias veces en la misma página (ejemplo páginas de Grid).
- Poder pasar parámetros desde la aplicación WEB al inicio de la ejecución.
- Poder enviar información desde dentro a la página HTML a través de eventos.
- Poder recibir información desde dentro (Svelte 5) como evento, para su tratamiento en página HTML.
DEMO: https://fhumanes.com/pc_001
La imagen muestra un ejemplo de aplicación hecha con PHPRunner con (1) una app de Svelte 5 integrada y con (2) un Web Components hecho en Svelte 5.
Si estás interesado en el artículo, sigue leyéndolo en este enlace.
Presente y futuro de dos formas de extender la web
Otra solución que tenía en el ámbito del lenguaje de PHP era la ordenación de jerarquías tipo árbol. Es muy habitual contar con esta organización en tareas de un Gantt, estructura de personal en una compañía, etc., por lo que requerimos de un algoritmo para obtener esa jerarquía a partir de datos planos donde sólo se dispone del registro «padre» para montar esa estructura de árbol.
Esta funcionalidad de «arrastrar y soltar» no es de las primeras cosas que pruebas en un nuevo entorno de programación, pero es importante para determinadas aplicaciones, si deseas que el interfaz de la aplicación aparezca como algo moderno.
Estoy pasando a