← Chrome 150 reference

v150 · css · shipped

Comma-separated Container Queries

A single @container rule can now list multiple container conditions separated by commas — an OR relationship, exactly mirroring how comma-separated @media lists work. Shipped in Chrome 150 on desktop and Android.

at a glance

Shipped inChrome 150 (desktop, Android)
StatusEnabled by default; DevTrial in Chrome 149
FlagNone
SpecCSS Conditional Rules Level 5 — @container
ChromeStatus6196591858941952 — Comma-separated Container Queries

why it exists

CSS media queries have always allowed comma-separated condition lists as an OR gate:

/* Applies if EITHER condition is true */
@media (max-width: 600px), print { ... }

Container queries launched without this feature — you could only specify a single condition per @container rule. The workaround was to duplicate the entire rule block:

/* Verbose: same styles, two rules */
@container sidebar (min-width: 300px) {
  .card { display: flex; }
}
@container main (min-width: 600px) {
  .card { display: flex; }
}

Chrome 150 adds parity with @media: a comma-separated list of container conditions within a single rule, matching when any condition is satisfied.

Source: CSS Conditional Rules Level 5 §container-rule.

syntax

@container [<container-name>]? <container-query>
         [, [<container-name>]? <container-query>]* {
  /* declarations */
}

Each comma-separated item can independently name a different container. The block's styles apply when any one of the conditions matches — OR semantics, not AND.

examples

same style for two different containers

/* Before Chrome 150: two identical rule blocks */
@container sidebar (min-width: 300px) {
  .card { display: flex; gap: 1rem; }
}
@container main-content (min-width: 500px) {
  .card { display: flex; gap: 1rem; }
}

/* Chrome 150+: one rule */
@container sidebar (min-width: 300px),
           main-content (min-width: 500px) {
  .card { display: flex; gap: 1rem; }
}

mixing size and style queries

/* Activates when the layout container is narrow,
   OR when the theme token is set to compact */
@container layout (max-width: 400px),
           style(--density: compact) {
  .item { padding: 0.25rem; }
}

unnamed containers (implicit)

/* Either nearest inline-size container is over 400px,
   or block-size container is over 600px */
@container (min-width: 400px), (min-height: 600px) {
  .hero { font-size: 2rem; }
}

Each unnamed condition matches against the nearest eligible ancestor container independently.

browser support

Chrome / Edge150 (enabled by default)
FirefoxIn progress (Bugzilla #2016929)
SafariNo signal
Source: chromestatus.com browser positions, May 2026.

see also