[6a3a178] | 1 | [
|
---|
| 2 | {
|
---|
| 3 | "id": "all-property",
|
---|
| 4 | "title": "`all` Property",
|
---|
| 5 | "description": "A property for defining the reset of all properties of an element",
|
---|
| 6 | "specification": "https://www.w3.org/TR/css-cascade-3/#all-shorthand",
|
---|
| 7 | "stage": 3,
|
---|
| 8 | "caniuse": "css-all",
|
---|
| 9 | "docs": {
|
---|
| 10 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/all"
|
---|
| 11 | },
|
---|
| 12 | "example": "a {\n all: initial;\n}",
|
---|
| 13 | "polyfills": [
|
---|
| 14 | {
|
---|
| 15 | "type": "PostCSS Plugin",
|
---|
| 16 | "link": "https://github.com/maximkoretskiy/postcss-initial"
|
---|
| 17 | }
|
---|
| 18 | ]
|
---|
| 19 | },
|
---|
| 20 | {
|
---|
| 21 | "id": "any-link-pseudo-class",
|
---|
| 22 | "title": "`:any-link` Hyperlink Pseudo-Class",
|
---|
| 23 | "description": "A pseudo-class for matching anchor elements independent of whether they have been visited",
|
---|
| 24 | "specification": "https://www.w3.org/TR/selectors-4/#any-link-pseudo",
|
---|
| 25 | "stage": 2,
|
---|
| 26 | "caniuse": "css-any-link",
|
---|
| 27 | "docs": {
|
---|
| 28 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link"
|
---|
| 29 | },
|
---|
| 30 | "example": "nav :any-link > span {\n background-color: yellow;\n}",
|
---|
| 31 | "polyfills": [
|
---|
| 32 | {
|
---|
| 33 | "type": "PostCSS Plugin",
|
---|
| 34 | "link": "https://github.com/jonathantneal/postcss-pseudo-class-any-link"
|
---|
| 35 | }
|
---|
| 36 | ]
|
---|
| 37 | },
|
---|
| 38 | {
|
---|
| 39 | "id": "blank-pseudo-class",
|
---|
| 40 | "title": "`:blank` Empty-Value Pseudo-Class",
|
---|
| 41 | "description": "A pseudo-class for matching form elements when they are empty",
|
---|
| 42 | "specification": "https://drafts.csswg.org/selectors-4/#blank",
|
---|
| 43 | "stage": 1,
|
---|
| 44 | "example": "input:blank {\n background-color: yellow;\n}",
|
---|
| 45 | "polyfills": [
|
---|
| 46 | {
|
---|
| 47 | "type": "JavaScript Library",
|
---|
| 48 | "link": "https://github.com/csstools/css-blank-pseudo"
|
---|
| 49 | },
|
---|
| 50 | {
|
---|
| 51 | "type": "PostCSS Plugin",
|
---|
| 52 | "link": "https://github.com/csstools/css-blank-pseudo"
|
---|
| 53 | }
|
---|
| 54 | ]
|
---|
| 55 | },
|
---|
| 56 | {
|
---|
| 57 | "id": "break-properties",
|
---|
| 58 | "title": "Break Properties",
|
---|
| 59 | "description": "Properties for defining the break behavior between and within boxes",
|
---|
| 60 | "specification": "https://www.w3.org/TR/css-break-3/#breaking-controls",
|
---|
| 61 | "stage": 3,
|
---|
| 62 | "caniuse": "multicolumn",
|
---|
| 63 | "docs": {
|
---|
| 64 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/break-after"
|
---|
| 65 | },
|
---|
| 66 | "example": "a {\n break-inside: avoid;\n break-before: avoid-column;\n break-after: always;\n}",
|
---|
| 67 | "polyfills": [
|
---|
| 68 | {
|
---|
| 69 | "type": "PostCSS Plugin",
|
---|
| 70 | "link": "https://github.com/shrpne/postcss-page-break"
|
---|
| 71 | }
|
---|
| 72 | ]
|
---|
| 73 | },
|
---|
| 74 | {
|
---|
| 75 | "id": "case-insensitive-attributes",
|
---|
| 76 | "title": "Case-Insensitive Attributes",
|
---|
| 77 | "description": "An attribute selector matching attribute values case-insensitively",
|
---|
| 78 | "specification": "https://www.w3.org/TR/selectors-4/#attribute-case",
|
---|
| 79 | "stage": 2,
|
---|
| 80 | "caniuse": "css-case-insensitive",
|
---|
| 81 | "docs": {
|
---|
| 82 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors"
|
---|
| 83 | },
|
---|
| 84 | "example": "[frame=hsides i] {\n border-style: solid none;\n}",
|
---|
| 85 | "polyfills": [
|
---|
| 86 | {
|
---|
| 87 | "type": "PostCSS Plugin",
|
---|
| 88 | "link": "https://github.com/Semigradsky/postcss-attribute-case-insensitive"
|
---|
| 89 | }
|
---|
| 90 | ]
|
---|
| 91 | },
|
---|
| 92 | {
|
---|
| 93 | "id": "color-adjust",
|
---|
| 94 | "title": "`color-adjust` Property",
|
---|
| 95 | "description": "The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images",
|
---|
| 96 | "specification": "https://www.w3.org/TR/css-color-4/#color-adjust",
|
---|
| 97 | "stage": 2,
|
---|
| 98 | "caniuse": "css-color-adjust",
|
---|
| 99 | "docs": {
|
---|
| 100 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/color-adjust"
|
---|
| 101 | },
|
---|
| 102 | "example": ".background {\n background-color:#ccc;\n}\n.background.color-adjust {\n color-adjust: economy;\n}\n.background.color-adjust-exact {\n color-adjust: exact;\n}"
|
---|
| 103 | },
|
---|
| 104 | {
|
---|
| 105 | "id": "color-functional-notation",
|
---|
| 106 | "title": "Color Functional Notation",
|
---|
| 107 | "description": "A space and slash separated notation for specifying colors",
|
---|
| 108 | "specification": "https://drafts.csswg.org/css-color/#ref-for-funcdef-rgb%E2%91%A1%E2%91%A0",
|
---|
| 109 | "stage": 1,
|
---|
| 110 | "example": "em {\n background-color: hsl(120deg 100% 25%);\n box-shadow: 0 0 0 10px hwb(120deg 100% 25% / 80%);\n color: rgb(0 255 0);\n}",
|
---|
| 111 | "polyfills": [
|
---|
| 112 | {
|
---|
| 113 | "type": "PostCSS Plugin",
|
---|
| 114 | "link": "https://github.com/jonathantneal/postcss-color-functional-notation"
|
---|
| 115 | }
|
---|
| 116 | ]
|
---|
| 117 | },
|
---|
| 118 | {
|
---|
| 119 | "id": "color-mod-function",
|
---|
| 120 | "title": "`color-mod()` Function",
|
---|
| 121 | "description": "A function for modifying colors",
|
---|
| 122 | "specification": "https://www.w3.org/TR/css-color-4/#funcdef-color-mod",
|
---|
| 123 | "stage": -1,
|
---|
| 124 | "example": "p {\n color: color-mod(black alpha(50%));\n}",
|
---|
| 125 | "polyfills": [
|
---|
| 126 | {
|
---|
| 127 | "type": "PostCSS Plugin",
|
---|
| 128 | "link": "https://github.com/jonathantneal/postcss-color-mod-function"
|
---|
| 129 | }
|
---|
| 130 | ]
|
---|
| 131 | },
|
---|
| 132 | {
|
---|
| 133 | "id": "custom-media-queries",
|
---|
| 134 | "title": "Custom Media Queries",
|
---|
| 135 | "description": "An at-rule for defining aliases that represent media queries",
|
---|
| 136 | "specification": "https://drafts.csswg.org/mediaqueries-5/#at-ruledef-custom-media",
|
---|
| 137 | "stage": 1,
|
---|
| 138 | "example": "@custom-media --narrow-window (max-width: 30em);\n\n@media (--narrow-window) {}",
|
---|
| 139 | "polyfills": [
|
---|
| 140 | {
|
---|
| 141 | "type": "PostCSS Plugin",
|
---|
| 142 | "link": "https://github.com/postcss/postcss-custom-media"
|
---|
| 143 | }
|
---|
| 144 | ]
|
---|
| 145 | },
|
---|
| 146 | {
|
---|
| 147 | "id": "custom-properties",
|
---|
| 148 | "title": "Custom Properties",
|
---|
| 149 | "description": "A syntax for defining custom values accepted by all CSS properties",
|
---|
| 150 | "specification": "https://www.w3.org/TR/css-variables-1/",
|
---|
| 151 | "stage": 3,
|
---|
| 152 | "caniuse": "css-variables",
|
---|
| 153 | "docs": {
|
---|
| 154 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/var"
|
---|
| 155 | },
|
---|
| 156 | "example": "img {\n --some-length: 32px;\n\n height: var(--some-length);\n width: var(--some-length);\n}",
|
---|
| 157 | "polyfills": [
|
---|
| 158 | {
|
---|
| 159 | "type": "PostCSS Plugin",
|
---|
| 160 | "link": "https://github.com/postcss/postcss-custom-properties"
|
---|
| 161 | }
|
---|
| 162 | ]
|
---|
| 163 | },
|
---|
| 164 | {
|
---|
| 165 | "id": "custom-property-sets",
|
---|
| 166 | "title": "Custom Property Sets",
|
---|
| 167 | "description": "A syntax for storing properties in named variables, referenceable in other style rules",
|
---|
| 168 | "specification": "https://tabatkins.github.io/specs/css-apply-rule/",
|
---|
| 169 | "stage": -1,
|
---|
| 170 | "caniuse": "css-apply-rule",
|
---|
| 171 | "example": "img {\n --some-length-styles: {\n height: 32px;\n width: 32px;\n };\n\n @apply --some-length-styles;\n}",
|
---|
| 172 | "polyfills": [
|
---|
| 173 | {
|
---|
| 174 | "type": "PostCSS Plugin",
|
---|
| 175 | "link": "https://github.com/pascalduez/postcss-apply"
|
---|
| 176 | }
|
---|
| 177 | ]
|
---|
| 178 | },
|
---|
| 179 | {
|
---|
| 180 | "id": "custom-selectors",
|
---|
| 181 | "title": "Custom Selectors",
|
---|
| 182 | "description": "An at-rule for defining aliases that represent selectors",
|
---|
| 183 | "specification": "https://drafts.csswg.org/css-extensions/#custom-selectors",
|
---|
| 184 | "stage": 1,
|
---|
| 185 | "example": "@custom-selector :--heading h1, h2, h3, h4, h5, h6;\n\narticle :--heading + p {}",
|
---|
| 186 | "polyfills": [
|
---|
| 187 | {
|
---|
| 188 | "type": "PostCSS Plugin",
|
---|
| 189 | "link": "https://github.com/postcss/postcss-custom-selectors"
|
---|
| 190 | }
|
---|
| 191 | ]
|
---|
| 192 | },
|
---|
| 193 | {
|
---|
| 194 | "id": "dir-pseudo-class",
|
---|
| 195 | "title": "`:dir` Directionality Pseudo-Class",
|
---|
| 196 | "description": "A pseudo-class for matching elements based on their directionality",
|
---|
| 197 | "specification": "https://www.w3.org/TR/selectors-4/#dir-pseudo",
|
---|
| 198 | "stage": 2,
|
---|
| 199 | "caniuse": "css-dir-pseudo",
|
---|
| 200 | "docs": {
|
---|
| 201 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:dir"
|
---|
| 202 | },
|
---|
| 203 | "example": "blockquote:dir(rtl) {\n margin-right: 10px;\n}\n\nblockquote:dir(ltr) {\n margin-left: 10px;\n}",
|
---|
| 204 | "polyfills": [
|
---|
| 205 | {
|
---|
| 206 | "type": "PostCSS Plugin",
|
---|
| 207 | "link": "https://github.com/jonathantneal/postcss-dir-pseudo-class"
|
---|
| 208 | }
|
---|
| 209 | ]
|
---|
| 210 | },
|
---|
| 211 | {
|
---|
| 212 | "id": "double-position-gradients",
|
---|
| 213 | "title": "Double Position Gradients",
|
---|
| 214 | "description": "A syntax for using two positions in a gradient.",
|
---|
| 215 | "specification": "https://www.w3.org/TR/css-images-4/#color-stop-syntax",
|
---|
| 216 | "stage": 2,
|
---|
| 217 | "caniuse-compat": {
|
---|
| 218 | "and_chr": {
|
---|
| 219 | "71": "y"
|
---|
| 220 | },
|
---|
| 221 | "chrome": {
|
---|
| 222 | "71": "y"
|
---|
| 223 | }
|
---|
| 224 | },
|
---|
| 225 | "example": ".pie_chart {\n background-image: conic-gradient(yellowgreen 40%, gold 0deg 75%, #f06 0deg);\n}",
|
---|
| 226 | "polyfills": [
|
---|
| 227 | {
|
---|
| 228 | "type": "PostCSS Plugin",
|
---|
| 229 | "link": "https://github.com/jonathantneal/postcss-double-position-gradients"
|
---|
| 230 | }
|
---|
| 231 | ]
|
---|
| 232 | },
|
---|
| 233 | {
|
---|
| 234 | "id": "environment-variables",
|
---|
| 235 | "title": "Custom Environment Variables",
|
---|
| 236 | "description": "A syntax for using custom values accepted by CSS globally",
|
---|
| 237 | "specification": "https://drafts.csswg.org/css-env-1/",
|
---|
| 238 | "stage": 0,
|
---|
| 239 | "caniuse-compat": {
|
---|
| 240 | "and_chr": {
|
---|
| 241 | "69": "y"
|
---|
| 242 | },
|
---|
| 243 | "chrome": {
|
---|
| 244 | "69": "y"
|
---|
| 245 | },
|
---|
| 246 | "ios_saf": {
|
---|
| 247 | "11.2": "y"
|
---|
| 248 | },
|
---|
| 249 | "safari": {
|
---|
| 250 | "11.2": "y"
|
---|
| 251 | }
|
---|
| 252 | },
|
---|
| 253 | "docs": {
|
---|
| 254 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/env"
|
---|
| 255 | },
|
---|
| 256 | "example": "@media (max-width: env(--brand-small)) {\n body {\n padding: env(--brand-spacing);\n }\n}",
|
---|
| 257 | "polyfills": [
|
---|
| 258 | {
|
---|
| 259 | "type": "PostCSS Plugin",
|
---|
| 260 | "link": "https://github.com/jonathantneal/postcss-env-function"
|
---|
| 261 | }
|
---|
| 262 | ]
|
---|
| 263 | },
|
---|
| 264 | {
|
---|
| 265 | "id": "focus-visible-pseudo-class",
|
---|
| 266 | "title": "`:focus-visible` Focus-Indicated Pseudo-Class",
|
---|
| 267 | "description": "A pseudo-class for matching focused elements that indicate that focus to a user",
|
---|
| 268 | "specification": "https://www.w3.org/TR/selectors-4/#focus-visible-pseudo",
|
---|
| 269 | "stage": 2,
|
---|
| 270 | "caniuse": "css-focus-visible",
|
---|
| 271 | "docs": {
|
---|
| 272 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible"
|
---|
| 273 | },
|
---|
| 274 | "example": ":focus:not(:focus-visible) {\n outline: 0;\n}",
|
---|
| 275 | "polyfills": [
|
---|
| 276 | {
|
---|
| 277 | "type": "JavaScript Library",
|
---|
| 278 | "link": "https://github.com/WICG/focus-visible"
|
---|
| 279 | },
|
---|
| 280 | {
|
---|
| 281 | "type": "PostCSS Plugin",
|
---|
| 282 | "link": "https://github.com/jonathantneal/postcss-focus-visible"
|
---|
| 283 | }
|
---|
| 284 | ]
|
---|
| 285 | },
|
---|
| 286 | {
|
---|
| 287 | "id": "focus-within-pseudo-class",
|
---|
| 288 | "title": "`:focus-within` Focus Container Pseudo-Class",
|
---|
| 289 | "description": "A pseudo-class for matching elements that are either focused or that have focused descendants",
|
---|
| 290 | "specification": "https://www.w3.org/TR/selectors-4/#focus-within-pseudo",
|
---|
| 291 | "stage": 2,
|
---|
| 292 | "caniuse": "css-focus-within",
|
---|
| 293 | "docs": {
|
---|
| 294 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within"
|
---|
| 295 | },
|
---|
| 296 | "example": "form:focus-within {\n background: rgba(0, 0, 0, 0.3);\n}",
|
---|
| 297 | "polyfills": [
|
---|
| 298 | {
|
---|
| 299 | "type": "JavaScript Library",
|
---|
| 300 | "link": "https://github.com/jonathantneal/focus-within"
|
---|
| 301 | },
|
---|
| 302 | {
|
---|
| 303 | "type": "PostCSS Plugin",
|
---|
| 304 | "link": "https://github.com/jonathantneal/postcss-focus-within"
|
---|
| 305 | }
|
---|
| 306 | ]
|
---|
| 307 | },
|
---|
| 308 | {
|
---|
| 309 | "id": "font-variant-property",
|
---|
| 310 | "title": "`font-variant` Property",
|
---|
| 311 | "description": "A property for defining the usage of alternate glyphs in a font",
|
---|
| 312 | "specification": "https://www.w3.org/TR/css-fonts-3/#propdef-font-variant",
|
---|
| 313 | "stage": 3,
|
---|
| 314 | "caniuse": "font-variant-alternates",
|
---|
| 315 | "docs": {
|
---|
| 316 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant"
|
---|
| 317 | },
|
---|
| 318 | "example": "h2 {\n font-variant: small-caps;\n}",
|
---|
| 319 | "polyfills": [
|
---|
| 320 | {
|
---|
| 321 | "type": "PostCSS Plugin",
|
---|
| 322 | "link": "https://github.com/postcss/postcss-font-variant"
|
---|
| 323 | }
|
---|
| 324 | ]
|
---|
| 325 | },
|
---|
| 326 | {
|
---|
| 327 | "id": "gap-properties",
|
---|
| 328 | "title": "Gap Properties",
|
---|
| 329 | "description": "Properties for defining gutters within a layout",
|
---|
| 330 | "specification": "https://www.w3.org/TR/css-grid-1/#gutters",
|
---|
| 331 | "stage": 3,
|
---|
| 332 | "caniuse-compat": {
|
---|
| 333 | "chrome": {
|
---|
| 334 | "66": "y"
|
---|
| 335 | },
|
---|
| 336 | "edge": {
|
---|
| 337 | "16": "y"
|
---|
| 338 | },
|
---|
| 339 | "firefox": {
|
---|
| 340 | "61": "y"
|
---|
| 341 | },
|
---|
| 342 | "safari": {
|
---|
| 343 | "11.2": "y",
|
---|
| 344 | "TP": "y"
|
---|
| 345 | }
|
---|
| 346 | },
|
---|
| 347 | "docs": {
|
---|
| 348 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/gap"
|
---|
| 349 | },
|
---|
| 350 | "example": ".grid-1 {\n gap: 20px;\n}\n\n.grid-2 {\n column-gap: 40px;\n row-gap: 20px;\n}",
|
---|
| 351 | "polyfills": [
|
---|
| 352 | {
|
---|
| 353 | "type": "PostCSS Plugin",
|
---|
| 354 | "link": "https://github.com/jonathantneal/postcss-gap-properties"
|
---|
| 355 | }
|
---|
| 356 | ]
|
---|
| 357 | },
|
---|
| 358 | {
|
---|
| 359 | "id": "gray-function",
|
---|
| 360 | "title": "`gray()` Function",
|
---|
| 361 | "description": "A function for specifying fully desaturated colors",
|
---|
| 362 | "specification": "https://www.w3.org/TR/css-color-4/#funcdef-gray",
|
---|
| 363 | "stage": 2,
|
---|
| 364 | "example": "p {\n color: gray(50);\n}",
|
---|
| 365 | "polyfills": [
|
---|
| 366 | {
|
---|
| 367 | "type": "PostCSS Plugin",
|
---|
| 368 | "link": "https://github.com/postcss/postcss-color-gray"
|
---|
| 369 | }
|
---|
| 370 | ]
|
---|
| 371 | },
|
---|
| 372 | {
|
---|
| 373 | "id": "grid-layout",
|
---|
| 374 | "title": "Grid Layout",
|
---|
| 375 | "description": "A syntax for using a grid concept to lay out content",
|
---|
| 376 | "specification": "https://www.w3.org/TR/css-grid-1/",
|
---|
| 377 | "stage": 3,
|
---|
| 378 | "caniuse": "css-grid",
|
---|
| 379 | "docs": {
|
---|
| 380 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/grid"
|
---|
| 381 | },
|
---|
| 382 | "example": "section {\n display: grid;\n grid-template-columns: 100px 100px 100px;\n grid-gap: 10px;\n}",
|
---|
| 383 | "polyfills": [
|
---|
| 384 | {
|
---|
| 385 | "type": "PostCSS Plugin",
|
---|
| 386 | "link": "https://github.com/postcss/autoprefixer"
|
---|
| 387 | }
|
---|
| 388 | ]
|
---|
| 389 | },
|
---|
| 390 | {
|
---|
| 391 | "id": "has-pseudo-class",
|
---|
| 392 | "title": "`:has()` Relational Pseudo-Class",
|
---|
| 393 | "description": "A pseudo-class for matching ancestor and sibling elements",
|
---|
| 394 | "specification": "https://www.w3.org/TR/selectors-4/#has-pseudo",
|
---|
| 395 | "stage": 2,
|
---|
| 396 | "caniuse": "css-has",
|
---|
| 397 | "docs": {
|
---|
| 398 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:has"
|
---|
| 399 | },
|
---|
| 400 | "example": "a:has(> img) {\n display: block;\n}",
|
---|
| 401 | "polyfills": [
|
---|
| 402 | {
|
---|
| 403 | "type": "JavaScript Library",
|
---|
| 404 | "link": "https://github.com/csstools/css-has-pseudo"
|
---|
| 405 | },
|
---|
| 406 | {
|
---|
| 407 | "type": "PostCSS Plugin",
|
---|
| 408 | "link": "https://github.com/csstools/css-has-pseudo"
|
---|
| 409 | }
|
---|
| 410 | ]
|
---|
| 411 | },
|
---|
| 412 | {
|
---|
| 413 | "id": "hexadecimal-alpha-notation",
|
---|
| 414 | "title": "Hexadecimal Alpha Notation",
|
---|
| 415 | "description": "A 4 & 8 character hex color notation for specifying the opacity level",
|
---|
| 416 | "specification": "https://www.w3.org/TR/css-color-4/#hex-notation",
|
---|
| 417 | "stage": 2,
|
---|
| 418 | "caniuse": "css-rrggbbaa",
|
---|
| 419 | "docs": {
|
---|
| 420 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Syntax_2"
|
---|
| 421 | },
|
---|
| 422 | "example": "section {\n background-color: #f3f3f3f3;\n color: #0003;\n}",
|
---|
| 423 | "polyfills": [
|
---|
| 424 | {
|
---|
| 425 | "type": "PostCSS Plugin",
|
---|
| 426 | "link": "https://github.com/postcss/postcss-color-hex-alpha"
|
---|
| 427 | }
|
---|
| 428 | ]
|
---|
| 429 | },
|
---|
| 430 | {
|
---|
| 431 | "id": "hwb-function",
|
---|
| 432 | "title": "`hwb()` Function",
|
---|
| 433 | "description": "A function for specifying colors by hue and then a degree of whiteness and blackness to mix into it",
|
---|
| 434 | "specification": "https://www.w3.org/TR/css-color-4/#funcdef-hwb",
|
---|
| 435 | "stage": 2,
|
---|
| 436 | "example": "p {\n color: hwb(120 44% 50%);\n}",
|
---|
| 437 | "polyfills": [
|
---|
| 438 | {
|
---|
| 439 | "type": "PostCSS Plugin",
|
---|
| 440 | "link": "https://github.com/postcss/postcss-color-hwb"
|
---|
| 441 | }
|
---|
| 442 | ]
|
---|
| 443 | },
|
---|
| 444 | {
|
---|
| 445 | "id": "image-set-function",
|
---|
| 446 | "title": "`image-set()` Function",
|
---|
| 447 | "description": "A function for specifying image sources based on the user’s resolution",
|
---|
| 448 | "specification": "https://www.w3.org/TR/css-images-4/#image-set-notation",
|
---|
| 449 | "stage": 2,
|
---|
| 450 | "caniuse": "css-image-set",
|
---|
| 451 | "example": "p {\n background-image: image-set(\n \"foo.png\" 1x,\n \"foo-2x.png\" 2x,\n \"foo-print.png\" 600dpi\n );\n}",
|
---|
| 452 | "polyfills": [
|
---|
| 453 | {
|
---|
| 454 | "type": "PostCSS Plugin",
|
---|
| 455 | "link": "https://github.com/jonathantneal/postcss-image-set-function"
|
---|
| 456 | }
|
---|
| 457 | ]
|
---|
| 458 | },
|
---|
| 459 | {
|
---|
| 460 | "id": "in-out-of-range-pseudo-class",
|
---|
| 461 | "title": "`:in-range` and `:out-of-range` Pseudo-Classes",
|
---|
| 462 | "description": "A pseudo-class for matching elements that have range limitations",
|
---|
| 463 | "specification": "https://www.w3.org/TR/selectors-4/#range-pseudos",
|
---|
| 464 | "stage": 2,
|
---|
| 465 | "caniuse": "css-in-out-of-range",
|
---|
| 466 | "docs": {
|
---|
| 467 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:in-range"
|
---|
| 468 | },
|
---|
| 469 | "example": "input:in-range {\n background-color: rgba(0, 255, 0, 0.25);\n}\ninput:out-of-range {\n background-color: rgba(255, 0, 0, 0.25);\n border: 2px solid red;\n}"
|
---|
| 470 | },
|
---|
| 471 | {
|
---|
| 472 | "id": "lab-function",
|
---|
| 473 | "title": "`lab()` Function",
|
---|
| 474 | "description": "A function for specifying colors expressed in the CIE Lab color space",
|
---|
| 475 | "specification": "https://www.w3.org/TR/css-color-4/#funcdef-lab",
|
---|
| 476 | "stage": 2,
|
---|
| 477 | "example": "body {\n color: lab(240 50 20);\n}",
|
---|
| 478 | "polyfills": [
|
---|
| 479 | {
|
---|
| 480 | "type": "PostCSS Plugin",
|
---|
| 481 | "link": "https://github.com/jonathantneal/postcss-lab-function"
|
---|
| 482 | }
|
---|
| 483 | ]
|
---|
| 484 | },
|
---|
| 485 | {
|
---|
| 486 | "id": "lch-function",
|
---|
| 487 | "title": "`lch()` Function",
|
---|
| 488 | "description": "A function for specifying colors expressed in the CIE Lab color space with chroma and hue",
|
---|
| 489 | "specification": "https://www.w3.org/TR/css-color-4/#funcdef-lch",
|
---|
| 490 | "stage": 2,
|
---|
| 491 | "example": "body {\n color: lch(53 105 40);\n}",
|
---|
| 492 | "polyfills": [
|
---|
| 493 | {
|
---|
| 494 | "type": "PostCSS Plugin",
|
---|
| 495 | "link": "https://github.com/jonathantneal/postcss-lab-function"
|
---|
| 496 | }
|
---|
| 497 | ]
|
---|
| 498 | },
|
---|
| 499 | {
|
---|
| 500 | "id": "logical-properties-and-values",
|
---|
| 501 | "title": "Logical Properties and Values",
|
---|
| 502 | "description": "Flow-relative (left-to-right or right-to-left) properties and values",
|
---|
| 503 | "specification": "https://www.w3.org/TR/css-logical-1/",
|
---|
| 504 | "stage": 2,
|
---|
| 505 | "caniuse": "css-logical-props",
|
---|
| 506 | "docs": {
|
---|
| 507 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties"
|
---|
| 508 | },
|
---|
| 509 | "example": "span:first-child {\n float: inline-start;\n margin-inline-start: 10px;\n}",
|
---|
| 510 | "polyfills": [
|
---|
| 511 | {
|
---|
| 512 | "type": "PostCSS Plugin",
|
---|
| 513 | "link": "https://github.com/jonathantneal/postcss-logical-properties"
|
---|
| 514 | }
|
---|
| 515 | ]
|
---|
| 516 | },
|
---|
| 517 | {
|
---|
| 518 | "id": "matches-pseudo-class",
|
---|
| 519 | "title": "`:matches()` Matches-Any Pseudo-Class",
|
---|
| 520 | "description": "A pseudo-class for matching elements in a selector list",
|
---|
| 521 | "specification": "https://www.w3.org/TR/selectors-4/#matches-pseudo",
|
---|
| 522 | "stage": 2,
|
---|
| 523 | "caniuse": "css-matches-pseudo",
|
---|
| 524 | "docs": {
|
---|
| 525 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:matches"
|
---|
| 526 | },
|
---|
| 527 | "example": "p:matches(:first-child, .special) {\n margin-top: 1em;\n}",
|
---|
| 528 | "polyfills": [
|
---|
| 529 | {
|
---|
| 530 | "type": "PostCSS Plugin",
|
---|
| 531 | "link": "https://github.com/postcss/postcss-selector-matches"
|
---|
| 532 | }
|
---|
| 533 | ]
|
---|
| 534 | },
|
---|
| 535 | {
|
---|
| 536 | "id": "media-query-ranges",
|
---|
| 537 | "title": "Media Query Ranges",
|
---|
| 538 | "description": "A syntax for defining media query ranges using ordinary comparison operators",
|
---|
| 539 | "specification": "https://www.w3.org/TR/mediaqueries-4/#range-context",
|
---|
| 540 | "stage": 3,
|
---|
| 541 | "docs": {
|
---|
| 542 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries#Syntax_improvements_in_Level_4"
|
---|
| 543 | },
|
---|
| 544 | "example": "@media (width < 480px) {}\n\n@media (480px <= width < 768px) {}\n\n@media (width >= 768px) {}",
|
---|
| 545 | "polyfills": [
|
---|
| 546 | {
|
---|
| 547 | "type": "PostCSS Plugin",
|
---|
| 548 | "link": "https://github.com/postcss/postcss-media-minmax"
|
---|
| 549 | }
|
---|
| 550 | ]
|
---|
| 551 | },
|
---|
| 552 | {
|
---|
| 553 | "id": "nesting-rules",
|
---|
| 554 | "title": "Nesting Rules",
|
---|
| 555 | "description": "A syntax for nesting relative rules within rules",
|
---|
| 556 | "specification": "https://drafts.csswg.org/css-nesting-1/",
|
---|
| 557 | "stage": 1,
|
---|
| 558 | "example": "article {\n & p {\n color: #333;\n }\n}",
|
---|
| 559 | "polyfills": [
|
---|
| 560 | {
|
---|
| 561 | "type": "PostCSS Plugin",
|
---|
| 562 | "link": "https://github.com/jonathantneal/postcss-nesting"
|
---|
| 563 | }
|
---|
| 564 | ]
|
---|
| 565 | },
|
---|
| 566 | {
|
---|
| 567 | "id": "not-pseudo-class",
|
---|
| 568 | "title": "`:not()` Negation List Pseudo-Class",
|
---|
| 569 | "description": "A pseudo-class for ignoring elements in a selector list",
|
---|
| 570 | "specification": "https://www.w3.org/TR/selectors-4/#negation-pseudo",
|
---|
| 571 | "stage": 2,
|
---|
| 572 | "caniuse": "css-not-sel-list",
|
---|
| 573 | "docs": {
|
---|
| 574 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:not"
|
---|
| 575 | },
|
---|
| 576 | "example": "p:not(:first-child, .special) {\n margin-top: 1em;\n}",
|
---|
| 577 | "polyfills": [
|
---|
| 578 | {
|
---|
| 579 | "type": "PostCSS Plugin",
|
---|
| 580 | "link": "https://github.com/postcss/postcss-selector-not"
|
---|
| 581 | }
|
---|
| 582 | ]
|
---|
| 583 | },
|
---|
| 584 | {
|
---|
| 585 | "id": "overflow-property",
|
---|
| 586 | "title": "`overflow` Shorthand Property",
|
---|
| 587 | "description": "A property for defining `overflow-x` and `overflow-y`",
|
---|
| 588 | "specification": "https://www.w3.org/TR/css-overflow-3/#propdef-overflow",
|
---|
| 589 | "stage": 2,
|
---|
| 590 | "caniuse": "css-overflow",
|
---|
| 591 | "caniuse-compat": {
|
---|
| 592 | "and_chr": {
|
---|
| 593 | "68": "y"
|
---|
| 594 | },
|
---|
| 595 | "and_ff": {
|
---|
| 596 | "61": "y"
|
---|
| 597 | },
|
---|
| 598 | "chrome": {
|
---|
| 599 | "68": "y"
|
---|
| 600 | },
|
---|
| 601 | "firefox": {
|
---|
| 602 | "61": "y"
|
---|
| 603 | }
|
---|
| 604 | },
|
---|
| 605 | "docs": {
|
---|
| 606 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow"
|
---|
| 607 | },
|
---|
| 608 | "example": "html {\n overflow: hidden auto;\n}",
|
---|
| 609 | "polyfills": [
|
---|
| 610 | {
|
---|
| 611 | "type": "PostCSS Plugin",
|
---|
| 612 | "link": "https://github.com/jonathantneal/postcss-overflow-shorthand"
|
---|
| 613 | }
|
---|
| 614 | ]
|
---|
| 615 | },
|
---|
| 616 | {
|
---|
| 617 | "id": "overflow-wrap-property",
|
---|
| 618 | "title": "`overflow-wrap` Property",
|
---|
| 619 | "description": "A property for defining whether to insert line breaks within words to prevent overflowing",
|
---|
| 620 | "specification": "https://www.w3.org/TR/css-text-3/#overflow-wrap-property",
|
---|
| 621 | "stage": 2,
|
---|
| 622 | "caniuse": "wordwrap",
|
---|
| 623 | "docs": {
|
---|
| 624 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap"
|
---|
| 625 | },
|
---|
| 626 | "example": "p {\n overflow-wrap: break-word;\n}",
|
---|
| 627 | "polyfills": [
|
---|
| 628 | {
|
---|
| 629 | "type": "PostCSS Plugin",
|
---|
| 630 | "link": "https://github.com/mattdimu/postcss-replace-overflow-wrap"
|
---|
| 631 | }
|
---|
| 632 | ]
|
---|
| 633 | },
|
---|
| 634 | {
|
---|
| 635 | "id": "overscroll-behavior-property",
|
---|
| 636 | "title": "`overscroll-behavior` Property",
|
---|
| 637 | "description": "Properties for controlling when the scroll position of a scroll container reaches the edge of a scrollport",
|
---|
| 638 | "specification": "https://drafts.csswg.org/css-overscroll-behavior",
|
---|
| 639 | "stage": 1,
|
---|
| 640 | "caniuse": "css-overscroll-behavior",
|
---|
| 641 | "docs": {
|
---|
| 642 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior"
|
---|
| 643 | },
|
---|
| 644 | "example": ".messages {\n height: 220px;\n overflow: auto;\n overscroll-behavior-y: contain;\n}\n\nbody {\n margin: 0;\n overscroll-behavior: none;\n}"
|
---|
| 645 | },
|
---|
| 646 | {
|
---|
| 647 | "id": "place-properties",
|
---|
| 648 | "title": "Place Properties",
|
---|
| 649 | "description": "Properties for defining alignment within a layout",
|
---|
| 650 | "specification": "https://www.w3.org/TR/css-align-3/#place-items-property",
|
---|
| 651 | "stage": 2,
|
---|
| 652 | "caniuse-compat": {
|
---|
| 653 | "chrome": {
|
---|
| 654 | "59": "y"
|
---|
| 655 | },
|
---|
| 656 | "firefox": {
|
---|
| 657 | "45": "y"
|
---|
| 658 | }
|
---|
| 659 | },
|
---|
| 660 | "docs": {
|
---|
| 661 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/place-content"
|
---|
| 662 | },
|
---|
| 663 | "example": ".example {\n place-content: flex-end;\n place-items: center / space-between;\n place-self: flex-start / center;\n}",
|
---|
| 664 | "polyfills": [
|
---|
| 665 | {
|
---|
| 666 | "type": "PostCSS Plugin",
|
---|
| 667 | "link": "https://github.com/jonathantneal/postcss-place"
|
---|
| 668 | }
|
---|
| 669 | ]
|
---|
| 670 | },
|
---|
| 671 | {
|
---|
| 672 | "id": "prefers-color-scheme-query",
|
---|
| 673 | "title": "`prefers-color-scheme` Media Query",
|
---|
| 674 | "description": "A media query to detect if the user has requested the system use a light or dark color theme",
|
---|
| 675 | "specification": "https://drafts.csswg.org/mediaqueries-5/#prefers-color-scheme",
|
---|
| 676 | "stage": 1,
|
---|
| 677 | "caniuse": "prefers-color-scheme",
|
---|
| 678 | "caniuse-compat": {
|
---|
| 679 | "ios_saf": {
|
---|
| 680 | "12.1": "y"
|
---|
| 681 | },
|
---|
| 682 | "safari": {
|
---|
| 683 | "12.1": "y"
|
---|
| 684 | }
|
---|
| 685 | },
|
---|
| 686 | "example": "body {\n background-color: white;\n color: black;\n}\n\n@media (prefers-color-scheme: dark) {\n body {\n background-color: black;\n color: white;\n }\n}",
|
---|
| 687 | "polyfills": [
|
---|
| 688 | {
|
---|
| 689 | "type": "JavaScript Library",
|
---|
| 690 | "link": "https://github.com/csstools/css-prefers-color-scheme"
|
---|
| 691 | },
|
---|
| 692 | {
|
---|
| 693 | "type": "PostCSS Plugin",
|
---|
| 694 | "link": "https://github.com/csstools/css-prefers-color-scheme"
|
---|
| 695 | }
|
---|
| 696 | ]
|
---|
| 697 | },
|
---|
| 698 | {
|
---|
| 699 | "id": "prefers-reduced-motion-query",
|
---|
| 700 | "title": "`prefers-reduced-motion` Media Query",
|
---|
| 701 | "description": "A media query to detect if the user has requested less animation and general motion on the page",
|
---|
| 702 | "specification": "https://drafts.csswg.org/mediaqueries-5/#prefers-reduced-motion",
|
---|
| 703 | "stage": 1,
|
---|
| 704 | "caniuse": "prefers-reduced-motion",
|
---|
| 705 | "docs": {
|
---|
| 706 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion"
|
---|
| 707 | },
|
---|
| 708 | "example": ".animation {\n animation: vibrate 0.3s linear infinite both; \n}\n\n@media (prefers-reduced-motion: reduce) {\n .animation {\n animation: none;\n }\n}"
|
---|
| 709 | },
|
---|
| 710 | {
|
---|
| 711 | "id": "read-only-write-pseudo-class",
|
---|
| 712 | "title": "`:read-only` and `:read-write` selectors",
|
---|
| 713 | "description": "Pseudo-classes to match elements which are considered user-alterable",
|
---|
| 714 | "specification": "https://www.w3.org/TR/selectors-4/#rw-pseudos",
|
---|
| 715 | "stage": 2,
|
---|
| 716 | "caniuse": "css-read-only-write",
|
---|
| 717 | "docs": {
|
---|
| 718 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:read-only"
|
---|
| 719 | },
|
---|
| 720 | "example": "input:read-only {\n background-color: #ccc;\n}"
|
---|
| 721 | },
|
---|
| 722 | {
|
---|
| 723 | "id": "rebeccapurple-color",
|
---|
| 724 | "title": "`rebeccapurple` Color",
|
---|
| 725 | "description": "A particularly lovely shade of purple in memory of Rebecca Alison Meyer",
|
---|
| 726 | "specification": "https://www.w3.org/TR/css-color-4/#valdef-color-rebeccapurple",
|
---|
| 727 | "stage": 2,
|
---|
| 728 | "caniuse": "css-rebeccapurple",
|
---|
| 729 | "docs": {
|
---|
| 730 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/color_value"
|
---|
| 731 | },
|
---|
| 732 | "example": "html {\n color: rebeccapurple;\n}",
|
---|
| 733 | "polyfills": [
|
---|
| 734 | {
|
---|
| 735 | "type": "PostCSS Plugin",
|
---|
| 736 | "link": "https://github.com/postcss/postcss-color-rebeccapurple"
|
---|
| 737 | }
|
---|
| 738 | ]
|
---|
| 739 | },
|
---|
| 740 | {
|
---|
| 741 | "id": "system-ui-font-family",
|
---|
| 742 | "title": "`system-ui` Font Family",
|
---|
| 743 | "description": "A generic font used to match the user’s interface",
|
---|
| 744 | "specification": "https://www.w3.org/TR/css-fonts-4/#system-ui-def",
|
---|
| 745 | "stage": 2,
|
---|
| 746 | "caniuse": "font-family-system-ui",
|
---|
| 747 | "docs": {
|
---|
| 748 | "mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#Syntax"
|
---|
| 749 | },
|
---|
| 750 | "example": "body {\n font-family: system-ui;\n}",
|
---|
| 751 | "polyfills": [
|
---|
| 752 | {
|
---|
| 753 | "type": "PostCSS Plugin",
|
---|
| 754 | "link": "https://github.com/JLHwung/postcss-font-family-system-ui"
|
---|
| 755 | }
|
---|
| 756 | ]
|
---|
| 757 | },
|
---|
| 758 | {
|
---|
| 759 | "id": "when-else-rules",
|
---|
| 760 | "title": "When/Else Rules",
|
---|
| 761 | "description": "At-rules for specifying media queries and support queries in a single grammar",
|
---|
| 762 | "specification": "https://tabatkins.github.io/specs/css-when-else/",
|
---|
| 763 | "stage": 0,
|
---|
| 764 | "example": "@when media(width >= 640px) and (supports(display: flex) or supports(display: grid)) {\n /* A */\n} @else media(pointer: coarse) {\n /* B */\n} @else {\n /* C */\n}"
|
---|
| 765 | },
|
---|
| 766 | {
|
---|
| 767 | "id": "where-pseudo-class",
|
---|
| 768 | "title": "`:where()` Zero-Specificity Pseudo-Class",
|
---|
| 769 | "description": "A pseudo-class for matching elements in a selector list without contributing specificity",
|
---|
| 770 | "specification": "https://drafts.csswg.org/selectors-4/#where-pseudo",
|
---|
| 771 | "stage": 1,
|
---|
| 772 | "example": "a:where(:not(:hover)) {\n text-decoration: none;\n}"
|
---|
| 773 | }
|
---|
| 774 | ]
|
---|