Em poucos dias, vou mesclar este PR no núcleo, que altera a forma como as folhas de estilo dos plugins são compiladas. A mudança afeta as variáveis de cor SCSS usadas nas folhas de estilo dos plugins. O resumo é que elas precisam ser substituídas por propriedades personalizadas de CSS. A maioria dos plugins já foi atualizada e, em muitos casos, essa é uma mudança simples: a variável SCSS precisa ser substituída por uma propriedade personalizada de CSS:
- background-color: $primary-low;
+ background-color: var(--primary-low);
O guia em Update themes and plugins to support automatic dark mode tem mais exemplos e também mostra como lidar com transformações de cor mais complexas. (Esse guia deve ser tudo o que os autores de plugins precisam para garantir que seus estilos funcionem corretamente.)
Se você está se perguntando por que estamos fazendo essa mudança, continue lendo.
Anteriormente, as folhas de estilo do núcleo e dos plugins eram compiladas por tema para incluir o esquema de cores do tema sempre que as variáveis de cor SCSS eram usadas. Isso significava que um site com muitos temas (ou um ambiente multissítio) levaria muito tempo para pré-compilar, pois teria que multiplicar o número de folhas de estilo do núcleo e dos plugins pelo número de temas ativos para cobrir todas as combinações necessárias.
Desde agosto de 2020, e para suportar a alternância automática de modo escuro, adicionamos uma folha de estilo de definições de cores separada que armazena as variáveis de cor como propriedades personalizadas de CSS. Essa mudança nos permitiu alternar esquemas de cores sob demanda, mas também abstraíu as cores da maioria das folhas de estilo. Graças à mágica das propriedades personalizadas de CSS, agora podemos referenciar cores em todos os lugares (núcleo, plugins, temas) sem precisar carregar cada tema quando a folha de estilo é compilada.
Nos últimos meses, temos convertido todos os plugins para usar propriedades personalizadas de CSS. A grande maioria dos plugins do Discourse já está atualizada, mas provavelmente existe algum plugin por aí que ainda usa variáveis SCSS para cores e precisará ser atualizado.
