- Coletânea de códigos que mostra lado a lado técnicas antigas de hack em CSS e a sintaxe nativa moderna de CSS que as substitui
- Usa padrões modernos como Grid, Flexbox, cores OKLCH, container query e scroll-timeline para reduzir a dependência de JavaScript
- Organizado por temas como cores, layout, animação, seletores, tipografia e fluxo de trabalho, apresentando alternativas modernas para cada recurso
- Com os padrões mais recentes de CSS, é possível reduzir a dependência de JS, Sass e bibliotecas externas e aproveitar ao máximo os recursos nativos do navegador
1 comentários
Comentários do Hacker News
CSS em 2025 parece meio que voltar a escrever estilos inline como em 2005 direto no HTML
Estou falando de Tailwind, mas no fim isso ignora a separação entre formatação e apresentação
Se HTML realmente cuidasse só do conteúdo e CSS só do estilo, não haveria necessidade de criar uma sopa de divs como
.container-wrapper .container .container-innerO fato de precisarmos editar o HTML sempre que mudamos o layout é a prova disso
O código relacionado ao componente fica todo em um lugar só, sem precisar ficar pulando entre arquivos
Layout e estilo são partes inseparáveis da UI
HTML não é conteúdo, é layout
Mesmo que você acredite em separação de interesses, HTML e CSS pertencem à mesma camada de apresentação
Acreditar que dá para separar os dois é ignorar a realidade
Fiz uma lista das principais melhorias recentes do CSS
:has(...):is(...)— antigamente era preciso usar gambiarra tipo:not(:not(...)):where(...)— parecido com:is(...), mas com peso de seletor igual a 0, então é útil em seletores complexosA maioria dos LLMs não conhece esse recurso
Recomendo adicionar exemplos em
AGENTS.mdVale consultar a documentação do MDN sobre Nesting Selector
Dá para usar o seletor
¶ ganhar legibilidade e redução de duplicação ao mesmo tempotext-box: trimDepois de 20 anos explicando para designers que alinhar o topo de letras maiúsculas era impossível, é libertador ver isso acabar
@layerAlguns exemplos ainda funcionam em todos os navegadores do jeito antigo, mas o jeito novo só funciona em Chrome/Edge
Acho irresponsável incluir esse tipo de exemplo porque isso reforça o monopólio do Blink
O certo seria apontar a falta de conformidade com padrões da Mozilla
Precisamos parar de fixar elementos nas bordas da tela
Em alguns sites, mais da metade da tela é ocupada por elementos estáticos
O natural é deixar o conteúdo rolar
Ironicamente, esse site está preso em modo escuro e não usa
prefers-color-schemeÀs vezes você pensa “que exemplo criativo de CSS!”, mas aí vê que o suporte no navegador está na faixa de 40~50%, o que traz limitações reais
Em parte por causa da influência excessiva do Chromium, mas no fim o saldo é positivo
Veja Interop 2025
Os vendors de navegadores estão adicionando recursos com antecedência para chegar a um suporte amplo no futuro
Fiquei confuso porque alguns exemplos marcados como não funcionando no Firefox funcionam normalmente nas demos
Fico me perguntando se aplicaram algum polyfill
A porcentagem verde no canto inferior esquerdo representa a fatia de usuários de navegadores que suportam o recurso
Muitas vezes fica abaixo de 50%
No fim, isso está mais para “CSS do Chrome mais recente” do que para “CSS moderno”
Por exemplo,
sibling-index()ainda não funciona no Firefox, mas aparece como “widely available”Hoje em dia fico em dúvida entre Tailwind, CSS-in-JS, Sass/SCSS e Vanilla CSS
Use o que fizer sentido para o time
Se Tailwind combina com vocês, vá de Tailwind; se for projeto pessoal, use CSS inline; se você já está acostumado com Sass, continue com ele;
e se quiser apostar tudo no CSS moderno, também é uma ótima escolha
Trabalho com desenvolvimento web há tanto tempo que até os exemplos chamados de “jeito antigo” têm muitos recursos que eu estou vendo pela primeira vez
Foi a primeira vez que vi um recurso de ajuste de luminosidade de cor
Antes eu fazia isso com Sass e Compass, mas manter essa toolchain era trabalhoso
Agora que o próprio CSS suporta isso, ficou bem mais prático