Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

567 строки
19 KiB

  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. "example": "a {\n all: initial;\n}",
  10. "polyfills": [
  11. {
  12. "type": "PostCSS Plugin",
  13. "link": "https://github.com/maximkoretskiy/postcss-initial"
  14. }
  15. ]
  16. },
  17. {
  18. "id": "any-link-pseudo-class",
  19. "title": "`:any-link` Hyperlink Pseudo-Class",
  20. "description": "A pseudo-class for matching anchor elements independent of whether they have been visited",
  21. "specification": "https://www.w3.org/TR/selectors-4/#any-link-pseudo",
  22. "stage": 2,
  23. "caniuse": "css-any-link",
  24. "example": "nav :any-link > span {\n background-color: yellow;\n}",
  25. "polyfills": [
  26. {
  27. "type": "PostCSS Plugin",
  28. "link": "https://github.com/jonathantneal/postcss-pseudo-class-any-link"
  29. }
  30. ]
  31. },
  32. {
  33. "id": "break-properties",
  34. "title": "Break Properties",
  35. "description": "Properties for defining the break behavior between and within boxes",
  36. "specification": "https://www.w3.org/TR/css-break-3/#breaking-controls",
  37. "stage": 3,
  38. "caniuse": "multicolumn",
  39. "example": "a {\n break-inside: avoid;\n break-before: avoid-column;\n break-after: always;\n}",
  40. "polyfills": [
  41. {
  42. "type": "PostCSS Plugin",
  43. "link": "https://github.com/shrpne/postcss-page-break"
  44. }
  45. ]
  46. },
  47. {
  48. "id": "case-insensitive-attributes",
  49. "title": "Case-Insensitive Attributes",
  50. "description": "An attribute selector matching attribute values case-insensitively",
  51. "specification": "https://www.w3.org/TR/selectors-4/#attribute-case",
  52. "stage": 2,
  53. "caniuse": "css-case-insensitive",
  54. "example": "[frame=hsides i] {\n border-style: solid none;\n}",
  55. "polyfills": [
  56. {
  57. "type": "PostCSS Plugin",
  58. "link": "https://github.com/Semigradsky/postcss-attribute-case-insensitive"
  59. }
  60. ]
  61. },
  62. {
  63. "id": "color-functional-notation",
  64. "title": "Color Functional Notation",
  65. "description": "A space and slash separated notation for specifying colors",
  66. "specification": "https://drafts.csswg.org/css-color/#ref-for-funcdef-rgb%E2%91%A1%E2%91%A0",
  67. "stage": 1,
  68. "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}",
  69. "polyfills": [
  70. {
  71. "type": "PostCSS Plugin",
  72. "link": "https://github.com/jonathantneal/postcss-color-functional-notation"
  73. }
  74. ]
  75. },
  76. {
  77. "id": "color-mod-function",
  78. "title": "`color-mod()` Function",
  79. "description": "A function for modifying colors",
  80. "specification": "https://www.w3.org/TR/css-color-4/#funcdef-color-mod",
  81. "stage": -1,
  82. "example": "p {\n color: color-mod(black alpha(50%));\n}",
  83. "polyfills": [
  84. {
  85. "type": "PostCSS Plugin",
  86. "link": "https://github.com/jonathantneal/postcss-color-mod-function"
  87. }
  88. ]
  89. },
  90. {
  91. "id": "custom-media-queries",
  92. "title": "Custom Media Queries",
  93. "description": "An at-rule for defining aliases that represent media queries",
  94. "specification": "https://drafts.csswg.org/mediaqueries-5/#at-ruledef-custom-media",
  95. "stage": 1,
  96. "example": "@custom-media --narrow-window (max-width: 30em);\n\n@media (--narrow-window) {}",
  97. "polyfills": [
  98. {
  99. "type": "PostCSS Plugin",
  100. "link": "https://github.com/postcss/postcss-custom-media"
  101. }
  102. ]
  103. },
  104. {
  105. "id": "custom-properties",
  106. "title": "Custom Properties",
  107. "description": "A syntax for defining custom values accepted by all CSS properties",
  108. "specification": "https://www.w3.org/TR/css-variables-1/",
  109. "stage": 3,
  110. "caniuse": "css-variables",
  111. "example": "img {\n --some-length: 32px;\n\n height: var(--some-length);\n width: var(--some-length);\n}",
  112. "polyfills": [
  113. {
  114. "type": "PostCSS Plugin",
  115. "link": "https://github.com/postcss/postcss-custom-properties"
  116. }
  117. ]
  118. },
  119. {
  120. "id": "custom-property-sets",
  121. "title": "Custom Property Sets",
  122. "description": "A syntax for storing properties in named variables, referenceable in other style rules",
  123. "specification": "https://tabatkins.github.io/specs/css-apply-rule/",
  124. "stage": -1,
  125. "caniuse": "css-apply-rule",
  126. "example": "img {\n --some-length-styles: {\n height: 32px;\n width: 32px;\n };\n\n @apply --some-length-styles;\n}",
  127. "polyfills": [
  128. {
  129. "type": "PostCSS Plugin",
  130. "link": "https://github.com/pascalduez/postcss-apply"
  131. }
  132. ]
  133. },
  134. {
  135. "id": "custom-selectors",
  136. "title": "Custom Selectors",
  137. "description": "An at-rule for defining aliases that represent selectors",
  138. "specification": "https://drafts.csswg.org/css-extensions/#custom-selectors",
  139. "stage": 1,
  140. "example": "@custom-selector :--heading h1, h2, h3, h4, h5, h6;\n\narticle :--heading + p {}",
  141. "polyfills": [
  142. {
  143. "type": "PostCSS Plugin",
  144. "link": "https://github.com/postcss/postcss-custom-selectors"
  145. }
  146. ]
  147. },
  148. {
  149. "id": "dir-pseudo-class",
  150. "title": "`:dir` Directionality Pseudo-Class",
  151. "description": "A pseudo-class for matching elements based on their directionality",
  152. "specification": "https://www.w3.org/TR/selectors-4/#dir-pseudo",
  153. "stage": 2,
  154. "caniuse": "css-dir-pseudo",
  155. "example": "blockquote:dir(rtl) {\n margin-right: 10px;\n}\n\nblockquote:dir(ltr) {\n margin-left: 10px;\n}",
  156. "polyfills": [
  157. {
  158. "type": "PostCSS Plugin",
  159. "link": "https://github.com/jonathantneal/postcss-dir-pseudo-class"
  160. }
  161. ]
  162. },
  163. {
  164. "id": "environment-variables",
  165. "title": "Custom Environment Variables",
  166. "description": "A syntax for using custom values accepted by CSS globally",
  167. "specification": "https://drafts.csswg.org/css-env-1/",
  168. "stage": 0,
  169. "caniuse-compat": {
  170. "and_chr": {
  171. "69": "y"
  172. },
  173. "chrome": {
  174. "69": "y"
  175. },
  176. "ios_saf": {
  177. "11.2": "y"
  178. },
  179. "safari": {
  180. "11.2": "y"
  181. }
  182. },
  183. "example": "@media (max-width: env(--brand-small)) {\n body {\n padding: env(--brand-spacing);\n }\n}",
  184. "polyfills": [
  185. {
  186. "type": "PostCSS Plugin",
  187. "link": "https://github.com/jonathantneal/postcss-env-function"
  188. }
  189. ]
  190. },
  191. {
  192. "id": "focus-visible-pseudo-class",
  193. "title": "`:focus-visible` Focus-Indicated Pseudo-Class",
  194. "description": "A pseudo-class for matching focused elements that indicate that focus to a user",
  195. "specification": "https://www.w3.org/TR/selectors-4/#focus-visible-pseudo",
  196. "stage": 2,
  197. "caniuse": "css-focus-visible",
  198. "example": ":focus:not(:focus-visible) {\n outline: 0;\n}",
  199. "polyfills": [
  200. {
  201. "type": "JavaScript Library",
  202. "link": "https://github.com/WICG/focus-visible"
  203. },
  204. {
  205. "type": "PostCSS Plugin",
  206. "link": "https://github.com/jonathantneal/postcss-focus-visible"
  207. }
  208. ]
  209. },
  210. {
  211. "id": "focus-within-pseudo-class",
  212. "title": "`:focus-within` Focus Container Pseudo-Class",
  213. "description": "A pseudo-class for matching elements that are either focused or that have focused descendants",
  214. "specification": "https://www.w3.org/TR/selectors-4/#focus-within-pseudo",
  215. "stage": 2,
  216. "caniuse": "css-focus-within",
  217. "example": "form:focus-within {\n background: rgba(0, 0, 0, 0.3);\n}",
  218. "polyfills": [
  219. {
  220. "type": "JavaScript Library",
  221. "link": "https://github.com/jonathantneal/focus-within"
  222. },
  223. {
  224. "type": "PostCSS Plugin",
  225. "link": "https://github.com/jonathantneal/postcss-focus-within"
  226. }
  227. ]
  228. },
  229. {
  230. "id": "font-variant-property",
  231. "title": "`font-variant` Property",
  232. "description": "A property for defining the usage of alternate glyphs in a font",
  233. "specification": "https://www.w3.org/TR/css-fonts-3/#propdef-font-variant",
  234. "stage": 3,
  235. "caniuse": "font-variant-alternates",
  236. "example": "h2 {\n font-variant: small-caps;\n}",
  237. "polyfills": [
  238. {
  239. "type": "PostCSS Plugin",
  240. "link": "https://github.com/postcss/postcss-font-variant"
  241. }
  242. ]
  243. },
  244. {
  245. "id": "gap-properties",
  246. "title": "Gap Properties",
  247. "description": "Properties for defining gutters within a layout",
  248. "specification": "https://www.w3.org/TR/css-grid-1/#gutters",
  249. "stage": 3,
  250. "caniuse-compat": {
  251. "chrome": {
  252. "66": "y"
  253. },
  254. "edge": {
  255. "16": "y"
  256. },
  257. "firefox": {
  258. "61": "y"
  259. },
  260. "safari": {
  261. "11.2": "y",
  262. "TP": "y"
  263. }
  264. },
  265. "example": ".grid-1 {\n gap: 20px;\n}\n\n.grid-2 {\n column-gap: 40px;\n row-gap: 20px;\n}",
  266. "polyfills": [
  267. {
  268. "type": "PostCSS Plugin",
  269. "link": "https://github.com/jonathantneal/postcss-gap-properties"
  270. }
  271. ]
  272. },
  273. {
  274. "id": "gray-function",
  275. "title": "`gray()` Function",
  276. "description": "A function for specifying fully desaturated colors",
  277. "specification": "https://www.w3.org/TR/css-color-4/#funcdef-gray",
  278. "stage": 2,
  279. "example": "p {\n color: gray(50);\n}",
  280. "polyfills": [
  281. {
  282. "type": "PostCSS Plugin",
  283. "link": "https://github.com/postcss/postcss-color-gray"
  284. }
  285. ]
  286. },
  287. {
  288. "id": "grid-layout",
  289. "title": "Grid Layout",
  290. "description": "A syntax for using a grid concept to lay out content",
  291. "specification": "https://www.w3.org/TR/css-grid-1/",
  292. "stage": 3,
  293. "caniuse": "css-grid",
  294. "example": "section {\n display: grid;\n grid-template-columns: 100px 100px 100px;\n grid-gap: 10px;\n}",
  295. "polyfills": [
  296. {
  297. "type": "PostCSS Plugin",
  298. "link": "https://github.com/postcss/autoprefixer"
  299. }
  300. ]
  301. },
  302. {
  303. "id": "has-pseudo-class",
  304. "title": "`:has()` Relational Pseudo-Class",
  305. "description": "A pseudo-class for matching ancestor and sibling elements",
  306. "specification": "https://www.w3.org/TR/selectors-4/#has-pseudo",
  307. "stage": 2,
  308. "example": "a:has(> img) {\n display: block;\n}"
  309. },
  310. {
  311. "id": "hexadecimal-alpha-notation",
  312. "title": "Hexadecimal Alpha Notation",
  313. "description": "A 4 & 8 character hex color notation for specifying the opacity level",
  314. "specification": "https://www.w3.org/TR/css-color-4/#hex-notation",
  315. "stage": 2,
  316. "caniuse": "css-rrggbbaa",
  317. "example": "section {\n background-color: #f3f3f3f3;\n color: #0003;\n}",
  318. "polyfills": [
  319. {
  320. "type": "PostCSS Plugin",
  321. "link": "https://github.com/postcss/postcss-color-hex-alpha"
  322. }
  323. ]
  324. },
  325. {
  326. "id": "hwb-function",
  327. "title": "`hwb()` Function",
  328. "description": "A function for specifying colors by hue and then a degree of whiteness and blackness to mix into it",
  329. "specification": "https://www.w3.org/TR/css-color-4/#funcdef-hwb",
  330. "stage": 2,
  331. "example": "p {\n color: hwb(120 44% 50%);\n}",
  332. "polyfills": [
  333. {
  334. "type": "PostCSS Plugin",
  335. "link": "https://github.com/postcss/postcss-color-hwb"
  336. }
  337. ]
  338. },
  339. {
  340. "id": "image-set-function",
  341. "title": "`image-set()` Function",
  342. "description": "A function for specifying image sources based on the user’s resolution",
  343. "specification": "https://www.w3.org/TR/css-images-4/#image-set-notation",
  344. "stage": 2,
  345. "caniuse": "css-image-set",
  346. "example": "p {\n background-image: image-set(\n \"foo.png\" 1x,\n \"foo-2x.png\" 2x,\n \"foo-print.png\" 600dpi\n );\n}",
  347. "polyfills": [
  348. {
  349. "type": "PostCSS Plugin",
  350. "link": "https://github.com/jonathantneal/postcss-image-set-function"
  351. }
  352. ]
  353. },
  354. {
  355. "id": "lab-function",
  356. "title": "`lab()` Function",
  357. "description": "A function for specifying colors expressed in the CIE Lab color space",
  358. "specification": "https://www.w3.org/TR/css-color-4/#funcdef-lab",
  359. "stage": 2,
  360. "example": "body {\n color: lab(240 50 20);\n}",
  361. "polyfills": [
  362. {
  363. "type": "PostCSS Plugin",
  364. "link": "https://github.com/jonathantneal/postcss-lab-function"
  365. }
  366. ]
  367. },
  368. {
  369. "id": "lch-function",
  370. "title": "`lch()` Function",
  371. "description": "A function for specifying colors expressed in the CIE Lab color space with chroma and hue",
  372. "specification": "https://www.w3.org/TR/css-color-4/#funcdef-lch",
  373. "stage": 2,
  374. "example": "body {\n color: lch(53 105 40);\n}",
  375. "polyfills": [
  376. {
  377. "type": "PostCSS Plugin",
  378. "link": "https://github.com/jonathantneal/postcss-lab-function"
  379. }
  380. ]
  381. },
  382. {
  383. "id": "logical-properties-and-values",
  384. "title": "Logical Properties and Values",
  385. "description": "Flow-relative (left-to-right or right-to-left) properties and values",
  386. "specification": "https://www.w3.org/TR/css-logical-1/",
  387. "stage": 2,
  388. "caniuse": "css-logical-props",
  389. "example": "span:first-child {\n float: inline-start;\n margin-inline-start: 10px;\n}",
  390. "polyfills": [
  391. {
  392. "type": "PostCSS Plugin",
  393. "link": "https://github.com/jonathantneal/postcss-logical-properties"
  394. }
  395. ]
  396. },
  397. {
  398. "id": "matches-pseudo-class",
  399. "title": "`:matches()` Matches-Any Pseudo-Class",
  400. "description": "A pseudo-class for matching elements in a selector list",
  401. "specification": "https://www.w3.org/TR/selectors-4/#matches-pseudo",
  402. "stage": 2,
  403. "caniuse": "css-matches-pseudo",
  404. "example": "p:matches(:first-child, .special) {\n margin-top: 1em;\n}",
  405. "polyfills": [
  406. {
  407. "type": "PostCSS Plugin",
  408. "link": "https://github.com/postcss/postcss-selector-matches"
  409. }
  410. ]
  411. },
  412. {
  413. "id": "media-query-ranges",
  414. "title": "Media Query Ranges",
  415. "description": "A syntax for defining media query ranges using ordinary comparison operators",
  416. "specification": "https://www.w3.org/TR/mediaqueries-4/#range-context",
  417. "stage": 3,
  418. "example": "@media (width < 480px) {}\n\n@media (480px <= width < 768px) {}\n\n@media (width >= 768px) {}",
  419. "polyfills": [
  420. {
  421. "type": "PostCSS Plugin",
  422. "link": "https://github.com/postcss/postcss-media-minmax"
  423. }
  424. ]
  425. },
  426. {
  427. "id": "nesting-rules",
  428. "title": "Nesting Rules",
  429. "description": "A syntax for nesting relative rules within rules",
  430. "specification": "https://tabatkins.github.io/specs/css-nesting/",
  431. "stage": 0,
  432. "example": "article {\n & p {\n color: #333;\n }\n}",
  433. "polyfills": [
  434. {
  435. "type": "PostCSS Plugin",
  436. "link": "https://github.com/jonathantneal/postcss-nesting"
  437. }
  438. ]
  439. },
  440. {
  441. "id": "not-pseudo-class",
  442. "title": "`:not()` Negation List Pseudo-Class",
  443. "description": "A pseudo-class for ignoring elements in a selector list",
  444. "specification": "https://www.w3.org/TR/selectors-4/#negation-pseudo",
  445. "stage": 2,
  446. "caniuse": "css-not-sel-list",
  447. "example": "p:not(:first-child, .special) {\n margin-top: 1em;\n}",
  448. "polyfills": [
  449. {
  450. "type": "PostCSS Plugin",
  451. "link": "https://github.com/postcss/postcss-selector-not"
  452. }
  453. ]
  454. },
  455. {
  456. "id": "overflow-property",
  457. "title": "`overflow` Shorthand Property",
  458. "description": "A property for defining `overflow-x` and `overflow-y`",
  459. "specification": "https://www.w3.org/TR/css-overflow-3/#propdef-overflow",
  460. "stage": 2,
  461. "caniuse-compat": {
  462. "and_chr": {
  463. "68": "y"
  464. },
  465. "and_ff": {
  466. "61": "y"
  467. },
  468. "chrome": {
  469. "68": "y"
  470. },
  471. "firefox": {
  472. "61": "y"
  473. }
  474. },
  475. "example": "html {\n overflow: hidden auto;\n}",
  476. "polyfills": [
  477. {
  478. "type": "PostCSS Plugin",
  479. "link": "https://github.com/jonathantneal/postcss-overflow-shorthand"
  480. }
  481. ]
  482. },
  483. {
  484. "id": "overflow-wrap-property",
  485. "title": "`overflow-wrap` Property",
  486. "description": "A property for defining whether to insert line breaks within words to prevent overflowing",
  487. "specification": "https://www.w3.org/TR/css-text-3/#overflow-wrap-property",
  488. "stage": 2,
  489. "caniuse": "wordwrap",
  490. "example": "p {\n overflow-wrap: break-word;\n}",
  491. "polyfills": [
  492. {
  493. "type": "PostCSS Plugin",
  494. "link": "https://github.com/mattdimu/postcss-replace-overflow-wrap"
  495. }
  496. ]
  497. },
  498. {
  499. "id": "place-properties",
  500. "title": "Place Properties",
  501. "description": "Properties for defining alignment within a layout",
  502. "specification": "https://www.w3.org/TR/css-align-3/#place-items-property",
  503. "stage": 2,
  504. "caniuse-compat": {
  505. "chrome": {
  506. "59": "y"
  507. },
  508. "firefox": {
  509. "45": "y"
  510. }
  511. },
  512. "example": ".example {\n place-content: flex-end;\n place-items: center / space-between;\n place-self: flex-start / center;\n}",
  513. "polyfills": [
  514. {
  515. "type": "PostCSS Plugin",
  516. "link": "https://github.com/jonathantneal/postcss-place"
  517. }
  518. ]
  519. },
  520. {
  521. "id": "rebeccapurple-color",
  522. "title": "`rebeccapurple` Color",
  523. "description": "A particularly lovely shade of purple in memory of Rebecca Alison Meyer",
  524. "specification": "https://www.w3.org/TR/css-color-4/#valdef-color-rebeccapurple",
  525. "stage": 2,
  526. "caniuse": "css-rebeccapurple",
  527. "example": "html {\n color: rebeccapurple;\n}",
  528. "polyfills": [
  529. {
  530. "type": "PostCSS Plugin",
  531. "link": "https://github.com/postcss/postcss-color-rebeccapurple"
  532. }
  533. ]
  534. },
  535. {
  536. "id": "something-pseudo-class",
  537. "title": "`:something()` Zero-Specificity Pseudo-Class",
  538. "description": "A pseudo-class for matching elements in a selector list without contributing specificity",
  539. "specification": "https://www.w3.org/TR/selectors-4/#something-pseudo",
  540. "stage": 2,
  541. "example": "a:something(:not(:hover)) {\n text-decoration: none;\n}"
  542. },
  543. {
  544. "id": "system-ui-font-family",
  545. "title": "`system-ui` Font Family",
  546. "description": "A generic font used to match the user’s interface",
  547. "specification": "https://www.w3.org/TR/css-fonts-4/#system-ui-def",
  548. "stage": 2,
  549. "caniuse": "font-family-system-ui",
  550. "example": "body {\n font-family: system-ui;\n}",
  551. "polyfills": [
  552. {
  553. "type": "PostCSS Plugin",
  554. "link": "https://github.com/JLHwung/postcss-font-family-system-ui"
  555. }
  556. ]
  557. },
  558. {
  559. "id": "when-else-rules",
  560. "title": "When/Else Rules",
  561. "description": "At-rules for specifying media queries and support queries in a single grammar",
  562. "specification": "https://tabatkins.github.io/specs/css-when-else/",
  563. "stage": 0,
  564. "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}"
  565. }
  566. ]