Container Queries: componentes realmente responsivos

Aprende a adaptar un componente por el tamaño de su contenedor con @container, container-type y unidades cqi/cqw.

Las media queries responden al viewport; las container queries responden al espacio real del componente.

Con container-type defines el contexto; con @container aplicas reglas condicionales dentro de ese contexto.

Puedes combinarlo con cqi/cqw para escalas fluidas orientadas al contenedor y no a la ventana completa.

Esta técnica mejora la reutilización: el mismo componente funciona en sidebar, hero o grid sin duplicar CSS.

  • El componente se adapta al hueco que ocupa, no al tamaño total de pantalla.
  • Si una tarjeta vive en una columna estrecha y luego en una principal, debería reaccionar a su propio ancho. Con media queries eso obliga a reglas más frágiles; con @container el componente se vuelve autónomo.
  • La idea clave es declarar un padre como contenedor y dejar que sus hijos consulten ese tamaño para cambiar layout, tipografía o densidad visual.
  • Responsive por componente, no por página.
  • Menos acoplamiento entre layout global y estilos internos.

Qué resuelven las Container Queries

El componente se adapta al hueco que ocupa, no al tamaño total de pantalla.

Si una tarjeta vive en una columna estrecha y luego en una principal, debería reaccionar a su propio ancho. Con media queries eso obliga a reglas más frágiles; con @container el componente se vuelve autónomo.

La idea clave es declarar un padre como contenedor y dejar que sus hijos consulten ese tamaño para cambiar layout, tipografía o densidad visual.

  • Responsive por componente, no por página.
  • Menos acoplamiento entre layout global y estilos internos.
  • Más reutilización en design systems.

Sintaxis base: container-type + @container

Primero defines el contenedor; después escribes reglas condicionales.

  • inline-size: evalúa ancho (caso más habitual).
  • size: evalúa ancho y alto (más estricto y menos usado).
  • container-name: útil para evitar ambigüedad en layouts complejos.

Unidades de contenedor (cqi, cqw, cqh, cqmin, cqmax)

Escalado fluido relativo al contenedor.

cqi y cqw representan porcentajes del ancho del contenedor, no del viewport. Esto permite que el texto de un widget escale en función del hueco real que tiene.

Combina estas unidades con clamp() para mantener límites de legibilidad.

CSS
43

Container Queries: componentes realmente responsivos

Aprende a adaptar un componente por el tamaño de su contenedor con @container, container-type y unidades cqi/cqw.

Código del tema: @media (min-width: 768px)

📘 Teoría

Qué resuelven las Container Queries

El componente se adapta al hueco que ocupa, no al tamaño total de pantalla.

Si una tarjeta vive en una columna estrecha y luego en una principal, debería reaccionar a su propio ancho. Con media queries eso obliga a reglas más frágiles; con @container el componente se vuelve autónomo.

La idea clave es declarar un padre como contenedor y dejar que sus hijos consulten ese tamaño para cambiar layout, tipografía o densidad visual.

  • Responsive por componente, no por página.
  • Menos acoplamiento entre layout global y estilos internos.
  • Más reutilización en design systems.

Sintaxis base: container-type + @container

Primero defines el contenedor; después escribes reglas condicionales.

  • inline-size: evalúa ancho (caso más habitual).
  • size: evalúa ancho y alto (más estricto y menos usado).
  • container-name: útil para evitar ambigüedad en layouts complejos.
Patrón base
.card-wrapper {
  container-type: inline-size;
  container-name: card;
}

.card {
  display: grid;
  gap: 0.75rem;
}

@container card (width >= 520px) {
  .card {
    grid-template-columns: 140px 1fr;
    align-items: center;
  }
}

Unidades de contenedor (cqi, cqw, cqh, cqmin, cqmax)

Escalado fluido relativo al contenedor.

1

cqi y cqw representan porcentajes del ancho del contenedor, no del viewport. Esto permite que el texto de un widget escale en función del hueco real que tiene.

2

Combina estas unidades con clamp() para mantener límites de legibilidad.

Tipografía fluida por contenedor
.widget {
  container-type: inline-size;
}

.widget__title {
  font-size: clamp(1rem, 3cqi, 1.8rem);
}

🧭 Visuales clave

Container queries vs media queries

Explica por que un componente puede necesitar layout distinto en contenedores diferentes.

Comparativa entre media query por viewport y container query por componente.

Container queries en componentes reales

Refuerza el uso de container queries en layouts con sidebars y módulos reutilizables.

Ejemplo avanzado de adaptación de componentes según ancho del contenedor.

🧪 Aprende probando

Ejemplo Demo interactiva: redimensiona el contenedor Mueve el slider y observa cómo el layout cambia por @container.

🏁 Retos

Reto Reto: hero adaptativo por contenedor Activa el contenedor, usa cqi y cambia estilo dentro de @container.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .