CSS poderoso, estável e pronto para uso.
Acredito que todo desenvolvedor de front-end precisa saber como usar consultas de contêiner, criar uma experiência de ajuste de rolagem, evitar position: absolute com grid, criar um círculo rapidamente, usar camadas em cascata e alcançar mais com menos usando propriedades lógicas. Confira uma visão geral rápida de cada uma dessas expectativas.
1. Uma consulta de contêiner
O recurso de CSS mais solicitado por 10 anos consecutivos agora está estável em todos os navegadores e disponível para uso em consultas de largura em 2023.
.panel {
container: layers-panel / inline-size;
}
.card {
padding: 1rem;
}
@container layers-panel (min-width: 20rem) {
.card {
padding: 2rem;
}
}
2. Ajuste de rolagem
Experiências de rolagem bem orquestradas diferenciam sua experiência das demais, e o ajuste de rolagem é a maneira perfeita de corresponder à UX de rolagem do sistema, oferecendo pontos de parada significativos.
.snaps {
overflow-x: scroll;
scroll-snap-type: x mandatory;
overscroll-behavior-x: contain;
}
.snap-target {
scroll-snap-align: center;
}
.snap-force-stop {
scroll-snap-stop: always;
}
Saiba mais sobre o potencial desse recurso do CSS nesta enorme e inspiradora coleção do Codepen de cerca de 25 demonstrações.
scroll-snap-typescroll-snap-alignscroll-snap-stopoverscroll-behavior3. Pilha de grade
Evite o posicionamento absoluto com uma grade CSS de célula única. Quando os elementos estiverem empilhados uns sobre os outros, use as propriedades de justificação e alinhamento para posicioná-los.
.pile {
display: grid;
place-content: center;
}
.pile > * {
grid-area: 1/1;
}
grid4. Círculo rápido
Há muitas maneiras de fazer círculos em CSS, mas essa é definitivamente a mais minimalista.
.circle { inline-size: 25ch; aspect-ratio: 1; border-radius: 50%; }
aspect-ratio5. Controlar variantes com @layer
As camadas em cascata podem ajudar a inserir variantes descobertas ou criadas posteriormente no lugar certo da cascata com o conjunto original de variantes.
/* file buttons.css */ @layer components.buttons { .btn.primary { … } }
Em seguida, em um arquivo totalmente diferente, carregado em outro momento aleatório, adicione uma nova variante à camada de botão como se ela estivesse lá com o restante o tempo todo.
/* file video-player.css */ @layer components.buttons { .btn.player-icon { … } }
@layer6. Memorize menos e alcance mais com propriedades lógicas
Memorize este novo modelo de caixa e nunca mais se preocupe em mudar o padding ou a margem esquerda e direita para modos de escrita e direções de documentos internacionais.
Ajuste seus estilos de propriedades físicas para lógicas, como
padding-inline,
margin-inline,
inset-inline,
e agora o navegador fará o trabalho de ajuste.
button { padding-inline: 2ch; padding-block: 1ch; } article > p { text-align: start; margin-block: 2ch; } .something::before { inset-inline: auto 0; }