Skip to content

Commit cbb161b

Browse files
authored
Document .contains-* container-query utilities (#42726)
Add a Container queries page under Utilities > Layout documenting the .contains-inline and .contains-size utilities (container-type), wire it into the sidebar, and add scss-docs markers so its Sass API renders.
1 parent 4b13146 commit cbb161b

3 files changed

Lines changed: 43 additions & 0 deletions

File tree

scss/_utilities.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ $utilities: map.merge(
9494
values: auto hidden visible scroll,
9595
),
9696
// scss-docs-end utils-overflow
97+
// scss-docs-start utils-container
9798
"container": (
9899
property: container-type,
99100
class: contains,
@@ -102,6 +103,7 @@ $utilities: map.merge(
102103
"size": size,
103104
)
104105
),
106+
// scss-docs-end utils-container
105107
// scss-docs-start utils-display
106108
"display": (
107109
responsive: true,

site/data/sidebar.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@
191191
- group: Layout
192192
pages:
193193
- title: Aspect ratio
194+
- title: Container queries
194195
- title: Display
195196
- title: Float
196197
- title: Object fit
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: Container queries
3+
description: Turn an element into a query container with container-type utilities so descendants can respond to its size.
4+
utility:
5+
- container
6+
---
7+
8+
Use the `.contains-*` utilities to set the `container-type` property, establishing an element as a [query container](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries). Once an element is a query container, its descendants can adapt their styles based on the container’s size rather than the viewport.
9+
10+
Apply `.contains-inline` to query on inline size (width in horizontal writing modes), or `.contains-size` to query on both inline and block size.
11+
12+
```html
13+
<div class="contains-inline">
14+
<div class="card">...</div>
15+
</div>
16+
```
17+
18+
```scss
19+
// Classes
20+
.contains-inline {
21+
container-type: inline-size;
22+
}
23+
.contains-size {
24+
container-type: size;
25+
}
26+
```
27+
28+
<Callout>
29+
`.contains-size` queries the container’s block size as well, so the element must have an explicit height for `size` containment to resolve. When in doubt, reach for `.contains-inline`.
30+
</Callout>
31+
32+
Several components rely on a query container to enable their responsive layouts. For example, wrap a `.card-group` or a horizontal `.list-group` in an element with `.contains-inline` so their container-query-based layouts take effect.
33+
34+
## CSS
35+
36+
### Sass utilities API
37+
38+
Container utilities are declared in our utilities API in `scss/_utilities.scss`. [Learn how to use the utilities API.]([[docsref:/utilities/api#using-the-api]])
39+
40+
<ScssDocs name="utils-container" file="scss/_utilities.scss" />

0 commit comments

Comments
 (0)