diff --git a/README.md b/README.md index d0547a5..0c312f5 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ List of standard and browser specific CSS properties. ## Source -1. Standard properties (only 'CR', 'WD', 'FPWD', 'LC', 'REC' statuses): http://www.w3.org/Style/CSS/all-properties.en.json +1. Standard properties (only 'REC', 'CR', 'LC', 'WD', 'FPWD', 'ED' statuses): http://www.w3.org/Style/CSS/all-properties.en.json 2. Browser supported properties from `window.getComputedStyle` / `document.body.style` ### Windows diff --git a/data/all.json b/data/all.json index 772c409..8370a54 100644 --- a/data/all.json +++ b/data/all.json @@ -72,6 +72,7 @@ "-webkit-background-color", "-webkit-background-composite", "background-image", + "background-image-transform", "-webkit-background-image", "-moz-background-inline-policy", "background-origin", @@ -96,6 +97,11 @@ "-moz-binding", "-ms-block-progression", "block-size", + "block-step", + "block-step-align", + "block-step-insert", + "block-step-round", + "block-step-size", "bookmark-label", "bookmark-level", "bookmark-state", @@ -108,6 +114,8 @@ "-webkit-border-before-style", "-webkit-border-before", "-webkit-border-before-width", + "border-block", + "border-block-color", "border-block-end", "border-block-end-color", "border-block-end-style", @@ -116,6 +124,8 @@ "border-block-start-color", "border-block-start-style", "border-block-start-width", + "border-block-style", + "border-block-width", "border-bottom", "border-bottom-color", "-moz-border-bottom-colors", @@ -149,9 +159,12 @@ "-webkit-border-image-slice", "border-image-source", "-webkit-border-image-source", + "border-image-transform", "-webkit-border-image", "border-image-width", "-webkit-border-image-width", + "border-inline", + "border-inline-color", "border-inline-end", "border-inline-end-color", "border-inline-end-style", @@ -160,6 +173,8 @@ "border-inline-start-color", "border-inline-start-style", "border-inline-start-width", + "border-inline-style", + "border-inline-width", "border-left", "border-left-color", "-moz-border-left-colors", @@ -223,7 +238,6 @@ "-moz-box-sizing", "-webkit-box-sizing", "box-snap", - "box-suppress", "break-after", "break-before", "break-inside", @@ -233,6 +247,7 @@ "caret-animation", "caret-color", "caret-shape", + "chains", "clear", "clip", "clip-path", @@ -292,6 +307,7 @@ "-ms-content-zoom-snap-points", "-ms-content-zoom-snap-type", "-ms-content-zooming", + "continue", "counter-increment", "counter-reset", "counter-set", @@ -313,8 +329,15 @@ "empty-cells", "enable-background", "fill", + "fill-break", + "fill-color", + "fill-image", "fill-opacity", + "fill-origin", + "fill-position", + "fill-repeat", "fill-rule", + "fill-size", "filter", "-ms-filter", "-webkit-filter", @@ -356,6 +379,7 @@ "float-reference", "flood-color", "flood-opacity", + "flow", "flow-from", "-ms-flow-from", "-webkit-flow-from", @@ -373,6 +397,11 @@ "-webkit-font-kerning", "font-language-override", "-moz-font-language-override", + "font-max-size", + "font-min-size", + "font-optical-sizing", + "font-palette", + "font-presentation", "font-size", "font-size-adjust", "-webkit-font-size-delta", @@ -466,6 +495,13 @@ "input-format", "-wap-input-format", "-wap-input-required", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", "-ms-interpolation-mode", "isolation", "justify-content", @@ -510,6 +546,7 @@ "-webkit-margin-after", "-webkit-margin-before-collapse", "-webkit-margin-before", + "margin-block", "margin-block-end", "margin-block-start", "margin-bottom", @@ -517,6 +554,7 @@ "-webkit-margin-collapse", "-moz-margin-end", "-webkit-margin-end", + "margin-inline", "margin-inline-end", "margin-inline-start", "margin-left", @@ -670,11 +708,13 @@ "padding", "-webkit-padding-after", "-webkit-padding-before", + "padding-block", "padding-block-end", "padding-block-start", "padding-bottom", "-moz-padding-end", "-webkit-padding-end", + "padding-inline", "padding-inline-end", "padding-inline-start", "padding-left", @@ -709,10 +749,6 @@ "place-self", "play-during", "pointer-events", - "polar-anchor", - "polar-angle", - "polar-distance", - "polar-origin", "position", "-webkit-print-color-adjust", "quotes", @@ -749,6 +785,17 @@ "-ms-scroll-limit-x-min", "-ms-scroll-limit-y-max", "-ms-scroll-limit-y-min", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", "-ms-scroll-rails", "scroll-snap-align", "scroll-snap-coordinate", @@ -756,13 +803,23 @@ "scroll-snap-destination", "-webkit-scroll-snap-destination", "scroll-snap-margin", - "scroll-snap-padding", + "scroll-snap-margin-block", + "scroll-snap-margin-block-end", + "scroll-snap-margin-block-start", + "scroll-snap-margin-bottom", + "scroll-snap-margin-inline", + "scroll-snap-margin-inline-end", + "scroll-snap-margin-inline-start", + "scroll-snap-margin-left", + "scroll-snap-margin-right", + "scroll-snap-margin-top", "scroll-snap-points-x", "-ms-scroll-snap-points-x", "-webkit-scroll-snap-points-x", "scroll-snap-points-y", "-ms-scroll-snap-points-y", "-webkit-scroll-snap-points-y", + "scroll-snap-stop", "scroll-snap-type", "-ms-scroll-snap-type", "-webkit-scroll-snap-type", @@ -776,6 +833,7 @@ "scrollbar-dark-shadow-color", "scrollbar-darkshadow-color", "scrollbar-face-color", + "scrollbar-gutter", "scrollbar-highlight-color", "scrollbar-shadow-color", "scrollbar-track-color", @@ -808,15 +866,25 @@ "stress", "string-set", "stroke", + "stroke-align", "stroke-alignment", + "stroke-break", + "stroke-color", + "stroke-dash-corner", + "stroke-dash-justify", "stroke-dashadjust", "stroke-dasharray", "stroke-dashcorner", "stroke-dashoffset", + "stroke-image", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", + "stroke-origin", + "stroke-position", + "stroke-repeat", + "stroke-size", "stroke-width", "-webkit-svg-shadow", "tab-size", @@ -826,6 +894,7 @@ "table-layout", "-webkit-tap-highlight-color", "text-align", + "text-align-all", "text-align-last", "-moz-text-align-last", "text-anchor", diff --git a/package.json b/package.json index 8cde519..0c9a755 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "main": "index.js", "scripts": { "bump": "npm version patch && npm publish && git push && git push --tags", - "generate": "node scripts/generate.js", + "download-w3c-data": "node scripts/download-w3c-data", + "generate": "node scripts/generate", "lint": "eslint index.js scripts/*.js", "test": "echo \"Error: no test specified\" && exit 1" }, @@ -28,6 +29,7 @@ }, "homepage": "https://github.com/betit/known-css-properties#readme", "devDependencies": { + "axios": "^0.16.2", "eslint": "^3.19.0", "globby": "^6.1.0", "lodash.sortby": "^4.7.0", diff --git a/scripts/download-w3c-data.js b/scripts/download-w3c-data.js new file mode 100644 index 0000000..0d1a639 --- /dev/null +++ b/scripts/download-w3c-data.js @@ -0,0 +1,27 @@ +const { writeFile } = require('fs'); +const { resolve } = require('path'); +const uniq = require('lodash.uniq'); +const axios = require('axios'); + +const outputFile = resolve(__dirname, '../source/w3c.json'); +const w3URL = 'https://www.w3.org/Style/CSS/all-properties.en.json'; +const validStatuses = ['REC', 'CR', 'LC', 'WD', 'FPWD', 'ED']; + +const isEntryValid = ({property, status}) => + !property.startsWith('--') && validStatuses.includes(status) + +const saveData = (properties) => + new Promise((resolve, reject) => { + writeFile( + outputFile, + JSON.stringify({ properties }, null, 2), + (err, res) => err ? reject(err) : resolve(res) + ); + }); + +axios.get(w3URL) + .then(res => res.data.filter(isEntryValid)) + .then(properties => properties.map(({property}) => property)) + .then(properties => uniq(properties)) + .then(saveData) + .catch(err => console.error(err)); diff --git a/source/w3c.json b/source/w3c.json index 4391f8d..9c80081 100644 --- a/source/w3c.json +++ b/source/w3c.json @@ -23,15 +23,34 @@ "background-clip", "background-color", "background-image", + "background-image-transform", "background-origin", "background-position", "background-repeat", "background-size", "baseline-shift", + "block-size", + "block-step", + "block-step-align", + "block-step-insert", + "block-step-round", + "block-step-size", "bookmark-label", "bookmark-level", "bookmark-state", "border", + "border-block", + "border-block-color", + "border-block-end", + "border-block-end-color", + "border-block-end-style", + "border-block-end-width", + "border-block-start", + "border-block-start-color", + "border-block-start-style", + "border-block-start-width", + "border-block-style", + "border-block-width", "border-bottom", "border-bottom-color", "border-bottom-left-radius", @@ -46,7 +65,20 @@ "border-image-repeat", "border-image-slice", "border-image-source", + "border-image-transform", "border-image-width", + "border-inline", + "border-inline-color", + "border-inline-end", + "border-inline-end-color", + "border-inline-end-style", + "border-inline-end-width", + "border-inline-start", + "border-inline-start-color", + "border-inline-start-style", + "border-inline-start-width", + "border-inline-style", + "border-inline-width", "border-left", "border-left-color", "border-left-style", @@ -70,7 +102,6 @@ "box-shadow", "box-sizing", "box-snap", - "box-suppress", "break-after", "break-before", "break-inside", @@ -79,11 +110,13 @@ "caret-animation", "caret-color", "caret-shape", + "chains", "clear", "clip", "clip-path", "clip-rule", "color", + "color-adjust", "color-interpolation-filters", "column-count", "column-fill", @@ -95,7 +128,9 @@ "column-span", "column-width", "columns", + "contain", "content", + "continue", "counter-increment", "counter-reset", "counter-set", @@ -108,6 +143,16 @@ "dominant-baseline", "elevation", "empty-cells", + "fill", + "fill-break", + "fill-color", + "fill-image", + "fill-opacity", + "fill-origin", + "fill-position", + "fill-repeat", + "fill-rule", + "fill-size", "filter", "flex", "flex-basis", @@ -122,6 +167,7 @@ "float-reference", "flood-color", "flood-opacity", + "flow", "flow-from", "flow-into", "font", @@ -129,6 +175,11 @@ "font-feature-settings", "font-kerning", "font-language-override", + "font-max-size", + "font-min-size", + "font-optical-sizing", + "font-palette", + "font-presentation", "font-size", "font-size-adjust", "font-stretch", @@ -141,6 +192,7 @@ "font-variant-ligatures", "font-variant-numeric", "font-variant-position", + "font-variation-settings", "font-weight", "footnote-display", "footnote-policy", @@ -172,11 +224,18 @@ "hyphenate-limit-zone", "hyphens", "image-orientation", - "image-rendering", "image-resolution", "initial-letter", "initial-letter-align", "initial-letter-wrap", + "inline-size", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", "isolation", "justify-content", "justify-items", @@ -187,13 +246,20 @@ "line-break", "line-grid", "line-height", + "line-height-step", "line-snap", "list-style", "list-style-image", "list-style-position", "list-style-type", "margin", + "margin-block", + "margin-block-end", + "margin-block-start", "margin-bottom", + "margin-inline", + "margin-inline-end", + "margin-inline-start", "margin-left", "margin-right", "margin-top", @@ -227,25 +293,31 @@ "mask-repeat", "mask-size", "mask-type", + "max-block-size", "max-height", + "max-inline-size", "max-lines", "max-width", + "min-block-size", "min-height", + "min-inline-size", "min-width", "mix-blend-mode", - "motion", - "motion-offset", - "motion-path", - "motion-rotation", "nav-down", "nav-left", "nav-right", "nav-up", "object-fit", "object-position", + "offset", "offset-after", + "offset-anchor", "offset-before", + "offset-distance", "offset-end", + "offset-path", + "offset-position", + "offset-rotate", "offset-start", "opacity", "order", @@ -261,7 +333,13 @@ "overflow-x", "overflow-y", "padding", + "padding-block", + "padding-block-end", + "padding-block-start", "padding-bottom", + "padding-inline", + "padding-inline-end", + "padding-inline-start", "padding-left", "padding-right", "padding-top", @@ -276,11 +354,10 @@ "perspective-origin", "pitch", "pitch-range", + "place-content", + "place-items", + "place-self", "play-during", - "polar-anchor", - "polar-angle", - "polar-distance", - "polar-origin", "position", "quotes", "region-fragment", @@ -297,10 +374,32 @@ "ruby-position", "running", "scroll-behavior", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", "scroll-snap-align", "scroll-snap-margin", - "scroll-snap-padding", + "scroll-snap-margin-block", + "scroll-snap-margin-block-end", + "scroll-snap-margin-block-start", + "scroll-snap-margin-bottom", + "scroll-snap-margin-inline", + "scroll-snap-margin-inline-end", + "scroll-snap-margin-inline-start", + "scroll-snap-margin-left", + "scroll-snap-margin-right", + "scroll-snap-margin-top", + "scroll-snap-stop", "scroll-snap-type", + "scrollbar-gutter", "shape-image-threshold", "shape-inside", "shape-margin", @@ -315,19 +414,30 @@ "stress", "string-set", "stroke", + "stroke-align", "stroke-alignment", + "stroke-break", + "stroke-color", + "stroke-dash-corner", + "stroke-dash-justify", "stroke-dashadjust", "stroke-dasharray", "stroke-dashcorner", "stroke-dashoffset", + "stroke-image", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", + "stroke-origin", + "stroke-position", + "stroke-repeat", + "stroke-size", "stroke-width", "tab-size", "table-layout", "text-align", + "text-align-all", "text-align-last", "text-combine-upright", "text-decoration", @@ -352,6 +462,7 @@ "text-wrap", "top", "transform", + "transform-box", "transform-origin", "transform-style", "transition",