Back to Posts
CSSFrontend
Container Queries: The End of Media Query Hacks
2026-05-081 min read
For years, responsive design meant media queries tied to viewport width. Container queries change everything by letting components respond to their own container's size.
The Problem
A card component might appear in a 300px sidebar or a 900px main area. With media queries, you cannot differentiate — the viewport is the same in both cases.
The Solution
.card-container {
container-type: inline-size;
container-name: card;
}
@container card (min-width: 400px) {
.card {
display: grid;
grid-template-columns: 200px 1fr;
}
}
@container card (max-width: 399px) {
.card {
display: flex;
flex-direction: column;
}
}
Container Query Units
New CSS units like cqw (container query width) let you size elements relative to their container:
.card-title {
font-size: clamp(1rem, 3cqw, 1.5rem);
}
Browser Support
Container queries have full support in all modern browsers as of 2025. You can safely use them in production without fallbacks.
Best Practices
- Use container queries for reusable components
- Keep media queries for page-level layout
- Name your containers for clarity in complex layouts