Modern CSS Techniques
CSS features that make responsive layouts easier: Grid, Custom Properties, Container Queries.
CSS has evolved significantly. Here are features I use regularly.
CSS Custom Properties
:root {
--color-primary: #171717;
--spacing: 1rem;
}
.button {
background: var(--color-primary);
padding: var(--spacing);
}
[data-theme="dark"] {
--color-primary: #fafafa;
}
CSS Grid
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1rem;
}
Container Queries
.card-container {
container-type: inline-size;
}
@container (min-width: 400px) {
.card {
display: flex;
}
}
:has() Selector
/* Style parent based on child */
.card:has(img) {
padding: 0;
}
.form:has(input:invalid) {
border-color: red;
}
Logical Properties
.element {
margin-inline: auto;
padding-block: 1rem;
border-inline-start: 2px solid;
}