Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Media queries #1673

Merged
merged 25 commits into from
Sep 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f6e2785
Add prefers- media queries
jamesnw Aug 23, 2024
f58d9a3
Update spec
jamesnw Aug 23, 2024
872e3da
Add Interaction media queries
jamesnw Aug 27, 2024
690f2ce
Merge branch 'prefer-queries' of https://github.com/oddbird/web-featu…
jamesnw Aug 27, 2024
6a48ca7
Rename new media query features
jamesnw Aug 27, 2024
e139452
Add media-queries group
jamesnw Aug 27, 2024
78c1c6a
Add resolution media query
jamesnw Aug 27, 2024
ce9ff25
Add media queries base
jamesnw Aug 27, 2024
ec9906e
Add more media features, change query to feature where applicable
jamesnw Aug 27, 2024
368d22e
Add color-gamut
jamesnw Aug 27, 2024
0249768
Add groups
jamesnw Aug 27, 2024
71694ee
Merge branch 'main' into media-queries
jamesnw Aug 28, 2024
b5a9d5a
Merge branch 'main' of github.com:web-platform-dx/web-features into m…
jamesnw Sep 3, 2024
a2b00f4
Address review
jamesnw Sep 3, 2024
263fcb4
Merge branch 'main' of github.com:web-platform-dx/web-features into m…
jamesnw Sep 12, 2024
f7c3c5c
Merge branch 'main' of github.com:web-platform-dx/web-features into m…
jamesnw Sep 16, 2024
ba1662e
Rename media features and files
jamesnw Sep 16, 2024
bfdd479
Remove dsstore
jamesnw Sep 16, 2024
0c150de
Remove color gamut values
jamesnw Sep 16, 2024
ff4f9d5
Merge branch 'main' into media-queries
jamesnw Sep 17, 2024
8e8aba6
Add more media queries
jamesnw Sep 17, 2024
280587b
Address review
jamesnw Sep 18, 2024
7453fff
Remove resolution media query
jamesnw Sep 18, 2024
586f86d
Review
jamesnw Sep 18, 2024
0414415
Merge branch 'main' of github.com:web-platform-dx/web-features into m…
jamesnw Sep 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions features/color-gamut.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: color-gamut media query
description: The `color-gamut` media query sets styles based on the colors a device can display.
spec: https://drafts.csswg.org/mediaqueries-5/#color-gamut
group: media-queries
compat_features:
- css.at-rules.media.color-gamut
16 changes: 16 additions & 0 deletions features/color-gamut.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Generated from: color-gamut.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: low
baseline_low_date: 2023-02-14
support:
chrome: "58"
chrome_android: "58"
edge: "79"
firefox: "110"
firefox_android: "110"
safari: "10"
safari_ios: "10"
compat_features:
- css.at-rules.media.color-gamut
7 changes: 7 additions & 0 deletions features/display-mode.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: display-mode media query
description: The `display-mode` CSS media query sets styles based on whether the web page is in `fullscreen`, `standalone`, `minimal-ui,` `browser`, or `picture-in-picture` mode.
spec: https://drafts.csswg.org/mediaqueries-5/#display-modes
group: media-queries
compat_features:
- css.at-rules.media.display-mode
- css.at-rules.media.display-mode.picture-in-picture
25 changes: 25 additions & 0 deletions features/display-mode.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated from: display-mode.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: false
support:
chrome: "123"
edge: "123"
compat_features:
# baseline: false
# support:
# chrome: "42"
# chrome_android: "42"
# edge: "79"
# firefox: "47"
# safari: "13"
# safari_ios: "12.2"
- css.at-rules.media.display-mode

# ⬇️ Same status as overall feature ⬇️
# baseline: false
# support:
# chrome: "123"
# edge: "123"
- css.at-rules.media.display-mode.picture-in-picture
6 changes: 6 additions & 0 deletions features/dynamic-range.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: dynamic-range media query
description: The `dynamic-range` CSS media query sets styles based on whether a device can display at least `standard` range colors or at least `high` range colors. Non-visual devices will match neither.
spec: https://drafts.csswg.org/mediaqueries-5/#dynamic-range
group: media-queries
compat_features:
- css.at-rules.media.dynamic-range
16 changes: 16 additions & 0 deletions features/dynamic-range.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Generated from: dynamic-range.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: low
baseline_low_date: 2022-05-03
support:
chrome: "98"
chrome_android: "98"
edge: "98"
firefox: "100"
firefox_android: "100"
safari: "13.1"
safari_ios: "13.4"
compat_features:
- css.at-rules.media.dynamic-range
12 changes: 12 additions & 0 deletions features/interaction.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Interaction media queries
description: "The `pointer`, `any-pointer`, `hover`, and `any-hover` CSS media queries set styles based on the presence of pointing devices and their ability to hover over elements. For example, most smartphones match the `(hover: none) and (pointer: coarse)` media query."
spec: https://drafts.csswg.org/mediaqueries-5/#mf-interaction
caniuse: css-media-interaction
group: media-queries
status:
compute_from: css.at-rules.media.any-pointer
compat_features:
- css.at-rules.media.hover
- css.at-rules.media.any-hover
- css.at-rules.media.any-pointer
- css.at-rules.media.pointer
68 changes: 68 additions & 0 deletions features/interaction.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Generated from: interaction.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: high
baseline_low_date: 2018-12-11
baseline_high_date: 2021-06-11
support:
chrome: "41"
chrome_android: "41"
edge: "12"
firefox: "64"
firefox_android: "64"
safari: "9"
safari_ios: "9"
compat_features:
# baseline: high
# baseline_low_date: 2018-12-11
# baseline_high_date: 2021-06-11
# support:
# chrome: "38"
# chrome_android: "50"
# edge: "12"
# firefox: "64"
# firefox_android: "64"
# safari: "9"
# safari_ios: "9"
- css.at-rules.media.hover

# ⬇️ Same status as overall feature ⬇️
# baseline: high
# baseline_low_date: 2018-12-11
# baseline_high_date: 2021-06-11
# support:
# chrome: "41"
# chrome_android: "41"
# edge: "12"
# firefox: "64"
# firefox_android: "64"
# safari: "9"
# safari_ios: "9"
- css.at-rules.media.any-pointer

# baseline: high
# baseline_low_date: 2018-12-11
# baseline_high_date: 2021-06-11
# support:
# chrome: "41"
# chrome_android: "41"
# edge: "16"
# firefox: "64"
# firefox_android: "64"
# safari: "9"
# safari_ios: "9"
- css.at-rules.media.any-hover

# baseline: high
# baseline_low_date: 2018-12-11
# baseline_high_date: 2021-06-11
# support:
# chrome: "41"
# chrome_android: "50"
# edge: "12"
# firefox: "64"
# firefox_android: "64"
# safari: "9"
# safari_ios: "9"
- css.at-rules.media.pointer
6 changes: 6 additions & 0 deletions features/inverted-colors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: inverted-colors media query
description: The `inverted-colors` CSS media query sets styles based on whether the user has inverted all colors, such as with mobile accessibility settings.
spec: https://drafts.csswg.org/mediaqueries-5/#inverted
group: media-queries
compat_features:
- css.at-rules.media.inverted-colors
10 changes: 10 additions & 0 deletions features/inverted-colors.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Generated from: inverted-colors.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: false
support:
safari: "9.1"
safari_ios: "10"
compat_features:
- css.at-rules.media.inverted-colors
23 changes: 23 additions & 0 deletions features/media-queries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Media queries
description: The `@media` CSS rule conditionally applies styles based on the output device type, its capabilities, and the user's preferences. Media queries are composed of an optional media type such as `screen` or `print`, and one or more mandatory media features, such as `prefers-reduced-animations`.
spec: https://drafts.csswg.org/mediaqueries-5/
caniuse: css-mediaqueries
group: media-queries
status:
compute_from: css.at-rules.media
compat_features:
- css.at-rules.media
- css.at-rules.media.color
- css.at-rules.media.grid
- css.at-rules.media.height
- css.at-rules.media.width
- css.at-rules.media.monochrome
- css.at-rules.media.orientation
- css.at-rules.media.aspect-ratio
Comment on lines +15 to +16
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we capture these 2 media features, and maybe others, as separate features?
I think keeping height and width here is fine, this is what the vast majority of media query usage happens. But the other features feel sufficiently specific to be in their own web-features files.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I opted not to create separate features for pre-2015 media queries, thinking it would be easy to split if users requested it, but I could go either way.

- css.types.ratio
- css.at-rules.media.color-index
- css.at-rules.media.calc
- css.at-rules.media.media_features
- css.at-rules.media.media_query_values
- css.at-rules.media.nested-queries
- css.at-rules.media.or_syntax
142 changes: 142 additions & 0 deletions features/media-queries.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Generated from: media-queries.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: high
baseline_low_date: 2015-07-29
baseline_high_date: 2018-01-29
support:
chrome: "1"
chrome_android: "18"
edge: "12"
firefox: "1"
firefox_android: "4"
safari: "3"
safari_ios: "1"
compat_features:
# ⬇️ Same status as overall feature ⬇️
# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "12"
# firefox: "1"
# firefox_android: "4"
# safari: "3"
# safari_ios: "1"
- css.at-rules.media
- css.at-rules.media.media_features

# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "12"
# firefox: "2"
# firefox_android: "4"
# safari: "3"
# safari_ios: "1"
- css.at-rules.media.color
- css.at-rules.media.grid
- css.at-rules.media.height
- css.at-rules.media.width

# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "3"
# chrome_android: "18"
# edge: "12"
# firefox: "2"
# firefox_android: "4"
# safari: "5"
# safari_ios: "4.2"
- css.at-rules.media.orientation

# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "3"
# chrome_android: "18"
# edge: "12"
# firefox: "3.5"
# firefox_android: "4"
# safari: "5"
# safari_ios: "4.2"
- css.at-rules.media.aspect-ratio
- css.types.ratio

# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "26"
# chrome_android: "26"
# edge: "12"
# firefox: "11"
# firefox_android: "14"
# safari: "7"
# safari_ios: "7"
- css.at-rules.media.nested-queries

# baseline: high
# baseline_low_date: 2020-01-15
# baseline_high_date: 2022-07-15
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "79"
# firefox: "2"
# firefox_android: "4"
# safari: "3"
# safari_ios: "1"
- css.at-rules.media.monochrome

# baseline: high
# baseline_low_date: 2020-01-15
# baseline_high_date: 2022-07-15
# support:
# chrome: "66"
# chrome_android: "66"
# edge: "79"
# firefox: "59"
# firefox_android: "59"
# safari: "12"
# safari_ios: "12"
- css.at-rules.media.calc

# baseline: low
# baseline_low_date: 2023-03-27
# support:
# chrome: "104"
# chrome_android: "104"
# edge: "104"
# firefox: "64"
# firefox_android: "64"
# safari: "16.4"
# safari_ios: "16.4"
- css.at-rules.media.or_syntax

# baseline: false
# support:
# chrome: "29"
# chrome_android: "29"
# edge: "79"
# safari: "8"
# safari_ios: "8"
- css.at-rules.media.color-index

# baseline: false
# support:
# chrome: "66"
# chrome_android: "66"
# edge: "79"
# firefox: "59"
# firefox_android: "59"
- css.at-rules.media.media_query_values
3 changes: 2 additions & 1 deletion features/media-query-range-syntax.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Media query range syntax
description: "The range syntax of CSS media queries allows you to use mathematical comparison operators such as `<`, `>`, `<=`, and `>=` to define a range of values for a media feature. For example, `(400px < width < 1000px)` returns true if the viewport width is between 400px and 1000px."
description: "The range syntax of CSS media queries allows you to use mathematical comparison operators such as `<`, `>`, `<=`, and `>=` to define a range of values for a media query. For example, `(400px < width < 1000px)` returns true if the viewport width is between 400px and 1000px."
caniuse: css-media-range-syntax
group: media-queries
spec: https://drafts.csswg.org/mediaqueries-4/#mq-range-context
9 changes: 9 additions & 0 deletions features/overflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: Overflow media queries
description: The `overflow-block` and `overflow-inline` CSS media queries set styles based on the way a device displays content that's larger than the viewport or page area. For example, a laptop lets users scroll to reveal content, while a printer displays overflowing content on additional pages.
spec:
- https://drafts.csswg.org/mediaqueries-5/#mf-overflow-block
- https://drafts.csswg.org/mediaqueries-5/#mf-overflow-inline
group: media-queries
compat_features:
- css.at-rules.media.overflow-block
- css.at-rules.media.overflow-inline
17 changes: 17 additions & 0 deletions features/overflow.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Generated from: overflow.yml
# Do not edit this file by hand. Edit the source file instead!

status:
baseline: low
baseline_low_date: 2023-09-18
support:
chrome: "113"
chrome_android: "113"
edge: "113"
firefox: "66"
firefox_android: "66"
safari: "17"
safari_ios: "17"
compat_features:
- css.at-rules.media.overflow-block
- css.at-rules.media.overflow-inline
13 changes: 10 additions & 3 deletions features/prefers-color-scheme.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
name: prefers-color-scheme
description: The `prefers-color-scheme` CSS media query detects the requested color scheme, light or dark.
name: prefers-color-scheme media query
description: The `prefers-color-scheme` CSS media query sets styles based on the requested color scheme, light or dark.
spec: https://drafts.csswg.org/mediaqueries-5/#prefers-color-scheme
group: css
group: media-queries
status:
compute_from: css.at-rules.media.prefers-color-scheme
compat_features:
- css.at-rules.media.prefers-color-scheme
- css.at-rules.media.prefers-color-scheme.respects-inherited-scheme
- css.at-rules.media.prefers-color-scheme.no-preference
- http.headers.Sec-CH-Prefers-Color-Scheme
Loading