> [!NOTE] > As of Tailwind CSS v4.0, container queries are supported in the framework by default and this plugin is no longer required.
> [!NOTE]
> As of Tailwind CSS v4.0, container queries are supported in the framework by default and this plugin is no longer required.
A plugin for Tailwind CSS v3.2+ that provides utilities for container queries.
Install the plugin from npm:
``sh`
npm install -D @tailwindcss/container-queries
Then add the plugin to your tailwind.config.js file:
`js`
// tailwind.config.js
module.exports = {
theme: {
// ...
},
plugins: [
require('@tailwindcss/container-queries'),
// ...
],
}
Start by marking an element as a container using the @container class, and then applying styles based on the size of that container using the container variants like @md:, @lg:, and @xl::
`html`
By default we provide container sizes from @xs (20rem) to @7xl (80rem).
You can optionally name containers using a @container/{name} class, and then include that name in the container variants using classes like @lg/{name}:underline:
`html`
In addition to using one of the container sizes provided by default, you can also create one-off sizes using any arbitrary value:
`html`
To stop an element from acting as a container, use the @container-normal class.
If you have configured Tailwind to use a prefix, make sure to prefix both the @container class and any classes where you are using a container query modifier:
`html`
By default we ship with the following configured values:
| Name | CSS |
| ------ | -------------------------------------------- |
| @sm | @container (min-width: 640px) |@md
| | @container (min-width: 780px) |@lg
| | @container (min-width: 1024px) |@xl
| | @container (min-width: 1280px) |@2xl
| | @container (min-width: 1536px) |@3xl
| | @container (min-width: 1920px) |@4xl
| | @container (min-width: 2560px) |
You can configure which values are available for this plugin under the containers key in your tailwind.config.js file:
`js``
// tailwind.config.js
module.exports = {
theme: {
extend: {
containers: {
'2xs': '1600px',
},
},
},
}