cssdb.json 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774
  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. ]