¿Qué es @container en CSS y cómo se usa?

En el mundo del diseño web, la adaptabilidad es clave. Ya tenemos @media
para adaptar nuestros estilos a distintos tamaños de pantalla, pero ¿qué pasa si queremos que un componente cambie su estilo según el tamaño de su contenedor y no del viewport? Ahí entra en juego una nueva y poderosa herramienta: @container
.
En este artículo te explico qué es, cómo se usa y te muestro ejemplos prácticos para que empieces a usarlo hoy mismo.
¿Qué es @container?⌗
@container
es una regla de CSS (también conocida como Container Queries) que permite aplicar estilos a un elemento en función del tamaño de su contenedor, no del tamaño de la ventana del navegador.
Esto permite que los componentes sean realmente adaptables, lo cual es muy útil en diseños modulares y reutilizables. Antes de usarlo, necesitas:
- Definir qué elemento actuará como contenedor usando la propiedad
container-type
. - Escribir reglas
@container
dentro del CSS.
Esto le indica al navegador: Observa el ancho de este elemento para aplicar las reglas siguientes.
Ejemplo básico: Cambiar layout de una tarjeta⌗
Supongamos que tienes una tarjeta .card
con un título y una imagen. Puedes hacer que el diseño cambie si el contenedor es más ancho de 400px:
HTML:⌗
CSS:⌗
En este ejemplo, si el contenedor es más ancho de 400px, imagen y texto dentro de la tarjeta se ordenan en columnas.
Consultas más específicas: container-name⌗
Si necesitas aplicar reglas a un contenedor específico, puedes usar container-name
y hacer consultas específicas: