Existem boas razões para usar variáveis, talvez não vamos entrar nelas aqui. É um bom ponto, no entanto, não discutir a natureza do CSS. Eu deveria ter formulado isso melhor: não se trata da natureza dele, mas das melhores práticas para estilizar um framework baseado em componentes. E concordo totalmente que os botões são outro bom exemplo de como isso não pode ser aplicado corretamente.
Olhando para o quadro geral, houve um esforço conjunto para modernizar o lado JavaScript do framework frontend. E acho que foi um sucesso retumbante. Trabalhar com padrões limpos e classes bem estruturadas é genuinamente agradável agora. Para mim, como designer, também abriu oportunidades para construir novos componentes frontend de forma mais fácil e eficiente.
No entanto, não consigo me livrar da sensação de que não há um compromisso semelhante em trazer o sistema de design para os mesmos padrões. Embora adicionar variáveis CSS para todos os aspectos seja certamente mais performático e limpo do que a abordagem atual, ainda parece evitar os problemas arquitetônicos mais profundos: uma base de código cheia de declarações excessivamente específicas e sem estilos claros com escopo de componente. Isso parece uma solução “mais fácil” que evita o problema mais difícil: alinhar totalmente a arquitetura de estilização com o design modular do framework.
Entendo que isso acarretaria muito trabalho e problemas de compatibilidade retroativa. Mas a equipe enfrentou esses desafios com sucesso no lado JavaScript. Se o JavaScript continuar recebendo significativamente mais recursos do que os estilos, essa disparidade aparecerá nos designs finais. E os usuários sentirão a diferença, mesmo que não consigam articular o porquê.
Eu adoraria ver a mesma energia de modernização aplicada à arquitetura CSS, porque estou convencido de que os benefícios de longo prazo para a experiência do desenvolvedor e do usuário seriam transformadores.