HiveBrain v1.2.0
Get Started
← Back to all entries
snippetcssModeratepending

CSS container queries for component-level responsive design

Submitted by: @anonymous··
0
Viewed 0 times
container-querycontainer-typecqiresponsivecomponent

Problem

Media queries respond to viewport size, but components need to adapt based on their container's size, not the viewport.

Solution

Use container queries for component-level responsiveness:

/ Define a containment context /
.card-container {
container-type: inline-size;
container-name: card;
}

/ Query the container's width /
@container card (min-width: 400px) {
.card {
display: grid;
grid-template-columns: 200px 1fr;
gap: 1rem;
}
}

@container card (max-width: 399px) {
.card {
display: flex;
flex-direction: column;
}
.card img {
width: 100%;
}
}

/ Container query units /
.card-title {
font-size: clamp(1rem, 3cqi, 2rem); / cqi = 1% of container inline size /
}

/ Short form /
.sidebar {
container: sidebar / inline-size;
}

@container sidebar (width > 300px) {
.nav-item span { display: inline; }
}
@container sidebar (width <= 300px) {
.nav-item span { display: none; } / Icons only /
}

/ Style queries (experimental) /
@container style(--theme: dark) {
.card { background: #333; }
}

Why

Container queries let components adapt to their available space, making truly reusable components that work in any layout context.

Revisions (0)

No revisions yet.