Acabamos de lançar uma segunda iteração da nossa reconstrução do tema. Enquanto a primeira atualização foi uma renovação visual construída sobre o tema anterior Meta Branded, esta versão é essencialmente um novo tema reconstruído do zero. A nova linguagem de marca já havia sido introduzida com o lançamento anterior, então não há muitas mudanças visíveis nesse aspecto. O que mudou significativamente com esta atualização é a própria implementação do tema e o que ela revela sobre o rumo que estamos tomando com a personalização do Discourse de forma mais ampla.
Vou detalhar alguns aspectos da implementação, começando pelos itens menores:
Ícones Lucide
Lucide é um conjunto de ícones modernos de traço de código aberto, e temos adotado essa biblioteca em vários de nossos projetos de personalização. Com esta iteração, também a incluímos no tema Meta Branded. Não há planos de substituir o Font Awesome no núcleo do Discourse, mas a versão gratuita do Font Awesome oferece apenas uma seleção limitada de ícones no estilo de traço, insuficiente para formar um sistema coerente de ícones de traço. O componente do tema está disponível em Discourse Lucide Icons.
Modificador de tema para restringir paletas de cores
Adicionamos um novo modificador de tema only_theme_color_schemes que restringe quais paletas de cores estão disponíveis para um determinado tema, tanto para administradores quanto para usuários em suas preferências de interface. O Meta possui várias paletas selecionáveis pelo usuário que entrariam em conflito com a identidade visual do tema Meta Branded. Com este modificador, apenas as paletas incluídas no tema são oferecidas como opções.
PR: FEATURE: add modifier to restrict theme color schemes
Layout de largura total
Também estamos testando alguns ajustes no componente Discourse Full-width para centralizar melhor o conteúdo principal na página. Há muitos elementos dinâmicos no cabeçalho que complicam a configuração e, até agora, isso é experimental e está disponível apenas em uma branch do componente.
Transformador de valor para controlar a visibilidade do Banner de Boas-vindas
Utilizamos um novo transformador de valor welcome-banner-display-for-route para controlar programaticamente em quais rotas o Banner de Boas-vindas central aparece. Usamos isso para garantir que o banner seja exibido apenas na página inicial personalizada padrão e não em páginas que um usuário possa ter definido como sua página de aterrissagem pessoal.
PR: DEV: Add welcome-banner-display-for-route value transformer
Isso nos leva às duas maiores mudanças:
Página inicial personalizada via modificador de tema
O modificador de tema custom_homepage está disponível há quase dois anos, mas esta é a primeira vez que o utilizamos para moldar a experiência da página inicial no próprio Meta. Estamos introduzindo uma página de aterrissagem personalizada preenchida com componentes em destaque. Para o lançamento inicial, isso inclui categorias em destaque e uma prévia dos tópicos de discussão mais recentes.
Construímos esses componentes em destaque usando nossa nova API experimental de Blocos, o que nos leva à maior mudança:
API de Blocos: Primeira utilização em produção
A API de Blocos é um novo framework para construir layouts modulares e compostos no Discourse. Ela permite que desenvolvedores de temas montem páginas a partir de componentes autocontidos e reutilizáveis que podem ser colocados em áreas de layout definidas. O tema Meta é nossa primeira implantação em produção dessa API.
O framework apresenta um rico conjunto de ferramentas para desenvolvedores: ative as ferramentas de desenvolvedor e você poderá inspecionar a estrutura de blocos de qualquer página com uma sobreposição integrada que visualiza todas as áreas de layout ativas e seus componentes.
Além da página inicial, também estamos usando blocos para renderizar banners personalizados de categoria que mostram as subcategorias de cada categoria:
Esta ainda é uma prévia inicial do sistema em um contexto de produção. Planejamos publicar documentação e mais exemplos em breve.
PR: DEV: Add Block API for declarative, validated UI extension points














