Acabamos de lanzar una segunda iteración de nuestra reconstrucción del tema. Aunque la primera actualización fue una renovación visual basada en el tema anterior Meta Branded, esta versión es esencialmente un tema nuevo reconstruido desde cero. El nuevo lenguaje de marca ya se había introducido con la versión anterior, por lo que no hay muchos cambios visibles en ese aspecto. Lo que ha cambiado significativamente con esta actualización es la implementación del tema en sí misma, y lo que esta muestra sobre el rumbo que estamos tomando con la personalización de Discourse de manera más amplia.
Revisaré algunos detalles de implementación, comenzando por los elementos más pequeños:
Iconos Lucide
Lucide es un conjunto de código abierto de iconos de trazo modernos, y lo hemos estado adoptando en varios de nuestros proyectos de personalización. Con esta iteración, también lo hemos incluido en el tema Meta Branded. No hay planes para reemplazar Font Awesome en el núcleo de Discourse, pero la versión gratuita de Font Awesome solo ofrece una selección limitada de iconos de estilo de trazo, insuficiente para formar un sistema coherente de iconos de trazo. El componente del tema está disponible en github.com/discourse/discourse-lucide-icons.
Modificador de tema para restringir paletas de colores
Hemos añadido un nuevo modificador de tema only_theme_color_schemes que restringe qué paletas de colores están disponibles para un tema dado, tanto para administradores como para usuarios en sus preferencias de interfaz. Meta tiene múltiples paletas seleccionables por el usuario que entrarían en conflicto con la identidad visual del tema Meta Branded. Con este modificador, solo se ofrecen como opciones las paletas incluidas con el tema.
PR: FEATURE: add modifier to restrict theme color schemes
Diseño de ancho completo
También estamos probando algunos ajustes en el componente de ancho completo de Discourse para centrar mejor el contenido principal en la página. Hay muchos elementos dinámicos en la cabecera que complican la configuración, y hasta ahora esto es experimental y solo está disponible en una rama del componente.
Transformador de valores para controlar la visibilidad del banner de bienvenida
Hemos utilizado un nuevo transformador de valores welcome-banner-display-for-route para controlar programáticamente en qué rutas aparece el banner de bienvenida principal. Lo utilizamos para asegurar que el banner solo se muestre en la página de inicio personalizada predeterminada y no en las páginas que un usuario haya establecido como su página de aterrizaje personal.
PR: DEV: Add welcome-banner-display-for-route value transformer
Esto nos lleva a los dos cambios más importantes:
Página de inicio personalizada mediante modificador de tema
El modificador de tema custom_homepage ha estado disponible durante casi dos años, pero esta es la primera vez que lo utilizamos para dar forma a la experiencia de la página de inicio en Meta mismo. Estamos introduciendo una página de aterrizaje personalizada poblada con componentes destacados. Para el lanzamiento inicial, esto incluye categorías destacadas resaltadas y una vista previa de los últimos temas de discusión.
Hemos construido estos componentes destacados utilizando nuestra nueva API experimental de Bloques, lo que nos lleva al cambio más grande:
API de Bloques: Primer uso en producción
La API de Bloques es un nuevo marco para construir diseños modulares y composables en Discourse. Permite a los desarrolladores de temas ensamblar páginas a partir de componentes autocontenidos y reutilizables que pueden colocarse en áreas de diseño definidas. El tema de Meta es nuestro primer despliegue en producción de esta API.
El marco cuenta con un rico conjunto de herramientas para desarrolladores: si habilitas las herramientas de desarrollador, puedes inspeccionar la estructura de bloques de cualquier página con una superposición integrada que visualiza todas las áreas de diseño activas y sus componentes.
Más allá de la página de inicio, también estamos utilizando bloques para renderizar banners personalizados de categorías que muestran las subcategorías de cada categoría:
Esto sigue siendo una vista previa temprana del sistema en un contexto de producción. Planeamos publicar documentación y más ejemplos pronto.
PR: DEV: Add Block API for declarative, validated UI extension points






