O Futuro do CSS

Novos recursos de CSS, como funções nativas, anchor positioning, nesting e layers, estão provocando tanto entusiasmo quanto desconforto entre desenvolvedores web. Muitos comemoram a possibilidade de substituir JavaScript e frameworks pesados por um CSS “vanilla” mais poderoso, mas outros temem que a linguagem esteja se tornando uma espécie de pseudo-linguagem de programação excessivamente complicada, mais difícil de entender, testar e manter interoperável entre navegadores — especialmente com a influência desproporcional do Chrome. Por trás dos detalhes técnicos, há uma tensão mais ampla sobre se a stack da web deve continuar evoluindo em cima do que já existe ou ser substituída por uma alternativa mais simples e coerente.

Entusiasmo pelo CSS moderno

  • Muitos comentaristas dizem que o CSS se tornou um prazer de usar em comparação com alguns anos atrás.
  • Novos recursos (grid, flexbox, nesting, @layer, :has(), variáveis, light-dark(), clamp(), etc.) tornam o layout e o tema muito mais fáceis e reduzem a necessidade de JS.
  • Alguns descrevem ter substituído uma quantidade significativa de JS por CSS, e construir sites rápidos e responsivos com uma estrutura HTML cuidadosa e ferramentas modernas de layout.

Preocupações com complexidade e excesso de recursos

  • Outros acham que o CSS está ficando desnecessariamente complexo e “parecido com uma linguagem de programação”, especialmente com funções e uma lógica condicional crescente.
  • A compatibilidade retroativa significa que a complexidade só pode aumentar; alguns gostariam que o CSS pudesse ser reduzido a um subconjunto mais simples de “partes boas”.
  • O cascade e a herança ainda são vistos como pontos problemáticos centrais; alguns preferem abordagens com classes utilitárias ou até tabelas HTML em vez de sistemas modernos de layout.

Funções, completude de Turing e “CSS como linguagem”

  • Há debate sobre se funções pertencem ao CSS:
    • Pró: ideias semelhantes já existem no Sass; funções podem reduzir duplicação e complexidade, especialmente para padrões como gradientes.
    • Contra: risco de transformar o CSS em um ambiente de programação desajeitado; alguns se preocupam com segurança, manutenibilidade e depuração quando ele estiver claramente completo em Turing.
  • Vários observam que o CSS já é efetivamente uma linguagem de programação presa em uma sintaxe antiga de stylesheet, sem ferramentas fortes como verificação estática de tipos.

CSS vs responsabilidades do JavaScript

  • Alguns argumentam que a integração com JS deve ser preferida para lógica complexa; outros respondem que a avaliação do CSS é mais leve e tem menor latência do que a do JS.
  • Há menção à CSS Painting API e a padrões de “reatividade” baseados em JS, mas também frustração de que a plataforma não forneceu soluções nativas ergonômicas para UIs com estado.

Interop, política dos navegadores e domínio do Chrome

  • Discussão sobre o programa Interop: a intenção é alinhar os navegadores, mas muitos dos recursos mostrados atualmente são exclusivos do Chrome ou priorizados pelo Chrome.
  • Visões mistas sobre se o Chrome está “passando o trator” sobre os padrões ou realmente impulsionando a plataforma para a frente.

Primitivos ausentes ou desejados

  • Desejos comuns: melhor impressão / mídia paginada, tooltips nativos de alta qualidade, selects personalizáveis e seletores de data/hora, CSS com escopo, forma mais fácil de moldar cantos/bordas, “cantos relativos” automáticos.
  • Alguns veem isso como mais valioso do que novas capacidades decorativas como estilos avançados de canto.

IA e fluxo de trabalho do desenvolvedor

  • Várias pessoas agora recorrem a LLMs para escrever ou traduzir CSS moderno que não entendem completamente, tratando o CSS como algo que está tudo bem desde que raramente precisem olhar diretamente para ele.
  • Outros alertam contra “vibecoding” de frontends, argumentando que a interface voltada ao usuário ainda merece um design cuidadoso e guiado por humanos.