aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/cssstyle
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/cssstyle')
-rw-r--r--vanilla/node_modules/cssstyle/LICENSE20
-rw-r--r--vanilla/node_modules/cssstyle/README.md11
-rw-r--r--vanilla/node_modules/cssstyle/lib/CSSStyleDeclaration.js649
-rw-r--r--vanilla/node_modules/cssstyle/lib/generated/allProperties.js653
-rw-r--r--vanilla/node_modules/cssstyle/lib/generated/implementedProperties.js1466
-rw-r--r--vanilla/node_modules/cssstyle/lib/generated/properties.js6637
-rw-r--r--vanilla/node_modules/cssstyle/lib/generated/propertyDefinitions.js13033
-rw-r--r--vanilla/node_modules/cssstyle/lib/normalize.js1574
-rw-r--r--vanilla/node_modules/cssstyle/lib/parsers.js871
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/background.js406
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundAttachment.js61
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundClip.js61
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundColor.js50
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundImage.js63
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundOrigin.js61
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundPosition.js204
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundRepeat.js93
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/backgroundSize.js126
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/border.js107
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderBottom.js100
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderBottomColor.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderBottomStyle.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderBottomWidth.js57
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderCollapse.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderColor.js110
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderLeft.js100
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderLeftColor.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderLeftStyle.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderLeftWidth.js57
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderRight.js100
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderRightColor.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderRightStyle.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderRightWidth.js57
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderSpacing.js65
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderStyle.js110
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderTop.js100
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderTopColor.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderTopStyle.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderTopWidth.js57
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/borderWidth.js111
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/bottom.js47
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/clear.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/clip.js73
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/color.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/display.js210
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/flex.js178
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/flexBasis.js52
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/flexGrow.js52
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/flexShrink.js52
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/float.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/floodColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/font.js302
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/fontFamily.js98
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/fontSize.js53
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/fontStyle.js69
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/fontVariant.js66
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/fontWeight.js57
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/height.js48
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/left.js47
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/lightingColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/lineHeight.js52
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/margin.js77
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/marginBottom.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/marginLeft.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/marginRight.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/marginTop.js54
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/opacity.js47
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/outlineColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/padding.js78
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/paddingBottom.js55
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/paddingLeft.js55
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/paddingRight.js55
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/paddingTop.js55
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/right.js47
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/stopColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/top.js47
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitTextFillColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js45
-rw-r--r--vanilla/node_modules/cssstyle/lib/properties/width.js48
-rw-r--r--vanilla/node_modules/cssstyle/lib/utils/allExtraProperties.js155
-rw-r--r--vanilla/node_modules/cssstyle/lib/utils/camelize.js37
-rw-r--r--vanilla/node_modules/cssstyle/lib/utils/propertyDescriptors.js55
-rw-r--r--vanilla/node_modules/cssstyle/lib/utils/strings.js173
-rw-r--r--vanilla/node_modules/cssstyle/package.json53
91 files changed, 0 insertions, 31076 deletions
diff --git a/vanilla/node_modules/cssstyle/LICENSE b/vanilla/node_modules/cssstyle/LICENSE
deleted file mode 100644
index 060a7e6..0000000
--- a/vanilla/node_modules/cssstyle/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) Chad Walker
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vanilla/node_modules/cssstyle/README.md b/vanilla/node_modules/cssstyle/README.md
deleted file mode 100644
index 0c426a8..0000000
--- a/vanilla/node_modules/cssstyle/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# CSSStyleDeclaration
-
-A Node.js implementation of the CSS Object Model [`CSSStyleDeclaration` class](https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface).
-
-## Background
-
-This package is an extension of the `CSSStyleDeclaration` class in Nikita Vasilyev's [CSSOM](https://github.com/NV/CSSOM), with added support for modern specifications. The primary use case is for testing browser code in a Node environment.
-
-It was originally created by Chad Walker, it is now maintained by the jsdom community.
-
-Bug reports and pull requests are welcome.
diff --git a/vanilla/node_modules/cssstyle/lib/CSSStyleDeclaration.js b/vanilla/node_modules/cssstyle/lib/CSSStyleDeclaration.js
deleted file mode 100644
index ab1dcb1..0000000
--- a/vanilla/node_modules/cssstyle/lib/CSSStyleDeclaration.js
+++ /dev/null
@@ -1,649 +0,0 @@
-/**
- * This is a fork from the CSS Style Declaration part of
- * https://github.com/NV/CSSOM
- */
-"use strict";
-
-const allProperties = require("./generated/allProperties");
-const implementedProperties = require("./generated/implementedProperties");
-const generatedProperties = require("./generated/properties");
-const {
- borderProperties,
- getPositionValue,
- normalizeProperties,
- prepareBorderProperties,
- prepareProperties,
- shorthandProperties
-} = require("./normalize");
-const {
- hasVarFunc,
- isGlobalKeyword,
- parseCSS,
- parsePropertyValue,
- prepareValue
-} = require("./parsers");
-const allExtraProperties = require("./utils/allExtraProperties");
-const { dashedToCamelCase } = require("./utils/camelize");
-const { getPropertyDescriptor } = require("./utils/propertyDescriptors");
-const { asciiLowercase } = require("./utils/strings");
-
-/**
- * @see https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface
- */
-class CSSStyleDeclaration {
- /**
- * @param {Function} onChangeCallback
- * @param {object} [opt]
- * @param {object} [opt.context] - Window, Element or CSSRule.
- */
- constructor(onChangeCallback, opt = {}) {
- // Make constructor and internals non-enumerable.
- Object.defineProperties(this, {
- constructor: {
- enumerable: false,
- writable: true
- },
-
- // Window
- _global: {
- value: globalThis,
- enumerable: false,
- writable: true
- },
-
- // Element
- _ownerNode: {
- value: null,
- enumerable: false,
- writable: true
- },
-
- // CSSRule
- _parentNode: {
- value: null,
- enumerable: false,
- writable: true
- },
-
- _onChange: {
- value: null,
- enumerable: false,
- writable: true
- },
-
- _values: {
- value: new Map(),
- enumerable: false,
- writable: true
- },
-
- _priorities: {
- value: new Map(),
- enumerable: false,
- writable: true
- },
-
- _length: {
- value: 0,
- enumerable: false,
- writable: true
- },
-
- _computed: {
- value: false,
- enumerable: false,
- writable: true
- },
-
- _readonly: {
- value: false,
- enumerable: false,
- writable: true
- },
-
- _setInProgress: {
- value: false,
- enumerable: false,
- writable: true
- }
- });
-
- const { context } = opt;
- if (context) {
- if (typeof context.getComputedStyle === "function") {
- this._global = context;
- this._computed = true;
- this._readonly = true;
- } else if (context.nodeType === 1 && Object.hasOwn(context, "style")) {
- this._global = context.ownerDocument.defaultView;
- this._ownerNode = context;
- } else if (Object.hasOwn(context, "parentRule")) {
- this._parentRule = context;
- // Find Window from the owner node of the StyleSheet.
- const window = context?.parentStyleSheet?.ownerNode?.ownerDocument?.defaultView;
- if (window) {
- this._global = window;
- }
- }
- }
- if (typeof onChangeCallback === "function") {
- this._onChange = onChangeCallback;
- }
- }
-
- get cssText() {
- if (this._computed) {
- return "";
- }
- const properties = new Map();
- for (let i = 0; i < this._length; i++) {
- const property = this[i];
- const value = this.getPropertyValue(property);
- const priority = this._priorities.get(property) ?? "";
- if (shorthandProperties.has(property)) {
- const { shorthandFor } = shorthandProperties.get(property);
- for (const [longhand] of shorthandFor) {
- if (priority || !this._priorities.get(longhand)) {
- properties.delete(longhand);
- }
- }
- }
- properties.set(property, { property, value, priority });
- }
- const normalizedProperties = normalizeProperties(properties);
- const parts = [];
- for (const { property, value, priority } of normalizedProperties.values()) {
- if (priority) {
- parts.push(`${property}: ${value} !${priority};`);
- } else {
- parts.push(`${property}: ${value};`);
- }
- }
- return parts.join(" ");
- }
-
- set cssText(val) {
- if (this._readonly) {
- const msg = "cssText can not be modified.";
- const name = "NoModificationAllowedError";
- throw new this._global.DOMException(msg, name);
- }
- Array.prototype.splice.call(this, 0, this._length);
- this._values.clear();
- this._priorities.clear();
- if (this._parentRule || (this._ownerNode && this._setInProgress)) {
- return;
- }
- try {
- this._setInProgress = true;
- const valueObj = parseCSS(
- val,
- {
- context: "declarationList",
- parseValue: false
- },
- true
- );
- if (valueObj?.children) {
- const properties = new Map();
- let shouldSkipNext = false;
- for (const item of valueObj.children) {
- if (item.type === "Atrule") {
- continue;
- }
- if (item.type === "Rule") {
- shouldSkipNext = true;
- continue;
- }
- if (shouldSkipNext === true) {
- shouldSkipNext = false;
- continue;
- }
- const {
- important,
- property,
- value: { value }
- } = item;
- if (typeof property === "string" && typeof value === "string") {
- const priority = important ? "important" : "";
- const isCustomProperty = property.startsWith("--");
- if (isCustomProperty || hasVarFunc(value)) {
- if (properties.has(property)) {
- const { priority: itemPriority } = properties.get(property);
- if (!itemPriority) {
- properties.set(property, { property, value, priority });
- }
- } else {
- properties.set(property, { property, value, priority });
- }
- } else {
- const parsedValue = parsePropertyValue(property, value, {
- globalObject: this._global
- });
- if (parsedValue) {
- if (properties.has(property)) {
- const { priority: itemPriority } = properties.get(property);
- if (!itemPriority) {
- properties.set(property, { property, value, priority });
- }
- } else {
- properties.set(property, { property, value, priority });
- }
- } else {
- this.removeProperty(property);
- }
- }
- }
- }
- const parsedProperties = prepareProperties(properties, {
- globalObject: this._global
- });
- for (const [property, item] of parsedProperties) {
- const { priority, value } = item;
- this._priorities.set(property, priority);
- this.setProperty(property, value, priority);
- }
- }
- } catch {
- return;
- } finally {
- this._setInProgress = false;
- }
- if (typeof this._onChange === "function") {
- this._onChange(this.cssText);
- }
- }
-
- get length() {
- return this._length;
- }
-
- // This deletes indices if the new length is less then the current length.
- // If the new length is more, it does nothing, the new indices will be
- // undefined until set.
- set length(len) {
- for (let i = len; i < this._length; i++) {
- delete this[i];
- }
- this._length = len;
- }
-
- // Readonly
- get parentRule() {
- return this._parentRule;
- }
-
- get cssFloat() {
- return this.getPropertyValue("float");
- }
-
- set cssFloat(value) {
- this._setProperty("float", value);
- }
-
- /**
- * @param {string} property
- */
- getPropertyPriority(property) {
- return this._priorities.get(property) || "";
- }
-
- /**
- * @param {string} property
- */
- getPropertyValue(property) {
- if (this._values.has(property)) {
- return this._values.get(property).toString();
- }
- return "";
- }
-
- /**
- * @param {...number} args
- */
- item(...args) {
- if (!args.length) {
- const msg = "1 argument required, but only 0 present.";
- throw new this._global.TypeError(msg);
- }
- const [value] = args;
- const index = parseInt(value);
- if (Number.isNaN(index) || index < 0 || index >= this._length) {
- return "";
- }
- return this[index];
- }
-
- /**
- * @param {string} property
- */
- removeProperty(property) {
- if (this._readonly) {
- const msg = `Property ${property} can not be modified.`;
- const name = "NoModificationAllowedError";
- throw new this._global.DOMException(msg, name);
- }
- if (!this._values.has(property)) {
- return "";
- }
- const prevValue = this._values.get(property);
- this._values.delete(property);
- this._priorities.delete(property);
- const index = Array.prototype.indexOf.call(this, property);
- if (index >= 0) {
- Array.prototype.splice.call(this, index, 1);
- if (typeof this._onChange === "function") {
- this._onChange(this.cssText);
- }
- }
- return prevValue;
- }
-
- /**
- * @param {string} prop
- * @param {string} val
- * @param {string} prior
- */
- setProperty(prop, val, prior) {
- if (this._readonly) {
- const msg = `Property ${prop} can not be modified.`;
- const name = "NoModificationAllowedError";
- throw new this._global.DOMException(msg, name);
- }
- const value = prepareValue(val);
- if (value === "") {
- this[prop] = "";
- this.removeProperty(prop);
- return;
- }
- const priority = prior === "important" ? "important" : "";
- const isCustomProperty = prop.startsWith("--");
- if (isCustomProperty) {
- this._setProperty(prop, value, priority);
- return;
- }
- const property = asciiLowercase(prop);
- if (!allProperties.has(property) && !allExtraProperties.has(property)) {
- return;
- }
- if (priority) {
- this._priorities.set(property, priority);
- } else {
- this._priorities.delete(property);
- }
- this[property] = value;
- }
-}
-
-// Internal methods
-Object.defineProperties(CSSStyleDeclaration.prototype, {
- _setProperty: {
- /**
- * @param {string} property
- * @param {string} val
- * @param {string} priority
- */
- value(property, val, priority) {
- if (typeof val !== "string") {
- return;
- }
- if (val === "") {
- this.removeProperty(property);
- return;
- }
- let originalText = "";
- if (typeof this._onChange === "function" && !this._setInProgress) {
- originalText = this.cssText;
- }
- if (this._values.has(property)) {
- const index = Array.prototype.indexOf.call(this, property);
- // The property already exists but is not indexed into `this` so add it.
- if (index < 0) {
- this[this._length] = property;
- this._length++;
- }
- } else {
- // New property.
- this[this._length] = property;
- this._length++;
- }
- if (priority === "important") {
- this._priorities.set(property, priority);
- } else {
- this._priorities.delete(property);
- }
- this._values.set(property, val);
- if (
- typeof this._onChange === "function" &&
- !this._setInProgress &&
- this.cssText !== originalText
- ) {
- this._onChange(this.cssText);
- }
- },
- enumerable: false
- },
-
- _borderSetter: {
- /**
- * @param {string} prop
- * @param {object|Array|string} val
- * @param {string} prior
- */
- value(prop, val, prior) {
- const properties = new Map();
- if (prop === "border") {
- let priority = "";
- if (typeof prior === "string") {
- priority = prior;
- } else {
- priority = this._priorities.get(prop) ?? "";
- }
- properties.set(prop, { propery: prop, value: val, priority });
- } else {
- for (let i = 0; i < this._length; i++) {
- const property = this[i];
- if (borderProperties.has(property)) {
- const value = this.getPropertyValue(property);
- const longhandPriority = this._priorities.get(property) ?? "";
- let priority = longhandPriority;
- if (prop === property && typeof prior === "string") {
- priority = prior;
- }
- properties.set(property, { property, value, priority });
- }
- }
- }
- const parsedProperties = prepareBorderProperties(prop, val, prior, properties, {
- globalObject: this._global
- });
- for (const [property, item] of parsedProperties) {
- const { priority, value } = item;
- this._setProperty(property, value, priority);
- }
- },
- enumerable: false
- },
-
- _flexBoxSetter: {
- /**
- * @param {string} prop
- * @param {string} val
- * @param {string} prior
- * @param {string} shorthandProperty
- */
- value(prop, val, prior, shorthandProperty) {
- if (!shorthandProperty || !shorthandProperties.has(shorthandProperty)) {
- return;
- }
- const shorthandPriority = this._priorities.get(shorthandProperty);
- this.removeProperty(shorthandProperty);
- let priority = "";
- if (typeof prior === "string") {
- priority = prior;
- } else {
- priority = this._priorities.get(prop) ?? "";
- }
- this.removeProperty(prop);
- if (shorthandPriority && priority) {
- this._setProperty(prop, val);
- } else {
- this._setProperty(prop, val, priority);
- }
- if (val && !hasVarFunc(val)) {
- const longhandValues = [];
- const shorthandItem = shorthandProperties.get(shorthandProperty);
- let hasGlobalKeyword = false;
- for (const [longhandProperty] of shorthandItem.shorthandFor) {
- if (longhandProperty === prop) {
- if (isGlobalKeyword(val)) {
- hasGlobalKeyword = true;
- }
- longhandValues.push(val);
- } else {
- const longhandValue = this.getPropertyValue(longhandProperty);
- const longhandPriority = this._priorities.get(longhandProperty) ?? "";
- if (!longhandValue || longhandPriority !== priority) {
- break;
- }
- if (isGlobalKeyword(longhandValue)) {
- hasGlobalKeyword = true;
- }
- longhandValues.push(longhandValue);
- }
- }
- if (longhandValues.length === shorthandItem.shorthandFor.size) {
- if (hasGlobalKeyword) {
- const [firstValue, ...restValues] = longhandValues;
- if (restValues.every((value) => value === firstValue)) {
- this._setProperty(shorthandProperty, firstValue, priority);
- }
- } else {
- const parsedValue = shorthandItem.parse(longhandValues.join(" "));
- const shorthandValue = Object.values(parsedValue).join(" ");
- this._setProperty(shorthandProperty, shorthandValue, priority);
- }
- }
- }
- },
- enumerable: false
- },
-
- _positionShorthandSetter: {
- /**
- * @param {string} prop
- * @param {Array|string} val
- * @param {string} prior
- */
- value(prop, val, prior) {
- if (!shorthandProperties.has(prop)) {
- return;
- }
- const shorthandValues = [];
- if (Array.isArray(val)) {
- shorthandValues.push(...val);
- } else if (typeof val === "string") {
- shorthandValues.push(val);
- } else {
- return;
- }
- let priority = "";
- if (typeof prior === "string") {
- priority = prior;
- } else {
- priority = this._priorities.get(prop) ?? "";
- }
- const { position, shorthandFor } = shorthandProperties.get(prop);
- let hasPriority = false;
- for (const [longhandProperty, longhandItem] of shorthandFor) {
- const { position: longhandPosition } = longhandItem;
- const longhandValue = getPositionValue(shorthandValues, longhandPosition);
- if (priority) {
- this._setProperty(longhandProperty, longhandValue, priority);
- } else {
- const longhandPriority = this._priorities.get(longhandProperty) ?? "";
- if (longhandPriority) {
- hasPriority = true;
- } else {
- this._setProperty(longhandProperty, longhandValue, priority);
- }
- }
- }
- if (hasPriority) {
- this.removeProperty(prop);
- } else {
- const shorthandValue = getPositionValue(shorthandValues, position);
- this._setProperty(prop, shorthandValue, priority);
- }
- },
- enumerable: false
- },
-
- _positionLonghandSetter: {
- /**
- * @param {string} prop
- * @param {string} val
- * @param {string} prior
- * @param {string} shorthandProperty
- */
- value(prop, val, prior, shorthandProperty) {
- if (!shorthandProperty || !shorthandProperties.has(shorthandProperty)) {
- return;
- }
- const shorthandPriority = this._priorities.get(shorthandProperty);
- this.removeProperty(shorthandProperty);
- let priority = "";
- if (typeof prior === "string") {
- priority = prior;
- } else {
- priority = this._priorities.get(prop) ?? "";
- }
- this.removeProperty(prop);
- if (shorthandPriority && priority) {
- this._setProperty(prop, val);
- } else {
- this._setProperty(prop, val, priority);
- }
- if (val && !hasVarFunc(val)) {
- const longhandValues = [];
- const { shorthandFor, position: shorthandPosition } =
- shorthandProperties.get(shorthandProperty);
- for (const [longhandProperty] of shorthandFor) {
- const longhandValue = this.getPropertyValue(longhandProperty);
- const longhandPriority = this._priorities.get(longhandProperty) ?? "";
- if (!longhandValue || longhandPriority !== priority) {
- return;
- }
- longhandValues.push(longhandValue);
- }
- if (longhandValues.length === shorthandFor.size) {
- const replacedValue = getPositionValue(longhandValues, shorthandPosition);
- this._setProperty(shorthandProperty, replacedValue);
- }
- }
- },
- enumerable: false
- }
-});
-
-// Properties
-Object.defineProperties(CSSStyleDeclaration.prototype, generatedProperties);
-
-// Additional properties
-[...allProperties, ...allExtraProperties].forEach((property) => {
- if (!implementedProperties.has(property)) {
- const declaration = getPropertyDescriptor(property);
- Object.defineProperty(CSSStyleDeclaration.prototype, property, declaration);
- const camel = dashedToCamelCase(property);
- Object.defineProperty(CSSStyleDeclaration.prototype, camel, declaration);
- if (/^webkit[A-Z]/.test(camel)) {
- const pascal = camel.replace(/^webkit/, "Webkit");
- Object.defineProperty(CSSStyleDeclaration.prototype, pascal, declaration);
- }
- }
-});
-
-module.exports = {
- CSSStyleDeclaration,
- propertyList: Object.fromEntries(implementedProperties)
-};
diff --git a/vanilla/node_modules/cssstyle/lib/generated/allProperties.js b/vanilla/node_modules/cssstyle/lib/generated/allProperties.js
deleted file mode 100644
index a7a8c6c..0000000
--- a/vanilla/node_modules/cssstyle/lib/generated/allProperties.js
+++ /dev/null
@@ -1,653 +0,0 @@
-"use strict";
-// autogenerated - 2025-08-02
-// https://www.w3.org/Style/CSS/all-properties.en.html
-
-module.exports = new Set([
- "-webkit-line-clamp",
- "accent-color",
- "align-content",
- "align-items",
- "align-self",
- "alignment-baseline",
- "all",
- "anchor-name",
- "anchor-scope",
- "animation",
- "animation-composition",
- "animation-delay",
- "animation-direction",
- "animation-duration",
- "animation-fill-mode",
- "animation-iteration-count",
- "animation-name",
- "animation-play-state",
- "animation-range",
- "animation-range-end",
- "animation-range-start",
- "animation-timeline",
- "animation-timing-function",
- "appearance",
- "aspect-ratio",
- "azimuth",
- "backface-visibility",
- "background",
- "background-attachment",
- "background-blend-mode",
- "background-clip",
- "background-color",
- "background-image",
- "background-origin",
- "background-position",
- "background-repeat",
- "background-size",
- "baseline-shift",
- "baseline-source",
- "block-ellipsis",
- "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-radius",
- "border-block-end-style",
- "border-block-end-width",
- "border-block-start",
- "border-block-start-color",
- "border-block-start-radius",
- "border-block-start-style",
- "border-block-start-width",
- "border-block-style",
- "border-block-width",
- "border-bottom",
- "border-bottom-color",
- "border-bottom-left-radius",
- "border-bottom-radius",
- "border-bottom-right-radius",
- "border-bottom-style",
- "border-bottom-width",
- "border-boundary",
- "border-clip",
- "border-clip-bottom",
- "border-clip-left",
- "border-clip-right",
- "border-clip-top",
- "border-collapse",
- "border-color",
- "border-end-end-radius",
- "border-end-start-radius",
- "border-image",
- "border-image-outset",
- "border-image-repeat",
- "border-image-slice",
- "border-image-source",
- "border-image-width",
- "border-inline",
- "border-inline-color",
- "border-inline-end",
- "border-inline-end-color",
- "border-inline-end-radius",
- "border-inline-end-style",
- "border-inline-end-width",
- "border-inline-start",
- "border-inline-start-color",
- "border-inline-start-radius",
- "border-inline-start-style",
- "border-inline-start-width",
- "border-inline-style",
- "border-inline-width",
- "border-left",
- "border-left-color",
- "border-left-radius",
- "border-left-style",
- "border-left-width",
- "border-limit",
- "border-radius",
- "border-right",
- "border-right-color",
- "border-right-radius",
- "border-right-style",
- "border-right-width",
- "border-shape",
- "border-spacing",
- "border-start-end-radius",
- "border-start-start-radius",
- "border-style",
- "border-top",
- "border-top-color",
- "border-top-left-radius",
- "border-top-radius",
- "border-top-right-radius",
- "border-top-style",
- "border-top-width",
- "border-width",
- "bottom",
- "box-decoration-break",
- "box-shadow",
- "box-shadow-blur",
- "box-shadow-color",
- "box-shadow-offset",
- "box-shadow-position",
- "box-shadow-spread",
- "box-sizing",
- "box-snap",
- "break-after",
- "break-before",
- "break-inside",
- "caption-side",
- "caret",
- "caret-color",
- "caret-shape",
- "clear",
- "clip",
- "clip-path",
- "clip-rule",
- "color",
- "color-adjust",
- "color-interpolation-filters",
- "color-scheme",
- "column-count",
- "column-fill",
- "column-gap",
- "column-rule",
- "column-rule-break",
- "column-rule-color",
- "column-rule-outset",
- "column-rule-style",
- "column-rule-width",
- "column-span",
- "column-width",
- "columns",
- "contain",
- "contain-intrinsic-block-size",
- "contain-intrinsic-height",
- "contain-intrinsic-inline-size",
- "contain-intrinsic-size",
- "contain-intrinsic-width",
- "container",
- "container-name",
- "container-type",
- "content",
- "content-visibility",
- "continue",
- "corner-block-end-shape",
- "corner-block-start-shape",
- "corner-bottom-left-shape",
- "corner-bottom-right-shape",
- "corner-bottom-shape",
- "corner-end-end-shape",
- "corner-end-start-shape",
- "corner-inline-end-shape",
- "corner-inline-start-shape",
- "corner-left-shape",
- "corner-right-shape",
- "corner-shape",
- "corner-start-end-shape",
- "corner-start-start-shape",
- "corner-top-left-shape",
- "corner-top-right-shape",
- "corner-top-shape",
- "counter-increment",
- "counter-reset",
- "counter-set",
- "cue",
- "cue-after",
- "cue-before",
- "cursor",
- "direction",
- "display",
- "dominant-baseline",
- "dynamic-range-limit",
- "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",
- "flex-direction",
- "flex-flow",
- "flex-grow",
- "flex-shrink",
- "flex-wrap",
- "float",
- "float-defer",
- "float-offset",
- "float-reference",
- "flood-color",
- "flood-opacity",
- "flow-from",
- "flow-into",
- "font",
- "font-family",
- "font-feature-settings",
- "font-kerning",
- "font-language-override",
- "font-optical-sizing",
- "font-palette",
- "font-size",
- "font-size-adjust",
- "font-stretch",
- "font-style",
- "font-synthesis",
- "font-synthesis-position",
- "font-synthesis-small-caps",
- "font-synthesis-style",
- "font-synthesis-weight",
- "font-variant",
- "font-variant-alternates",
- "font-variant-caps",
- "font-variant-east-asian",
- "font-variant-emoji",
- "font-variant-ligatures",
- "font-variant-numeric",
- "font-variant-position",
- "font-variation-settings",
- "font-weight",
- "font-width",
- "footnote-display",
- "footnote-policy",
- "forced-color-adjust",
- "gap",
- "glyph-orientation-vertical",
- "grid",
- "grid-area",
- "grid-auto-columns",
- "grid-auto-flow",
- "grid-auto-rows",
- "grid-column",
- "grid-column-end",
- "grid-column-start",
- "grid-row",
- "grid-row-end",
- "grid-row-start",
- "grid-template",
- "grid-template-areas",
- "grid-template-columns",
- "grid-template-rows",
- "hanging-punctuation",
- "height",
- "hyphenate-character",
- "hyphenate-limit-chars",
- "hyphenate-limit-last",
- "hyphenate-limit-lines",
- "hyphenate-limit-zone",
- "hyphens",
- "image-orientation",
- "image-rendering",
- "image-resolution",
- "initial-letter",
- "initial-letter-align",
- "initial-letter-wrap",
- "inline-size",
- "inline-sizing",
- "inset",
- "inset-block",
- "inset-block-end",
- "inset-block-start",
- "inset-inline",
- "inset-inline-end",
- "inset-inline-start",
- "interpolate-size",
- "isolation",
- "item-cross",
- "item-direction",
- "item-flow",
- "item-pack",
- "item-slack",
- "item-track",
- "item-wrap",
- "justify-content",
- "justify-items",
- "justify-self",
- "left",
- "letter-spacing",
- "lighting-color",
- "line-break",
- "line-clamp",
- "line-fit-edge",
- "line-grid",
- "line-height",
- "line-height-step",
- "line-padding",
- "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-break",
- "margin-inline",
- "margin-inline-end",
- "margin-inline-start",
- "margin-left",
- "margin-right",
- "margin-top",
- "margin-trim",
- "marker",
- "marker-end",
- "marker-knockout-left",
- "marker-knockout-right",
- "marker-mid",
- "marker-pattern",
- "marker-segment",
- "marker-side",
- "marker-start",
- "mask",
- "mask-border",
- "mask-border-mode",
- "mask-border-outset",
- "mask-border-repeat",
- "mask-border-slice",
- "mask-border-source",
- "mask-border-width",
- "mask-clip",
- "mask-composite",
- "mask-image",
- "mask-mode",
- "mask-origin",
- "mask-position",
- "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-intrinsic-sizing",
- "min-width",
- "mix-blend-mode",
- "nav-down",
- "nav-left",
- "nav-right",
- "nav-up",
- "object-fit",
- "object-position",
- "offset",
- "offset-anchor",
- "offset-distance",
- "offset-path",
- "offset-position",
- "offset-rotate",
- "opacity",
- "order",
- "orphans",
- "outline",
- "outline-color",
- "outline-offset",
- "outline-style",
- "outline-width",
- "overflow",
- "overflow-anchor",
- "overflow-block",
- "overflow-clip-margin",
- "overflow-clip-margin-block",
- "overflow-clip-margin-block-end",
- "overflow-clip-margin-block-start",
- "overflow-clip-margin-bottom",
- "overflow-clip-margin-inline",
- "overflow-clip-margin-inline-end",
- "overflow-clip-margin-inline-start",
- "overflow-clip-margin-left",
- "overflow-clip-margin-right",
- "overflow-clip-margin-top",
- "overflow-inline",
- "overflow-wrap",
- "overflow-x",
- "overflow-y",
- "overlay",
- "overscroll-behavior",
- "overscroll-behavior-block",
- "overscroll-behavior-inline",
- "overscroll-behavior-x",
- "overscroll-behavior-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",
- "page",
- "page-break-after",
- "page-break-before",
- "page-break-inside",
- "pause",
- "pause-after",
- "pause-before",
- "perspective",
- "perspective-origin",
- "pitch",
- "pitch-range",
- "place-content",
- "place-items",
- "place-self",
- "play-during",
- "position",
- "position-anchor",
- "position-area",
- "position-try",
- "position-try-fallbacks",
- "position-try-order",
- "position-visibility",
- "print-color-adjust",
- "quotes",
- "reading-flow",
- "region-fragment",
- "resize",
- "rest",
- "rest-after",
- "rest-before",
- "richness",
- "right",
- "rotate",
- "row-gap",
- "row-rule",
- "row-rule-break",
- "row-rule-color",
- "row-rule-outset",
- "row-rule-style",
- "row-rule-width",
- "ruby-align",
- "ruby-merge",
- "ruby-overhang",
- "ruby-position",
- "rule",
- "rule-break",
- "rule-color",
- "rule-outset",
- "rule-paint-order",
- "rule-style",
- "rule-width",
- "running",
- "scale",
- "scroll-behavior",
- "scroll-margin",
- "scroll-margin-block",
- "scroll-margin-block-end",
- "scroll-margin-block-start",
- "scroll-margin-bottom",
- "scroll-margin-inline",
- "scroll-margin-inline-end",
- "scroll-margin-inline-start",
- "scroll-margin-left",
- "scroll-margin-right",
- "scroll-margin-top",
- "scroll-marker-group",
- "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-stop",
- "scroll-snap-type",
- "scroll-start-target",
- "scroll-timeline",
- "scroll-timeline-axis",
- "scroll-timeline-name",
- "scrollbar-color",
- "scrollbar-gutter",
- "scrollbar-width",
- "shape-image-threshold",
- "shape-inside",
- "shape-margin",
- "shape-outside",
- "slider-orientation",
- "spatial-navigation-action",
- "spatial-navigation-contain",
- "spatial-navigation-function",
- "speak",
- "speak-as",
- "speak-header",
- "speak-numeral",
- "speak-punctuation",
- "speech-rate",
- "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-autospace",
- "text-box",
- "text-box-edge",
- "text-box-trim",
- "text-combine-upright",
- "text-decoration",
- "text-decoration-color",
- "text-decoration-line",
- "text-decoration-skip",
- "text-decoration-skip-box",
- "text-decoration-skip-ink",
- "text-decoration-skip-inset",
- "text-decoration-skip-self",
- "text-decoration-skip-spaces",
- "text-decoration-style",
- "text-decoration-thickness",
- "text-emphasis",
- "text-emphasis-color",
- "text-emphasis-position",
- "text-emphasis-skip",
- "text-emphasis-style",
- "text-group-align",
- "text-indent",
- "text-justify",
- "text-orientation",
- "text-overflow",
- "text-shadow",
- "text-spacing",
- "text-spacing-trim",
- "text-transform",
- "text-underline-offset",
- "text-underline-position",
- "text-wrap",
- "text-wrap-mode",
- "text-wrap-style",
- "timeline-scope",
- "top",
- "transform",
- "transform-box",
- "transform-origin",
- "transform-style",
- "transition",
- "transition-behavior",
- "transition-delay",
- "transition-duration",
- "transition-property",
- "transition-timing-function",
- "translate",
- "unicode-bidi",
- "user-select",
- "vertical-align",
- "view-timeline",
- "view-timeline-axis",
- "view-timeline-inset",
- "view-timeline-name",
- "view-transition-class",
- "view-transition-group",
- "view-transition-name",
- "visibility",
- "voice-balance",
- "voice-duration",
- "voice-family",
- "voice-pitch",
- "voice-range",
- "voice-rate",
- "voice-stress",
- "voice-volume",
- "volume",
- "white-space",
- "white-space-collapse",
- "white-space-trim",
- "widows",
- "width",
- "will-change",
- "word-break",
- "word-space-transform",
- "word-spacing",
- "word-wrap",
- "wrap-after",
- "wrap-before",
- "wrap-flow",
- "wrap-inside",
- "wrap-through",
- "writing-mode",
- "z-index"
-]);
diff --git a/vanilla/node_modules/cssstyle/lib/generated/implementedProperties.js b/vanilla/node_modules/cssstyle/lib/generated/implementedProperties.js
deleted file mode 100644
index 4d81c34..0000000
--- a/vanilla/node_modules/cssstyle/lib/generated/implementedProperties.js
+++ /dev/null
@@ -1,1466 +0,0 @@
-"use strict";
-// autogenerated - 2026-01-06
-
-module.exports = new Map([
- [
- "-webkit-border-after-color",
- null
- ],
- [
- "-webkit-border-before-color",
- null
- ],
- [
- "-webkit-border-end-color",
- null
- ],
- [
- "-webkit-border-start-color",
- null
- ],
- [
- "-webkit-column-rule-color",
- null
- ],
- [
- "-webkit-tap-highlight-color",
- null
- ],
- [
- "-webkit-text-emphasis-color",
- null
- ],
- [
- "-webkit-text-fill-color",
- {
- "name": "-webkit-text-fill-color",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-text-fill-color",
- "initial": "currentcolor",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "an RGBA color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "media": "visual",
- "styleDeclaration": [
- "-webkit-text-fill-color",
- "WebkitTextFillColor",
- "webkitTextFillColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "-webkit-text-stroke-color",
- {
- "name": "-webkit-text-stroke-color",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-text-stroke-color",
- "initial": "currentcolor",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "an RGBA color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "media": "visual",
- "styleDeclaration": [
- "-webkit-text-stroke-color",
- "WebkitTextStrokeColor",
- "webkitTextStrokeColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "background",
- {
- "name": "background",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "background"
- ],
- "syntax": "<bg-layer>#? , <final-bg-layer>",
- "extended": []
- }
- ],
- [
- "background-attachment",
- {
- "name": "background-attachment",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-attachment",
- "initial": "scroll",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item the keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "background-attachment",
- "backgroundAttachment"
- ],
- "syntax": "<attachment>#",
- "extended": []
- }
- ],
- [
- "background-clip",
- {
- "name": "background-clip",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-clip",
- "initial": "border-box",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-clip",
- "backgroundClip"
- ],
- "syntax": "<bg-clip>#",
- "extended": []
- }
- ],
- [
- "background-color",
- {
- "name": "background-color",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-color",
- "initial": "transparent",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "background-color",
- "backgroundColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "background-image",
- {
- "name": "background-image",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-image",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item either an <image> or the keyword none",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "background-image",
- "backgroundImage"
- ],
- "syntax": "<bg-image>#",
- "extended": []
- }
- ],
- [
- "background-origin",
- {
- "name": "background-origin",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-origin",
- "initial": "padding-box",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-origin",
- "backgroundOrigin"
- ],
- "syntax": "<visual-box>#",
- "extended": []
- }
- ],
- [
- "background-position",
- {
- "name": "background-position",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position",
- "initial": "0% 0%",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "refer to size of background positioning area minus size of background image; see text",
- "computedValue": "a list, each item a pair of offsets (horizontal and vertical) from the top left origin, each offset given as a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-position",
- "backgroundPosition"
- ],
- "syntax": "<bg-position>#",
- "extended": []
- }
- ],
- [
- "background-repeat",
- {
- "name": "background-repeat",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-repeat",
- "initial": "repeat",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a pair of keywords, one per dimension",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "background-repeat",
- "backgroundRepeat"
- ],
- "syntax": "<repeat-style>#",
- "extended": []
- }
- ],
- [
- "background-size",
- {
- "name": "background-size",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-size",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "see text",
- "computedValue": "list, each item a pair of sizes (one per axis) each represented as either a keyword or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-size",
- "backgroundSize"
- ],
- "syntax": "<bg-size>#",
- "extended": []
- }
- ],
- [
- "border",
- {
- "name": "border",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-bottom",
- {
- "name": "border-bottom",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-bottom",
- "borderBottom"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-bottom-color",
- {
- "name": "border-bottom-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-bottom-color",
- "borderBottomColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-bottom-style",
- {
- "name": "border-bottom-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-bottom-style",
- "borderBottomStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-bottom-width",
- {
- "name": "border-bottom-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-bottom-width",
- "borderBottomWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-collapse",
- {
- "name": "border-collapse",
- "href": "https://drafts.csswg.org/css-tables-3/#propdef-border-collapse",
- "initial": "separate",
- "appliesTo": "table grid boxes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "border-collapse",
- "borderCollapse"
- ],
- "syntax": "separate | collapse",
- "extended": []
- }
- ],
- [
- "border-color",
- {
- "name": "border-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-color",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-color",
- "borderColor"
- ],
- "syntax": "[ <color> | <image-1D> ]{1,4}",
- "extended": []
- }
- ],
- [
- "border-left",
- {
- "name": "border-left",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-left",
- "borderLeft"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-left-color",
- {
- "name": "border-left-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-left-color",
- "borderLeftColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-left-style",
- {
- "name": "border-left-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-left-style",
- "borderLeftStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-left-width",
- {
- "name": "border-left-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-left-width",
- "borderLeftWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-right",
- {
- "name": "border-right",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-right",
- "borderRight"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-right-color",
- {
- "name": "border-right-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-right-color",
- "borderRightColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-right-style",
- {
- "name": "border-right-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-right-style",
- "borderRightStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-right-width",
- {
- "name": "border-right-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-right-width",
- "borderRightWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-spacing",
- {
- "name": "border-spacing",
- "href": "https://drafts.csswg.org/css-tables-3/#propdef-border-spacing",
- "initial": "0px 0px",
- "appliesTo": "table grid boxes when border-collapse is separate",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "two absolute lengths",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "border-spacing",
- "borderSpacing"
- ],
- "syntax": "<length>{1,2}",
- "extended": []
- }
- ],
- [
- "border-style",
- {
- "name": "border-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-style",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-style",
- "borderStyle"
- ],
- "syntax": "<'border-top-style'>{1,4}",
- "extended": []
- }
- ],
- [
- "border-top",
- {
- "name": "border-top",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-top",
- "borderTop"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-top-color",
- {
- "name": "border-top-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-top-color",
- "borderTopColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-top-style",
- {
- "name": "border-top-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-top-style",
- "borderTopStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-top-width",
- {
- "name": "border-top-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-top-width",
- "borderTopWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-width",
- {
- "name": "border-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-width",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-width",
- "borderWidth"
- ],
- "syntax": "<'border-top-width'>{1,4}",
- "extended": []
- }
- ],
- [
- "bottom",
- {
- "name": "bottom",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-bottom",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "bottom"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "clear",
- {
- "name": "clear",
- "href": "https://drafts.csswg.org/css-page-floats-3/#propdef-clear",
- "initial": "none",
- "appliesTo": "block-level elements, floats, regions, pages",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "clear"
- ],
- "syntax": "inline-start | inline-end | block-start | block-end | left | right | top | bottom | both-inline | both-block | both | none",
- "extended": []
- }
- ],
- [
- "clip",
- {
- "name": "clip",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-clip",
- "initial": "auto",
- "appliesTo": "Absolutely positioned elements. In SVG, it applies to elements which establish a new viewport, pattern elements and mask elements.",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "clip"
- ],
- "syntax": "<rect()> | auto",
- "extended": []
- }
- ],
- [
- "color",
- {
- "name": "color",
- "href": "https://drafts.csswg.org/css-color-4/#propdef-color",
- "initial": "CanvasText",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "computed color, see resolving color values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "color"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "display",
- {
- "name": "display",
- "href": "https://drafts.csswg.org/css-display-4/#propdef-display",
- "initial": "inline",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "a pair of keywords representing the inner and outer display types plus optional list-item flag, or a <display-internal> or <display-box> keyword; see prose in a variety of specs for computation rules",
- "canonicalOrder": "per grammar",
- "animationType": "see § 2.9 Animating and Interpolating display",
- "styleDeclaration": [
- "display"
- ],
- "syntax": "[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy> | <display-outside> || [ <display-inside> | math ]",
- "extended": [
- "https://w3c.github.io/mathml-core/"
- ]
- }
- ],
- [
- "flex",
- {
- "name": "flex",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex",
- "initial": "0 1 auto",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "by computed value type",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "flex"
- ],
- "syntax": "none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]",
- "extended": []
- }
- ],
- [
- "flex-basis",
- {
- "name": "flex-basis",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-basis",
- "initial": "auto",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "relative to the flex container’s inner main size",
- "computedValue": "specified keyword or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "flex-basis",
- "flexBasis"
- ],
- "syntax": "content | <'width'>",
- "extended": []
- }
- ],
- [
- "flex-grow",
- {
- "name": "flex-grow",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-grow",
- "initial": "0",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified number",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "flex-grow",
- "flexGrow"
- ],
- "syntax": "<number [0,∞]>",
- "extended": []
- }
- ],
- [
- "flex-shrink",
- {
- "name": "flex-shrink",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-shrink",
- "initial": "1",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "number",
- "styleDeclaration": [
- "flex-shrink",
- "flexShrink"
- ],
- "syntax": "<number [0,∞]>",
- "extended": []
- }
- ],
- [
- "float",
- {
- "name": "float",
- "href": "https://drafts.csswg.org/css-page-floats-3/#propdef-float",
- "initial": "none",
- "appliesTo": "all elements.",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "float"
- ],
- "syntax": "block-start | block-end | inline-start | inline-end | snap-block | <snap-block()> | snap-inline | <snap-inline()> | left | right | top | bottom | none | footnote",
- "extended": [
- "https://drafts.csswg.org/css-gcpm-3/"
- ]
- }
- ],
- [
- "flood-color",
- {
- "name": "flood-color",
- "href": "https://drafts.fxtf.org/filter-effects-1/#propdef-flood-color",
- "initial": "black",
- "appliesTo": "feFlood and feDropShadow elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "flood-color",
- "floodColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "font",
- {
- "name": "font",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font",
- "initial": "see individual properties",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "see individual properties",
- "styleDeclaration": [
- "font"
- ],
- "syntax": "[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name>",
- "extended": []
- }
- ],
- [
- "font-family",
- {
- "name": "font-family",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-family",
- "initial": "depends on user agent",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "list, each item a string and/or <generic-family> keywords",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-family",
- "fontFamily"
- ],
- "syntax": "[ <family-name> | <generic-family> ]#",
- "extended": []
- }
- ],
- [
- "font-size",
- {
- "name": "font-size",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-size",
- "initial": "medium",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "refer to parent element’s font size",
- "computedValue": "an absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "font-size",
- "fontSize"
- ],
- "syntax": "<absolute-size> | <relative-size> | <length-percentage [0,∞]> | math",
- "extended": []
- }
- ],
- [
- "font-style",
- {
- "name": "font-style",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-style",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the keyword specified, plus angle in degrees if specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type;normal animates as oblique 0deg",
- "styleDeclaration": [
- "font-style",
- "fontStyle"
- ],
- "syntax": "normal | italic | left | right | oblique <angle [-90deg,90deg]>?",
- "extended": []
- }
- ],
- [
- "font-variant",
- {
- "name": "font-variant",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant",
- "fontVariant"
- ],
- "syntax": "normal | none | [ [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || [ stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) ] || [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] || [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] || [ sub | super ] || [ text | emoji | unicode ] ]",
- "extended": []
- }
- ],
- [
- "font-weight",
- {
- "name": "font-weight",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-weight",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "a number, see below",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "font-weight",
- "fontWeight"
- ],
- "syntax": "<font-weight-absolute> | bolder | lighter",
- "extended": []
- }
- ],
- [
- "height",
- {
- "name": "height",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-height",
- "initial": "auto",
- "appliesTo": "all elements except non-replaced inlines",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type, recursing into fit-content()",
- "logicalPropertyGroup": "size",
- "styleDeclaration": [
- "height"
- ],
- "syntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ],
- [
- "left",
- {
- "name": "left",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-left",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "left"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "lighting-color",
- {
- "name": "lighting-color",
- "href": "https://drafts.fxtf.org/filter-effects-1/#propdef-lighting-color",
- "initial": "white",
- "appliesTo": "feDiffuseLighting and feSpecularLighting elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "lighting-color",
- "lightingColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "line-height",
- {
- "name": "line-height",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-line-height",
- "initial": "normal",
- "appliesTo": "non-replaced inline boxes and SVG text content elements",
- "inherited": "yes",
- "percentages": "computed relative to 1em",
- "computedValue": "the specified keyword, a number, or a computed <length> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "line-height",
- "lineHeight"
- ],
- "syntax": "normal | <number [0,∞]> | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "margin",
- {
- "name": "margin",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "margin"
- ],
- "syntax": "<'margin-top'>{1,4}",
- "extended": []
- }
- ],
- [
- "margin-bottom",
- {
- "name": "margin-bottom",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-bottom",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-bottom",
- "marginBottom"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "margin-left",
- {
- "name": "margin-left",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-left",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-left",
- "marginLeft"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "margin-right",
- {
- "name": "margin-right",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-right",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-right",
- "marginRight"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "margin-top",
- {
- "name": "margin-top",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-top",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-top",
- "marginTop"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "opacity",
- {
- "name": "opacity",
- "href": "https://drafts.csswg.org/css-color-4/#propdef-opacity",
- "initial": "1",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "map to the range [0,1]",
- "computedValue": "specified number, clamped to the range [0,1]",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "opacity"
- ],
- "syntax": "<opacity-value>",
- "extended": []
- }
- ],
- [
- "outline-color",
- {
- "name": "outline-color",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-outline-color",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see below",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "outline-color",
- "outlineColor"
- ],
- "syntax": "auto | <'border-top-color'>",
- "extended": []
- }
- ],
- [
- "padding",
- {
- "name": "padding",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "padding"
- ],
- "syntax": "<'padding-top'>{1,4}",
- "extended": []
- }
- ],
- [
- "padding-bottom",
- {
- "name": "padding-bottom",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-bottom",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-bottom",
- "paddingBottom"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "padding-left",
- {
- "name": "padding-left",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-left",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-left",
- "paddingLeft"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "padding-right",
- {
- "name": "padding-right",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-right",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-right",
- "paddingRight"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "padding-top",
- {
- "name": "padding-top",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-top",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-top",
- "paddingTop"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "right",
- {
- "name": "right",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-right",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "right"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "stop-color",
- {
- "name": "stop-color",
- "href": "https://svgwg.org/svg2-draft/pservers.html#StopColorProperty",
- "styleDeclaration": [
- "stop-color",
- "stopColor"
- ],
- "extended": []
- }
- ],
- [
- "top",
- {
- "name": "top",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-top",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "top"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "width",
- {
- "name": "width",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-width",
- "initial": "auto",
- "appliesTo": "all elements except non-replaced inlines",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type, recursing into fit-content()",
- "logicalPropertyGroup": "size",
- "styleDeclaration": [
- "width"
- ],
- "syntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ]
-]);
diff --git a/vanilla/node_modules/cssstyle/lib/generated/properties.js b/vanilla/node_modules/cssstyle/lib/generated/properties.js
deleted file mode 100644
index 8399ea6..0000000
--- a/vanilla/node_modules/cssstyle/lib/generated/properties.js
+++ /dev/null
@@ -1,6637 +0,0 @@
-"use strict";
-// autogenerated - 2026-01-06
-// https://www.w3.org/Style/CSS/all-properties.en.html
-
-var external_dependency_parsers_0 = require("../parsers.js");
-var backgroundImage_export_parse, backgroundImage_export_definition, backgroundImage_export_property;
-const backgroundImage_local_var_property = "background-image";
-const backgroundImage_local_var_shorthand = "background";
-backgroundImage_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundImage_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveGradientUrlValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- } else {
- return;
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-backgroundImage_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundImage_local_var_shorthand, "");
- this._setProperty(backgroundImage_local_var_property, v);
- } else {
- const val = backgroundImage_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundImage_local_var_shorthand) && this._priorities.has(backgroundImage_local_var_property) ? this._priorities.get(backgroundImage_local_var_property) : "";
- this._setProperty(backgroundImage_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundImage_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundImage_export_property = backgroundImage_local_var_property;
-var backgroundPosition_export_parse, backgroundPosition_export_definition, backgroundPosition_export_property;
-const backgroundPosition_local_var_property = "background-position";
-const backgroundPosition_local_var_shorthand = "background";
-const backgroundPosition_local_var_keyX = ["left", "right"];
-const backgroundPosition_local_var_keyY = ["top", "bottom"];
-const backgroundPosition_local_var_keywordsX = ["center", ...backgroundPosition_local_var_keyX];
-const backgroundPosition_local_var_keywordsY = ["center", ...backgroundPosition_local_var_keyY];
-const backgroundPosition_local_var_keywords = ["center", ...backgroundPosition_local_var_keyX, ...backgroundPosition_local_var_keyY];
-backgroundPosition_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundPosition_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- const [part1, part2, part3, part4] = value;
- let parsedValue = "";
- switch (value.length) {
- case 1:
- {
- const val1 = part1.type === AST_TYPES.IDENTIFIER ? part1.name : external_dependency_parsers_0.resolveNumericValue([part1], {
- type: "length"
- });
- if (val1) {
- if (val1 === "center") {
- parsedValue = `${val1} ${val1}`;
- } else if (val1 === "top" || val1 === "bottom") {
- parsedValue = `center ${val1}`;
- } else {
- parsedValue = `${val1} center`;
- }
- }
- break;
- }
- case 2:
- {
- const val1 = part1.type === AST_TYPES.IDENTIFIER ? part1.name : external_dependency_parsers_0.resolveNumericValue([part1], {
- type: "length"
- });
- const val2 = part2.type === AST_TYPES.IDENTIFIER ? part2.name : external_dependency_parsers_0.resolveNumericValue([part2], {
- type: "length"
- });
- if (val1 && val2) {
- if (backgroundPosition_local_var_keywordsX.includes(val1) && backgroundPosition_local_var_keywordsY.includes(val2)) {
- parsedValue = `${val1} ${val2}`;
- } else if (backgroundPosition_local_var_keywordsY.includes(val1) && backgroundPosition_local_var_keywordsX.includes(val2)) {
- parsedValue = `${val2} ${val1}`;
- } else if (backgroundPosition_local_var_keywordsX.includes(val1)) {
- if (val2 === "center" || !backgroundPosition_local_var_keywordsX.includes(val2)) {
- parsedValue = `${val1} ${val2}`;
- }
- } else if (backgroundPosition_local_var_keywordsY.includes(val2)) {
- if (!backgroundPosition_local_var_keywordsY.includes(val1)) {
- parsedValue = `${val1} ${val2}`;
- }
- } else if (!backgroundPosition_local_var_keywordsY.includes(val1) && !backgroundPosition_local_var_keywordsX.includes(val2)) {
- parsedValue = `${val1} ${val2}`;
- }
- }
- break;
- }
- case 3:
- {
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = part2.type === AST_TYPES.IDENTIFIER ? part2.name : external_dependency_parsers_0.resolveNumericValue([part2], {
- type: "length"
- });
- const val3 = part3.type === AST_TYPES.IDENTIFIER ? part3.name : external_dependency_parsers_0.resolveNumericValue([part3], {
- type: "length"
- });
- if (val1 && val2 && val3) {
- let posX = "";
- let offX = "";
- let posY = "";
- let offY = "";
- if (backgroundPosition_local_var_keywordsX.includes(val1)) {
- if (backgroundPosition_local_var_keyY.includes(val2)) {
- if (!backgroundPosition_local_var_keywords.includes(val3)) {
- posX = val1;
- posY = val2;
- offY = val3;
- }
- } else if (backgroundPosition_local_var_keyY.includes(val3)) {
- if (!backgroundPosition_local_var_keywords.includes(val2)) {
- posX = val1;
- offX = val2;
- posY = val3;
- }
- }
- } else if (backgroundPosition_local_var_keywordsY.includes(val1)) {
- if (backgroundPosition_local_var_keyX.includes(val2)) {
- if (!backgroundPosition_local_var_keywords.includes(val3)) {
- posX = val2;
- offX = val3;
- posY = val1;
- }
- } else if (backgroundPosition_local_var_keyX.includes(val3)) {
- if (!backgroundPosition_local_var_keywords.includes(val2)) {
- posX = val3;
- posY = val1;
- offY = val2;
- }
- }
- }
- if (posX && posY) {
- if (offX) {
- parsedValue = `${posX} ${offX} ${posY}`;
- } else if (offY) {
- parsedValue = `${posX} ${posY} ${offY}`;
- }
- }
- }
- break;
- }
- case 4:
- {
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = external_dependency_parsers_0.resolveNumericValue([part2], {
- type: "length"
- });
- const val3 = part3.type === AST_TYPES.IDENTIFIER && part3.name;
- const val4 = external_dependency_parsers_0.resolveNumericValue([part4], {
- type: "length"
- });
- if (val1 && val2 && val3 && val4) {
- let posX = "";
- let offX = "";
- let posY = "";
- let offY = "";
- if (backgroundPosition_local_var_keywordsX.includes(val1) && backgroundPosition_local_var_keyY.includes(val3)) {
- posX = val1;
- offX = val2;
- posY = val3;
- offY = val4;
- } else if (backgroundPosition_local_var_keyX.includes(val1) && backgroundPosition_local_var_keywordsY.includes(val3)) {
- posX = val1;
- offX = val2;
- posY = val3;
- offY = val4;
- } else if (backgroundPosition_local_var_keyY.includes(val1) && backgroundPosition_local_var_keywordsX.includes(val3)) {
- posX = val3;
- offX = val4;
- posY = val1;
- offY = val2;
- }
- if (posX && offX && posY && offY) {
- parsedValue = `${posX} ${offX} ${posY} ${offY}`;
- }
- }
- break;
- }
- default:
- }
- if (parsedValue) {
- parsedValues.push(parsedValue);
- } else {
- return;
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-backgroundPosition_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundPosition_local_var_shorthand, "");
- this._setProperty(backgroundPosition_local_var_property, v);
- } else {
- const val = backgroundPosition_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundPosition_local_var_shorthand) && this._priorities.has(backgroundPosition_local_var_property) ? this._priorities.get(backgroundPosition_local_var_property) : "";
- this._setProperty(backgroundPosition_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundPosition_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundPosition_export_property = backgroundPosition_local_var_property;
-var backgroundSize_export_parse, backgroundSize_export_definition, backgroundSize_export_property;
-const backgroundSize_local_var_property = "background-size";
-const backgroundSize_local_var_shorthand = "background";
-backgroundSize_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundSize_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- if (value.length === 1) {
- const [{
- isNumber,
- name,
- type,
- value: itemValue
- }] = value;
- switch (type) {
- case AST_TYPES.CALC:
- {
- if (isNumber) {
- return;
- }
- parsedValues.push(`${name}(${itemValue})`);
- break;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER:
- {
- parsedValues.push(name);
- break;
- }
- default:
- {
- const parsedValue = external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- }
- } else {
- const [val1, val2] = value;
- const parts = [];
- if (val1.type === AST_TYPES.CALC && !val1.isNumber) {
- parts.push(`${val1.name}(${val1.value})`);
- } else if (val1.type === AST_TYPES.IDENTIFIER) {
- parts.push(val1.name);
- } else if (val1.type === AST_TYPES.DIMENSION) {
- parts.push(`${val1.value}${val1.unit}`);
- } else if (val1.type === AST_TYPES.PERCENTAGE) {
- parts.push(`${val1.value}%`);
- } else {
- return;
- }
- switch (val2.type) {
- case AST_TYPES.CALC:
- {
- if (val2.isNumber) {
- return;
- }
- parts.push(`${val2.name}(${val2.value})`);
- break;
- }
- case AST_TYPES.DIMENSION:
- {
- parts.push(`${val2.value}${val2.unit}`);
- break;
- }
- case AST_TYPES.IDENTIFIER:
- {
- if (val2.name !== "auto") {
- parts.push(val2.name);
- }
- break;
- }
- case AST_TYPES.PERCENTAGE:
- {
- parts.push(`${val2.value}%`);
- break;
- }
- default:
- {
- return;
- }
- }
- parsedValues.push(parts.join(" "));
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-backgroundSize_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundSize_local_var_shorthand, "");
- this._setProperty(backgroundSize_local_var_property, v);
- } else {
- const val = backgroundSize_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundSize_local_var_shorthand) && this._priorities.has(backgroundSize_local_var_property) ? this._priorities.get(backgroundSize_local_var_property) : "";
- this._setProperty(backgroundSize_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundSize_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundSize_export_property = backgroundSize_local_var_property;
-var backgroundRepeat_export_parse, backgroundRepeat_export_definition, backgroundRepeat_export_property;
-const backgroundRepeat_local_var_property = "background-repeat";
-const backgroundRepeat_local_var_shorthand = "background";
-backgroundRepeat_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundRepeat_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- let parsedValue = "";
- switch (value.length) {
- case 1:
- {
- const [part1] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- if (val1) {
- parsedValue = val1;
- }
- break;
- }
- case 2:
- {
- const [part1, part2] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
- if (val1 && val2) {
- if (val1 === "repeat" && val2 === "no-repeat") {
- parsedValue = "repeat-x";
- } else if (val1 === "no-repeat" && val2 === "repeat") {
- parsedValue = "repeat-y";
- } else if (val1 === val2) {
- parsedValue = val1;
- } else {
- parsedValue = `${val1} ${val2}`;
- }
- }
- break;
- }
- default:
- }
- if (parsedValue) {
- parsedValues.push(parsedValue);
- } else {
- return;
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-backgroundRepeat_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundRepeat_local_var_shorthand, "");
- this._setProperty(backgroundRepeat_local_var_property, v);
- } else {
- const val = backgroundRepeat_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundRepeat_local_var_shorthand) && this._priorities.has(backgroundRepeat_local_var_property) ? this._priorities.get(backgroundRepeat_local_var_property) : "";
- this._setProperty(backgroundRepeat_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundRepeat_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundRepeat_export_property = backgroundRepeat_local_var_property;
-var backgroundOrigin_export_parse, backgroundOrigin_export_definition, backgroundOrigin_export_property;
-const backgroundOrigin_local_var_property = "background-origin";
-const backgroundOrigin_local_var_shorthand = "background";
-backgroundOrigin_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundOrigin_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveKeywordValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-backgroundOrigin_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundOrigin_local_var_shorthand, "");
- this._setProperty(backgroundOrigin_local_var_property, v);
- } else {
- const val = backgroundOrigin_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundOrigin_local_var_shorthand) && this._priorities.has(backgroundOrigin_local_var_property) ? this._priorities.get(backgroundOrigin_local_var_property) : "";
- this._setProperty(backgroundOrigin_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundOrigin_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundOrigin_export_property = backgroundOrigin_local_var_property;
-var backgroundClip_export_parse, backgroundClip_export_definition, backgroundClip_export_property;
-const backgroundClip_local_var_property = "background-clip";
-const backgroundClip_local_var_shorthand = "background";
-backgroundClip_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundClip_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveKeywordValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-backgroundClip_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundClip_local_var_shorthand, "");
- this._setProperty(backgroundClip_local_var_property, v);
- } else {
- const val = backgroundClip_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundClip_local_var_shorthand) && this._priorities.has(backgroundClip_local_var_property) ? this._priorities.get(backgroundClip_local_var_property) : "";
- this._setProperty(backgroundClip_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundClip_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundClip_export_property = backgroundClip_local_var_property;
-var backgroundAttachment_export_parse, backgroundAttachment_export_definition, backgroundAttachment_export_property;
-const backgroundAttachment_local_var_property = "background-attachment";
-const backgroundAttachment_local_var_shorthand = "background";
-backgroundAttachment_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundAttachment_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveKeywordValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-backgroundAttachment_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundAttachment_local_var_shorthand, "");
- this._setProperty(backgroundAttachment_local_var_property, v);
- } else {
- const val = backgroundAttachment_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundAttachment_local_var_shorthand) && this._priorities.has(backgroundAttachment_local_var_property) ? this._priorities.get(backgroundAttachment_local_var_property) : "";
- this._setProperty(backgroundAttachment_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundAttachment_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundAttachment_export_property = backgroundAttachment_local_var_property;
-var backgroundColor_export_parse, backgroundColor_export_definition, backgroundColor_export_property;
-const backgroundColor_local_var_property = "background-color";
-const backgroundColor_local_var_shorthand = "background";
-backgroundColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(backgroundColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-backgroundColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(backgroundColor_local_var_shorthand, "");
- this._setProperty(backgroundColor_local_var_property, v);
- } else {
- const val = backgroundColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(backgroundColor_local_var_shorthand) && this._priorities.has(backgroundColor_local_var_property) ? this._priorities.get(backgroundColor_local_var_property) : "";
- this._setProperty(backgroundColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(backgroundColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-backgroundColor_export_property = backgroundColor_local_var_property;
-var background_export_initialValues, background_export_shorthandFor, background_export_parse, background_export_definition, background_export_property;
-const background_local_var_property = "background";
-background_export_initialValues = new Map([[{
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
-}.property, "none"], [{
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
-}.property, "0% 0%"], [{
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
-}.property, "auto"], [{
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
-}.property, "repeat"], [{
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
-}.property, "padding-box"], [{
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
-}.property, "border-box"], [{
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
-}.property, "scroll"], [{
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
-}.property, "transparent"]]);
-background_export_shorthandFor = new Map([[{
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
-}.property, {
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
-}], [{
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
-}.property, {
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
-}], [{
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
-}.property, {
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
-}], [{
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
-}.property, {
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
-}], [{
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
-}.property, {
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
-}], [{
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
-}.property, {
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
-}], [{
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
-}.property, {
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
-}], [{
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
-}.property, {
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
-}]]);
-background_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- } else if (external_dependency_parsers_0.hasCalcFunc(v)) {
- v = external_dependency_parsers_0.resolveCalc(v);
- }
- if (!external_dependency_parsers_0.isValidPropertyValue(background_local_var_property, v)) {
- return;
- }
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const bgValues = [];
- const l = values.length;
- for (let i = 0; i < l; i++) {
- let bg = {
- [{
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
- }.property),
- [{
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property),
- [{
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property),
- [{
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property),
- [{
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property),
- [{
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property),
- [{
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
- }.property),
- [{
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property)
- };
- if (l > 1 && i !== l - 1) {
- bg = {
- [{
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
- }.property),
- [{
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property),
- [{
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property),
- [{
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property),
- [{
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property),
- [{
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property),
- [{
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
- }.property]: background_export_initialValues.get({
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
- }.property)
- };
- }
- const bgPosition = [];
- const bgSize = [];
- const bgRepeat = [];
- const bgBox = [];
- const bgParts = external_dependency_parsers_0.splitValue(values[i], {
- delimiter: "/"
- });
- if (!bgParts.length || bgParts.length > 2) {
- return;
- }
- const [bgPart1, bgPart2 = ""] = bgParts;
- const parts1 = external_dependency_parsers_0.splitValue(bgPart1);
- for (const part of parts1) {
- let partValid = false;
- for (const [longhand, value] of background_export_shorthandFor) {
- if (external_dependency_parsers_0.isValidPropertyValue(longhand, part)) {
- partValid = true;
- switch (longhand) {
- case {
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property:
- case {
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bgBox.push(parsedValue);
- }
- break;
- }
- case {
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property:
- {
- if (i !== values.length - 1) {
- return;
- }
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- break;
- }
- case {
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bgPosition.push(parsedValue);
- }
- break;
- }
- case {
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bgRepeat.push(parsedValue);
- }
- break;
- }
- case {
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property:
- {
- break;
- }
- default:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- }
- }
- }
- }
- if (!partValid) {
- return;
- }
- }
- if (bgPart2) {
- const parts2 = external_dependency_parsers_0.splitValue(bgPart2);
- for (const part of parts2) {
- let partValid = false;
- for (const [longhand, value] of background_export_shorthandFor) {
- if (external_dependency_parsers_0.isValidPropertyValue(longhand, part)) {
- partValid = true;
- switch (longhand) {
- case {
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property:
- case {
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bgBox.push(parsedValue);
- }
- break;
- }
- case {
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property:
- {
- if (i !== l - 1) {
- return;
- }
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- break;
- }
- case {
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property:
- {
- break;
- }
- case {
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bgRepeat.push(parsedValue);
- }
- break;
- }
- case {
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bgSize.push(parsedValue);
- }
- break;
- }
- default:
- {
- const parsedValue = value.parse(part, {
- globalObject
- });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- }
- }
- }
- }
- if (!partValid) {
- return;
- }
- }
- }
- if (bgPosition.length) {
- const {
- parse: parser
- } = background_export_shorthandFor.get({
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property);
- const value = parser(bgPosition.join(" "), {
- globalObject
- });
- if (value) {
- bg[{
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property] = value;
- }
- }
- if (bgSize.length) {
- const {
- parse: parser
- } = background_export_shorthandFor.get({
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property);
- const value = parser(bgSize.join(" "), {
- globalObject
- });
- if (value) {
- bg[{
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property] = value;
- }
- }
- if (bgRepeat.length) {
- const {
- parse: parser
- } = background_export_shorthandFor.get({
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property);
- const value = parser(bgRepeat.join(" "), {
- globalObject
- });
- if (value) {
- bg[{
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property] = value;
- }
- }
- if (bgBox.length) {
- switch (bgBox.length) {
- case 1:
- {
- const [value] = bgBox;
- bg[{
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property] = value;
- bg[{
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property] = value;
- break;
- }
- case 2:
- {
- const [value1, value2] = bgBox;
- bg[{
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property] = value1;
- bg[{
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property] = value2;
- break;
- }
- default:
- {
- return;
- }
- }
- }
- bgValues.push(bg);
- }
- return bgValues;
-};
-background_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (v === "" || external_dependency_parsers_0.hasVarFunc(v)) {
- for (const [key] of background_export_shorthandFor) {
- this._setProperty(key, "");
- }
- this._setProperty(background_local_var_property, v);
- } else {
- const bgValues = background_export_parse(v, {
- globalObject: this._global
- });
- if (!Array.isArray(bgValues)) {
- return;
- }
- const bgMap = new Map([[{
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
- }.property, []], [{
- parse: backgroundPosition_export_parse,
- definition: backgroundPosition_export_definition,
- property: backgroundPosition_export_property
- }.property, []], [{
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property, []], [{
- parse: backgroundRepeat_export_parse,
- definition: backgroundRepeat_export_definition,
- property: backgroundRepeat_export_property
- }.property, []], [{
- parse: backgroundOrigin_export_parse,
- definition: backgroundOrigin_export_definition,
- property: backgroundOrigin_export_property
- }.property, []], [{
- parse: backgroundClip_export_parse,
- definition: backgroundClip_export_definition,
- property: backgroundClip_export_property
- }.property, []], [{
- parse: backgroundAttachment_export_parse,
- definition: backgroundAttachment_export_definition,
- property: backgroundAttachment_export_property
- }.property, []], [{
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property, []]]);
- const backgrounds = [];
- for (const bgValue of bgValues) {
- const bg = [];
- for (const [longhand, value] of Object.entries(bgValue)) {
- if (value) {
- const arr = bgMap.get(longhand);
- arr.push(value);
- bgMap.set(longhand, arr);
- if (value !== background_export_initialValues.get(longhand)) {
- if (longhand === {
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property) {
- bg.push(`/ ${value}`);
- } else {
- bg.push(value);
- }
- } else if (longhand === {
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
- }.property) {
- if (v === "none") {
- bg.push(value);
- }
- } else if (longhand === {
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property) {
- if (v === "transparent") {
- bg.push(value);
- }
- }
- }
- }
- backgrounds.push(bg.join(" "));
- }
- const priority = this._priorities.get(background_local_var_property) ?? "";
- for (const [longhand, value] of bgMap) {
- this._setProperty(longhand, value.join(", "), priority);
- }
- this._setProperty(background_local_var_property, backgrounds.join(", "), priority);
- }
- },
- get() {
- const v = this.getPropertyValue(background_local_var_property);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- return v;
- }
- const bgMap = new Map();
- let l = 0;
- for (const [longhand] of background_export_shorthandFor) {
- const val = this.getPropertyValue(longhand);
- if (longhand === {
- parse: backgroundImage_export_parse,
- definition: backgroundImage_export_definition,
- property: backgroundImage_export_property
- }.property) {
- if (val === "none" && v === "none" && this.getPropertyValue({
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property) === "transparent") {
- return val;
- }
- if (val !== background_export_initialValues.get(longhand)) {
- const imgValues = external_dependency_parsers_0.splitValue(val, {
- delimiter: ","
- });
- l = imgValues.length;
- bgMap.set(longhand, imgValues);
- }
- } else if (longhand === {
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property) {
- if (val !== background_export_initialValues.get(longhand) || v.includes(val)) {
- bgMap.set(longhand, [val]);
- }
- } else if (val !== background_export_initialValues.get(longhand)) {
- bgMap.set(longhand, external_dependency_parsers_0.splitValue(val, {
- delimiter: ","
- }));
- }
- }
- if (l === 0) {
- const bgColArr = bgMap.get({
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property);
- const background = bgColArr ? bgColArr[0] : null;
- if (background) {
- return background;
- }
- return "";
- }
- const bgValues = [];
- for (let i = 0; i < l; i++) {
- bgValues[i] = [];
- }
- for (const [longhand, values] of bgMap) {
- for (let i = 0; i < l; i++) {
- switch (longhand) {
- case {
- parse: backgroundColor_export_parse,
- definition: backgroundColor_export_definition,
- property: backgroundColor_export_property
- }.property:
- {
- if (i === l - 1) {
- const value = values[0];
- if (external_dependency_parsers_0.hasVarFunc(value)) {
- return "";
- }
- if (value && value !== background_export_initialValues.get(longhand)) {
- const bgValue = bgValues[i];
- bgValue.push(value);
- }
- }
- break;
- }
- case {
- parse: backgroundSize_export_parse,
- definition: backgroundSize_export_definition,
- property: backgroundSize_export_property
- }.property:
- {
- const value = values[i];
- if (external_dependency_parsers_0.hasVarFunc(value)) {
- return "";
- }
- if (value && value !== background_export_initialValues.get(longhand)) {
- const bgValue = bgValues[i];
- bgValue.push(`/ ${value}`);
- }
- break;
- }
- default:
- {
- const value = values[i];
- if (external_dependency_parsers_0.hasVarFunc(value)) {
- return "";
- }
- if (value && value !== background_export_initialValues.get(longhand)) {
- const bgValue = bgValues[i];
- bgValue.push(value);
- }
- }
- }
- }
- }
- const backgrounds = [];
- for (const bgValue of bgValues) {
- backgrounds.push(bgValue.join(" "));
- }
- return backgrounds.join(", ");
- },
- enumerable: true,
- configurable: true
-};
-background_export_property = background_local_var_property;
-var borderTopWidth_export_parse, borderTopWidth_export_definition, borderTopWidth_export_property;
-const borderTopWidth_local_var_property = "border-top-width";
-const borderTopWidth_local_var_lineShorthand = "border-width";
-const borderTopWidth_local_var_positionShorthand = "border-top";
-const borderTopWidth_local_var_shorthand = "border";
-borderTopWidth_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderTopWidth_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderTopWidth_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderTopWidth_local_var_property, v, "");
- } else {
- const val = borderTopWidth_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderTopWidth_local_var_shorthand);
- const linePriority = this._priorities.get(borderTopWidth_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderTopWidth_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderTopWidth_local_var_property) ? this._priorities.get(borderTopWidth_local_var_property) : "";
- this._borderSetter(borderTopWidth_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderTopWidth_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderTopWidth_export_property = borderTopWidth_local_var_property;
-var borderRightWidth_export_parse, borderRightWidth_export_definition, borderRightWidth_export_property;
-const borderRightWidth_local_var_property = "border-right-width";
-const borderRightWidth_local_var_lineShorthand = "border-width";
-const borderRightWidth_local_var_positionShorthand = "border-right";
-const borderRightWidth_local_var_shorthand = "border";
-borderRightWidth_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderRightWidth_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderRightWidth_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderRightWidth_local_var_property, v, "");
- } else {
- const val = borderRightWidth_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderRightWidth_local_var_shorthand);
- const linePriority = this._priorities.get(borderRightWidth_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderRightWidth_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderRightWidth_local_var_property) ? this._priorities.get(borderRightWidth_local_var_property) : "";
- this._borderSetter(borderRightWidth_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderRightWidth_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderRightWidth_export_property = borderRightWidth_local_var_property;
-var borderBottomWidth_export_parse, borderBottomWidth_export_definition, borderBottomWidth_export_property;
-const borderBottomWidth_local_var_property = "border-bottom-width";
-const borderBottomWidth_local_var_lineShorthand = "border-width";
-const borderBottomWidth_local_var_positionShorthand = "border-bottom";
-const borderBottomWidth_local_var_shorthand = "border";
-borderBottomWidth_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderBottomWidth_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderBottomWidth_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderBottomWidth_local_var_property, v, "");
- } else {
- const val = borderBottomWidth_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderBottomWidth_local_var_shorthand);
- const linePriority = this._priorities.get(borderBottomWidth_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderBottomWidth_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderBottomWidth_local_var_property) ? this._priorities.get(borderBottomWidth_local_var_property) : "";
- this._borderSetter(borderBottomWidth_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderBottomWidth_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderBottomWidth_export_property = borderBottomWidth_local_var_property;
-var borderLeftWidth_export_parse, borderLeftWidth_export_definition, borderLeftWidth_export_property;
-const borderLeftWidth_local_var_property = "border-left-width";
-const borderLeftWidth_local_var_lineShorthand = "border-width";
-const borderLeftWidth_local_var_positionShorthand = "border-left";
-const borderLeftWidth_local_var_shorthand = "border";
-borderLeftWidth_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderLeftWidth_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderLeftWidth_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderLeftWidth_local_var_property, v, "");
- } else {
- const val = borderLeftWidth_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderLeftWidth_local_var_shorthand);
- const linePriority = this._priorities.get(borderLeftWidth_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderLeftWidth_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderLeftWidth_local_var_property) ? this._priorities.get(borderLeftWidth_local_var_property) : "";
- this._borderSetter(borderLeftWidth_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderLeftWidth_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderLeftWidth_export_property = borderLeftWidth_local_var_property;
-var borderWidth_export_shorthandFor, borderWidth_export_parse, borderWidth_export_definition, borderWidth_export_property;
-const borderWidth_local_var_property = "border-width";
-const borderWidth_local_var_shorthand = "border";
-borderWidth_export_shorthandFor = new Map([[{
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
-}.property, {
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
-}], [{
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
-}.property, {
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
-}], [{
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
-}.property, {
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
-}], [{
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
-}.property, {
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
-}]]);
-borderWidth_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.parsePropertyValue(borderWidth_local_var_property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = external_dependency_parsers_0.resolveNumericValue([value], {
- length: values.length,
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- switch (parsedValues.length) {
- case 1:
- {
- return parsedValues;
- }
- case 2:
- {
- const [val1, val2] = parsedValues;
- if (val1 === val2) {
- return [val1];
- }
- return parsedValues;
- }
- case 3:
- {
- const [val1, val2, val3] = parsedValues;
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return parsedValues;
- }
- case 4:
- {
- const [val1, val2, val3, val4] = parsedValues;
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return [val1, val2, val3];
- }
- return parsedValues;
- }
- default:
- }
- }
-};
-borderWidth_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderWidth_local_var_property, v, "");
- } else {
- const val = borderWidth_export_parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority = !this._priorities.get(borderWidth_local_var_shorthand) && this._priorities.has(borderWidth_local_var_property) ? this._priorities.get(borderWidth_local_var_property) : "";
- this._borderSetter(borderWidth_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderWidth_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderWidth_export_property = borderWidth_local_var_property;
-var borderTopStyle_export_parse, borderTopStyle_export_definition, borderTopStyle_export_property;
-const borderTopStyle_local_var_property = "border-top-style";
-const borderTopStyle_local_var_lineShorthand = "border-style";
-const borderTopStyle_local_var_positionShorthand = "border-top";
-const borderTopStyle_local_var_shorthand = "border";
-borderTopStyle_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderTopStyle_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderTopStyle_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderTopStyle_local_var_property, v, "");
- } else {
- const val = borderTopStyle_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderTopStyle_local_var_shorthand);
- const linePriority = this._priorities.get(borderTopStyle_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderTopStyle_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderTopStyle_local_var_property) ? this._priorities.get(borderTopStyle_local_var_property) : "";
- this._borderSetter(borderTopStyle_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderTopStyle_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderTopStyle_export_property = borderTopStyle_local_var_property;
-var borderRightStyle_export_parse, borderRightStyle_export_definition, borderRightStyle_export_property;
-const borderRightStyle_local_var_property = "border-right-style";
-const borderRightStyle_local_var_lineShorthand = "border-style";
-const borderRightStyle_local_var_positionShorthand = "border-right";
-const borderRightStyle_local_var_shorthand = "border";
-borderRightStyle_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderRightStyle_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderRightStyle_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderRightStyle_local_var_property, v, "");
- } else {
- const val = borderRightStyle_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderRightStyle_local_var_shorthand);
- const linePriority = this._priorities.get(borderRightStyle_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderRightStyle_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderRightStyle_local_var_property) ? this._priorities.get(borderRightStyle_local_var_property) : "";
- this._borderSetter(borderRightStyle_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderRightStyle_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderRightStyle_export_property = borderRightStyle_local_var_property;
-var borderBottomStyle_export_parse, borderBottomStyle_export_definition, borderBottomStyle_export_property;
-const borderBottomStyle_local_var_property = "border-bottom-style";
-const borderBottomStyle_local_var_lineShorthand = "border-style";
-const borderBottomStyle_local_var_positionShorthand = "border-bottom";
-const borderBottomStyle_local_var_shorthand = "border";
-borderBottomStyle_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderBottomStyle_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderBottomStyle_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderBottomStyle_local_var_property, v, "");
- } else {
- const val = borderBottomStyle_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderBottomStyle_local_var_shorthand);
- const linePriority = this._priorities.get(borderBottomStyle_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderBottomStyle_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderBottomStyle_local_var_property) ? this._priorities.get(borderBottomStyle_local_var_property) : "";
- this._borderSetter(borderBottomStyle_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderBottomStyle_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderBottomStyle_export_property = borderBottomStyle_local_var_property;
-var borderLeftStyle_export_parse, borderLeftStyle_export_definition, borderLeftStyle_export_property;
-const borderLeftStyle_local_var_property = "border-left-style";
-const borderLeftStyle_local_var_lineShorthand = "border-style";
-const borderLeftStyle_local_var_positionShorthand = "border-left";
-const borderLeftStyle_local_var_shorthand = "border";
-borderLeftStyle_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderLeftStyle_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderLeftStyle_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderLeftStyle_local_var_property, v, "");
- } else {
- const val = borderLeftStyle_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderLeftStyle_local_var_shorthand);
- const linePriority = this._priorities.get(borderLeftStyle_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderLeftStyle_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderLeftStyle_local_var_property) ? this._priorities.get(borderLeftStyle_local_var_property) : "";
- this._borderSetter(borderLeftStyle_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderLeftStyle_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderLeftStyle_export_property = borderLeftStyle_local_var_property;
-var borderStyle_export_shorthandFor, borderStyle_export_parse, borderStyle_export_definition, borderStyle_export_property;
-const borderStyle_local_var_property = "border-style";
-const borderStyle_local_var_shorthand = "border";
-borderStyle_export_shorthandFor = new Map([[{
- parse: borderTopStyle_export_parse,
- definition: borderTopStyle_export_definition,
- property: borderTopStyle_export_property
-}.property, {
- parse: borderTopStyle_export_parse,
- definition: borderTopStyle_export_definition,
- property: borderTopStyle_export_property
-}], [{
- parse: borderRightStyle_export_parse,
- definition: borderRightStyle_export_definition,
- property: borderRightStyle_export_property
-}.property, {
- parse: borderRightStyle_export_parse,
- definition: borderRightStyle_export_definition,
- property: borderRightStyle_export_property
-}], [{
- parse: borderBottomStyle_export_parse,
- definition: borderBottomStyle_export_definition,
- property: borderBottomStyle_export_property
-}.property, {
- parse: borderBottomStyle_export_parse,
- definition: borderBottomStyle_export_definition,
- property: borderBottomStyle_export_property
-}], [{
- parse: borderLeftStyle_export_parse,
- definition: borderLeftStyle_export_definition,
- property: borderLeftStyle_export_property
-}.property, {
- parse: borderLeftStyle_export_parse,
- definition: borderLeftStyle_export_definition,
- property: borderLeftStyle_export_property
-}]]);
-borderStyle_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.parsePropertyValue(borderStyle_local_var_property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = external_dependency_parsers_0.resolveKeywordValue([value], {
- length: values.length
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- switch (parsedValues.length) {
- case 1:
- {
- return parsedValues;
- }
- case 2:
- {
- const [val1, val2] = parsedValues;
- if (val1 === val2) {
- return [val1];
- }
- return parsedValues;
- }
- case 3:
- {
- const [val1, val2, val3] = parsedValues;
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return parsedValues;
- }
- case 4:
- {
- const [val1, val2, val3, val4] = parsedValues;
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return [val1, val2, val3];
- }
- return parsedValues;
- }
- default:
- }
- }
-};
-borderStyle_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderStyle_local_var_property, v, "");
- } else {
- const val = borderStyle_export_parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority = !this._priorities.get(borderStyle_local_var_shorthand) && this._priorities.has(borderStyle_local_var_property) ? this._priorities.get(borderStyle_local_var_property) : "";
- this._borderSetter(borderStyle_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderStyle_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderStyle_export_property = borderStyle_local_var_property;
-var borderTopColor_export_parse, borderTopColor_export_definition, borderTopColor_export_property;
-const borderTopColor_local_var_property = "border-top-color";
-const borderTopColor_local_var_lineShorthand = "border-color";
-const borderTopColor_local_var_positionShorthand = "border-top";
-const borderTopColor_local_var_shorthand = "border";
-borderTopColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderTopColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderTopColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderTopColor_local_var_property, v, "");
- } else {
- const val = borderTopColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderTopColor_local_var_shorthand);
- const linePriority = this._priorities.get(borderTopColor_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderTopColor_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderTopColor_local_var_property) ? this._priorities.get(borderTopColor_local_var_property) : "";
- this._borderSetter(borderTopColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderTopColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderTopColor_export_property = borderTopColor_local_var_property;
-var borderRightColor_export_parse, borderRightColor_export_definition, borderRightColor_export_property;
-const borderRightColor_local_var_property = "border-right-color";
-const borderRightColor_local_var_lineShorthand = "border-color";
-const borderRightColor_local_var_positionShorthand = "border-right";
-const borderRightColor_local_var_shorthand = "border";
-borderRightColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderRightColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderRightColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderRightColor_local_var_property, v, "");
- } else {
- const val = borderRightColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderRightColor_local_var_shorthand);
- const linePriority = this._priorities.get(borderRightColor_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderRightColor_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderRightColor_local_var_property) ? this._priorities.get(borderRightColor_local_var_property) : "";
- this._borderSetter(borderRightColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderRightColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderRightColor_export_property = borderRightColor_local_var_property;
-var borderBottomColor_export_parse, borderBottomColor_export_definition, borderBottomColor_export_property;
-const borderBottomColor_local_var_property = "border-bottom-color";
-const borderBottomColor_local_var_lineShorthand = "border-color";
-const borderBottomColor_local_var_positionShorthand = "border-bottom";
-const borderBottomColor_local_var_shorthand = "border";
-borderBottomColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderBottomColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderBottomColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderBottomColor_local_var_property, v, "");
- } else {
- const val = borderBottomColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderBottomColor_local_var_shorthand);
- const linePriority = this._priorities.get(borderBottomColor_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderBottomColor_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderBottomColor_local_var_property) ? this._priorities.get(borderBottomColor_local_var_property) : "";
- this._borderSetter(borderBottomColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderBottomColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderBottomColor_export_property = borderBottomColor_local_var_property;
-var borderLeftColor_export_parse, borderLeftColor_export_definition, borderLeftColor_export_property;
-const borderLeftColor_local_var_property = "border-left-color";
-const borderLeftColor_local_var_lineShorthand = "border-color";
-const borderLeftColor_local_var_positionShorthand = "border-left";
-const borderLeftColor_local_var_shorthand = "border";
-borderLeftColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderLeftColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderLeftColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderLeftColor_local_var_property, v, "");
- } else {
- const val = borderLeftColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(borderLeftColor_local_var_shorthand);
- const linePriority = this._priorities.get(borderLeftColor_local_var_lineShorthand);
- const positionPriority = this._priorities.get(borderLeftColor_local_var_positionShorthand);
- const priority = !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(borderLeftColor_local_var_property) ? this._priorities.get(borderLeftColor_local_var_property) : "";
- this._borderSetter(borderLeftColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderLeftColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderLeftColor_export_property = borderLeftColor_local_var_property;
-var borderColor_export_shorthandFor, borderColor_export_parse, borderColor_export_definition, borderColor_export_property;
-const borderColor_local_var_property = "border-color";
-const borderColor_local_var_shorthand = "border";
-borderColor_export_shorthandFor = new Map([[{
- parse: borderTopColor_export_parse,
- definition: borderTopColor_export_definition,
- property: borderTopColor_export_property
-}.property, {
- parse: borderTopColor_export_parse,
- definition: borderTopColor_export_definition,
- property: borderTopColor_export_property
-}], [{
- parse: borderRightColor_export_parse,
- definition: borderRightColor_export_definition,
- property: borderRightColor_export_property
-}.property, {
- parse: borderRightColor_export_parse,
- definition: borderRightColor_export_definition,
- property: borderRightColor_export_property
-}], [{
- parse: borderBottomColor_export_parse,
- definition: borderBottomColor_export_definition,
- property: borderBottomColor_export_property
-}.property, {
- parse: borderBottomColor_export_parse,
- definition: borderBottomColor_export_definition,
- property: borderBottomColor_export_property
-}], [{
- parse: borderLeftColor_export_parse,
- definition: borderLeftColor_export_definition,
- property: borderLeftColor_export_property
-}.property, {
- parse: borderLeftColor_export_parse,
- definition: borderLeftColor_export_definition,
- property: borderLeftColor_export_property
-}]]);
-borderColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.parsePropertyValue(borderColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = external_dependency_parsers_0.resolveColorValue([value], {
- length: values.length
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- switch (parsedValues.length) {
- case 1:
- {
- return parsedValues;
- }
- case 2:
- {
- const [val1, val2] = parsedValues;
- if (val1 === val2) {
- return [val1];
- }
- return parsedValues;
- }
- case 3:
- {
- const [val1, val2, val3] = parsedValues;
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return parsedValues;
- }
- case 4:
- {
- const [val1, val2, val3, val4] = parsedValues;
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return [val1, val2, val3];
- }
- return parsedValues;
- }
- default:
- }
- }
-};
-borderColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderColor_local_var_property, v, "");
- } else {
- const val = borderColor_export_parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority = !this._priorities.get(borderColor_local_var_shorthand) && this._priorities.has(borderColor_local_var_property) ? this._priorities.get(borderColor_local_var_property) : "";
- this._borderSetter(borderColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderColor_export_property = borderColor_local_var_property;
-var borderTop_export_initialValues, borderTop_export_shorthandFor, borderTop_export_parse, borderTop_export_definition, borderTop_export_property;
-const borderTop_local_var_property = "border-top";
-const borderTop_local_var_shorthand = "border";
-const borderTop_local_var_subProps = {
- width: {
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
- }.property,
- style: {
- parse: borderTopStyle_export_parse,
- definition: borderTopStyle_export_definition,
- property: borderTopStyle_export_property
- }.property,
- color: {
- parse: borderTopColor_export_parse,
- definition: borderTopColor_export_definition,
- property: borderTopColor_export_property
- }.property
-};
-borderTop_export_initialValues = new Map([[{
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
-}.property, "medium"], [{
- parse: borderTopStyle_export_parse,
- definition: borderTopStyle_export_definition,
- property: borderTopStyle_export_property
-}.property, "none"], [{
- parse: borderTopColor_export_parse,
- definition: borderTopColor_export_definition,
- property: borderTopColor_export_property
-}.property, "currentcolor"]]);
-borderTop_export_shorthandFor = new Map([[{
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
-}.property, {
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
-}], [{
- parse: borderTopStyle_export_parse,
- definition: borderTopStyle_export_definition,
- property: borderTopStyle_export_property
-}.property, {
- parse: borderTopStyle_export_parse,
- definition: borderTopStyle_export_definition,
- property: borderTopStyle_export_property
-}], [{
- parse: borderTopColor_export_parse,
- definition: borderTopColor_export_definition,
- property: borderTopColor_export_property
-}.property, {
- parse: borderTopColor_export_parse,
- definition: borderTopColor_export_definition,
- property: borderTopColor_export_property
-}]]);
-borderTop_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(borderTop_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveBorderShorthandValue(value, borderTop_local_var_subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = borderTop_export_shorthandFor.keys();
- const obj = {
- [{
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
- }.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== borderTop_export_initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[{
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
- }.property] && obj[{
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
- }.property] === "medium") {
- delete obj[{
- parse: borderTopWidth_export_parse,
- definition: borderTopWidth_export_definition,
- property: borderTopWidth_export_property
- }.property];
- }
- }
- }
- }
- return obj;
- }
-};
-borderTop_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderTop_local_var_property, v, "");
- } else {
- const val = borderTop_export_parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority = !this._priorities.get(borderTop_local_var_shorthand) && this._priorities.has(borderTop_local_var_property) ? this._priorities.get(borderTop_local_var_property) : "";
- this._borderSetter(borderTop_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderTop_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderTop_export_property = borderTop_local_var_property;
-var borderRight_export_initialValues, borderRight_export_shorthandFor, borderRight_export_parse, borderRight_export_definition, borderRight_export_property;
-const borderRight_local_var_property = "border-right";
-const borderRight_local_var_shorthand = "border";
-const borderRight_local_var_subProps = {
- width: {
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
- }.property,
- style: {
- parse: borderRightStyle_export_parse,
- definition: borderRightStyle_export_definition,
- property: borderRightStyle_export_property
- }.property,
- color: {
- parse: borderRightColor_export_parse,
- definition: borderRightColor_export_definition,
- property: borderRightColor_export_property
- }.property
-};
-borderRight_export_initialValues = new Map([[{
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
-}.property, "medium"], [{
- parse: borderRightStyle_export_parse,
- definition: borderRightStyle_export_definition,
- property: borderRightStyle_export_property
-}.property, "none"], [{
- parse: borderRightColor_export_parse,
- definition: borderRightColor_export_definition,
- property: borderRightColor_export_property
-}.property, "currentcolor"]]);
-borderRight_export_shorthandFor = new Map([[{
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
-}.property, {
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
-}], [{
- parse: borderRightStyle_export_parse,
- definition: borderRightStyle_export_definition,
- property: borderRightStyle_export_property
-}.property, {
- parse: borderRightStyle_export_parse,
- definition: borderRightStyle_export_definition,
- property: borderRightStyle_export_property
-}], [{
- parse: borderRightColor_export_parse,
- definition: borderRightColor_export_definition,
- property: borderRightColor_export_property
-}.property, {
- parse: borderRightColor_export_parse,
- definition: borderRightColor_export_definition,
- property: borderRightColor_export_property
-}]]);
-borderRight_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(borderRight_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveBorderShorthandValue(value, borderRight_local_var_subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = borderRight_export_shorthandFor.keys();
- const obj = {
- [{
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
- }.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== borderRight_export_initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[{
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
- }.property] && obj[{
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
- }.property] === "medium") {
- delete obj[{
- parse: borderRightWidth_export_parse,
- definition: borderRightWidth_export_definition,
- property: borderRightWidth_export_property
- }.property];
- }
- }
- }
- }
- return obj;
- }
-};
-borderRight_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderRight_local_var_property, v, "");
- } else {
- const val = borderRight_export_parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority = !this._priorities.get(borderRight_local_var_shorthand) && this._priorities.has(borderRight_local_var_property) ? this._priorities.get(borderRight_local_var_property) : "";
- this._borderSetter(borderRight_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderRight_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderRight_export_property = borderRight_local_var_property;
-var borderBottom_export_initialValues, borderBottom_export_shorthandFor, borderBottom_export_parse, borderBottom_export_definition, borderBottom_export_property;
-const borderBottom_local_var_property = "border-bottom";
-const borderBottom_local_var_shorthand = "border";
-const borderBottom_local_var_subProps = {
- width: {
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
- }.property,
- style: {
- parse: borderBottomStyle_export_parse,
- definition: borderBottomStyle_export_definition,
- property: borderBottomStyle_export_property
- }.property,
- color: {
- parse: borderBottomColor_export_parse,
- definition: borderBottomColor_export_definition,
- property: borderBottomColor_export_property
- }.property
-};
-borderBottom_export_initialValues = new Map([[{
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
-}.property, "medium"], [{
- parse: borderBottomStyle_export_parse,
- definition: borderBottomStyle_export_definition,
- property: borderBottomStyle_export_property
-}.property, "none"], [{
- parse: borderBottomColor_export_parse,
- definition: borderBottomColor_export_definition,
- property: borderBottomColor_export_property
-}.property, "currentcolor"]]);
-borderBottom_export_shorthandFor = new Map([[{
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
-}.property, {
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
-}], [{
- parse: borderBottomStyle_export_parse,
- definition: borderBottomStyle_export_definition,
- property: borderBottomStyle_export_property
-}.property, {
- parse: borderBottomStyle_export_parse,
- definition: borderBottomStyle_export_definition,
- property: borderBottomStyle_export_property
-}], [{
- parse: borderBottomColor_export_parse,
- definition: borderBottomColor_export_definition,
- property: borderBottomColor_export_property
-}.property, {
- parse: borderBottomColor_export_parse,
- definition: borderBottomColor_export_definition,
- property: borderBottomColor_export_property
-}]]);
-borderBottom_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(borderBottom_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveBorderShorthandValue(value, borderBottom_local_var_subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = borderBottom_export_shorthandFor.keys();
- const obj = {
- [{
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
- }.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== borderBottom_export_initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[{
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
- }.property] && obj[{
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
- }.property] === "medium") {
- delete obj[{
- parse: borderBottomWidth_export_parse,
- definition: borderBottomWidth_export_definition,
- property: borderBottomWidth_export_property
- }.property];
- }
- }
- }
- }
- return obj;
- }
-};
-borderBottom_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderBottom_local_var_property, v, "");
- } else {
- const val = borderBottom_export_parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority = !this._priorities.get(borderBottom_local_var_shorthand) && this._priorities.has(borderBottom_local_var_property) ? this._priorities.get(borderBottom_local_var_property) : "";
- this._borderSetter(borderBottom_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderBottom_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderBottom_export_property = borderBottom_local_var_property;
-var borderLeft_export_initialValues, borderLeft_export_shorthandFor, borderLeft_export_parse, borderLeft_export_definition, borderLeft_export_property;
-const borderLeft_local_var_property = "border-left";
-const borderLeft_local_var_shorthand = "border";
-const borderLeft_local_var_subProps = {
- width: {
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
- }.property,
- style: {
- parse: borderLeftStyle_export_parse,
- definition: borderLeftStyle_export_definition,
- property: borderLeftStyle_export_property
- }.property,
- color: {
- parse: borderLeftColor_export_parse,
- definition: borderLeftColor_export_definition,
- property: borderLeftColor_export_property
- }.property
-};
-borderLeft_export_initialValues = new Map([[{
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
-}.property, "medium"], [{
- parse: borderLeftStyle_export_parse,
- definition: borderLeftStyle_export_definition,
- property: borderLeftStyle_export_property
-}.property, "none"], [{
- parse: borderLeftColor_export_parse,
- definition: borderLeftColor_export_definition,
- property: borderLeftColor_export_property
-}.property, "currentcolor"]]);
-borderLeft_export_shorthandFor = new Map([[{
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
-}.property, {
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
-}], [{
- parse: borderLeftStyle_export_parse,
- definition: borderLeftStyle_export_definition,
- property: borderLeftStyle_export_property
-}.property, {
- parse: borderLeftStyle_export_parse,
- definition: borderLeftStyle_export_definition,
- property: borderLeftStyle_export_property
-}], [{
- parse: borderLeftColor_export_parse,
- definition: borderLeftColor_export_definition,
- property: borderLeftColor_export_property
-}.property, {
- parse: borderLeftColor_export_parse,
- definition: borderLeftColor_export_definition,
- property: borderLeftColor_export_property
-}]]);
-borderLeft_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(borderLeft_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveBorderShorthandValue(value, borderLeft_local_var_subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = borderLeft_export_shorthandFor.keys();
- const obj = {
- [{
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
- }.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== borderLeft_export_initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[{
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
- }.property] && obj[{
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
- }.property] === "medium") {
- delete obj[{
- parse: borderLeftWidth_export_parse,
- definition: borderLeftWidth_export_definition,
- property: borderLeftWidth_export_property
- }.property];
- }
- }
- }
- }
- return obj;
- }
-};
-borderLeft_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(borderLeft_local_var_property, v, "");
- } else {
- const val = borderLeft_export_parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority = !this._priorities.get(borderLeft_local_var_shorthand) && this._priorities.has(borderLeft_local_var_property) ? this._priorities.get(borderLeft_local_var_property) : "";
- this._borderSetter(borderLeft_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderLeft_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderLeft_export_property = borderLeft_local_var_property;
-var border_export_initialValues, border_export_shorthandFor, border_export_positionShorthandFor, border_export_parse, border_export_definition, border_export_property;
-const border_local_var_property = "border";
-const border_local_var_subProps = {
- width: {
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
- }.property,
- style: {
- shorthandFor: borderStyle_export_shorthandFor,
- parse: borderStyle_export_parse,
- definition: borderStyle_export_definition,
- property: borderStyle_export_property
- }.property,
- color: {
- shorthandFor: borderColor_export_shorthandFor,
- parse: borderColor_export_parse,
- definition: borderColor_export_definition,
- property: borderColor_export_property
- }.property
-};
-border_export_initialValues = new Map([[{
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
-}.property, "medium"], [{
- shorthandFor: borderStyle_export_shorthandFor,
- parse: borderStyle_export_parse,
- definition: borderStyle_export_definition,
- property: borderStyle_export_property
-}.property, "none"], [{
- shorthandFor: borderColor_export_shorthandFor,
- parse: borderColor_export_parse,
- definition: borderColor_export_definition,
- property: borderColor_export_property
-}.property, "currentcolor"]]);
-border_export_shorthandFor = new Map([[{
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
-}.property, {
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
-}], [{
- shorthandFor: borderStyle_export_shorthandFor,
- parse: borderStyle_export_parse,
- definition: borderStyle_export_definition,
- property: borderStyle_export_property
-}.property, {
- shorthandFor: borderStyle_export_shorthandFor,
- parse: borderStyle_export_parse,
- definition: borderStyle_export_definition,
- property: borderStyle_export_property
-}], [{
- shorthandFor: borderColor_export_shorthandFor,
- parse: borderColor_export_parse,
- definition: borderColor_export_definition,
- property: borderColor_export_property
-}.property, {
- shorthandFor: borderColor_export_shorthandFor,
- parse: borderColor_export_parse,
- definition: borderColor_export_definition,
- property: borderColor_export_property
-}]]);
-border_export_positionShorthandFor = new Map([[{
- initialValues: borderTop_export_initialValues,
- shorthandFor: borderTop_export_shorthandFor,
- parse: borderTop_export_parse,
- definition: borderTop_export_definition,
- property: borderTop_export_property
-}.property, {
- initialValues: borderTop_export_initialValues,
- shorthandFor: borderTop_export_shorthandFor,
- parse: borderTop_export_parse,
- definition: borderTop_export_definition,
- property: borderTop_export_property
-}], [{
- initialValues: borderRight_export_initialValues,
- shorthandFor: borderRight_export_shorthandFor,
- parse: borderRight_export_parse,
- definition: borderRight_export_definition,
- property: borderRight_export_property
-}.property, {
- initialValues: borderRight_export_initialValues,
- shorthandFor: borderRight_export_shorthandFor,
- parse: borderRight_export_parse,
- definition: borderRight_export_definition,
- property: borderRight_export_property
-}], [{
- initialValues: borderBottom_export_initialValues,
- shorthandFor: borderBottom_export_shorthandFor,
- parse: borderBottom_export_parse,
- definition: borderBottom_export_definition,
- property: borderBottom_export_property
-}.property, {
- initialValues: borderBottom_export_initialValues,
- shorthandFor: borderBottom_export_shorthandFor,
- parse: borderBottom_export_parse,
- definition: borderBottom_export_definition,
- property: borderBottom_export_property
-}], [{
- initialValues: borderLeft_export_initialValues,
- shorthandFor: borderLeft_export_shorthandFor,
- parse: borderLeft_export_parse,
- definition: borderLeft_export_definition,
- property: borderLeft_export_property
-}.property, {
- initialValues: borderLeft_export_initialValues,
- shorthandFor: borderLeft_export_shorthandFor,
- parse: borderLeft_export_parse,
- definition: borderLeft_export_definition,
- property: borderLeft_export_property
-}]]);
-border_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "" || external_dependency_parsers_0.hasVarFunc(v)) {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(border_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveBorderShorthandValue(value, border_local_var_subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = border_export_shorthandFor.keys();
- const obj = {
- [{
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
- }.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== border_export_initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[{
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
- }.property] && obj[{
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
- }.property] === "medium") {
- delete obj[{
- shorthandFor: borderWidth_export_shorthandFor,
- parse: borderWidth_export_parse,
- definition: borderWidth_export_definition,
- property: borderWidth_export_property
- }.property];
- }
- }
- }
- }
- return obj;
- }
-};
-border_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._borderSetter(border_local_var_property, v, "");
- } else {
- const val = border_export_parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority = this._priorities.get(border_local_var_property) ?? "";
- this._borderSetter(border_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(border_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-border_export_property = border_local_var_property;
-var borderCollapse_export_parse, borderCollapse_export_definition, borderCollapse_export_property;
-const borderCollapse_local_var_property = "border-collapse";
-borderCollapse_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderCollapse_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderCollapse_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(borderCollapse_local_var_property, v);
- } else {
- const val = borderCollapse_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(borderCollapse_local_var_property) ?? "";
- this._setProperty(borderCollapse_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderCollapse_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderCollapse_export_property = borderCollapse_local_var_property;
-var borderSpacing_export_parse, borderSpacing_export_definition, borderSpacing_export_property;
-const borderSpacing_local_var_property = "border-spacing";
-borderSpacing_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(borderSpacing_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- switch (value.length) {
- case 1:
- {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- }
- case 2:
- {
- const [part1, part2] = value;
- const val1 = external_dependency_parsers_0.resolveNumericValue([part1], {
- type: "length"
- });
- const val2 = external_dependency_parsers_0.resolveNumericValue([part2], {
- type: "length"
- });
- if (val1 && val2) {
- return `${val1} ${val2}`;
- }
- break;
- }
- default:
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-borderSpacing_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(borderSpacing_local_var_property, v);
- } else {
- const val = borderSpacing_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(borderSpacing_local_var_property) ?? "";
- this._setProperty(borderSpacing_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(borderSpacing_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-borderSpacing_export_property = borderSpacing_local_var_property;
-var bottom_export_parse, bottom_export_definition, bottom_export_property;
-const bottom_local_var_property = "bottom";
-bottom_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(bottom_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-bottom_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(bottom_local_var_property, v);
- } else {
- const val = bottom_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(bottom_local_var_property) ?? "";
- this._setProperty(bottom_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(bottom_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-bottom_export_property = bottom_local_var_property;
-var clear_export_parse, clear_export_definition, clear_export_property;
-const clear_local_var_property = "clear";
-clear_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(clear_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-clear_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(clear_local_var_property, v);
- } else {
- const val = clear_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(clear_local_var_property) ?? "";
- this._setProperty(clear_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(clear_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-clear_export_property = clear_local_var_property;
-var clip_export_parse, clip_export_definition, clip_export_property;
-// deprecated
-// @see https://drafts.csswg.org/css-masking-1/#clip-property
-
-const clip_local_var_property = "clip";
-clip_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const value = external_dependency_parsers_0.parsePropertyValue(clip_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const [{
- name,
- type,
- value: itemValue
- }] = value;
- switch (type) {
- case AST_TYPES.FUNCTION:
- {
- const values = external_dependency_parsers_0.splitValue(itemValue, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const item of values) {
- const parsedValue = external_dependency_parsers_0.parseCSS(item, {
- context: "value"
- }, true);
- const val = external_dependency_parsers_0.resolveNumericValue(parsedValue.children, {
- type: "length"
- });
- if (val) {
- parsedValues.push(val);
- } else {
- return;
- }
- }
- return `${name}(${parsedValues.join(", ")})`;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER:
- {
- return name;
- }
- default:
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-clip_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(clip_local_var_property, v);
- } else {
- const val = clip_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(clip_local_var_property) ?? "";
- this._setProperty(clip_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(clip_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-clip_export_property = clip_local_var_property;
-var color_export_parse, color_export_definition, color_export_property;
-const color_local_var_property = "color";
-color_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(color_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-color_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(color_local_var_property, v);
- } else {
- const val = color_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(color_local_var_property) ?? "";
- this._setProperty(color_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(color_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-color_export_property = color_local_var_property;
-var display_export_parse, display_export_definition, display_export_property;
-const display_local_var_property = "display";
-
-/* keywords */
-const display_local_var_displayOutside = ["block", "inline", "run-in"];
-const display_local_var_displayFlow = ["flow", "flow-root"];
-display_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const value = external_dependency_parsers_0.parsePropertyValue(display_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- switch (value.length) {
- case 1:
- {
- const [{
- name,
- type
- }] = value;
- switch (type) {
- case AST_TYPES.GLOBAL_KEYWORD:
- {
- return name;
- }
- case AST_TYPES.IDENTIFIER:
- {
- if (name === "flow") {
- return "block";
- }
- return name;
- }
- default:
- }
- break;
- }
- case 2:
- {
- const [part1, part2] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
- if (val1 && val2) {
- let outerValue = "";
- let innerValue = "";
- if (val1 === "list-item") {
- outerValue = val2;
- innerValue = val1;
- } else if (val2 === "list-item") {
- outerValue = val1;
- innerValue = val2;
- } else if (display_local_var_displayOutside.includes(val1)) {
- outerValue = val1;
- innerValue = val2;
- } else if (display_local_var_displayOutside.includes(val2)) {
- outerValue = val2;
- innerValue = val1;
- }
- if (innerValue === "list-item") {
- switch (outerValue) {
- case "block":
- case "flow":
- {
- return innerValue;
- }
- case "flow-root":
- case "inline":
- case "run-in":
- {
- return `${outerValue} ${innerValue}`;
- }
- default:
- }
- } else if (outerValue === "block") {
- switch (innerValue) {
- case "flow":
- {
- return outerValue;
- }
- case "flow-root":
- case "flex":
- case "grid":
- case "table":
- {
- return innerValue;
- }
- case "ruby":
- {
- return `${outerValue} ${innerValue}`;
- }
- default:
- }
- } else if (outerValue === "inline") {
- switch (innerValue) {
- case "flow":
- {
- return outerValue;
- }
- case "flow-root":
- {
- return `${outerValue}-block`;
- }
- case "flex":
- case "grid":
- case "table":
- {
- return `${outerValue}-${innerValue}`;
- }
- case "ruby":
- {
- return innerValue;
- }
- default:
- }
- } else if (outerValue === "run-in") {
- switch (innerValue) {
- case "flow":
- {
- return outerValue;
- }
- case "flow-root":
- case "flex":
- case "grid":
- case "table":
- case "ruby":
- {
- return `${outerValue} ${innerValue}`;
- }
- default:
- }
- }
- }
- break;
- }
- case 3:
- {
- const [part1, part2, part3] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
- const val3 = part3.type === AST_TYPES.IDENTIFIER && part3.name;
- if (val1 && val2 && part3) {
- let outerValue = "";
- let flowValue = "";
- let listItemValue = "";
- if (val1 === "list-item") {
- listItemValue = val1;
- if (display_local_var_displayFlow.includes(val2)) {
- flowValue = val2;
- outerValue = val3;
- } else if (display_local_var_displayFlow.includes(val3)) {
- flowValue = val3;
- outerValue = val2;
- }
- } else if (val2 === "list-item") {
- listItemValue = val2;
- if (display_local_var_displayFlow.includes(val1)) {
- flowValue = val1;
- outerValue = val3;
- } else if (display_local_var_displayFlow.includes(val3)) {
- flowValue = val3;
- outerValue = val1;
- }
- } else if (val3 === "list-item") {
- listItemValue = val3;
- if (display_local_var_displayFlow.includes(val1)) {
- flowValue = val1;
- outerValue = val2;
- } else if (display_local_var_displayFlow.includes(val2)) {
- flowValue = val2;
- outerValue = val1;
- }
- }
- if (outerValue && flowValue && listItemValue) {
- switch (outerValue) {
- case "block":
- {
- if (flowValue === "flow") {
- return listItemValue;
- }
- return `${flowValue} ${listItemValue}`;
- }
- case "inline":
- case "run-in":
- {
- if (flowValue === "flow") {
- return `${outerValue} ${listItemValue}`;
- }
- return `${outerValue} ${flowValue} ${listItemValue}`;
- }
- }
- }
- }
- break;
- }
- default:
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-display_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(display_local_var_property, v);
- } else {
- const val = display_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(display_local_var_property) ?? "";
- this._setProperty(display_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(display_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-display_export_property = display_local_var_property;
-var flexGrow_export_parse, flexGrow_export_definition, flexGrow_export_property;
-const flexGrow_local_var_property = "flex-grow";
-const flexGrow_local_var_shorthand = "flex";
-flexGrow_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue("flex-grow", v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-flexGrow_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(flexGrow_local_var_shorthand, "");
- this._setProperty(flexGrow_local_var_property, v);
- } else {
- const val = flexGrow_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(flexGrow_local_var_shorthand) && this._priorities.has(flexGrow_local_var_property) ? this._priorities.get(flexGrow_local_var_property) : "";
- this._flexBoxSetter(flexGrow_local_var_property, val, priority, flexGrow_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(flexGrow_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-flexGrow_export_property = flexGrow_local_var_property;
-var flexShrink_export_parse, flexShrink_export_definition, flexShrink_export_property;
-const flexShrink_local_var_property = "flex-shrink";
-const flexShrink_local_var_shorthand = "flex";
-flexShrink_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(flexShrink_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-flexShrink_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(flexShrink_local_var_shorthand, "");
- this._setProperty(flexShrink_local_var_property, v);
- } else {
- const val = flexShrink_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(flexShrink_local_var_shorthand) && this._priorities.has(flexShrink_local_var_property) ? this._priorities.get(flexShrink_local_var_property) : "";
- this._flexBoxSetter(flexShrink_local_var_property, val, priority, flexShrink_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(flexShrink_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-flexShrink_export_property = flexShrink_local_var_property;
-var flexBasis_export_parse, flexBasis_export_definition, flexBasis_export_property;
-const flexBasis_local_var_property = "flex-basis";
-const flexBasis_local_var_shorthand = "flex";
-flexBasis_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(flexBasis_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-flexBasis_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(flexBasis_local_var_shorthand, "");
- this._setProperty(flexBasis_local_var_property, v);
- } else {
- const val = flexBasis_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(flexBasis_local_var_shorthand) && this._priorities.has(flexBasis_local_var_property) ? this._priorities.get(flexBasis_local_var_property) : "";
- this._flexBoxSetter(flexBasis_local_var_property, val, priority, flexBasis_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(flexBasis_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-flexBasis_export_property = flexBasis_local_var_property;
-var flex_export_initialValues, flex_export_shorthandFor, flex_export_parse, flex_export_definition, flex_export_property;
-const flex_local_var_property = "flex";
-flex_export_initialValues = new Map([[{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
-}.property, "0"], [{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
-}.property, "1"], [{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
-}.property, "auto"]]);
-flex_export_shorthandFor = new Map([[{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
-}.property, {
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
-}], [{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
-}.property, {
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
-}], [{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
-}.property, {
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
-}]]);
-flex_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const value = external_dependency_parsers_0.parsePropertyValue(flex_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- const flex = {
- [{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
- }.property]: "1",
- [{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
- }.property]: "1",
- [{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property]: "0%"
- };
- if (value.length === 1) {
- const [{
- isNumber,
- name,
- type,
- unit,
- value: itemValue
- }] = value;
- switch (type) {
- case AST_TYPES.CALC:
- {
- if (isNumber) {
- flex[{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
- }.property] = `${name}(${itemValue})`;
- return flex;
- }
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${name}(${itemValue})`;
- return flex;
- }
- case AST_TYPES.DIMENSION:
- {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${itemValue}${unit}`;
- return flex;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- {
- return name;
- }
- case AST_TYPES.IDENTIFIER:
- {
- if (name === "none") {
- return {
- [{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
- }.property]: "0",
- [{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
- }.property]: "0",
- [{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property]: "auto"
- };
- }
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = name;
- return flex;
- }
- case AST_TYPES.NUMBER:
- {
- flex[{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
- }.property] = itemValue;
- return flex;
- }
- case AST_TYPES.PERCENTAGE:
- {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${itemValue}%`;
- return flex;
- }
- default:
- }
- } else {
- const [val1, val2, val3] = value;
- if (val1.type === AST_TYPES.CALC && val1.isNumber) {
- flex[{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
- }.property] = `${val1.name}(${val1.value})`;
- } else if (val1.type === AST_TYPES.NUMBER) {
- flex[{
- parse: flexGrow_export_parse,
- definition: flexGrow_export_definition,
- property: flexGrow_export_property
- }.property] = val1.value;
- } else {
- return;
- }
- if (val3) {
- if (val2.type === AST_TYPES.CALC && val2.isNumber) {
- flex[{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
- }.property] = `${val2.name}(${val2.value})`;
- } else if (val2.type === AST_TYPES.NUMBER) {
- flex[{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
- }.property] = val2.value;
- } else {
- return;
- }
- if (val3.type === AST_TYPES.GLOBAL_KEYWORD || val3.type === AST_TYPES.IDENTIFIER) {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = val3.name;
- } else if (val3.type === AST_TYPES.CALC && !val3.isNumber) {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${val3.name}(${val3.value})`;
- } else if (val3.type === AST_TYPES.DIMENSION) {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${val3.value}${val3.unit}`;
- } else if (val3.type === AST_TYPES.PERCENTAGE) {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${val3.value}%`;
- } else {
- return;
- }
- } else {
- switch (val2.type) {
- case AST_TYPES.CALC:
- {
- if (val2.isNumber) {
- flex[{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
- }.property] = `${val2.name}(${val2.value})`;
- } else {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${val2.name}(${val2.value})`;
- }
- break;
- }
- case AST_TYPES.DIMENSION:
- {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${val2.value}${val2.unit}`;
- break;
- }
- case AST_TYPES.NUMBER:
- {
- flex[{
- parse: flexShrink_export_parse,
- definition: flexShrink_export_definition,
- property: flexShrink_export_property
- }.property] = val2.value;
- break;
- }
- case AST_TYPES.PERCENTAGE:
- {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = `${val2.value}%`;
- break;
- }
- case AST_TYPES.IDENTIFIER:
- {
- flex[{
- parse: flexBasis_export_parse,
- definition: flexBasis_export_definition,
- property: flexBasis_export_property
- }.property] = val2.name;
- break;
- }
- default:
- {
- return;
- }
- }
- }
- return flex;
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-flex_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- for (const [longhand] of flex_export_shorthandFor) {
- this._setProperty(longhand, "");
- }
- this._setProperty(flex_local_var_property, v);
- } else {
- const val = flex_export_parse(v, {
- globalObject: this._global
- });
- const priority = this._priorities.get(flex_local_var_property) ?? "";
- if (typeof val === "string") {
- for (const [longhand] of flex_export_shorthandFor) {
- this._setProperty(longhand, val, priority);
- }
- this._setProperty(flex_local_var_property, val, priority);
- } else if (val) {
- const values = [];
- for (const [longhand, value] of Object.entries(val)) {
- values.push(value);
- this._setProperty(longhand, value, priority);
- }
- this._setProperty(flex_local_var_property, values.join(" "), priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(flex_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-flex_export_property = flex_local_var_property;
-var float_export_parse, float_export_definition, float_export_property;
-const float_local_var_property = "float";
-float_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(float_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-float_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(float_local_var_property, v);
- } else {
- const val = float_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(float_local_var_property) ?? "";
- this._setProperty(float_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(float_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-float_export_property = float_local_var_property;
-var floodColor_export_parse, floodColor_export_definition, floodColor_export_property;
-const floodColor_local_var_property = "flood-color";
-floodColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(floodColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-floodColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(floodColor_local_var_property, v);
- } else {
- const val = floodColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(floodColor_local_var_property) ?? "";
- this._setProperty(floodColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(floodColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-floodColor_export_property = floodColor_local_var_property;
-var fontStyle_export_parse, fontStyle_export_definition, fontStyle_export_property;
-const fontStyle_local_var_property = "font-style";
-const fontStyle_local_var_shorthand = "font";
-fontStyle_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const value = external_dependency_parsers_0.parsePropertyValue(fontStyle_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- if (value.length === 1) {
- const [{
- name,
- type
- }] = value;
- switch (type) {
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER:
- {
- return name;
- }
- default:
- }
- } else if (value.length === 2) {
- const [part1, part2] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = external_dependency_parsers_0.resolveNumericValue([part2], {
- type: "angle"
- });
- if (val1 && val1 === "oblique" && val2) {
- return `${val1} ${val2}`;
- }
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-fontStyle_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(fontStyle_local_var_shorthand, "");
- this._setProperty(fontStyle_local_var_property, v);
- } else {
- const val = fontStyle_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(fontStyle_local_var_shorthand) && this._priorities.has(fontStyle_local_var_property) ? this._priorities.get(fontStyle_local_var_property) : "";
- this._setProperty(fontStyle_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(fontStyle_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-fontStyle_export_property = fontStyle_local_var_property;
-var fontVariant_export_parse, fontVariant_export_definition, fontVariant_export_property;
-const fontVariant_local_var_property = "font-variant";
-const fontVariant_local_var_shorthand = "font";
-fontVariant_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.splitValue(v);
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(fontVariant_local_var_property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveFunctionValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- if (parsedValues.length > 1) {
- if (parsedValues.includes("normal") || parsedValues.includes("none")) {
- return;
- }
- }
- return parsedValues.join(" ");
- }
-};
-fontVariant_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(fontVariant_local_var_shorthand, "");
- this._setProperty(fontVariant_local_var_property, v);
- } else {
- const val = fontVariant_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(fontVariant_local_var_shorthand) && this._priorities.has(fontVariant_local_var_property) ? this._priorities.get(fontVariant_local_var_property) : "";
- this._setProperty(fontVariant_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(fontVariant_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-fontVariant_export_property = fontVariant_local_var_property;
-var fontWeight_export_parse, fontWeight_export_definition, fontWeight_export_property;
-const fontWeight_local_var_property = "font-weight";
-const fontWeight_local_var_shorthand = "font";
-fontWeight_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(fontWeight_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = external_dependency_parsers_0.resolveNumericValue(value, {
- min: 1,
- max: 1000
- });
- if (!parsedValue) {
- return;
- }
- return parsedValue;
- } else if (typeof value === "string") {
- return value;
- }
-};
-fontWeight_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(fontWeight_local_var_shorthand, "");
- this._setProperty(fontWeight_local_var_property, v);
- } else {
- const val = fontWeight_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(fontWeight_local_var_shorthand) && this._priorities.has(fontWeight_local_var_property) ? this._priorities.get(fontWeight_local_var_property) : "";
- this._setProperty(fontWeight_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(fontWeight_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-fontWeight_export_property = fontWeight_local_var_property;
-var fontSize_export_parse, fontSize_export_definition, fontSize_export_property;
-const fontSize_local_var_property = "font-size";
-const fontSize_local_var_shorthand = "font";
-fontSize_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(fontSize_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-fontSize_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(fontSize_local_var_shorthand, "");
- this._setProperty(fontSize_local_var_property, v);
- } else {
- const val = fontSize_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(fontSize_local_var_shorthand) && this._priorities.has(fontSize_local_var_property) ? this._priorities.get(fontSize_local_var_property) : "";
- this._setProperty(fontSize_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(fontSize_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-fontSize_export_property = fontSize_local_var_property;
-var lineHeight_export_parse, lineHeight_export_definition, lineHeight_export_property;
-const lineHeight_local_var_property = "line-height";
-const lineHeight_local_var_shorthand = "font";
-lineHeight_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(lineHeight_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-lineHeight_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(lineHeight_local_var_shorthand, "");
- this._setProperty(lineHeight_local_var_property, v);
- } else {
- const val = lineHeight_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(lineHeight_local_var_shorthand) && this._priorities.has(lineHeight_local_var_property) ? this._priorities.get(lineHeight_local_var_property) : "";
- this._setProperty(lineHeight_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(lineHeight_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-lineHeight_export_property = lineHeight_local_var_property;
-var fontFamily_export_parse, fontFamily_export_definition, fontFamily_export_property;
-const fontFamily_local_var_property = "font-family";
-const fontFamily_local_var_shorthand = "font";
-fontFamily_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const values = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = external_dependency_parsers_0.parsePropertyValue(fontFamily_local_var_property, val, {
- globalObject,
- caseSensitive: true,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- if (value.length === 1) {
- const [{
- name,
- type,
- value: itemValue
- }] = value;
- switch (type) {
- case AST_TYPES.FUNCTION:
- {
- parsedValues.push(`${name}(${itemValue})`);
- break;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER:
- {
- if (name === "undefined") {
- return;
- }
- parsedValues.push(name);
- break;
- }
- case "String":
- {
- const parsedValue = itemValue.replaceAll("\\", "").replaceAll('"', '\\"');
- parsedValues.push(`"${parsedValue}"`);
- break;
- }
- default:
- {
- return;
- }
- }
- } else {
- const parts = [];
- for (const item of value) {
- const {
- name,
- type
- } = item;
- if (type !== AST_TYPES.IDENTIFIER) {
- return;
- }
- parts.push(name);
- }
- const parsedValue = parts.join(" ").replaceAll("\\", "").replaceAll('"', '\\"');
- parsedValues.push(`"${parsedValue}"`);
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- } else {
- return;
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-fontFamily_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(fontFamily_local_var_shorthand, "");
- this._setProperty(fontFamily_local_var_property, v);
- } else {
- const val = fontFamily_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(fontFamily_local_var_shorthand) && this._priorities.has(fontFamily_local_var_property) ? this._priorities.get(fontFamily_local_var_property) : "";
- this._setProperty(fontFamily_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(fontFamily_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-fontFamily_export_property = fontFamily_local_var_property;
-var font_export_shorthandFor, font_export_parse, font_export_definition, font_export_property;
-const font_local_var_property = "font";
-font_export_shorthandFor = new Map([[{
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
-}.property, {
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
-}], [{
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
-}.property, {
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
-}], [{
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
-}.property, {
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
-}], [{
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
-}.property, {
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
-}], [{
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
-}.property, {
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
-}], [{
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
-}.property, {
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
-}]]);
-font_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- } else if (external_dependency_parsers_0.hasCalcFunc(v)) {
- v = external_dependency_parsers_0.resolveCalc(v);
- }
- if (!external_dependency_parsers_0.isValidPropertyValue(font_local_var_property, v)) {
- return;
- }
- const {
- AST_TYPES
- } = external_dependency_parsers_0;
- const [fontBlock, ...families] = external_dependency_parsers_0.splitValue(v, {
- delimiter: ","
- });
- const [fontBlockA, fontBlockB] = external_dependency_parsers_0.splitValue(fontBlock, {
- delimiter: "/"
- });
- const font = {
- [{
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
- }.property]: "normal",
- [{
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.property]: "normal",
- [{
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
- }.property]: "normal"
- };
- const fontFamilies = new Set();
- if (fontBlockB) {
- const [lineB, ...familiesB] = fontBlockB.trim().split(" ");
- if (!lineB || !familiesB.length) {
- return;
- }
- const lineHeightB = {
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
- }.parse(lineB, {
- global
- });
- if (typeof lineHeightB !== "string") {
- return;
- }
- const familyB = {
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
- }.parse(familiesB.join(" "), {
- globalObject,
- caseSensitive: true
- });
- if (typeof familyB === "string") {
- fontFamilies.add(familyB);
- } else {
- return;
- }
- const parts = external_dependency_parsers_0.splitValue(fontBlockA.trim());
- const properties = [{
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
- }.property, {
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.property, {
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
- }.property, {
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
- }.property];
- for (const part of parts) {
- if (part === "normal") {
- continue;
- } else {
- for (const longhand of properties) {
- switch (longhand) {
- case {
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
- }.property:
- {
- const parsedValue = {
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
- }.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- font[longhand] = parsedValue;
- }
- break;
- }
- case {
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
- }.property:
- case {
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
- }.property:
- {
- if (font[longhand] === "normal") {
- const longhandItem = font_export_shorthandFor.get(longhand);
- const parsedValue = longhandItem.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- font[longhand] = parsedValue;
- }
- }
- break;
- }
- case {
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.property:
- {
- if (font[longhand] === "normal") {
- const parsedValue = {
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- if (parsedValue === "small-cap") {
- font[longhand] = parsedValue;
- } else if (parsedValue !== "normal") {
- return;
- }
- }
- }
- break;
- }
- default:
- }
- }
- }
- }
- if (Object.hasOwn(font, {
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
- }.property)) {
- font[{
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
- }.property] = lineHeightB;
- } else {
- return;
- }
- } else {
- const revParts = external_dependency_parsers_0.splitValue(fontBlockA.trim()).toReversed();
- if (revParts.length === 1) {
- const [part] = revParts;
- const value = external_dependency_parsers_0.parsePropertyValue(font_local_var_property, part, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const [{
- name,
- type
- }] = value;
- if (type === AST_TYPES.GLOBAL_KEYWORD) {
- return {
- [{
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
- }.property]: name,
- [{
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.property]: name,
- [{
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
- }.property]: name,
- [{
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
- }.property]: name,
- [{
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
- }.property]: name,
- [{
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
- }.property]: name
- };
- }
- }
- return;
- }
- const properties = [{
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
- }.property, {
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.property, {
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
- }.property, {
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
- }.property];
- for (const longhand of properties) {
- font[longhand] = "normal";
- }
- const revFontFamily = [];
- let fontSizeA;
- for (const part of revParts) {
- if (fontSizeA) {
- if (/^normal$/i.test(part)) {
- continue;
- } else {
- for (const longhand of properties) {
- switch (longhand) {
- case {
- parse: fontStyle_export_parse,
- definition: fontStyle_export_definition,
- property: fontStyle_export_property
- }.property:
- case {
- parse: fontWeight_export_parse,
- definition: fontWeight_export_definition,
- property: fontWeight_export_property
- }.property:
- case {
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
- }.property:
- {
- if (font[longhand] === "normal") {
- const longhandItem = font_export_shorthandFor.get(longhand);
- const parsedValue = longhandItem.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- font[longhand] = parsedValue;
- }
- }
- break;
- }
- case {
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.property:
- {
- if (font[longhand] === "normal") {
- const parsedValue = {
- parse: fontVariant_export_parse,
- definition: fontVariant_export_definition,
- property: fontVariant_export_property
- }.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- if (parsedValue === "small-cap") {
- font[longhand] = parsedValue;
- } else if (parsedValue !== "normal") {
- return;
- }
- }
- }
- break;
- }
- default:
- }
- }
- }
- } else {
- const parsedFontSize = {
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
- }.parse(part, {
- globalObject
- });
- if (typeof parsedFontSize === "string") {
- fontSizeA = parsedFontSize;
- } else {
- const parsedFontFamily = {
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
- }.parse(part, {
- globalObject,
- caseSensitive: true
- });
- if (typeof parsedFontFamily === "string") {
- revFontFamily.push(parsedFontFamily);
- } else {
- return;
- }
- }
- }
- }
- const family = {
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
- }.parse(revFontFamily.toReversed().join(" "), {
- globalObject,
- caseSensitive: true
- });
- if (fontSizeA && family) {
- font[{
- parse: fontSize_export_parse,
- definition: fontSize_export_definition,
- property: fontSize_export_property
- }.property] = fontSizeA;
- fontFamilies.add({
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
- }.parse(family));
- } else {
- return;
- }
- }
- for (const family of families) {
- const parsedFontFamily = {
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
- }.parse(family, {
- globalObject,
- caseSensitive: true
- });
- if (parsedFontFamily) {
- fontFamilies.add(parsedFontFamily);
- } else {
- return;
- }
- }
- font[{
- parse: fontFamily_export_parse,
- definition: fontFamily_export_definition,
- property: fontFamily_export_property
- }.property] = [...fontFamilies].join(", ");
- return font;
-};
-font_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (v === "" || external_dependency_parsers_0.hasVarFunc(v)) {
- for (const [key] of font_export_shorthandFor) {
- this._setProperty(key, "");
- }
- this._setProperty(font_local_var_property, v);
- } else {
- const obj = font_export_parse(v, {
- globalObject: this._global
- });
- if (!obj) {
- return;
- }
- const priority = this._priorities.get(font_local_var_property) ?? "";
- const str = new Set();
- for (const [key] of font_export_shorthandFor) {
- const val = obj[key];
- if (typeof val === "string") {
- this._setProperty(key, val, priority);
- if (val && val !== "normal" && !str.has(val)) {
- if (key === {
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
- }.property) {
- str.add(`/ ${val}`);
- } else {
- str.add(val);
- }
- }
- }
- }
- this._setProperty(font_local_var_property, [...str].join(" "), priority);
- }
- },
- get() {
- const val = this.getPropertyValue(font_local_var_property);
- if (external_dependency_parsers_0.hasVarFunc(val)) {
- return val;
- }
- const str = new Set();
- for (const [key] of font_export_shorthandFor) {
- const v = this.getPropertyValue(key);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- return "";
- }
- if (v && v !== "normal" && !str.has(v)) {
- if (key === {
- parse: lineHeight_export_parse,
- definition: lineHeight_export_definition,
- property: lineHeight_export_property
- }.property) {
- str.add(`/ ${v}`);
- } else {
- str.add(`${v}`);
- }
- }
- }
- return [...str].join(" ");
- },
- enumerable: true,
- configurable: true
-};
-font_export_property = font_local_var_property;
-var height_export_parse, height_export_definition, height_export_property;
-const height_local_var_property = "height";
-height_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(height_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-height_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(height_local_var_property, v);
- } else {
- const val = height_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(height_local_var_property) ?? "";
- this._setProperty(height_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(height_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-height_export_property = height_local_var_property;
-var left_export_parse, left_export_definition, left_export_property;
-const left_local_var_property = "left";
-left_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(left_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-left_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(left_local_var_property, v);
- } else {
- const val = left_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(left_local_var_property) ?? "";
- this._setProperty(left_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(left_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-left_export_property = left_local_var_property;
-var lightingColor_export_parse, lightingColor_export_definition, lightingColor_export_property;
-const lightingColor_local_var_property = "lighting-color";
-lightingColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(lightingColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-lightingColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(lightingColor_local_var_property, v);
- } else {
- const val = lightingColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(lightingColor_local_var_property) ?? "";
- this._setProperty(lightingColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(lightingColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-lightingColor_export_property = lightingColor_local_var_property;
-var marginTop_export_position, marginTop_export_parse, marginTop_export_definition, marginTop_export_property;
-const marginTop_local_var_property = "margin-top";
-const marginTop_local_var_shorthand = "margin";
-marginTop_export_position = "top";
-marginTop_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(marginTop_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-marginTop_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(marginTop_local_var_shorthand, "");
- this._setProperty(marginTop_local_var_property, v);
- } else {
- const val = marginTop_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(marginTop_local_var_shorthand) && this._priorities.has(marginTop_local_var_property) ? this._priorities.get(marginTop_local_var_property) : "";
- this._positionLonghandSetter(marginTop_local_var_property, val, priority, marginTop_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(marginTop_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-marginTop_export_property = marginTop_local_var_property;
-var marginRight_export_position, marginRight_export_parse, marginRight_export_definition, marginRight_export_property;
-const marginRight_local_var_property = "margin-right";
-const marginRight_local_var_shorthand = "margin";
-marginRight_export_position = "right";
-marginRight_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(marginRight_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-marginRight_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(marginRight_local_var_shorthand, "");
- this._setProperty(marginRight_local_var_property, v);
- } else {
- const val = marginRight_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(marginRight_local_var_shorthand) && this._priorities.has(marginRight_local_var_property) ? this._priorities.get(marginRight_local_var_property) : "";
- this._positionLonghandSetter(marginRight_local_var_property, val, priority, marginRight_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(marginRight_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-marginRight_export_property = marginRight_local_var_property;
-var marginBottom_export_position, marginBottom_export_parse, marginBottom_export_definition, marginBottom_export_property;
-const marginBottom_local_var_property = "margin-bottom";
-const marginBottom_local_var_shorthand = "margin";
-marginBottom_export_position = "bottom";
-marginBottom_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(marginBottom_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-marginBottom_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(marginBottom_local_var_shorthand, "");
- this._setProperty(marginBottom_local_var_property, v);
- } else {
- const val = marginBottom_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(marginBottom_local_var_shorthand) && this._priorities.has(marginBottom_local_var_property) ? this._priorities.get(marginBottom_local_var_property) : "";
- this._positionLonghandSetter(marginBottom_local_var_property, val, priority, marginBottom_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(marginBottom_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-marginBottom_export_property = marginBottom_local_var_property;
-var marginLeft_export_position, marginLeft_export_parse, marginLeft_export_definition, marginLeft_export_property;
-const marginLeft_local_var_property = "margin-left";
-const marginLeft_local_var_shorthand = "margin";
-marginLeft_export_position = "left";
-marginLeft_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(marginLeft_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-marginLeft_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(marginLeft_local_var_shorthand, "");
- this._setProperty(marginLeft_local_var_property, v);
- } else {
- const val = marginLeft_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(marginLeft_local_var_shorthand) && this._priorities.has(marginLeft_local_var_property) ? this._priorities.get(marginLeft_local_var_property) : "";
- this._positionLonghandSetter(marginLeft_local_var_property, val, priority, marginLeft_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(marginLeft_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-marginLeft_export_property = marginLeft_local_var_property;
-var margin_export_position, margin_export_shorthandFor, margin_export_parse, margin_export_definition, margin_export_property;
-const margin_local_var_property = "margin";
-margin_export_position = "edges";
-margin_export_shorthandFor = new Map([[{
- position: marginTop_export_position,
- parse: marginTop_export_parse,
- definition: marginTop_export_definition,
- property: marginTop_export_property
-}.property, {
- position: marginTop_export_position,
- parse: marginTop_export_parse,
- definition: marginTop_export_definition,
- property: marginTop_export_property
-}], [{
- position: marginRight_export_position,
- parse: marginRight_export_parse,
- definition: marginRight_export_definition,
- property: marginRight_export_property
-}.property, {
- position: marginRight_export_position,
- parse: marginRight_export_parse,
- definition: marginRight_export_definition,
- property: marginRight_export_property
-}], [{
- position: marginBottom_export_position,
- parse: marginBottom_export_parse,
- definition: marginBottom_export_definition,
- property: marginBottom_export_property
-}.property, {
- position: marginBottom_export_position,
- parse: marginBottom_export_parse,
- definition: marginBottom_export_definition,
- property: marginBottom_export_property
-}], [{
- position: marginLeft_export_position,
- parse: marginLeft_export_parse,
- definition: marginLeft_export_definition,
- property: marginLeft_export_property
-}.property, {
- position: marginLeft_export_position,
- parse: marginLeft_export_parse,
- definition: marginLeft_export_definition,
- property: marginLeft_export_property
-}]]);
-margin_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.parsePropertyValue(margin_local_var_property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = external_dependency_parsers_0.resolveNumericValue([value], {
- length: values.length,
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- return parsedValues;
- }
-};
-margin_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- for (const [longhand] of margin_export_shorthandFor) {
- this._setProperty(longhand, "");
- }
- this._setProperty(margin_local_var_property, v);
- } else {
- const val = margin_export_parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority = this._priorities.get(margin_local_var_property) ?? "";
- this._positionShorthandSetter(margin_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(margin_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-margin_export_property = margin_local_var_property;
-var opacity_export_parse, opacity_export_definition, opacity_export_property;
-const opacity_local_var_property = "opacity";
-opacity_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(opacity_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- clamp: true
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-opacity_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(opacity_local_var_property, v);
- } else {
- const val = opacity_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(opacity_local_var_property) ?? "";
- this._setProperty(opacity_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(opacity_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-opacity_export_property = opacity_local_var_property;
-var outlineColor_export_parse, outlineColor_export_definition, outlineColor_export_property;
-const outlineColor_local_var_property = "outline-color";
-outlineColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(outlineColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-outlineColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(outlineColor_local_var_property, v);
- } else {
- const val = outlineColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(outlineColor_local_var_property) ?? "";
- this._setProperty(outlineColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(outlineColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-outlineColor_export_property = outlineColor_local_var_property;
-var paddingTop_export_position, paddingTop_export_parse, paddingTop_export_definition, paddingTop_export_property;
-const paddingTop_local_var_property = "padding-top";
-const paddingTop_local_var_shorthand = "padding";
-paddingTop_export_position = "top";
-paddingTop_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(paddingTop_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-paddingTop_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(paddingTop_local_var_shorthand, "");
- this._setProperty(paddingTop_local_var_property, v);
- } else {
- const val = paddingTop_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(paddingTop_local_var_shorthand) && this._priorities.has(paddingTop_local_var_property) ? this._priorities.get(paddingTop_local_var_property) : "";
- this._positionLonghandSetter(paddingTop_local_var_property, val, priority, paddingTop_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(paddingTop_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-paddingTop_export_property = paddingTop_local_var_property;
-var paddingRight_export_position, paddingRight_export_parse, paddingRight_export_definition, paddingRight_export_property;
-const paddingRight_local_var_property = "padding-right";
-const paddingRight_local_var_shorthand = "padding";
-paddingRight_export_position = "right";
-paddingRight_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(paddingRight_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-paddingRight_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(paddingRight_local_var_shorthand, "");
- this._setProperty(paddingRight_local_var_property, v);
- } else {
- const val = paddingRight_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(paddingRight_local_var_shorthand) && this._priorities.has(paddingRight_local_var_property) ? this._priorities.get(paddingRight_local_var_property) : "";
- this._positionLonghandSetter(paddingRight_local_var_property, val, priority, paddingRight_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(paddingRight_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-paddingRight_export_property = paddingRight_local_var_property;
-var paddingBottom_export_position, paddingBottom_export_parse, paddingBottom_export_definition, paddingBottom_export_property;
-const paddingBottom_local_var_property = "padding-bottom";
-const paddingBottom_local_var_shorthand = "padding";
-paddingBottom_export_position = "bottom";
-paddingBottom_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(paddingBottom_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-paddingBottom_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(paddingBottom_local_var_shorthand, "");
- this._setProperty(paddingBottom_local_var_property, v);
- } else {
- const val = paddingBottom_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(paddingBottom_local_var_shorthand) && this._priorities.has(paddingBottom_local_var_property) ? this._priorities.get(paddingBottom_local_var_property) : "";
- this._positionLonghandSetter(paddingBottom_local_var_property, val, priority, paddingBottom_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(paddingBottom_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-paddingBottom_export_property = paddingBottom_local_var_property;
-var paddingLeft_export_position, paddingLeft_export_parse, paddingLeft_export_definition, paddingLeft_export_property;
-const paddingLeft_local_var_property = "padding-left";
-const paddingLeft_local_var_shorthand = "padding";
-paddingLeft_export_position = "left";
-paddingLeft_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(paddingLeft_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-paddingLeft_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(paddingLeft_local_var_shorthand, "");
- this._setProperty(paddingLeft_local_var_property, v);
- } else {
- const val = paddingLeft_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = !this._priorities.get(paddingLeft_local_var_shorthand) && this._priorities.has(paddingLeft_local_var_property) ? this._priorities.get(paddingLeft_local_var_property) : "";
- this._positionLonghandSetter(paddingLeft_local_var_property, val, priority, paddingLeft_local_var_shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(paddingLeft_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-paddingLeft_export_property = paddingLeft_local_var_property;
-var padding_export_position, padding_export_shorthandFor, padding_export_parse, padding_export_definition, padding_export_property;
-const padding_local_var_property = "padding";
-padding_export_position = "edges";
-padding_export_shorthandFor = new Map([[{
- position: paddingTop_export_position,
- parse: paddingTop_export_parse,
- definition: paddingTop_export_definition,
- property: paddingTop_export_property
-}.property, {
- position: paddingTop_export_position,
- parse: paddingTop_export_parse,
- definition: paddingTop_export_definition,
- property: paddingTop_export_property
-}], [{
- position: paddingRight_export_position,
- parse: paddingRight_export_parse,
- definition: paddingRight_export_definition,
- property: paddingRight_export_property
-}.property, {
- position: paddingRight_export_position,
- parse: paddingRight_export_parse,
- definition: paddingRight_export_definition,
- property: paddingRight_export_property
-}], [{
- position: paddingBottom_export_position,
- parse: paddingBottom_export_parse,
- definition: paddingBottom_export_definition,
- property: paddingBottom_export_property
-}.property, {
- position: paddingBottom_export_position,
- parse: paddingBottom_export_parse,
- definition: paddingBottom_export_definition,
- property: paddingBottom_export_property
-}], [{
- position: paddingLeft_export_position,
- parse: paddingLeft_export_parse,
- definition: paddingLeft_export_definition,
- property: paddingLeft_export_property
-}.property, {
- position: paddingLeft_export_position,
- parse: paddingLeft_export_parse,
- definition: paddingLeft_export_definition,
- property: paddingLeft_export_property
-}]]);
-padding_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const values = external_dependency_parsers_0.parsePropertyValue(padding_local_var_property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = external_dependency_parsers_0.resolveNumericValue([value], {
- length: values.length,
- min: 0,
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- return parsedValues;
- }
-};
-padding_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- for (const [longhand] of padding_export_shorthandFor) {
- this._setProperty(longhand, "");
- }
- this._setProperty(padding_local_var_property, v);
- } else {
- const val = padding_export_parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority = this._priorities.get(padding_local_var_property) ?? "";
- this._positionShorthandSetter(padding_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(padding_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-padding_export_property = padding_local_var_property;
-var right_export_parse, right_export_definition, right_export_property;
-const right_local_var_property = "right";
-right_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(right_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-right_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(right_local_var_property, v);
- } else {
- const val = right_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(right_local_var_property) ?? "";
- this._setProperty(right_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(right_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-right_export_property = right_local_var_property;
-var stopColor_export_parse, stopColor_export_definition, stopColor_export_property;
-const stopColor_local_var_property = "stop-color";
-stopColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(stopColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-stopColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(stopColor_local_var_property, v);
- } else {
- const val = stopColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(stopColor_local_var_property) ?? "";
- this._setProperty(stopColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(stopColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-stopColor_export_property = stopColor_local_var_property;
-var top_export_parse, top_export_definition, top_export_property;
-const top_local_var_property = "top";
-top_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(top_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-top_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(top_local_var_property, v);
- } else {
- const val = top_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(top_local_var_property) ?? "";
- this._setProperty(top_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(top_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-top_export_property = top_local_var_property;
-var webkitBorderAfterColor_export_parse, webkitBorderAfterColor_export_definition, webkitBorderAfterColor_export_property;
-const webkitBorderAfterColor_local_var_property = "-webkit-border-after-color";
-webkitBorderAfterColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitBorderAfterColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitBorderAfterColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitBorderAfterColor_local_var_property, v);
- } else {
- const val = webkitBorderAfterColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitBorderAfterColor_local_var_property) ?? "";
- this._setProperty(webkitBorderAfterColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitBorderAfterColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitBorderAfterColor_export_property = webkitBorderAfterColor_local_var_property;
-var webkitBorderBeforeColor_export_parse, webkitBorderBeforeColor_export_definition, webkitBorderBeforeColor_export_property;
-const webkitBorderBeforeColor_local_var_property = "-webkit-border-before-color";
-webkitBorderBeforeColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitBorderBeforeColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitBorderBeforeColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitBorderBeforeColor_local_var_property, v);
- } else {
- const val = webkitBorderBeforeColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitBorderBeforeColor_local_var_property) ?? "";
- this._setProperty(webkitBorderBeforeColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitBorderBeforeColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitBorderBeforeColor_export_property = webkitBorderBeforeColor_local_var_property;
-var webkitBorderEndColor_export_parse, webkitBorderEndColor_export_definition, webkitBorderEndColor_export_property;
-const webkitBorderEndColor_local_var_property = "-webkit-border-end-color";
-webkitBorderEndColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitBorderEndColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitBorderEndColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitBorderEndColor_local_var_property, v);
- } else {
- const val = webkitBorderEndColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitBorderEndColor_local_var_property) ?? "";
- this._setProperty(webkitBorderEndColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitBorderEndColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitBorderEndColor_export_property = webkitBorderEndColor_local_var_property;
-var webkitBorderStartColor_export_parse, webkitBorderStartColor_export_definition, webkitBorderStartColor_export_property;
-const webkitBorderStartColor_local_var_property = "-webkit-border-start-color";
-webkitBorderStartColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitBorderStartColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitBorderStartColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitBorderStartColor_local_var_property, v);
- } else {
- const val = webkitBorderStartColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitBorderStartColor_local_var_property) ?? "";
- this._setProperty(webkitBorderStartColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitBorderStartColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitBorderStartColor_export_property = webkitBorderStartColor_local_var_property;
-var webkitColumnRuleColor_export_parse, webkitColumnRuleColor_export_definition, webkitColumnRuleColor_export_property;
-const webkitColumnRuleColor_local_var_property = "-webkit-column-rule-color";
-webkitColumnRuleColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitColumnRuleColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitColumnRuleColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitColumnRuleColor_local_var_property, v);
- } else {
- const val = webkitColumnRuleColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitColumnRuleColor_local_var_property) ?? "";
- this._setProperty(webkitColumnRuleColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitColumnRuleColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitColumnRuleColor_export_property = webkitColumnRuleColor_local_var_property;
-var webkitTapHighlightColor_export_parse, webkitTapHighlightColor_export_definition, webkitTapHighlightColor_export_property;
-const webkitTapHighlightColor_local_var_property = "-webkit-tap-highlight-color";
-webkitTapHighlightColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitTapHighlightColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitTapHighlightColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitTapHighlightColor_local_var_property, v);
- } else {
- const val = webkitTapHighlightColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitTapHighlightColor_local_var_property) ?? "";
- this._setProperty(webkitTapHighlightColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitTapHighlightColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitTapHighlightColor_export_property = webkitTapHighlightColor_local_var_property;
-var webkitTextEmphasisColor_export_parse, webkitTextEmphasisColor_export_definition, webkitTextEmphasisColor_export_property;
-const webkitTextEmphasisColor_local_var_property = "-webkit-text-emphasis-color";
-webkitTextEmphasisColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitTextEmphasisColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitTextEmphasisColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitTextEmphasisColor_local_var_property, v);
- } else {
- const val = webkitTextEmphasisColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitTextEmphasisColor_local_var_property) ?? "";
- this._setProperty(webkitTextEmphasisColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitTextEmphasisColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitTextEmphasisColor_export_property = webkitTextEmphasisColor_local_var_property;
-var webkitTextFillColor_export_parse, webkitTextFillColor_export_definition, webkitTextFillColor_export_property;
-const webkitTextFillColor_local_var_property = "-webkit-text-fill-color";
-webkitTextFillColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitTextFillColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitTextFillColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitTextFillColor_local_var_property, v);
- } else {
- const val = webkitTextFillColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitTextFillColor_local_var_property) ?? "";
- this._setProperty(webkitTextFillColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitTextFillColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitTextFillColor_export_property = webkitTextFillColor_local_var_property;
-var webkitTextStrokeColor_export_parse, webkitTextStrokeColor_export_definition, webkitTextStrokeColor_export_property;
-const webkitTextStrokeColor_local_var_property = "-webkit-text-stroke-color";
-webkitTextStrokeColor_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(webkitTextStrokeColor_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-webkitTextStrokeColor_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(webkitTextStrokeColor_local_var_property, v);
- } else {
- const val = webkitTextStrokeColor_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(webkitTextStrokeColor_local_var_property) ?? "";
- this._setProperty(webkitTextStrokeColor_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(webkitTextStrokeColor_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-webkitTextStrokeColor_export_property = webkitTextStrokeColor_local_var_property;
-var width_export_parse, width_export_definition, width_export_property;
-const width_local_var_property = "width";
-width_export_parse = (v, opt = {}) => {
- const {
- globalObject
- } = opt;
- if (v === "") {
- return v;
- }
- const value = external_dependency_parsers_0.parsePropertyValue(width_local_var_property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return external_dependency_parsers_0.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-width_export_definition = {
- set(v) {
- v = external_dependency_parsers_0.prepareValue(v);
- if (external_dependency_parsers_0.hasVarFunc(v)) {
- this._setProperty(width_local_var_property, v);
- } else {
- const val = width_export_parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(width_local_var_property) ?? "";
- this._setProperty(width_local_var_property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(width_local_var_property);
- },
- enumerable: true,
- configurable: true
-};
-width_export_property = width_local_var_property;
-module.exports = {
- backgroundImage: backgroundImage_export_definition,
- "background-image": backgroundImage_export_definition,
- backgroundPosition: backgroundPosition_export_definition,
- "background-position": backgroundPosition_export_definition,
- backgroundSize: backgroundSize_export_definition,
- "background-size": backgroundSize_export_definition,
- backgroundRepeat: backgroundRepeat_export_definition,
- "background-repeat": backgroundRepeat_export_definition,
- backgroundOrigin: backgroundOrigin_export_definition,
- "background-origin": backgroundOrigin_export_definition,
- backgroundClip: backgroundClip_export_definition,
- "background-clip": backgroundClip_export_definition,
- backgroundAttachment: backgroundAttachment_export_definition,
- "background-attachment": backgroundAttachment_export_definition,
- backgroundColor: backgroundColor_export_definition,
- "background-color": backgroundColor_export_definition,
- background: background_export_definition,
- borderTopWidth: borderTopWidth_export_definition,
- "border-top-width": borderTopWidth_export_definition,
- borderRightWidth: borderRightWidth_export_definition,
- "border-right-width": borderRightWidth_export_definition,
- borderBottomWidth: borderBottomWidth_export_definition,
- "border-bottom-width": borderBottomWidth_export_definition,
- borderLeftWidth: borderLeftWidth_export_definition,
- "border-left-width": borderLeftWidth_export_definition,
- borderWidth: borderWidth_export_definition,
- "border-width": borderWidth_export_definition,
- borderTopStyle: borderTopStyle_export_definition,
- "border-top-style": borderTopStyle_export_definition,
- borderRightStyle: borderRightStyle_export_definition,
- "border-right-style": borderRightStyle_export_definition,
- borderBottomStyle: borderBottomStyle_export_definition,
- "border-bottom-style": borderBottomStyle_export_definition,
- borderLeftStyle: borderLeftStyle_export_definition,
- "border-left-style": borderLeftStyle_export_definition,
- borderStyle: borderStyle_export_definition,
- "border-style": borderStyle_export_definition,
- borderTopColor: borderTopColor_export_definition,
- "border-top-color": borderTopColor_export_definition,
- borderRightColor: borderRightColor_export_definition,
- "border-right-color": borderRightColor_export_definition,
- borderBottomColor: borderBottomColor_export_definition,
- "border-bottom-color": borderBottomColor_export_definition,
- borderLeftColor: borderLeftColor_export_definition,
- "border-left-color": borderLeftColor_export_definition,
- borderColor: borderColor_export_definition,
- "border-color": borderColor_export_definition,
- borderTop: borderTop_export_definition,
- "border-top": borderTop_export_definition,
- borderRight: borderRight_export_definition,
- "border-right": borderRight_export_definition,
- borderBottom: borderBottom_export_definition,
- "border-bottom": borderBottom_export_definition,
- borderLeft: borderLeft_export_definition,
- "border-left": borderLeft_export_definition,
- border: border_export_definition,
- borderCollapse: borderCollapse_export_definition,
- "border-collapse": borderCollapse_export_definition,
- borderSpacing: borderSpacing_export_definition,
- "border-spacing": borderSpacing_export_definition,
- bottom: bottom_export_definition,
- clear: clear_export_definition,
- clip: clip_export_definition,
- color: color_export_definition,
- display: display_export_definition,
- flexGrow: flexGrow_export_definition,
- "flex-grow": flexGrow_export_definition,
- flexShrink: flexShrink_export_definition,
- "flex-shrink": flexShrink_export_definition,
- flexBasis: flexBasis_export_definition,
- "flex-basis": flexBasis_export_definition,
- flex: flex_export_definition,
- float: float_export_definition,
- floodColor: floodColor_export_definition,
- "flood-color": floodColor_export_definition,
- fontStyle: fontStyle_export_definition,
- "font-style": fontStyle_export_definition,
- fontVariant: fontVariant_export_definition,
- "font-variant": fontVariant_export_definition,
- fontWeight: fontWeight_export_definition,
- "font-weight": fontWeight_export_definition,
- fontSize: fontSize_export_definition,
- "font-size": fontSize_export_definition,
- lineHeight: lineHeight_export_definition,
- "line-height": lineHeight_export_definition,
- fontFamily: fontFamily_export_definition,
- "font-family": fontFamily_export_definition,
- font: font_export_definition,
- height: height_export_definition,
- left: left_export_definition,
- lightingColor: lightingColor_export_definition,
- "lighting-color": lightingColor_export_definition,
- marginTop: marginTop_export_definition,
- "margin-top": marginTop_export_definition,
- marginRight: marginRight_export_definition,
- "margin-right": marginRight_export_definition,
- marginBottom: marginBottom_export_definition,
- "margin-bottom": marginBottom_export_definition,
- marginLeft: marginLeft_export_definition,
- "margin-left": marginLeft_export_definition,
- margin: margin_export_definition,
- opacity: opacity_export_definition,
- outlineColor: outlineColor_export_definition,
- "outline-color": outlineColor_export_definition,
- paddingTop: paddingTop_export_definition,
- "padding-top": paddingTop_export_definition,
- paddingRight: paddingRight_export_definition,
- "padding-right": paddingRight_export_definition,
- paddingBottom: paddingBottom_export_definition,
- "padding-bottom": paddingBottom_export_definition,
- paddingLeft: paddingLeft_export_definition,
- "padding-left": paddingLeft_export_definition,
- padding: padding_export_definition,
- right: right_export_definition,
- stopColor: stopColor_export_definition,
- "stop-color": stopColor_export_definition,
- top: top_export_definition,
- webkitBorderAfterColor: webkitBorderAfterColor_export_definition,
- "-webkit-border-after-color": webkitBorderAfterColor_export_definition,
- "WebkitBorderAfterColor": webkitBorderAfterColor_export_definition,
- webkitBorderBeforeColor: webkitBorderBeforeColor_export_definition,
- "-webkit-border-before-color": webkitBorderBeforeColor_export_definition,
- "WebkitBorderBeforeColor": webkitBorderBeforeColor_export_definition,
- webkitBorderEndColor: webkitBorderEndColor_export_definition,
- "-webkit-border-end-color": webkitBorderEndColor_export_definition,
- "WebkitBorderEndColor": webkitBorderEndColor_export_definition,
- webkitBorderStartColor: webkitBorderStartColor_export_definition,
- "-webkit-border-start-color": webkitBorderStartColor_export_definition,
- "WebkitBorderStartColor": webkitBorderStartColor_export_definition,
- webkitColumnRuleColor: webkitColumnRuleColor_export_definition,
- "-webkit-column-rule-color": webkitColumnRuleColor_export_definition,
- "WebkitColumnRuleColor": webkitColumnRuleColor_export_definition,
- webkitTapHighlightColor: webkitTapHighlightColor_export_definition,
- "-webkit-tap-highlight-color": webkitTapHighlightColor_export_definition,
- "WebkitTapHighlightColor": webkitTapHighlightColor_export_definition,
- webkitTextEmphasisColor: webkitTextEmphasisColor_export_definition,
- "-webkit-text-emphasis-color": webkitTextEmphasisColor_export_definition,
- "WebkitTextEmphasisColor": webkitTextEmphasisColor_export_definition,
- webkitTextFillColor: webkitTextFillColor_export_definition,
- "-webkit-text-fill-color": webkitTextFillColor_export_definition,
- "WebkitTextFillColor": webkitTextFillColor_export_definition,
- webkitTextStrokeColor: webkitTextStrokeColor_export_definition,
- "-webkit-text-stroke-color": webkitTextStrokeColor_export_definition,
- "WebkitTextStrokeColor": webkitTextStrokeColor_export_definition,
- width: width_export_definition
-};
diff --git a/vanilla/node_modules/cssstyle/lib/generated/propertyDefinitions.js b/vanilla/node_modules/cssstyle/lib/generated/propertyDefinitions.js
deleted file mode 100644
index c55da00..0000000
--- a/vanilla/node_modules/cssstyle/lib/generated/propertyDefinitions.js
+++ /dev/null
@@ -1,13033 +0,0 @@
-"use strict";
-// autogenerated - 2026-01-06
-
-module.exports = new Map([
- [
- "-webkit-flex-wrap",
- {
- "name": "-webkit-flex-wrap",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-flex-wrap",
- "legacyAliasOf": "flex-wrap",
- "styleDeclaration": [
- "-webkit-flex-wrap",
- "WebkitFlexWrap",
- "webkitFlexWrap"
- ],
- "extended": [],
- "syntax": "nowrap | wrap | wrap-reverse"
- }
- ],
- [
- "-webkit-line-clamp",
- {
- "name": "-webkit-line-clamp",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef--webkit-line-clamp",
- "initial": "none",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "-webkit-line-clamp",
- "WebkitLineClamp",
- "webkitLineClamp"
- ],
- "syntax": "none | <integer [1,∞]>",
- "extended": []
- }
- ],
- [
- "-webkit-mask-box-image-outset",
- {
- "name": "-webkit-mask-box-image-outset",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-mask-box-image-outset",
- "legacyAliasOf": "mask-border-outset",
- "styleDeclaration": [
- "-webkit-mask-box-image-outset",
- "WebkitMaskBoxImageOutset",
- "webkitMaskBoxImageOutset"
- ],
- "extended": [],
- "syntax": "[ <length> | <number> ]{1,4}"
- }
- ],
- [
- "-webkit-mask-box-image-repeat",
- {
- "name": "-webkit-mask-box-image-repeat",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-mask-box-image-repeat",
- "legacyAliasOf": "mask-border-repeat",
- "styleDeclaration": [
- "-webkit-mask-box-image-repeat",
- "WebkitMaskBoxImageRepeat",
- "webkitMaskBoxImageRepeat"
- ],
- "extended": [],
- "syntax": "[ stretch | repeat | round | space ]{1,2}"
- }
- ],
- [
- "-webkit-mask-box-image-slice",
- {
- "name": "-webkit-mask-box-image-slice",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-mask-box-image-slice",
- "legacyAliasOf": "mask-border-slice",
- "styleDeclaration": [
- "-webkit-mask-box-image-slice",
- "WebkitMaskBoxImageSlice",
- "webkitMaskBoxImageSlice"
- ],
- "extended": [],
- "syntax": "[ <number> | <percentage> ]{1,4} fill?"
- }
- ],
- [
- "-webkit-mask-box-image-source",
- {
- "name": "-webkit-mask-box-image-source",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-mask-box-image-source",
- "legacyAliasOf": "mask-border-source",
- "styleDeclaration": [
- "-webkit-mask-box-image-source",
- "WebkitMaskBoxImageSource",
- "webkitMaskBoxImageSource"
- ],
- "extended": [],
- "syntax": "none | <image>"
- }
- ],
- [
- "-webkit-mask-box-image-width",
- {
- "name": "-webkit-mask-box-image-width",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-mask-box-image-width",
- "legacyAliasOf": "mask-border-width",
- "styleDeclaration": [
- "-webkit-mask-box-image-width",
- "WebkitMaskBoxImageWidth",
- "webkitMaskBoxImageWidth"
- ],
- "extended": [],
- "syntax": "[ <length-percentage> | <number> | auto ]{1,4}"
- }
- ],
- [
- "-webkit-text-fill-color",
- {
- "name": "-webkit-text-fill-color",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-text-fill-color",
- "initial": "currentcolor",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "an RGBA color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "media": "visual",
- "styleDeclaration": [
- "-webkit-text-fill-color",
- "WebkitTextFillColor",
- "webkitTextFillColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "-webkit-text-size-adjust",
- {
- "name": "-webkit-text-size-adjust",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-text-size-adjust",
- "legacyAliasOf": "text-size-adjust",
- "styleDeclaration": [
- "-webkit-text-size-adjust",
- "WebkitTextSizeAdjust",
- "webkitTextSizeAdjust"
- ],
- "extended": [],
- "syntax": "auto | none | <percentage [0,∞]>"
- }
- ],
- [
- "-webkit-text-stroke",
- {
- "name": "-webkit-text-stroke",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-text-stroke",
- "initial": "See individual properties",
- "appliesTo": "See individual properties",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "See individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "See individual properties",
- "media": "visual",
- "styleDeclaration": [
- "-webkit-text-stroke",
- "WebkitTextStroke",
- "webkitTextStroke"
- ],
- "syntax": "<line-width> || <color>",
- "extended": []
- }
- ],
- [
- "-webkit-text-stroke-color",
- {
- "name": "-webkit-text-stroke-color",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-text-stroke-color",
- "initial": "currentcolor",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "an RGBA color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "media": "visual",
- "styleDeclaration": [
- "-webkit-text-stroke-color",
- "WebkitTextStrokeColor",
- "webkitTextStrokeColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "-webkit-text-stroke-width",
- {
- "name": "-webkit-text-stroke-width",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-text-stroke-width",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "-webkit-text-stroke-width",
- "WebkitTextStrokeWidth",
- "webkitTextStrokeWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "-webkit-transform",
- {
- "name": "-webkit-transform",
- "href": "https://compat.spec.whatwg.org/#propdef--webkit-transform",
- "legacyAliasOf": "transform",
- "styleDeclaration": [
- "-webkit-transform",
- "WebkitTransform",
- "webkitTransform"
- ],
- "extended": [],
- "syntax": "none | <transform-list>"
- }
- ],
- [
- "accent-color",
- {
- "name": "accent-color",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-accent-color",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the keyword auto or a computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "accent-color",
- "accentColor"
- ],
- "syntax": "auto | <color>",
- "extended": []
- }
- ],
- [
- "align-content",
- {
- "name": "align-content",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-align-content",
- "initial": "normal",
- "appliesTo": "block containers, multicol containers, flex containers, and grid containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "align-content",
- "alignContent"
- ],
- "syntax": "normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>",
- "extended": []
- }
- ],
- [
- "align-items",
- {
- "name": "align-items",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-align-items",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "align-items",
- "alignItems"
- ],
- "syntax": "normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "align-self",
- {
- "name": "align-self",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-align-self",
- "initial": "auto",
- "appliesTo": "flex items, grid items, and absolutely-positioned boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "align-self",
- "alignSelf"
- ],
- "syntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "alignment-baseline",
- {
- "name": "alignment-baseline",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-alignment-baseline",
- "initial": "baseline",
- "appliesTo": "inline-level boxes, flex items, grid items, table cells, and SVG text content elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "alignment-baseline",
- "alignmentBaseline"
- ],
- "syntax": "baseline | text-bottom | alphabetic | ideographic | middle | central | mathematical | text-top",
- "extended": []
- }
- ],
- [
- "all",
- {
- "name": "all",
- "href": "https://drafts.csswg.org/css-cascade-5/#propdef-all",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "all"
- ],
- "syntax": "initial | inherit | unset | revert | revert-layer | revert-rule",
- "extended": []
- }
- ],
- [
- "anchor-name",
- {
- "name": "anchor-name",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-anchor-name",
- "initial": "none",
- "appliesTo": "all elements that generate a principal box",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "anchor-name",
- "anchorName"
- ],
- "syntax": "none | <dashed-ident>#",
- "extended": []
- }
- ],
- [
- "anchor-scope",
- {
- "name": "anchor-scope",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-anchor-scope",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "anchor-scope",
- "anchorScope"
- ],
- "syntax": "none | all | <dashed-ident>#",
- "extended": []
- }
- ],
- [
- "animation",
- {
- "name": "animation",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation"
- ],
- "syntax": "<single-animation>#",
- "extended": []
- }
- ],
- [
- "animation-composition",
- {
- "name": "animation-composition",
- "href": "https://drafts.csswg.org/css-animations-2/#propdef-animation-composition",
- "initial": "replace",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-composition",
- "animationComposition"
- ],
- "syntax": "<single-animation-composition>#",
- "extended": []
- }
- ],
- [
- "animation-delay",
- {
- "name": "animation-delay",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation-delay",
- "initial": "0s",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a duration",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-delay",
- "animationDelay"
- ],
- "syntax": "<time>#",
- "extended": []
- }
- ],
- [
- "animation-direction",
- {
- "name": "animation-direction",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation-direction",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-direction",
- "animationDirection"
- ],
- "syntax": "<single-animation-direction>#",
- "extended": []
- }
- ],
- [
- "animation-duration",
- {
- "name": "animation-duration",
- "href": "https://drafts.csswg.org/css-animations-2/#propdef-animation-duration",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item either a time or the keyword auto",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-duration",
- "animationDuration"
- ],
- "syntax": "[ auto | <time [0s,∞]> ]#",
- "extended": []
- }
- ],
- [
- "animation-fill-mode",
- {
- "name": "animation-fill-mode",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation-fill-mode",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-fill-mode",
- "animationFillMode"
- ],
- "syntax": "<single-animation-fill-mode>#",
- "extended": []
- }
- ],
- [
- "animation-iteration-count",
- {
- "name": "animation-iteration-count",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation-iteration-count",
- "initial": "1",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item either a number or the keyword infinite",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-iteration-count",
- "animationIterationCount"
- ],
- "syntax": "<single-animation-iteration-count>#",
- "extended": []
- }
- ],
- [
- "animation-name",
- {
- "name": "animation-name",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation-name",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item either a case-sensitive css identifier or the keyword none",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-name",
- "animationName"
- ],
- "syntax": "[ none | <keyframes-name> ]#",
- "extended": []
- }
- ],
- [
- "animation-play-state",
- {
- "name": "animation-play-state",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation-play-state",
- "initial": "running",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-play-state",
- "animationPlayState"
- ],
- "syntax": "<single-animation-play-state>#",
- "extended": []
- }
- ],
- [
- "animation-range",
- {
- "name": "animation-range",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-animation-range",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "animation-range",
- "animationRange"
- ],
- "syntax": "[ <'animation-range-start'> <'animation-range-end'>? ]#",
- "extended": []
- }
- ],
- [
- "animation-range-end",
- {
- "name": "animation-range-end",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-animation-range-end",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "relative to the specified named timeline range if one was specified, else to the entire timeline",
- "computedValue": "list, each item either the keyword normal or a timeline range and progress percentage",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-range-end",
- "animationRangeEnd"
- ],
- "syntax": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",
- "extended": []
- }
- ],
- [
- "animation-range-start",
- {
- "name": "animation-range-start",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-animation-range-start",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "relative to the specified named timeline range if one was specified, else to the entire timeline",
- "computedValue": "list, each item either the keyword normal or a timeline range and progress percentage",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-range-start",
- "animationRangeStart"
- ],
- "syntax": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",
- "extended": []
- }
- ],
- [
- "animation-timeline",
- {
- "name": "animation-timeline",
- "href": "https://drafts.csswg.org/css-animations-2/#propdef-animation-timeline",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item either the keyword none, the keyword auto, a case-sensitive css identifier, a computed scroll() function, or a computed view() function",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-timeline",
- "animationTimeline"
- ],
- "syntax": "<single-animation-timeline>#",
- "extended": []
- }
- ],
- [
- "animation-timing-function",
- {
- "name": "animation-timing-function",
- "href": "https://drafts.csswg.org/css-animations-1/#propdef-animation-timing-function",
- "initial": "ease",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a computed <easing-function>",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "animation-timing-function",
- "animationTimingFunction"
- ],
- "syntax": "<easing-function>#",
- "extended": []
- }
- ],
- [
- "appearance",
- {
- "name": "appearance",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-appearance",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "appearance"
- ],
- "syntax": "none | auto | base | base-select | <compat-auto> | <compat-special> | base",
- "extended": [
- "https://drafts.csswg.org/css-forms-1/"
- ]
- }
- ],
- [
- "aspect-ratio",
- {
- "name": "aspect-ratio",
- "href": "https://drafts.csswg.org/css-sizing-4/#propdef-aspect-ratio",
- "initial": "auto",
- "appliesTo": "all elements except inline boxes and internal ruby or table boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword or a pair of numbers",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "aspect-ratio",
- "aspectRatio"
- ],
- "syntax": "auto || <ratio>",
- "extended": []
- }
- ],
- [
- "backface-visibility",
- {
- "name": "backface-visibility",
- "href": "https://drafts.csswg.org/css-transforms-2/#propdef-backface-visibility",
- "initial": "visible",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "backface-visibility",
- "backfaceVisibility"
- ],
- "syntax": "visible | hidden",
- "extended": []
- }
- ],
- [
- "background",
- {
- "name": "background",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "background"
- ],
- "syntax": "<bg-layer>#? , <final-bg-layer>",
- "extended": []
- }
- ],
- [
- "background-attachment",
- {
- "name": "background-attachment",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-attachment",
- "initial": "scroll",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item the keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "background-attachment",
- "backgroundAttachment"
- ],
- "syntax": "<attachment>#",
- "extended": []
- }
- ],
- [
- "background-blend-mode",
- {
- "name": "background-blend-mode",
- "href": "https://drafts.fxtf.org/compositing-2/#propdef-background-blend-mode",
- "initial": "normal",
- "appliesTo": "All HTML elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "media": "visual",
- "animatable": "no",
- "styleDeclaration": [
- "background-blend-mode",
- "backgroundBlendMode"
- ],
- "syntax": "<mix-blend-mode>#",
- "extended": []
- }
- ],
- [
- "background-clip",
- {
- "name": "background-clip",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-clip",
- "initial": "border-box",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-clip",
- "backgroundClip"
- ],
- "syntax": "<bg-clip>#",
- "extended": []
- }
- ],
- [
- "background-color",
- {
- "name": "background-color",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-color",
- "initial": "transparent",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "background-color",
- "backgroundColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "background-image",
- {
- "name": "background-image",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-image",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item either an <image> or the keyword none",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "background-image",
- "backgroundImage"
- ],
- "syntax": "<bg-image>#",
- "extended": []
- }
- ],
- [
- "background-origin",
- {
- "name": "background-origin",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-origin",
- "initial": "padding-box",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-origin",
- "backgroundOrigin"
- ],
- "syntax": "<visual-box>#",
- "extended": []
- }
- ],
- [
- "background-position",
- {
- "name": "background-position",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position",
- "initial": "0% 0%",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "refer to size of background positioning area minus size of background image; see text",
- "computedValue": "a list, each item a pair of offsets (horizontal and vertical) from the top left origin, each offset given as a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-position",
- "backgroundPosition"
- ],
- "syntax": "<bg-position>#",
- "extended": []
- }
- ],
- [
- "background-position-x",
- {
- "name": "background-position-x",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-x",
- "initial": "0%",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "refer to width of background positioning area minus width of background image",
- "computedValue": "A list, each item consisting of: an offset given as a computed <length-percentage> value, plus an origin keyword",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "logicalPropertyGroup": "background-position",
- "styleDeclaration": [
- "background-position-x",
- "backgroundPositionX"
- ],
- "syntax": "[ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#",
- "extended": []
- }
- ],
- [
- "background-position-y",
- {
- "name": "background-position-y",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-y",
- "initial": "0%",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "refer to height of background positioning area minus height of background image",
- "computedValue": "A list, each item consisting of: an offset given as a computed <length-percentage> value, plus an origin keyword",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "logicalPropertyGroup": "background-position",
- "styleDeclaration": [
- "background-position-y",
- "backgroundPositionY"
- ],
- "syntax": "[ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#",
- "extended": []
- }
- ],
- [
- "background-repeat",
- {
- "name": "background-repeat",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-repeat",
- "initial": "repeat",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a pair of keywords, one per dimension",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "background-repeat",
- "backgroundRepeat"
- ],
- "syntax": "<repeat-style>#",
- "extended": []
- }
- ],
- [
- "background-repeat-x",
- {
- "name": "background-repeat-x",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-repeat-x",
- "initial": "repeat",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "background-repeat",
- "styleDeclaration": [
- "background-repeat-x",
- "backgroundRepeatX"
- ],
- "syntax": "<repetition>#",
- "extended": []
- }
- ],
- [
- "background-repeat-y",
- {
- "name": "background-repeat-y",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-repeat-y",
- "initial": "repeat",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "background-repeat",
- "styleDeclaration": [
- "background-repeat-y",
- "backgroundRepeatY"
- ],
- "syntax": "<repetition>#",
- "extended": []
- }
- ],
- [
- "background-size",
- {
- "name": "background-size",
- "href": "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-size",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "see text",
- "computedValue": "list, each item a pair of sizes (one per axis) each represented as either a keyword or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "styleDeclaration": [
- "background-size",
- "backgroundSize"
- ],
- "syntax": "<bg-size>#",
- "extended": []
- }
- ],
- [
- "baseline-shift",
- {
- "name": "baseline-shift",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-baseline-shift",
- "initial": "0",
- "appliesTo": "inline-level boxes and SVG text content elements",
- "inherited": "no",
- "percentages": "refer to the used value of line-height",
- "computedValue": "the specified keyword or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "baseline-shift",
- "baselineShift"
- ],
- "syntax": "<length-percentage> | sub | super | top | center | bottom",
- "extended": []
- }
- ],
- [
- "baseline-source",
- {
- "name": "baseline-source",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-baseline-source",
- "initial": "auto",
- "appliesTo": "inline-level boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "baseline-source",
- "baselineSource"
- ],
- "syntax": "auto | first | last",
- "extended": []
- }
- ],
- [
- "block-ellipsis",
- {
- "name": "block-ellipsis",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-block-ellipsis",
- "initial": "no-ellipsis",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "block-ellipsis",
- "blockEllipsis"
- ],
- "syntax": "no-ellipsis | auto | <string>",
- "extended": []
- }
- ],
- [
- "block-size",
- {
- "name": "block-size",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-block-size",
- "initial": "auto",
- "appliesTo": "Same as height and width",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as height, width",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "size",
- "styleDeclaration": [
- "block-size",
- "blockSize"
- ],
- "syntax": "<'width'>",
- "extended": []
- }
- ],
- [
- "block-step",
- {
- "name": "block-step",
- "href": "https://drafts.csswg.org/css-rhythm-1/#propdef-block-step",
- "initial": "see individual properties",
- "appliesTo": "block-level boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "block-step",
- "blockStep"
- ],
- "syntax": "<'block-step-size'> || <'block-step-insert'> || <'block-step-align'> || <'block-step-round'>",
- "extended": []
- }
- ],
- [
- "block-step-align",
- {
- "name": "block-step-align",
- "href": "https://drafts.csswg.org/css-rhythm-1/#propdef-block-step-align",
- "initial": "auto",
- "appliesTo": "block-level boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "block-step-align",
- "blockStepAlign"
- ],
- "syntax": "auto | center | start | end",
- "extended": []
- }
- ],
- [
- "block-step-insert",
- {
- "name": "block-step-insert",
- "href": "https://drafts.csswg.org/css-rhythm-1/#propdef-block-step-insert",
- "initial": "margin-box",
- "appliesTo": "block-level boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "block-step-insert",
- "blockStepInsert"
- ],
- "syntax": "margin-box | padding-box | content-box",
- "extended": []
- }
- ],
- [
- "block-step-round",
- {
- "name": "block-step-round",
- "href": "https://drafts.csswg.org/css-rhythm-1/#propdef-block-step-round",
- "initial": "up",
- "appliesTo": "block-level boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "block-step-round",
- "blockStepRound"
- ],
- "syntax": "up | down | nearest",
- "extended": []
- }
- ],
- [
- "block-step-size",
- {
- "name": "block-step-size",
- "href": "https://drafts.csswg.org/css-rhythm-1/#propdef-block-step-size",
- "initial": "none",
- "appliesTo": "block-level boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword or absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "block-step-size",
- "blockStepSize"
- ],
- "syntax": "none | <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "bookmark-label",
- {
- "name": "bookmark-label",
- "href": "https://drafts.csswg.org/css-content-3/#propdef-bookmark-label",
- "initial": "content(text)",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "bookmark-label",
- "bookmarkLabel"
- ],
- "syntax": "<content-list>",
- "extended": []
- }
- ],
- [
- "bookmark-level",
- {
- "name": "bookmark-level",
- "href": "https://drafts.csswg.org/css-content-3/#propdef-bookmark-level",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword none or the specified integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "bookmark-level",
- "bookmarkLevel"
- ],
- "syntax": "none | <integer [1,∞]>",
- "extended": []
- }
- ],
- [
- "bookmark-state",
- {
- "name": "bookmark-state",
- "href": "https://drafts.csswg.org/css-content-3/#propdef-bookmark-state",
- "initial": "open",
- "appliesTo": "block-level elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "bookmark-state",
- "bookmarkState"
- ],
- "syntax": "open | closed",
- "extended": []
- }
- ],
- [
- "border",
- {
- "name": "border",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-block",
- {
- "name": "border-block",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block",
- "borderBlock"
- ],
- "syntax": "<'border-block-start'>",
- "extended": []
- }
- ],
- [
- "border-block-color",
- {
- "name": "border-block-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-color",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block-color",
- "borderBlockColor"
- ],
- "syntax": "<'border-top-color'>{1,2}",
- "extended": []
- }
- ],
- [
- "border-block-end",
- {
- "name": "border-block-end",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-end",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block-end",
- "borderBlockEnd"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-block-end-color",
- {
- "name": "border-block-end-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-end-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-block-end-color",
- "borderBlockEndColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-block-end-radius",
- {
- "name": "border-block-end-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-end-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block-end-radius",
- "borderBlockEndRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-block-end-style",
- {
- "name": "border-block-end-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-end-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-block-end-style",
- "borderBlockEndStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-block-end-width",
- {
- "name": "border-block-end-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-end-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-block-end-width",
- "borderBlockEndWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-block-start",
- {
- "name": "border-block-start",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-start",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block-start",
- "borderBlockStart"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-block-start-color",
- {
- "name": "border-block-start-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-start-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-block-start-color",
- "borderBlockStartColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-block-start-radius",
- {
- "name": "border-block-start-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-start-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block-start-radius",
- "borderBlockStartRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-block-start-style",
- {
- "name": "border-block-start-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-start-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-block-start-style",
- "borderBlockStartStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-block-start-width",
- {
- "name": "border-block-start-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-start-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-block-start-width",
- "borderBlockStartWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-block-style",
- {
- "name": "border-block-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-style",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block-style",
- "borderBlockStyle"
- ],
- "syntax": "<'border-top-style'>{1,2}",
- "extended": []
- }
- ],
- [
- "border-block-width",
- {
- "name": "border-block-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-block-width",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-block-width",
- "borderBlockWidth"
- ],
- "syntax": "<'border-top-width'>{1,2}",
- "extended": []
- }
- ],
- [
- "border-bottom",
- {
- "name": "border-bottom",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-bottom",
- "borderBottom"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-bottom-color",
- {
- "name": "border-bottom-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-bottom-color",
- "borderBottomColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-bottom-left-radius",
- {
- "name": "border-bottom-left-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-left-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-bottom-left-radius",
- "borderBottomLeftRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-bottom-radius",
- {
- "name": "border-bottom-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-bottom-radius",
- "borderBottomRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-bottom-right-radius",
- {
- "name": "border-bottom-right-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-right-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-bottom-right-radius",
- "borderBottomRightRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-bottom-style",
- {
- "name": "border-bottom-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-bottom-style",
- "borderBottomStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-bottom-width",
- {
- "name": "border-bottom-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-bottom-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-bottom-width",
- "borderBottomWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-boundary",
- {
- "name": "border-boundary",
- "href": "https://drafts.csswg.org/css-round-display-1/#propdef-border-boundary",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "border-boundary",
- "borderBoundary"
- ],
- "syntax": "none | parent | display",
- "extended": []
- }
- ],
- [
- "border-clip",
- {
- "name": "border-clip",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-clip",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-clip",
- "borderClip"
- ],
- "syntax": "<'border-top-clip'>",
- "extended": []
- }
- ],
- [
- "border-collapse",
- {
- "name": "border-collapse",
- "href": "https://drafts.csswg.org/css-tables-3/#propdef-border-collapse",
- "initial": "separate",
- "appliesTo": "table grid boxes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "border-collapse",
- "borderCollapse"
- ],
- "syntax": "separate | collapse",
- "extended": []
- }
- ],
- [
- "border-color",
- {
- "name": "border-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-color",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-color",
- "borderColor"
- ],
- "syntax": "[ <color> | <image-1D> ]{1,4}",
- "extended": []
- }
- ],
- [
- "border-end-end-radius",
- {
- "name": "border-end-end-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-end-end-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-end-end-radius",
- "borderEndEndRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-end-start-radius",
- {
- "name": "border-end-start-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-end-start-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-end-start-radius",
- "borderEndStartRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-image",
- {
- "name": "border-image",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-image",
- "initial": "See individual properties",
- "appliesTo": "See individual properties",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "See individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "See individual properties",
- "styleDeclaration": [
- "border-image",
- "borderImage"
- ],
- "syntax": "<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>",
- "extended": []
- }
- ],
- [
- "border-image-outset",
- {
- "name": "border-image-outset",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-image-outset",
- "initial": "0",
- "appliesTo": "All elements, except internal table elements when border-collapse is collapse",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "four values, each a number or absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "border-image-outset",
- "borderImageOutset"
- ],
- "syntax": "[ <length [0,∞]> | <number [0,∞]> ]{1,4}",
- "extended": []
- }
- ],
- [
- "border-image-repeat",
- {
- "name": "border-image-repeat",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-image-repeat",
- "initial": "stretch",
- "appliesTo": "All elements, except internal table elements when border-collapse is collapse",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "two keywords, one per axis",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "border-image-repeat",
- "borderImageRepeat"
- ],
- "syntax": "[ stretch | repeat | round | space ]{1,2}",
- "extended": []
- }
- ],
- [
- "border-image-slice",
- {
- "name": "border-image-slice",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-image-slice",
- "initial": "100%",
- "appliesTo": "All elements, except internal table elements when border-collapse is collapse",
- "inherited": "no",
- "percentages": "refer to size of the border image",
- "computedValue": "four values, each either a number or percentage; plus a fill keyword if specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "border-image-slice",
- "borderImageSlice"
- ],
- "syntax": "[<number [0,∞]> | <percentage [0,∞]>]{1,4} && fill?",
- "extended": []
- }
- ],
- [
- "border-image-source",
- {
- "name": "border-image-source",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-image-source",
- "initial": "none",
- "appliesTo": "All elements, except internal table elements when border-collapse is collapse",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword none or the computed <image>",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "border-image-source",
- "borderImageSource"
- ],
- "syntax": "none | <image>",
- "extended": []
- }
- ],
- [
- "border-image-width",
- {
- "name": "border-image-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-image-width",
- "initial": "1",
- "appliesTo": "All elements, except internal table elements when border-collapse is collapse",
- "inherited": "no",
- "percentages": "Relative to width/height of the border image area",
- "computedValue": "four values, each either a number, the keyword auto, or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "border-image-width",
- "borderImageWidth"
- ],
- "syntax": "[ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}",
- "extended": []
- }
- ],
- [
- "border-inline",
- {
- "name": "border-inline",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline",
- "borderInline"
- ],
- "syntax": "<'border-block-start'>",
- "extended": []
- }
- ],
- [
- "border-inline-color",
- {
- "name": "border-inline-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-color",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline-color",
- "borderInlineColor"
- ],
- "syntax": "<'border-top-color'>{1,2}",
- "extended": []
- }
- ],
- [
- "border-inline-end",
- {
- "name": "border-inline-end",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-end",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline-end",
- "borderInlineEnd"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-inline-end-color",
- {
- "name": "border-inline-end-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-end-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-inline-end-color",
- "borderInlineEndColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-inline-end-radius",
- {
- "name": "border-inline-end-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-end-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline-end-radius",
- "borderInlineEndRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-inline-end-style",
- {
- "name": "border-inline-end-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-end-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-inline-end-style",
- "borderInlineEndStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-inline-end-width",
- {
- "name": "border-inline-end-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-end-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-inline-end-width",
- "borderInlineEndWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-inline-start",
- {
- "name": "border-inline-start",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-start",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline-start",
- "borderInlineStart"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-inline-start-color",
- {
- "name": "border-inline-start-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-start-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-inline-start-color",
- "borderInlineStartColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-inline-start-radius",
- {
- "name": "border-inline-start-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-start-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline-start-radius",
- "borderInlineStartRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-inline-start-style",
- {
- "name": "border-inline-start-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-start-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-inline-start-style",
- "borderInlineStartStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-inline-start-width",
- {
- "name": "border-inline-start-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-start-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-inline-start-width",
- "borderInlineStartWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-inline-style",
- {
- "name": "border-inline-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-style",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline-style",
- "borderInlineStyle"
- ],
- "syntax": "<'border-top-style'>{1,2}",
- "extended": []
- }
- ],
- [
- "border-inline-width",
- {
- "name": "border-inline-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-inline-width",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-inline-width",
- "borderInlineWidth"
- ],
- "syntax": "<'border-top-width'>{1,2}",
- "extended": []
- }
- ],
- [
- "border-left",
- {
- "name": "border-left",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-left",
- "borderLeft"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-left-color",
- {
- "name": "border-left-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-left-color",
- "borderLeftColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-left-radius",
- {
- "name": "border-left-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-left-radius",
- "borderLeftRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-left-style",
- {
- "name": "border-left-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-left-style",
- "borderLeftStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-left-width",
- {
- "name": "border-left-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-left-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-left-width",
- "borderLeftWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-limit",
- {
- "name": "border-limit",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-limit",
- "initial": "all",
- "appliesTo": "all elements, except table element when border-collapse is collapse",
- "inherited": "no",
- "percentages": "relative to border-box",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "border-limit",
- "borderLimit"
- ],
- "syntax": "all | [ sides | corners ] <length-percentage [0,∞]>? | [ top | right | bottom | left ] <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "border-radius",
- {
- "name": "border-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-radius",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-radius",
- "borderRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?",
- "extended": []
- }
- ],
- [
- "border-right",
- {
- "name": "border-right",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-right",
- "borderRight"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-right-color",
- {
- "name": "border-right-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-right-color",
- "borderRightColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-right-radius",
- {
- "name": "border-right-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-right-radius",
- "borderRightRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-right-style",
- {
- "name": "border-right-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-right-style",
- "borderRightStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-right-width",
- {
- "name": "border-right-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-right-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-right-width",
- "borderRightWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-shape",
- {
- "name": "border-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-shape",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "see prose",
- "computedValue": "list, each item a computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "border-shape",
- "borderShape"
- ],
- "syntax": "none | [ <basic-shape> <geometry-box>?]{1,2}",
- "extended": []
- }
- ],
- [
- "border-spacing",
- {
- "name": "border-spacing",
- "href": "https://drafts.csswg.org/css-tables-3/#propdef-border-spacing",
- "initial": "0px 0px",
- "appliesTo": "table grid boxes when border-collapse is separate",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "two absolute lengths",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "border-spacing",
- "borderSpacing"
- ],
- "syntax": "<length>{1,2}",
- "extended": []
- }
- ],
- [
- "border-start-end-radius",
- {
- "name": "border-start-end-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-start-end-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-start-end-radius",
- "borderStartEndRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-start-start-radius",
- {
- "name": "border-start-start-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-start-start-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-start-start-radius",
- "borderStartStartRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-style",
- {
- "name": "border-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-style",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-style",
- "borderStyle"
- ],
- "syntax": "<'border-top-style'>{1,4}",
- "extended": []
- }
- ],
- [
- "border-top",
- {
- "name": "border-top",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top",
- "initial": "See individual properties",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-top",
- "borderTop"
- ],
- "syntax": "<line-width> || <line-style> || <color>",
- "extended": []
- }
- ],
- [
- "border-top-color",
- {
- "name": "border-top-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-color",
- "initial": "currentcolor",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the computed color and/or a one-dimensional image function",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "logicalPropertyGroup": "border-color",
- "styleDeclaration": [
- "border-top-color",
- "borderTopColor"
- ],
- "syntax": "<color> | <image-1D>",
- "extended": []
- }
- ],
- [
- "border-top-left-radius",
- {
- "name": "border-top-left-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-left-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-top-left-radius",
- "borderTopLeftRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-top-radius",
- {
- "name": "border-top-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-top-radius",
- "borderTopRadius"
- ],
- "syntax": "<length-percentage [0,∞]>{1,2} [ / <length-percentage [0,∞]>{1,2} ]?",
- "extended": []
- }
- ],
- [
- "border-top-right-radius",
- {
- "name": "border-top-right-radius",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-right-radius",
- "initial": "0",
- "appliesTo": "all elements (but see prose)",
- "inherited": "no",
- "percentages": "Refer to corresponding dimension of the border box.",
- "computedValue": "pair of computed <length-percentage> values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-radius",
- "styleDeclaration": [
- "border-top-right-radius",
- "borderTopRightRadius"
- ],
- "syntax": "<border-radius>",
- "extended": []
- }
- ],
- [
- "border-top-style",
- {
- "name": "border-top-style",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-style",
- "initial": "none",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "border-style",
- "styleDeclaration": [
- "border-top-style",
- "borderTopStyle"
- ],
- "syntax": "<line-style>",
- "extended": []
- }
- ],
- [
- "border-top-width",
- {
- "name": "border-top-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-top-width",
- "initial": "medium",
- "appliesTo": "all elements except ruby base containers and ruby annotation containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width; zero if the border style is none or hidden",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "logicalPropertyGroup": "border-width",
- "styleDeclaration": [
- "border-top-width",
- "borderTopWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "border-width",
- {
- "name": "border-width",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-border-width",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "border-width",
- "borderWidth"
- ],
- "syntax": "<'border-top-width'>{1,4}",
- "extended": []
- }
- ],
- [
- "bottom",
- {
- "name": "bottom",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-bottom",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "bottom"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "box-decoration-break",
- {
- "name": "box-decoration-break",
- "href": "https://drafts.csswg.org/css-break-4/#propdef-box-decoration-break",
- "initial": "slice",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "box-decoration-break",
- "boxDecorationBreak"
- ],
- "syntax": "slice | clone",
- "extended": []
- }
- ],
- [
- "box-shadow",
- {
- "name": "box-shadow",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-box-shadow",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "see individual properties",
- "styleDeclaration": [
- "box-shadow",
- "boxShadow"
- ],
- "syntax": "<spread-shadow>#",
- "extended": []
- }
- ],
- [
- "box-shadow-blur",
- {
- "name": "box-shadow-blur",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-box-shadow-blur",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a <length>",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "box-shadow-blur",
- "boxShadowBlur"
- ],
- "syntax": "<length [0,∞]>#",
- "extended": []
- }
- ],
- [
- "box-shadow-color",
- {
- "name": "box-shadow-color",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-box-shadow-color",
- "initial": "currentcolor",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "box-shadow-color",
- "boxShadowColor"
- ],
- "syntax": "<color>#",
- "extended": []
- }
- ],
- [
- "box-shadow-offset",
- {
- "name": "box-shadow-offset",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-box-shadow-offset",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item either none or a pair of offsets (horizontal and vertical) from the element‘s box",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value, treating none as 0 0 when interpolated with non-none values.",
- "styleDeclaration": [
- "box-shadow-offset",
- "boxShadowOffset"
- ],
- "syntax": "[ none | <length>{1,2} ]#",
- "extended": []
- }
- ],
- [
- "box-shadow-position",
- {
- "name": "box-shadow-position",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-box-shadow-position",
- "initial": "outset",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item one of the keywords",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "box-shadow-position",
- "boxShadowPosition"
- ],
- "syntax": "[ outset | inset ]#",
- "extended": []
- }
- ],
- [
- "box-shadow-spread",
- {
- "name": "box-shadow-spread",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-box-shadow-spread",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a <length>",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "box-shadow-spread",
- "boxShadowSpread"
- ],
- "syntax": "<length>#",
- "extended": []
- }
- ],
- [
- "box-sizing",
- {
- "name": "box-sizing",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-box-sizing",
- "initial": "content-box",
- "appliesTo": "all elements that accept width or height",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "box-sizing",
- "boxSizing"
- ],
- "syntax": "content-box | border-box",
- "extended": []
- }
- ],
- [
- "box-snap",
- {
- "name": "box-snap",
- "href": "https://drafts.csswg.org/css-line-grid-1/#propdef-box-snap",
- "initial": "none",
- "appliesTo": "block-level boxes and internal table elements except table cells",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "box-snap",
- "boxSnap"
- ],
- "syntax": "none | block-start | block-end | center | baseline | last-baseline",
- "extended": []
- }
- ],
- [
- "break-after",
- {
- "name": "break-after",
- "href": "https://drafts.csswg.org/css-break-4/#propdef-break-after",
- "initial": "auto",
- "appliesTo": "block-level boxes, grid items, flex items, table row groups, table rows (but see prose)",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "break-after",
- "breakAfter"
- ],
- "syntax": "auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region",
- "extended": []
- }
- ],
- [
- "break-before",
- {
- "name": "break-before",
- "href": "https://drafts.csswg.org/css-break-4/#propdef-break-before",
- "initial": "auto",
- "appliesTo": "block-level boxes, grid items, flex items, table row groups, table rows (but see prose)",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "break-before",
- "breakBefore"
- ],
- "syntax": "auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region",
- "extended": []
- }
- ],
- [
- "break-inside",
- {
- "name": "break-inside",
- "href": "https://drafts.csswg.org/css-break-4/#propdef-break-inside",
- "initial": "auto",
- "appliesTo": "all elements except inline-level boxes, internal ruby boxes, table column boxes, table column group boxes, absolutely-positioned boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "break-inside",
- "breakInside"
- ],
- "syntax": "auto | avoid | avoid-page | avoid-column | avoid-region",
- "extended": []
- }
- ],
- [
- "caption-side",
- {
- "name": "caption-side",
- "href": "https://drafts.csswg.org/css-tables-3/#propdef-caption-side",
- "initial": "top",
- "appliesTo": "table-caption boxes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "caption-side",
- "captionSide"
- ],
- "syntax": "top | bottom",
- "extended": []
- }
- ],
- [
- "caret",
- {
- "name": "caret",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-caret",
- "initial": "auto",
- "appliesTo": "text or elements that accept text input",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "caret"
- ],
- "syntax": "<'caret-color'> || <'caret-animation'> || <'caret-shape'>",
- "extended": []
- }
- ],
- [
- "caret-color",
- {
- "name": "caret-color",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-caret-color",
- "initial": "auto",
- "appliesTo": "text or elements that accept text input",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "The computed value for auto is auto. For <color> values, see CSS Color 4 § 14. Resolving <color> Values.",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "caret-color",
- "caretColor"
- ],
- "syntax": "auto | <color>",
- "extended": []
- }
- ],
- [
- "caret-shape",
- {
- "name": "caret-shape",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-caret-shape",
- "initial": "auto",
- "appliesTo": "text or elements that accept text input",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "caret-shape",
- "caretShape"
- ],
- "syntax": "auto | bar | block | underscore",
- "extended": []
- }
- ],
- [
- "clear",
- {
- "name": "clear",
- "href": "https://drafts.csswg.org/css-page-floats-3/#propdef-clear",
- "initial": "none",
- "appliesTo": "block-level elements, floats, regions, pages",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "clear"
- ],
- "syntax": "inline-start | inline-end | block-start | block-end | left | right | top | bottom | both-inline | both-block | both | none",
- "extended": []
- }
- ],
- [
- "clip",
- {
- "name": "clip",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-clip",
- "initial": "auto",
- "appliesTo": "Absolutely positioned elements. In SVG, it applies to elements which establish a new viewport, pattern elements and mask elements.",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "clip"
- ],
- "syntax": "<rect()> | auto",
- "extended": []
- }
- ],
- [
- "clip-path",
- {
- "name": "clip-path",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-clip-path",
- "initial": "none",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified, but with <url> values made absolute",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "clip-path",
- "clipPath"
- ],
- "syntax": "<clip-source> | [ <basic-shape> || <geometry-box> ] | none",
- "extended": []
- }
- ],
- [
- "clip-rule",
- {
- "name": "clip-rule",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-clip-rule",
- "initial": "nonzero",
- "appliesTo": "Applies to SVG graphics elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "clip-rule",
- "clipRule"
- ],
- "syntax": "nonzero | evenodd",
- "extended": []
- }
- ],
- [
- "color",
- {
- "name": "color",
- "href": "https://drafts.csswg.org/css-color-4/#propdef-color",
- "initial": "CanvasText",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "computed color, see resolving color values",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "color"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "color-adjust",
- {
- "name": "color-adjust",
- "href": "https://drafts.csswg.org/css-color-adjust-1/#propdef-color-adjust",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "color-adjust",
- "colorAdjust"
- ],
- "syntax": "<'print-color-adjust'>",
- "extended": []
- }
- ],
- [
- "color-interpolation",
- {
- "name": "color-interpolation",
- "href": "https://svgwg.org/svg2-draft/painting.html#ColorInterpolationProperty",
- "initial": "sRGB",
- "appliesTo": "container elements, graphics elements, gradient elements, ‘use’ and ‘animate’",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified",
- "animationType": "discrete",
- "styleDeclaration": [
- "color-interpolation",
- "colorInterpolation"
- ],
- "syntax": "auto | sRGB | linearRGB",
- "extended": []
- }
- ],
- [
- "color-interpolation-filters",
- {
- "name": "color-interpolation-filters",
- "href": "https://drafts.fxtf.org/filter-effects-1/#propdef-color-interpolation-filters",
- "initial": "linearRGB",
- "appliesTo": "All filter primitives",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "color-interpolation-filters",
- "colorInterpolationFilters"
- ],
- "syntax": "auto | sRGB | linearRGB",
- "extended": []
- }
- ],
- [
- "color-scheme",
- {
- "name": "color-scheme",
- "href": "https://drafts.csswg.org/css-color-adjust-1/#propdef-color-scheme",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the keyword normal, or an ordered list of specified color scheme keywords",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "color-scheme",
- "colorScheme"
- ],
- "syntax": "normal | [ light | dark | <custom-ident> ]+ && only?",
- "extended": []
- }
- ],
- [
- "column-count",
- {
- "name": "column-count",
- "href": "https://drafts.csswg.org/css-multicol-2/#propdef-column-count",
- "initial": "auto",
- "appliesTo": "block containers except table wrapper boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "column-count",
- "columnCount"
- ],
- "syntax": "auto | <integer [1,∞]>",
- "extended": []
- }
- ],
- [
- "column-fill",
- {
- "name": "column-fill",
- "href": "https://drafts.csswg.org/css-multicol-2/#propdef-column-fill",
- "initial": "balance",
- "appliesTo": "multicol containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "column-fill",
- "columnFill"
- ],
- "syntax": "auto | balance | balance-all",
- "extended": []
- }
- ],
- [
- "column-gap",
- {
- "name": "column-gap",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-column-gap",
- "initial": "normal",
- "appliesTo": "multi-column containers, flex containers, grid containers",
- "inherited": "no",
- "percentages": "see § 8.3 Percentages In gap Properties",
- "computedValue": "specified keyword, else a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "column-gap",
- "columnGap"
- ],
- "syntax": "normal | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "column-rule",
- {
- "name": "column-rule",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-column-rule",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "column-rule",
- "columnRule"
- ],
- "syntax": "<gap-rule-list> | <gap-auto-rule-list>",
- "extended": []
- }
- ],
- [
- "column-rule-break",
- {
- "name": "column-rule-break",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-column-rule-break",
- "initial": "spanning-item",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "column-rule-break",
- "columnRuleBreak"
- ],
- "syntax": "none | spanning-item | intersection",
- "extended": []
- }
- ],
- [
- "column-rule-color",
- {
- "name": "column-rule-color",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-column-rule-color",
- "initial": "currentcolor",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list, see § 3.4.1 Interpolation behavior.",
- "styleDeclaration": [
- "column-rule-color",
- "columnRuleColor"
- ],
- "syntax": "<line-color-list> | <auto-line-color-list>",
- "extended": []
- }
- ],
- [
- "column-rule-outset",
- {
- "name": "column-rule-outset",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-column-rule-outset",
- "initial": "50%",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "refer to the crossing gap width",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "column-rule-outset",
- "columnRuleOutset"
- ],
- "syntax": "<length-percentage>",
- "extended": []
- }
- ],
- [
- "column-rule-style",
- {
- "name": "column-rule-style",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-column-rule-style",
- "initial": "none",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "column-rule-style",
- "columnRuleStyle"
- ],
- "syntax": "<line-style-list> | <auto-line-style-list>",
- "extended": []
- }
- ],
- [
- "column-rule-width",
- {
- "name": "column-rule-width",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-column-rule-width",
- "initial": "medium",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list of absolute lengths, snapped as a border width",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list, see § 3.4.1 Interpolation behavior.",
- "styleDeclaration": [
- "column-rule-width",
- "columnRuleWidth"
- ],
- "syntax": "<line-width-list> | <auto-line-width-list>",
- "extended": []
- }
- ],
- [
- "column-span",
- {
- "name": "column-span",
- "href": "https://drafts.csswg.org/css-multicol-2/#propdef-column-span",
- "initial": "none",
- "appliesTo": "in-flow block-level elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "column-span",
- "columnSpan"
- ],
- "syntax": "none | <integer [1,∞]> | all | auto",
- "extended": []
- }
- ],
- [
- "column-width",
- {
- "name": "column-width",
- "href": "https://drafts.csswg.org/css-multicol-2/#propdef-column-width",
- "initial": "auto",
- "appliesTo": "block containers except table wrapper boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword auto or an absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "column-width",
- "columnWidth"
- ],
- "syntax": "auto | <length [0,∞]> | min-content | max-content | fit-content(<length-percentage>)",
- "extended": [
- "https://drafts.csswg.org/css-sizing-3/"
- ]
- }
- ],
- [
- "columns",
- {
- "name": "columns",
- "href": "https://drafts.csswg.org/css-multicol-2/#propdef-columns",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "columns"
- ],
- "syntax": "[ <'column-width'> || <'column-count'> ] [ / <'column-height'> ]?",
- "extended": []
- }
- ],
- [
- "contain",
- {
- "name": "contain",
- "href": "https://drafts.csswg.org/css-contain-2/#propdef-contain",
- "initial": "none",
- "appliesTo": "See below",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or one or more of size, layout, paint",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "contain"
- ],
- "syntax": "none | strict | content | [ [size | inline-size] || layout || style || paint ] | view-transition",
- "extended": [
- "https://drafts.csswg.org/css-view-transitions-2/"
- ]
- }
- ],
- [
- "contain-intrinsic-block-size",
- {
- "name": "contain-intrinsic-block-size",
- "href": "https://drafts.csswg.org/css-sizing-4/#propdef-contain-intrinsic-block-size",
- "initial": "none",
- "appliesTo": "elements with size containment",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified, with <length> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "contain-intrinsic-size",
- "styleDeclaration": [
- "contain-intrinsic-block-size",
- "containIntrinsicBlockSize"
- ],
- "syntax": "[ auto | from-element ]? [ none | <length [0,∞]> ]",
- "extended": []
- }
- ],
- [
- "contain-intrinsic-height",
- {
- "name": "contain-intrinsic-height",
- "href": "https://drafts.csswg.org/css-sizing-4/#propdef-contain-intrinsic-height",
- "initial": "none",
- "appliesTo": "elements with size containment",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified, with <length> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "contain-intrinsic-size",
- "styleDeclaration": [
- "contain-intrinsic-height",
- "containIntrinsicHeight"
- ],
- "syntax": "[ auto | from-element ]? [ none | <length [0,∞]> ]",
- "extended": []
- }
- ],
- [
- "contain-intrinsic-inline-size",
- {
- "name": "contain-intrinsic-inline-size",
- "href": "https://drafts.csswg.org/css-sizing-4/#propdef-contain-intrinsic-inline-size",
- "initial": "none",
- "appliesTo": "elements with size containment",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified, with <length> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "contain-intrinsic-size",
- "styleDeclaration": [
- "contain-intrinsic-inline-size",
- "containIntrinsicInlineSize"
- ],
- "syntax": "[ auto | from-element ]? [ none | <length [0,∞]> ]",
- "extended": []
- }
- ],
- [
- "contain-intrinsic-size",
- {
- "name": "contain-intrinsic-size",
- "href": "https://drafts.csswg.org/css-sizing-4/#propdef-contain-intrinsic-size",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "contain-intrinsic-size",
- "containIntrinsicSize"
- ],
- "syntax": "[ [ auto | from-element ]? [ none | <length [0,∞]> ] ]{1,2}",
- "extended": []
- }
- ],
- [
- "contain-intrinsic-width",
- {
- "name": "contain-intrinsic-width",
- "href": "https://drafts.csswg.org/css-sizing-4/#propdef-contain-intrinsic-width",
- "initial": "none",
- "appliesTo": "elements with size containment",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified, with <length> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "contain-intrinsic-size",
- "styleDeclaration": [
- "contain-intrinsic-width",
- "containIntrinsicWidth"
- ],
- "syntax": "[ auto | from-element ]? [ none | <length [0,∞]> ]",
- "extended": []
- }
- ],
- [
- "container",
- {
- "name": "container",
- "href": "https://drafts.csswg.org/css-conditional-5/#propdef-container",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "container"
- ],
- "syntax": "<'container-name'> [ / <'container-type'> ]?",
- "extended": []
- }
- ],
- [
- "container-name",
- {
- "name": "container-name",
- "href": "https://drafts.csswg.org/css-conditional-5/#propdef-container-name",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none, or an ordered list of identifiers",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "container-name",
- "containerName"
- ],
- "syntax": "none | <custom-ident>+",
- "extended": []
- }
- ],
- [
- "container-type",
- {
- "name": "container-type",
- "href": "https://drafts.csswg.org/css-conditional-5/#propdef-container-type",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "container-type",
- "containerType"
- ],
- "syntax": "normal | [ [ size | inline-size ] || scroll-state ]",
- "extended": []
- }
- ],
- [
- "content",
- {
- "name": "content",
- "href": "https://drafts.csswg.org/css-content-3/#propdef-content",
- "initial": "normal",
- "appliesTo": "all elements, tree-abiding pseudo-elements, and page margin boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "See prose below",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "content"
- ],
- "syntax": "normal | none | [ <content-replacement> | <content-list> ] [/ [ <string> | <counter> | <attr()> ]+ ]? | <element()>",
- "extended": [
- "https://drafts.csswg.org/css-gcpm-3/"
- ]
- }
- ],
- [
- "content-visibility",
- {
- "name": "content-visibility",
- "href": "https://drafts.csswg.org/css-contain-2/#propdef-content-visibility",
- "initial": "visible",
- "appliesTo": "elements for which size containment can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "see § 4.1 Animating and Interpolating content-visibility",
- "styleDeclaration": [
- "content-visibility",
- "contentVisibility"
- ],
- "syntax": "visible | auto | hidden",
- "extended": []
- }
- ],
- [
- "continue",
- {
- "name": "continue",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-continue",
- "initial": "auto",
- "appliesTo": "block containers and multicol containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "continue"
- ],
- "syntax": "auto | discard | collapse | -webkit-legacy | overflow | paginate | fragments",
- "extended": [
- "https://drafts.csswg.org/css-overflow-5/"
- ]
- }
- ],
- [
- "corner-block-end-shape",
- {
- "name": "corner-block-end-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-block-end-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-block-end-shape",
- "cornerBlockEndShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "corner-block-start-shape",
- {
- "name": "corner-block-start-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-block-start-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-block-start-shape",
- "cornerBlockStartShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "corner-bottom-left-shape",
- {
- "name": "corner-bottom-left-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-bottom-left-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-bottom-left-shape",
- "cornerBottomLeftShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-bottom-right-shape",
- {
- "name": "corner-bottom-right-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-bottom-right-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-bottom-right-shape",
- "cornerBottomRightShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-bottom-shape",
- {
- "name": "corner-bottom-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-bottom-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-bottom-shape",
- "cornerBottomShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "corner-end-end-shape",
- {
- "name": "corner-end-end-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-end-end-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-end-end-shape",
- "cornerEndEndShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-end-start-shape",
- {
- "name": "corner-end-start-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-end-start-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-end-start-shape",
- "cornerEndStartShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-inline-end-shape",
- {
- "name": "corner-inline-end-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-inline-end-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-inline-end-shape",
- "cornerInlineEndShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "corner-inline-start-shape",
- {
- "name": "corner-inline-start-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-inline-start-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-inline-start-shape",
- "cornerInlineStartShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "corner-left-shape",
- {
- "name": "corner-left-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-left-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-left-shape",
- "cornerLeftShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "corner-right-shape",
- {
- "name": "corner-right-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-right-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-right-shape",
- "cornerRightShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "corner-shape",
- {
- "name": "corner-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-shape",
- "cornerShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,4}",
- "extended": []
- }
- ],
- [
- "corner-start-end-shape",
- {
- "name": "corner-start-end-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-start-end-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-start-end-shape",
- "cornerStartEndShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-start-start-shape",
- {
- "name": "corner-start-start-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-start-start-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-start-start-shape",
- "cornerStartStartShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-top-left-shape",
- {
- "name": "corner-top-left-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-top-left-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-top-left-shape",
- "cornerTopLeftShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-top-right-shape",
- {
- "name": "corner-top-right-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-top-right-shape",
- "initial": "round",
- "appliesTo": "all elements where border-radius can apply",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the corresponding superellipse() value",
- "canonicalOrder": "per grammar",
- "animationType": "see superellipse interpolation",
- "logicalPropertyGroup": "corner-shape",
- "styleDeclaration": [
- "corner-top-right-shape",
- "cornerTopRightShape"
- ],
- "syntax": "<corner-shape-value>",
- "extended": []
- }
- ],
- [
- "corner-top-shape",
- {
- "name": "corner-top-shape",
- "href": "https://drafts.csswg.org/css-borders-4/#propdef-corner-top-shape",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "corner-top-shape",
- "cornerTopShape"
- ],
- "syntax": "<'corner-top-left-shape'>{1,2}",
- "extended": []
- }
- ],
- [
- "counter-increment",
- {
- "name": "counter-increment",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-counter-increment",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a list, each item an identifier paired with an integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "counter-increment",
- "counterIncrement"
- ],
- "syntax": "[ <counter-name> <integer>? ]+ | none",
- "extended": []
- }
- ],
- [
- "counter-reset",
- {
- "name": "counter-reset",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-counter-reset",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a list, each item an identifier or a reversed() function paired with an integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "counter-reset",
- "counterReset"
- ],
- "syntax": "[ <counter-name> <integer>? | <reversed-counter-name> <integer>? ]+ | none",
- "extended": []
- }
- ],
- [
- "counter-set",
- {
- "name": "counter-set",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-counter-set",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a list, each item an identifier paired with an integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "counter-set",
- "counterSet"
- ],
- "syntax": "[ <counter-name> <integer>? ]+ | none",
- "extended": []
- }
- ],
- [
- "cue",
- {
- "name": "cue",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-cue",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "cue"
- ],
- "syntax": "<'cue-before'> <'cue-after'>?",
- "extended": []
- }
- ],
- [
- "cue-after",
- {
- "name": "cue-after",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-cue-after",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "cue-after",
- "cueAfter"
- ],
- "syntax": "<uri> <decibel>? | none",
- "extended": []
- }
- ],
- [
- "cue-before",
- {
- "name": "cue-before",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-cue-before",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "cue-before",
- "cueBefore"
- ],
- "syntax": "<uri> <decibel>? | none",
- "extended": []
- }
- ],
- [
- "cursor",
- {
- "name": "cursor",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-cursor",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified, except with any relative URLs converted to absolute",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "cursor"
- ],
- "syntax": "[<cursor-image>,]* <cursor-predefined>",
- "extended": []
- }
- ],
- [
- "direction",
- {
- "name": "direction",
- "href": "https://drafts.csswg.org/css-writing-modes-4/#propdef-direction",
- "initial": "ltr",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "n/a",
- "animationType": "not animatable",
- "styleDeclaration": [
- "direction"
- ],
- "syntax": "ltr | rtl",
- "extended": []
- }
- ],
- [
- "display",
- {
- "name": "display",
- "href": "https://drafts.csswg.org/css-display-4/#propdef-display",
- "initial": "inline",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "a pair of keywords representing the inner and outer display types plus optional list-item flag, or a <display-internal> or <display-box> keyword; see prose in a variety of specs for computation rules",
- "canonicalOrder": "per grammar",
- "animationType": "see § 2.9 Animating and Interpolating display",
- "styleDeclaration": [
- "display"
- ],
- "syntax": "[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy> | <display-outside> || [ <display-inside> | math ]",
- "extended": [
- "https://w3c.github.io/mathml-core/"
- ]
- }
- ],
- [
- "dominant-baseline",
- {
- "name": "dominant-baseline",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-dominant-baseline",
- "initial": "auto",
- "appliesTo": "block containers, inline boxes, table rows, grid containers, flex containers, and SVG text content elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "dominant-baseline",
- "dominantBaseline"
- ],
- "syntax": "auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top",
- "extended": []
- }
- ],
- [
- "dynamic-range-limit",
- {
- "name": "dynamic-range-limit",
- "href": "https://drafts.csswg.org/css-color-hdr-1/#propdef-dynamic-range-limit",
- "initial": "no-limit",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "see Computed Value for dynamic-range-limit",
- "canonicalOrder": "per grammar",
- "animationType": "by dynamic-range-limit-mix()",
- "styleDeclaration": [
- "dynamic-range-limit",
- "dynamicRangeLimit"
- ],
- "syntax": "standard | no-limit | constrained | <dynamic-range-limit-mix()>",
- "extended": []
- }
- ],
- [
- "empty-cells",
- {
- "name": "empty-cells",
- "href": "https://drafts.csswg.org/css-tables-3/#propdef-empty-cells",
- "initial": "show",
- "appliesTo": "table-cell boxes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "empty-cells",
- "emptyCells"
- ],
- "syntax": "show | hide",
- "extended": []
- }
- ],
- [
- "fill",
- {
- "name": "fill",
- "href": "https://svgwg.org/svg2-draft/painting.html#FillProperty",
- "initial": "black",
- "appliesTo": "shapes and text content elements",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified, but with <color> values computed and <url> values made absolute",
- "animationType": "by computed value",
- "styleDeclaration": [
- "fill"
- ],
- "syntax": "<paint>",
- "extended": []
- }
- ],
- [
- "fill-break",
- {
- "name": "fill-break",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-break",
- "initial": "bounding-box",
- "appliesTo": "all elements",
- "inherited": "yes?",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "fill-break",
- "fillBreak"
- ],
- "syntax": "bounding-box | slice | clone",
- "extended": []
- }
- ],
- [
- "fill-color",
- {
- "name": "fill-color",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-color",
- "initial": "currentcolor",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "fill-color",
- "fillColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "fill-image",
- {
- "name": "fill-image",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-image",
- "initial": "none",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified, with any <image> computed",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "fill-image",
- "fillImage"
- ],
- "syntax": "<paint>#",
- "extended": []
- }
- ],
- [
- "fill-opacity",
- {
- "name": "fill-opacity",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-opacity",
- "initial": "1",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the specified value converted to a <number>, clamped to the range [0,1]",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "fill-opacity",
- "fillOpacity"
- ],
- "syntax": "<'opacity'>",
- "extended": []
- }
- ],
- [
- "fill-origin",
- {
- "name": "fill-origin",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-origin",
- "initial": "match-parent",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "fill-origin",
- "fillOrigin"
- ],
- "syntax": "match-parent | fill-box | stroke-box | content-box | padding-box | border-box",
- "extended": []
- }
- ],
- [
- "fill-position",
- {
- "name": "fill-position",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-position",
- "initial": "0% 0%",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "A list, each item consisting of: a pair of offsets (horizontal and vertical) from the top left origin each given as a combination of an absolute length and a percentage",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "fill-position",
- "fillPosition"
- ],
- "syntax": "<position>#",
- "extended": []
- }
- ],
- [
- "fill-repeat",
- {
- "name": "fill-repeat",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-repeat",
- "initial": "repeat",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "A list, each item consisting of: two keywords, one per dimension",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "fill-repeat",
- "fillRepeat"
- ],
- "syntax": "<repeat-style>#",
- "extended": []
- }
- ],
- [
- "fill-rule",
- {
- "name": "fill-rule",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-rule",
- "initial": "nonzero",
- "appliesTo": "SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "fill-rule",
- "fillRule"
- ],
- "syntax": "nonzero | evenodd",
- "extended": []
- }
- ],
- [
- "fill-size",
- {
- "name": "fill-size",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-fill-size",
- "initial": "auto",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified, but with lengths made absolute and omitted auto keywords filled in",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "fill-size",
- "fillSize"
- ],
- "syntax": "<bg-size>#",
- "extended": []
- }
- ],
- [
- "filter",
- {
- "name": "filter",
- "href": "https://drafts.fxtf.org/filter-effects-1/#propdef-filter",
- "initial": "none",
- "appliesTo": "All elements. In SVG, it applies to container elements without the defs element, all graphics elements and the use element.",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "See prose in Animation of Filters.",
- "media": "visual",
- "styleDeclaration": [
- "filter"
- ],
- "syntax": "none | <filter-value-list>",
- "extended": []
- }
- ],
- [
- "flex",
- {
- "name": "flex",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex",
- "initial": "0 1 auto",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "by computed value type",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "flex"
- ],
- "syntax": "none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]",
- "extended": []
- }
- ],
- [
- "flex-basis",
- {
- "name": "flex-basis",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-basis",
- "initial": "auto",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "relative to the flex container’s inner main size",
- "computedValue": "specified keyword or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "flex-basis",
- "flexBasis"
- ],
- "syntax": "content | <'width'>",
- "extended": []
- }
- ],
- [
- "flex-direction",
- {
- "name": "flex-direction",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-direction",
- "initial": "row",
- "appliesTo": "flex containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "flex-direction",
- "flexDirection"
- ],
- "syntax": "row | row-reverse | column | column-reverse",
- "extended": []
- }
- ],
- [
- "flex-flow",
- {
- "name": "flex-flow",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-flow",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "flex-flow",
- "flexFlow"
- ],
- "syntax": "<'flex-direction'> || <'flex-wrap'>",
- "extended": []
- }
- ],
- [
- "flex-grow",
- {
- "name": "flex-grow",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-grow",
- "initial": "0",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified number",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "flex-grow",
- "flexGrow"
- ],
- "syntax": "<number [0,∞]>",
- "extended": []
- }
- ],
- [
- "flex-shrink",
- {
- "name": "flex-shrink",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-shrink",
- "initial": "1",
- "appliesTo": "flex items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "number",
- "styleDeclaration": [
- "flex-shrink",
- "flexShrink"
- ],
- "syntax": "<number [0,∞]>",
- "extended": []
- }
- ],
- [
- "flex-wrap",
- {
- "name": "flex-wrap",
- "href": "https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap",
- "initial": "nowrap",
- "appliesTo": "flex containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "flex-wrap",
- "flexWrap"
- ],
- "syntax": "nowrap | wrap | wrap-reverse",
- "extended": []
- }
- ],
- [
- "float",
- {
- "name": "float",
- "href": "https://drafts.csswg.org/css-page-floats-3/#propdef-float",
- "initial": "none",
- "appliesTo": "all elements.",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "float"
- ],
- "syntax": "block-start | block-end | inline-start | inline-end | snap-block | <snap-block()> | snap-inline | <snap-inline()> | left | right | top | bottom | none | footnote",
- "extended": [
- "https://drafts.csswg.org/css-gcpm-3/"
- ]
- }
- ],
- [
- "float-defer",
- {
- "name": "float-defer",
- "href": "https://drafts.csswg.org/css-page-floats-3/#propdef-float-defer",
- "initial": "none",
- "appliesTo": "floats",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword or integer",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "float-defer",
- "floatDefer"
- ],
- "syntax": "<integer> | last | none",
- "extended": []
- }
- ],
- [
- "float-offset",
- {
- "name": "float-offset",
- "href": "https://drafts.csswg.org/css-page-floats-3/#propdef-float-offset",
- "initial": "0",
- "appliesTo": "floats",
- "inherited": "no",
- "percentages": "see prose",
- "computedValue": "computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "float-offset",
- "floatOffset"
- ],
- "syntax": "<length-percentage>",
- "extended": []
- }
- ],
- [
- "float-reference",
- {
- "name": "float-reference",
- "href": "https://drafts.csswg.org/css-page-floats-3/#propdef-float-reference",
- "initial": "inline",
- "appliesTo": "all elements.",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "float-reference",
- "floatReference"
- ],
- "syntax": "inline | column | region | page",
- "extended": []
- }
- ],
- [
- "flood-color",
- {
- "name": "flood-color",
- "href": "https://drafts.fxtf.org/filter-effects-1/#propdef-flood-color",
- "initial": "black",
- "appliesTo": "feFlood and feDropShadow elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "flood-color",
- "floodColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "flood-opacity",
- {
- "name": "flood-opacity",
- "href": "https://drafts.fxtf.org/filter-effects-1/#propdef-flood-opacity",
- "initial": "1",
- "appliesTo": "feFlood and feDropShadow elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the specified value converted to a number, clamped to the range [0,1]",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "flood-opacity",
- "floodOpacity"
- ],
- "syntax": "<'opacity'>",
- "extended": []
- }
- ],
- [
- "flow-from",
- {
- "name": "flow-from",
- "href": "https://drafts.csswg.org/css-regions-1/#propdef-flow-from",
- "initial": "none",
- "appliesTo": "Non-replaced block containers. This might be expanded in future versions of the specification to allow other types of containers to receive flow content.",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "flow-from",
- "flowFrom"
- ],
- "syntax": "<custom-ident> | none",
- "extended": []
- }
- ],
- [
- "flow-into",
- {
- "name": "flow-into",
- "href": "https://drafts.csswg.org/css-regions-1/#propdef-flow-into",
- "initial": "none",
- "appliesTo": "All elements, but not pseudo-elements such as ::first-line, ::first-letter, ::before or ::after.",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "flow-into",
- "flowInto"
- ],
- "syntax": "none | <custom-ident> [element | content]?",
- "extended": []
- }
- ],
- [
- "font",
- {
- "name": "font",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font",
- "initial": "see individual properties",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "see individual properties",
- "styleDeclaration": [
- "font"
- ],
- "syntax": "[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name>",
- "extended": []
- }
- ],
- [
- "font-family",
- {
- "name": "font-family",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-family",
- "initial": "depends on user agent",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "list, each item a string and/or <generic-family> keywords",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-family",
- "fontFamily"
- ],
- "syntax": "[ <family-name> | <generic-family> ]#",
- "extended": []
- }
- ],
- [
- "font-feature-settings",
- {
- "name": "font-feature-settings",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-feature-settings",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-feature-settings",
- "fontFeatureSettings"
- ],
- "syntax": "normal | <feature-tag-value>#",
- "extended": []
- }
- ],
- [
- "font-kerning",
- {
- "name": "font-kerning",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-kerning",
- "initial": "auto",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-kerning",
- "fontKerning"
- ],
- "syntax": "auto | normal | none",
- "extended": []
- }
- ],
- [
- "font-language-override",
- {
- "name": "font-language-override",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-language-override",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified string or the keyword none",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-language-override",
- "fontLanguageOverride"
- ],
- "syntax": "normal | <string>",
- "extended": []
- }
- ],
- [
- "font-optical-sizing",
- {
- "name": "font-optical-sizing",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-optical-sizing",
- "initial": "auto",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-optical-sizing",
- "fontOpticalSizing"
- ],
- "syntax": "auto | none",
- "extended": []
- }
- ],
- [
- "font-palette",
- {
- "name": "font-palette",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-palette",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/a",
- "computedValue": "specified keyword, identifier or <palette-mix()> function. <palette-mix()> must be simplified to a single keyword or identifier if resulting palette is equivalent.",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "font-palette",
- "fontPalette"
- ],
- "syntax": "normal | light | dark | <palette-identifier> | <palette-mix()>",
- "extended": []
- }
- ],
- [
- "font-size",
- {
- "name": "font-size",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-size",
- "initial": "medium",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "refer to parent element’s font size",
- "computedValue": "an absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "font-size",
- "fontSize"
- ],
- "syntax": "<absolute-size> | <relative-size> | <length-percentage [0,∞]> | math",
- "extended": []
- }
- ],
- [
- "font-size-adjust",
- {
- "name": "font-size-adjust",
- "href": "https://drafts.csswg.org/css-fonts-5/#propdef-font-size-adjust",
- "initial": "none",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the keyword none, or a pair of a metric keyword and a <number>",
- "canonicalOrder": "per grammar",
- "animationType": "discrete if the keywords differ, otherwise by computed value type",
- "styleDeclaration": [
- "font-size-adjust",
- "fontSizeAdjust"
- ],
- "syntax": "none | [ ex-height | cap-height | ch-width | ic-width | ic-height ]? [ from-font | <number [0,∞]> ]",
- "extended": []
- }
- ],
- [
- "font-stretch",
- {
- "name": "font-stretch",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-stretch",
- "legacyAliasOf": "font-width",
- "styleDeclaration": [
- "font-stretch",
- "fontStretch"
- ],
- "extended": [],
- "syntax": "normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded"
- }
- ],
- [
- "font-style",
- {
- "name": "font-style",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-style",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the keyword specified, plus angle in degrees if specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type;normal animates as oblique 0deg",
- "styleDeclaration": [
- "font-style",
- "fontStyle"
- ],
- "syntax": "normal | italic | left | right | oblique <angle [-90deg,90deg]>?",
- "extended": []
- }
- ],
- [
- "font-synthesis",
- {
- "name": "font-synthesis",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-synthesis",
- "initial": "weight style small-caps position",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-synthesis",
- "fontSynthesis"
- ],
- "syntax": "none | [ weight || style || small-caps || position]",
- "extended": []
- }
- ],
- [
- "font-synthesis-position",
- {
- "name": "font-synthesis-position",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-synthesis-position",
- "initial": "auto",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-synthesis-position",
- "fontSynthesisPosition"
- ],
- "syntax": "auto | none",
- "extended": []
- }
- ],
- [
- "font-synthesis-small-caps",
- {
- "name": "font-synthesis-small-caps",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-synthesis-small-caps",
- "initial": "auto",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-synthesis-small-caps",
- "fontSynthesisSmallCaps"
- ],
- "syntax": "auto | none",
- "extended": []
- }
- ],
- [
- "font-synthesis-style",
- {
- "name": "font-synthesis-style",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-synthesis-style",
- "initial": "auto",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "font-synthesis-style",
- "fontSynthesisStyle"
- ],
- "syntax": "auto | none | oblique-only",
- "extended": []
- }
- ],
- [
- "font-synthesis-weight",
- {
- "name": "font-synthesis-weight",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-synthesis-weight",
- "initial": "auto",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "font-synthesis-weight",
- "fontSynthesisWeight"
- ],
- "syntax": "auto | none",
- "extended": []
- }
- ],
- [
- "font-variant",
- {
- "name": "font-variant",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant",
- "fontVariant"
- ],
- "syntax": "normal | none | [ [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || [ stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) ] || [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] || [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] || [ sub | super ] || [ text | emoji | unicode ] ]",
- "extended": []
- }
- ],
- [
- "font-variant-alternates",
- {
- "name": "font-variant-alternates",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-alternates",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant-alternates",
- "fontVariantAlternates"
- ],
- "syntax": "normal | [ stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) ]",
- "extended": []
- }
- ],
- [
- "font-variant-caps",
- {
- "name": "font-variant-caps",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-caps",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant-caps",
- "fontVariantCaps"
- ],
- "syntax": "normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps",
- "extended": []
- }
- ],
- [
- "font-variant-east-asian",
- {
- "name": "font-variant-east-asian",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-east-asian",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant-east-asian",
- "fontVariantEastAsian"
- ],
- "syntax": "normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]",
- "extended": []
- }
- ],
- [
- "font-variant-emoji",
- {
- "name": "font-variant-emoji",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-emoji",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "N/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant-emoji",
- "fontVariantEmoji"
- ],
- "syntax": "normal | text | emoji | unicode",
- "extended": []
- }
- ],
- [
- "font-variant-ligatures",
- {
- "name": "font-variant-ligatures",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-ligatures",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant-ligatures",
- "fontVariantLigatures"
- ],
- "syntax": "normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]",
- "extended": []
- }
- ],
- [
- "font-variant-numeric",
- {
- "name": "font-variant-numeric",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-numeric",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant-numeric",
- "fontVariantNumeric"
- ],
- "syntax": "normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]",
- "extended": []
- }
- ],
- [
- "font-variant-position",
- {
- "name": "font-variant-position",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variant-position",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "font-variant-position",
- "fontVariantPosition"
- ],
- "syntax": "normal | sub | super",
- "extended": []
- }
- ],
- [
- "font-variation-settings",
- {
- "name": "font-variation-settings",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-variation-settings",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the keyword normal or a list, each item a string paired with a number",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "styleDeclaration": [
- "font-variation-settings",
- "fontVariationSettings"
- ],
- "syntax": "normal | [ <opentype-tag> <number> ]#",
- "extended": []
- }
- ],
- [
- "font-weight",
- {
- "name": "font-weight",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-weight",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "a number, see below",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "font-weight",
- "fontWeight"
- ],
- "syntax": "<font-weight-absolute> | bolder | lighter",
- "extended": []
- }
- ],
- [
- "font-width",
- {
- "name": "font-width",
- "href": "https://drafts.csswg.org/css-fonts-4/#propdef-font-width",
- "initial": "normal",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "Not resolved",
- "computedValue": "a percentage, see below",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "font-width",
- "fontWidth"
- ],
- "syntax": "normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded",
- "extended": []
- }
- ],
- [
- "footnote-display",
- {
- "name": "footnote-display",
- "href": "https://drafts.csswg.org/css-gcpm-3/#propdef-footnote-display",
- "initial": "block",
- "appliesTo": "elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "footnote-display",
- "footnoteDisplay"
- ],
- "syntax": "block | inline | compact",
- "extended": []
- }
- ],
- [
- "footnote-policy",
- {
- "name": "footnote-policy",
- "href": "https://drafts.csswg.org/css-gcpm-3/#propdef-footnote-policy",
- "initial": "auto",
- "appliesTo": "elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "footnote-policy",
- "footnotePolicy"
- ],
- "syntax": "auto | line | block",
- "extended": []
- }
- ],
- [
- "forced-color-adjust",
- {
- "name": "forced-color-adjust",
- "href": "https://drafts.csswg.org/css-color-adjust-1/#propdef-forced-color-adjust",
- "initial": "auto",
- "appliesTo": "all elements and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "forced-color-adjust",
- "forcedColorAdjust"
- ],
- "syntax": "auto | none | preserve-parent-color",
- "extended": []
- }
- ],
- [
- "gap",
- {
- "name": "gap",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-gap",
- "initial": "see individual properties",
- "appliesTo": "multi-column containers, flex containers, grid containers",
- "inherited": "no",
- "percentages": "refer to corresponding dimension of the content area",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "gap"
- ],
- "syntax": "<'row-gap'> <'column-gap'>?",
- "extended": []
- }
- ],
- [
- "glyph-orientation-vertical",
- {
- "name": "glyph-orientation-vertical",
- "href": "https://drafts.csswg.org/css-writing-modes-4/#propdef-glyph-orientation-vertical",
- "initial": "n/a",
- "appliesTo": "n/a",
- "inherited": "n/a",
- "percentages": "n/a",
- "computedValue": "n/a",
- "canonicalOrder": "n/a",
- "animationType": "n/a",
- "styleDeclaration": [
- "glyph-orientation-vertical",
- "glyphOrientationVertical"
- ],
- "syntax": "auto | 0deg | 90deg | 0 | 90",
- "extended": []
- }
- ],
- [
- "grid",
- {
- "name": "grid",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid",
- "initial": "none",
- "appliesTo": "grid containers",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "grid"
- ],
- "syntax": "<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>",
- "extended": []
- }
- ],
- [
- "grid-area",
- {
- "name": "grid-area",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-area",
- "initial": "auto",
- "appliesTo": "grid items and absolutely-positioned boxes whose containing block is a grid container",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "discrete",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "grid-area",
- "gridArea"
- ],
- "syntax": "<grid-line> [ / <grid-line> ]{0,3}",
- "extended": []
- }
- ],
- [
- "grid-auto-columns",
- {
- "name": "grid-auto-columns",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-auto-columns",
- "initial": "auto",
- "appliesTo": "grid containers",
- "inherited": "no",
- "percentages": "see Track Sizing",
- "computedValue": "see Track Sizing",
- "canonicalOrder": "per grammar",
- "animationType": "if the list lengths match, by computed value type per item; discrete otherwise",
- "styleDeclaration": [
- "grid-auto-columns",
- "gridAutoColumns"
- ],
- "syntax": "<track-size>+",
- "extended": []
- }
- ],
- [
- "grid-auto-flow",
- {
- "name": "grid-auto-flow",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-auto-flow",
- "initial": "row",
- "appliesTo": "grid containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "grid-auto-flow",
- "gridAutoFlow"
- ],
- "syntax": "[ row | column ] || dense",
- "extended": []
- }
- ],
- [
- "grid-auto-rows",
- {
- "name": "grid-auto-rows",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-auto-rows",
- "initial": "auto",
- "appliesTo": "grid containers",
- "inherited": "no",
- "percentages": "see Track Sizing",
- "computedValue": "see Track Sizing",
- "canonicalOrder": "per grammar",
- "animationType": "if the list lengths match, by computed value type per item; discrete otherwise",
- "styleDeclaration": [
- "grid-auto-rows",
- "gridAutoRows"
- ],
- "syntax": "<track-size>+",
- "extended": []
- }
- ],
- [
- "grid-column",
- {
- "name": "grid-column",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-column",
- "initial": "auto",
- "appliesTo": "grid items and absolutely-positioned boxes whose containing block is a grid container",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "discrete",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "grid-column",
- "gridColumn"
- ],
- "syntax": "<grid-line> [ / <grid-line> ]?",
- "extended": []
- }
- ],
- [
- "grid-column-end",
- {
- "name": "grid-column-end",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-column-end",
- "initial": "auto",
- "appliesTo": "grid items and absolutely-positioned boxes whose containing block is a grid container",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword, identifier, and/or integer",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "grid-column-end",
- "gridColumnEnd"
- ],
- "syntax": "<grid-line>",
- "extended": []
- }
- ],
- [
- "grid-column-start",
- {
- "name": "grid-column-start",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-column-start",
- "initial": "auto",
- "appliesTo": "grid items and absolutely-positioned boxes whose containing block is a grid container",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword, identifier, and/or integer",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "grid-column-start",
- "gridColumnStart"
- ],
- "syntax": "<grid-line>",
- "extended": []
- }
- ],
- [
- "grid-row",
- {
- "name": "grid-row",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-row",
- "initial": "auto",
- "appliesTo": "grid items and absolutely-positioned boxes whose containing block is a grid container",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "discrete",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "grid-row",
- "gridRow"
- ],
- "syntax": "<grid-line> [ / <grid-line> ]?",
- "extended": []
- }
- ],
- [
- "grid-row-end",
- {
- "name": "grid-row-end",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-row-end",
- "initial": "auto",
- "appliesTo": "grid items and absolutely-positioned boxes whose containing block is a grid container",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword, identifier, and/or integer",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "grid-row-end",
- "gridRowEnd"
- ],
- "syntax": "<grid-line>",
- "extended": []
- }
- ],
- [
- "grid-row-start",
- {
- "name": "grid-row-start",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-row-start",
- "initial": "auto",
- "appliesTo": "grid items and absolutely-positioned boxes whose containing block is a grid container",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword, identifier, and/or integer",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "grid-row-start",
- "gridRowStart"
- ],
- "syntax": "<grid-line>",
- "extended": []
- }
- ],
- [
- "grid-template",
- {
- "name": "grid-template",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-template",
- "initial": "none",
- "appliesTo": "grid containers",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "grid-template",
- "gridTemplate"
- ],
- "syntax": "none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?",
- "extended": []
- }
- ],
- [
- "grid-template-areas",
- {
- "name": "grid-template-areas",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-template-areas",
- "initial": "none",
- "appliesTo": "grid containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a list of string values",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "grid-template-areas",
- "gridTemplateAreas"
- ],
- "syntax": "none | <string>+",
- "extended": []
- }
- ],
- [
- "grid-template-columns",
- {
- "name": "grid-template-columns",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-template-columns",
- "initial": "none",
- "appliesTo": "grid containers",
- "inherited": "no",
- "percentages": "refer to corresponding dimension of the content area",
- "computedValue": "the keyword none or a computed track list",
- "canonicalOrder": "per grammar",
- "animationType": "if the list lengths match, by computed value type per item in the computed track list (see § 7.2.5 Computed Value of a Track Listing and § 7.2.3.3 Interpolation/Combination of repeat()); discrete otherwise",
- "styleDeclaration": [
- "grid-template-columns",
- "gridTemplateColumns"
- ],
- "syntax": "none | <track-list> | <auto-track-list> | subgrid <line-name-list>?",
- "extended": []
- }
- ],
- [
- "grid-template-rows",
- {
- "name": "grid-template-rows",
- "href": "https://drafts.csswg.org/css-grid-2/#propdef-grid-template-rows",
- "initial": "none",
- "appliesTo": "grid containers",
- "inherited": "no",
- "percentages": "refer to corresponding dimension of the content area",
- "computedValue": "the keyword none or a computed track list",
- "canonicalOrder": "per grammar",
- "animationType": "if the list lengths match, by computed value type per item in the computed track list (see § 7.2.5 Computed Value of a Track Listing and § 7.2.3.3 Interpolation/Combination of repeat()); discrete otherwise",
- "styleDeclaration": [
- "grid-template-rows",
- "gridTemplateRows"
- ],
- "syntax": "none | <track-list> | <auto-track-list> | subgrid <line-name-list>?",
- "extended": []
- }
- ],
- [
- "hanging-punctuation",
- {
- "name": "hanging-punctuation",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-hanging-punctuation",
- "initial": "none",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "hanging-punctuation",
- "hangingPunctuation"
- ],
- "syntax": "none | [ first || [ force-end | allow-end ] || last ]",
- "extended": []
- }
- ],
- [
- "height",
- {
- "name": "height",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-height",
- "initial": "auto",
- "appliesTo": "all elements except non-replaced inlines",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type, recursing into fit-content()",
- "logicalPropertyGroup": "size",
- "styleDeclaration": [
- "height"
- ],
- "syntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ],
- [
- "hyphenate-character",
- {
- "name": "hyphenate-character",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-character",
- "initial": "auto",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "hyphenate-character",
- "hyphenateCharacter"
- ],
- "syntax": "auto | <string>",
- "extended": []
- }
- ],
- [
- "hyphenate-limit-chars",
- {
- "name": "hyphenate-limit-chars",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-chars",
- "initial": "auto",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "three values, each either the auto keyword or an integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "hyphenate-limit-chars",
- "hyphenateLimitChars"
- ],
- "syntax": "[ auto | <integer> ]{1,3}",
- "extended": []
- }
- ],
- [
- "hyphenate-limit-last",
- {
- "name": "hyphenate-limit-last",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-last",
- "initial": "none",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "hyphenate-limit-last",
- "hyphenateLimitLast"
- ],
- "syntax": "none | always | column | page | spread",
- "extended": []
- }
- ],
- [
- "hyphenate-limit-lines",
- {
- "name": "hyphenate-limit-lines",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-lines",
- "initial": "no-limit",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword or integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "hyphenate-limit-lines",
- "hyphenateLimitLines"
- ],
- "syntax": "no-limit | <integer>",
- "extended": []
- }
- ],
- [
- "hyphenate-limit-zone",
- {
- "name": "hyphenate-limit-zone",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphenate-limit-zone",
- "initial": "0",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "refers to length of the line box",
- "computedValue": "computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "hyphenate-limit-zone",
- "hyphenateLimitZone"
- ],
- "syntax": "<length-percentage>",
- "extended": []
- }
- ],
- [
- "hyphens",
- {
- "name": "hyphens",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-hyphens",
- "initial": "manual",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "hyphens"
- ],
- "syntax": "none | manual | auto",
- "extended": []
- }
- ],
- [
- "image-orientation",
- {
- "name": "image-orientation",
- "href": "https://drafts.csswg.org/css-images-3/#propdef-image-orientation",
- "initial": "from-image",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the specified keyword, or an <angle>, rounded and normalized (see text), plus optionally a flip keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "image-orientation",
- "imageOrientation"
- ],
- "syntax": "from-image | none | [ <angle> || flip ]",
- "extended": []
- }
- ],
- [
- "image-rendering",
- {
- "name": "image-rendering",
- "href": "https://drafts.csswg.org/css-images-3/#propdef-image-rendering",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "image-rendering",
- "imageRendering"
- ],
- "syntax": "auto | smooth | high-quality | pixelated | crisp-edges",
- "extended": []
- }
- ],
- [
- "image-resolution",
- {
- "name": "image-resolution",
- "href": "https://drafts.csswg.org/css-images-4/#propdef-image-resolution",
- "initial": "1dppx",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword(s) and/or <resolution> (possibly adjusted for snap, see below)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "image-resolution",
- "imageResolution"
- ],
- "syntax": "[ from-image || <resolution> ] && snap?",
- "extended": []
- }
- ],
- [
- "initial-letter",
- {
- "name": "initial-letter",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-initial-letter",
- "initial": "normal",
- "appliesTo": "certain inline-level boxes and ::first-letter and inside ::marker boxes (see prose)",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword normal or a number paired with an integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "initial-letter",
- "initialLetter"
- ],
- "syntax": "normal | <number [1,∞]> <integer [1,∞]> | <number [1,∞]> && [ drop | raise ]?",
- "extended": []
- }
- ],
- [
- "initial-letter-align",
- {
- "name": "initial-letter-align",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-initial-letter-align",
- "initial": "alphabetic",
- "appliesTo": "certain inline-level boxes and ::first-letter and inside ::marker boxes (see prose)",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "initial-letter-align",
- "initialLetterAlign"
- ],
- "syntax": "[ border-box? [ alphabetic | ideographic | hanging | leading ]? ]!",
- "extended": []
- }
- ],
- [
- "initial-letter-wrap",
- {
- "name": "initial-letter-wrap",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-initial-letter-wrap",
- "initial": "none",
- "appliesTo": "certain inline-level boxes and ::first-letter and inside ::marker boxes (see prose)",
- "inherited": "yes",
- "percentages": "relative to logical width of (last fragment of) initial letter",
- "computedValue": "specified keyword or computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "initial-letter-wrap",
- "initialLetterWrap"
- ],
- "syntax": "none | first | all | grid | <length-percentage>",
- "extended": []
- }
- ],
- [
- "inline-size",
- {
- "name": "inline-size",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-inline-size",
- "initial": "auto",
- "appliesTo": "Same as height and width",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as height, width",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "size",
- "styleDeclaration": [
- "inline-size",
- "inlineSize"
- ],
- "syntax": "<'width'>",
- "extended": []
- }
- ],
- [
- "inline-sizing",
- {
- "name": "inline-sizing",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-inline-sizing",
- "initial": "normal",
- "appliesTo": "inline boxes, but not ruby container boxes nor internal ruby boxes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "inline-sizing",
- "inlineSizing"
- ],
- "syntax": "normal | stretch",
- "extended": []
- }
- ],
- [
- "inset",
- {
- "name": "inset",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-inset",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "inset"
- ],
- "syntax": "<'top'>{1,4}",
- "extended": []
- }
- ],
- [
- "inset-block",
- {
- "name": "inset-block",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-inset-block",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "inset-block",
- "insetBlock"
- ],
- "syntax": "<'top'>{1,2}",
- "extended": []
- }
- ],
- [
- "inset-block-end",
- {
- "name": "inset-block-end",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-inset-block-end",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "inset-block-end",
- "insetBlockEnd"
- ],
- "syntax": "auto | <length-percentage>",
- "extended": []
- }
- ],
- [
- "inset-block-start",
- {
- "name": "inset-block-start",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-inset-block-start",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "inset-block-start",
- "insetBlockStart"
- ],
- "syntax": "auto | <length-percentage>",
- "extended": []
- }
- ],
- [
- "inset-inline",
- {
- "name": "inset-inline",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-inset-inline",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "inset-inline",
- "insetInline"
- ],
- "syntax": "<'top'>{1,2}",
- "extended": []
- }
- ],
- [
- "inset-inline-end",
- {
- "name": "inset-inline-end",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-inset-inline-end",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "inset-inline-end",
- "insetInlineEnd"
- ],
- "syntax": "auto | <length-percentage>",
- "extended": []
- }
- ],
- [
- "inset-inline-start",
- {
- "name": "inset-inline-start",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-inset-inline-start",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "inset-inline-start",
- "insetInlineStart"
- ],
- "syntax": "auto | <length-percentage>",
- "extended": []
- }
- ],
- [
- "interpolate-size",
- {
- "name": "interpolate-size",
- "href": "https://drafts.csswg.org/css-values-5/#propdef-interpolate-size",
- "initial": "numeric-only",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "interpolate-size",
- "interpolateSize"
- ],
- "syntax": "numeric-only | allow-keywords",
- "extended": []
- }
- ],
- [
- "isolation",
- {
- "name": "isolation",
- "href": "https://drafts.fxtf.org/compositing-2/#propdef-isolation",
- "initial": "auto",
- "appliesTo": "All elements. In SVG, it applies to container elements, graphics elements and graphics referencing elements. [SVG11]",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "media": "visual",
- "animatable": "no",
- "styleDeclaration": [
- "isolation"
- ],
- "syntax": "<isolation-mode>",
- "extended": []
- }
- ],
- [
- "item-cross",
- {
- "name": "item-cross",
- "href": "https://drafts.csswg.org/css-grid-3/#propdef-item-cross",
- "initial": "auto",
- "appliesTo": "flex containers, grid containers, masonry containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "item-cross",
- "itemCross"
- ],
- "syntax": "[ auto | nowrap | wrap ] || [ normal | reverse ] | wrap-reverse",
- "extended": []
- }
- ],
- [
- "item-direction",
- {
- "name": "item-direction",
- "href": "https://drafts.csswg.org/css-grid-3/#propdef-item-direction",
- "initial": "auto",
- "appliesTo": "flex containers, grid containers, masonry containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "item-direction",
- "itemDirection"
- ],
- "syntax": "auto | row | column | row-reverse | column-reverse",
- "extended": []
- }
- ],
- [
- "item-flow",
- {
- "name": "item-flow",
- "href": "https://drafts.csswg.org/css-grid-3/#propdef-item-flow",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "item-flow",
- "itemFlow"
- ],
- "syntax": "<'item-direction'> || <'item-wrap'> || <'item-pack'> || <'item-tolerance'>",
- "extended": []
- }
- ],
- [
- "item-pack",
- {
- "name": "item-pack",
- "href": "https://drafts.csswg.org/css-grid-3/#propdef-item-pack",
- "initial": "normal",
- "appliesTo": "flex containers, grid containers, masonry containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "item-pack",
- "itemPack"
- ],
- "syntax": "normal | dense || balance",
- "extended": []
- }
- ],
- [
- "item-track",
- {
- "name": "item-track",
- "href": "https://drafts.csswg.org/css-grid-3/#propdef-item-track",
- "initial": "auto",
- "appliesTo": "flex containers, grid containers, masonry containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "item-track",
- "itemTrack"
- ],
- "syntax": "auto | row | column | row-reverse | column-reverse",
- "extended": []
- }
- ],
- [
- "item-wrap",
- {
- "name": "item-wrap",
- "href": "https://drafts.csswg.org/css-grid-3/#propdef-item-wrap",
- "initial": "auto",
- "appliesTo": "flex containers, grid containers, masonry containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "item-wrap",
- "itemWrap"
- ],
- "syntax": "[ auto | nowrap | wrap ] || [ normal | reverse ] | wrap-reverse",
- "extended": []
- }
- ],
- [
- "justify-content",
- {
- "name": "justify-content",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-justify-content",
- "initial": "normal",
- "appliesTo": "multicol containers, flex containers, and grid containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "justify-content",
- "justifyContent"
- ],
- "syntax": "normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]",
- "extended": []
- }
- ],
- [
- "justify-items",
- {
- "name": "justify-items",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-justify-items",
- "initial": "legacy",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s), except for legacy (see prose)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "justify-items",
- "justifyItems"
- ],
- "syntax": "normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ] | anchor-center",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "justify-self",
- {
- "name": "justify-self",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-justify-self",
- "initial": "auto",
- "appliesTo": "block-level boxes, absolutely-positioned boxes, and grid items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "justify-self",
- "justifySelf"
- ],
- "syntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "left",
- {
- "name": "left",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-left",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "left"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "letter-spacing",
- {
- "name": "letter-spacing",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-letter-spacing",
- "initial": "normal",
- "appliesTo": "inline boxes and text",
- "inherited": "yes",
- "percentages": "relative to computed font-size, i.e. 1em",
- "computedValue": "an absolute length and/or a percentage",
- "canonicalOrder": "n/a",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "letter-spacing",
- "letterSpacing"
- ],
- "syntax": "normal | <length-percentage>",
- "extended": []
- }
- ],
- [
- "lighting-color",
- {
- "name": "lighting-color",
- "href": "https://drafts.fxtf.org/filter-effects-1/#propdef-lighting-color",
- "initial": "white",
- "appliesTo": "feDiffuseLighting and feSpecularLighting elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "lighting-color",
- "lightingColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "line-break",
- {
- "name": "line-break",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-line-break",
- "initial": "auto",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "line-break",
- "lineBreak"
- ],
- "syntax": "auto | loose | normal | strict | anywhere",
- "extended": []
- }
- ],
- [
- "line-clamp",
- {
- "name": "line-clamp",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-line-clamp",
- "initial": "none",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "line-clamp",
- "lineClamp"
- ],
- "syntax": "none | [<integer [1,∞]> || <'block-ellipsis'>] -webkit-legacy?",
- "extended": []
- }
- ],
- [
- "line-fit-edge",
- {
- "name": "line-fit-edge",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-line-fit-edge",
- "initial": "leading",
- "appliesTo": "inline boxes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "line-fit-edge",
- "lineFitEdge"
- ],
- "syntax": "leading | <text-edge>",
- "extended": []
- }
- ],
- [
- "line-grid",
- {
- "name": "line-grid",
- "href": "https://drafts.csswg.org/css-line-grid-1/#propdef-line-grid",
- "initial": "match-parent",
- "appliesTo": "block, flex and grid containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "line-grid",
- "lineGrid"
- ],
- "syntax": "match-parent | create",
- "extended": []
- }
- ],
- [
- "line-height",
- {
- "name": "line-height",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-line-height",
- "initial": "normal",
- "appliesTo": "non-replaced inline boxes and SVG text content elements",
- "inherited": "yes",
- "percentages": "computed relative to 1em",
- "computedValue": "the specified keyword, a number, or a computed <length> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "line-height",
- "lineHeight"
- ],
- "syntax": "normal | <number [0,∞]> | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "line-height-step",
- {
- "name": "line-height-step",
- "href": "https://drafts.csswg.org/css-rhythm-1/#propdef-line-height-step",
- "initial": "0",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "line-height-step",
- "lineHeightStep"
- ],
- "syntax": "<length [0,∞]>",
- "extended": []
- }
- ],
- [
- "line-padding",
- {
- "name": "line-padding",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-line-padding",
- "initial": "0",
- "appliesTo": "inline boxes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "line-padding",
- "linePadding"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "line-snap",
- {
- "name": "line-snap",
- "href": "https://drafts.csswg.org/css-line-grid-1/#propdef-line-snap",
- "initial": "none",
- "appliesTo": "block container elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "line-snap",
- "lineSnap"
- ],
- "syntax": "none | baseline | contain",
- "extended": []
- }
- ],
- [
- "list-style",
- {
- "name": "list-style",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-list-style",
- "initial": "see individual properties",
- "appliesTo": "list items",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "list-style",
- "listStyle"
- ],
- "syntax": "<'list-style-position'> || <'list-style-image'> || <'list-style-type'>",
- "extended": []
- }
- ],
- [
- "list-style-image",
- {
- "name": "list-style-image",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-list-style-image",
- "initial": "none",
- "appliesTo": "list items",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the keyword noneor the computed <image>",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "list-style-image",
- "listStyleImage"
- ],
- "syntax": "<image> | none",
- "extended": []
- }
- ],
- [
- "list-style-position",
- {
- "name": "list-style-position",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-list-style-position",
- "initial": "outside",
- "appliesTo": "list items",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "keyword, but see prose",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "list-style-position",
- "listStylePosition"
- ],
- "syntax": "inside | outside",
- "extended": []
- }
- ],
- [
- "list-style-type",
- {
- "name": "list-style-type",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-list-style-type",
- "initial": "disc",
- "appliesTo": "list items",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "list-style-type",
- "listStyleType"
- ],
- "syntax": "<counter-style> | <string> | none",
- "extended": []
- }
- ],
- [
- "margin",
- {
- "name": "margin",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "margin"
- ],
- "syntax": "<'margin-top'>{1,4}",
- "extended": []
- }
- ],
- [
- "margin-block",
- {
- "name": "margin-block",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-margin-block",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "margin-block",
- "marginBlock"
- ],
- "syntax": "<'margin-top'>{1,2}",
- "extended": []
- }
- ],
- [
- "margin-block-end",
- {
- "name": "margin-block-end",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-margin-block-end",
- "initial": "0",
- "appliesTo": "Same as margin-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding margin-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-block-end",
- "marginBlockEnd"
- ],
- "syntax": "<'margin-top'>",
- "extended": []
- }
- ],
- [
- "margin-block-start",
- {
- "name": "margin-block-start",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-margin-block-start",
- "initial": "0",
- "appliesTo": "Same as margin-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding margin-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-block-start",
- "marginBlockStart"
- ],
- "syntax": "<'margin-top'>",
- "extended": []
- }
- ],
- [
- "margin-bottom",
- {
- "name": "margin-bottom",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-bottom",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-bottom",
- "marginBottom"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "margin-break",
- {
- "name": "margin-break",
- "href": "https://drafts.csswg.org/css-break-4/#propdef-margin-break",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "margin-break",
- "marginBreak"
- ],
- "syntax": "auto | keep | discard",
- "extended": []
- }
- ],
- [
- "margin-inline",
- {
- "name": "margin-inline",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-margin-inline",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "margin-inline",
- "marginInline"
- ],
- "syntax": "<'margin-top'>{1,2}",
- "extended": []
- }
- ],
- [
- "margin-inline-end",
- {
- "name": "margin-inline-end",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-margin-inline-end",
- "initial": "0",
- "appliesTo": "Same as margin-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding margin-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-inline-end",
- "marginInlineEnd"
- ],
- "syntax": "<'margin-top'>",
- "extended": []
- }
- ],
- [
- "margin-inline-start",
- {
- "name": "margin-inline-start",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-margin-inline-start",
- "initial": "0",
- "appliesTo": "Same as margin-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding margin-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-inline-start",
- "marginInlineStart"
- ],
- "syntax": "<'margin-top'>",
- "extended": []
- }
- ],
- [
- "margin-left",
- {
- "name": "margin-left",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-left",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-left",
- "marginLeft"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "margin-right",
- {
- "name": "margin-right",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-right",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-right",
- "marginRight"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "margin-top",
- {
- "name": "margin-top",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-top",
- "initial": "0",
- "appliesTo": "all elements except internal table elements, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "margin",
- "styleDeclaration": [
- "margin-top",
- "marginTop"
- ],
- "syntax": "<length-percentage> | auto | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "margin-trim",
- {
- "name": "margin-trim",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-margin-trim",
- "initial": "none",
- "appliesTo": "block containers, multi-column containers, flex containers, grid containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "a set of zero to four keywords indicating which sides to trim",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "margin-trim",
- "marginTrim"
- ],
- "syntax": "none | [ block || inline ] | [ block-start || inline-start || block-end || inline-end ]",
- "extended": []
- }
- ],
- [
- "marker",
- {
- "name": "marker",
- "href": "https://svgwg.org/svg2-draft/painting.html#MarkerProperty",
- "initial": "not defined for shorthand properties",
- "appliesTo": "shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "see individual properties",
- "animationType": "discrete",
- "styleDeclaration": [
- "marker"
- ],
- "syntax": "none | <marker-ref>",
- "extended": []
- }
- ],
- [
- "marker-end",
- {
- "name": "marker-end",
- "href": "https://svgwg.org/svg2-draft/painting.html#MarkerEndProperty",
- "initial": "none",
- "appliesTo": "shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified, but with <url> values (that are part of a <marker-ref>) made absolute",
- "animationType": "discrete",
- "styleDeclaration": [
- "marker-end",
- "markerEnd"
- ],
- "syntax": "none | <marker-ref>",
- "extended": []
- }
- ],
- [
- "marker-mid",
- {
- "name": "marker-mid",
- "href": "https://svgwg.org/svg2-draft/painting.html#MarkerMidProperty",
- "initial": "none",
- "appliesTo": "shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified, but with <url> values (that are part of a <marker-ref>) made absolute",
- "animationType": "discrete",
- "styleDeclaration": [
- "marker-mid",
- "markerMid"
- ],
- "syntax": "none | <marker-ref>",
- "extended": []
- }
- ],
- [
- "marker-side",
- {
- "name": "marker-side",
- "href": "https://drafts.csswg.org/css-lists-3/#propdef-marker-side",
- "initial": "match-self",
- "appliesTo": "list items",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "marker-side",
- "markerSide"
- ],
- "syntax": "match-self | match-parent",
- "extended": []
- }
- ],
- [
- "marker-start",
- {
- "name": "marker-start",
- "href": "https://svgwg.org/svg2-draft/painting.html#MarkerStartProperty",
- "initial": "none",
- "appliesTo": "shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified, but with <url> values (that are part of a <marker-ref>) made absolute",
- "animationType": "discrete",
- "styleDeclaration": [
- "marker-start",
- "markerStart"
- ],
- "syntax": "none | <marker-ref>",
- "extended": []
- }
- ],
- [
- "mask",
- {
- "name": "mask",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask",
- "initial": "see individual properties",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "see individual properties",
- "media": "visual",
- "styleDeclaration": [
- "mask"
- ],
- "syntax": "<mask-layer>#",
- "extended": []
- }
- ],
- [
- "mask-border",
- {
- "name": "mask-border",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border",
- "initial": "See individual properties",
- "appliesTo": "See individual properties",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "See individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "See individual properties",
- "media": "visual",
- "styleDeclaration": [
- "mask-border",
- "maskBorder"
- ],
- "syntax": "<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>",
- "extended": []
- }
- ],
- [
- "mask-border-mode",
- {
- "name": "mask-border-mode",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-mode",
- "initial": "alpha",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-border-mode",
- "maskBorderMode"
- ],
- "syntax": "luminance | alpha",
- "extended": []
- }
- ],
- [
- "mask-border-outset",
- {
- "name": "mask-border-outset",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-outset",
- "initial": "0",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "all <length>s made absolute, otherwise as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "mask-border-outset",
- "maskBorderOutset"
- ],
- "syntax": "[ <length> | <number> ]{1,4}",
- "extended": []
- }
- ],
- [
- "mask-border-repeat",
- {
- "name": "mask-border-repeat",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-repeat",
- "initial": "stretch",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-border-repeat",
- "maskBorderRepeat"
- ],
- "syntax": "[ stretch | repeat | round | space ]{1,2}",
- "extended": []
- }
- ],
- [
- "mask-border-slice",
- {
- "name": "mask-border-slice",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-slice",
- "initial": "0",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "refer to size of the mask border image",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "mask-border-slice",
- "maskBorderSlice"
- ],
- "syntax": "[ <number> | <percentage> ]{1,4} fill?",
- "extended": []
- }
- ],
- [
- "mask-border-source",
- {
- "name": "mask-border-source",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-source",
- "initial": "none",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "they keyword none or the computed <image>",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-border-source",
- "maskBorderSource"
- ],
- "syntax": "none | <image>",
- "extended": []
- }
- ],
- [
- "mask-border-width",
- {
- "name": "mask-border-width",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-border-width",
- "initial": "auto",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "relative to width/height of the mask border image area",
- "computedValue": "all <length>s made absolute, otherwise as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "mask-border-width",
- "maskBorderWidth"
- ],
- "syntax": "[ <length-percentage> | <number> | auto ]{1,4}",
- "extended": []
- }
- ],
- [
- "mask-clip",
- {
- "name": "mask-clip",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-clip",
- "initial": "border-box",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list, each item the keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-clip",
- "maskClip"
- ],
- "syntax": "[ <coord-box> | no-clip ]#",
- "extended": []
- }
- ],
- [
- "mask-composite",
- {
- "name": "mask-composite",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-composite",
- "initial": "add",
- "appliesTo": "All elements. In SVG, it applies to container elements without the defs element and all graphics elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list, each item the keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-composite",
- "maskComposite"
- ],
- "syntax": "<compositing-operator>#",
- "extended": []
- }
- ],
- [
- "mask-image",
- {
- "name": "mask-image",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-image",
- "initial": "none",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list, each item the keyword none, a computed <image>, or a computed <url>",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-image",
- "maskImage"
- ],
- "syntax": "<mask-reference>#",
- "extended": []
- }
- ],
- [
- "mask-mode",
- {
- "name": "mask-mode",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-mode",
- "initial": "match-source",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list, each item the keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-mode",
- "maskMode"
- ],
- "syntax": "<masking-mode>#",
- "extended": []
- }
- ],
- [
- "mask-origin",
- {
- "name": "mask-origin",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-origin",
- "initial": "border-box",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list, each item the keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-origin",
- "maskOrigin"
- ],
- "syntax": "<coord-box>#",
- "extended": []
- }
- ],
- [
- "mask-position",
- {
- "name": "mask-position",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-position",
- "initial": "0% 0%",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "refer to size of mask painting area minus size of mask layer image; see text background-position [CSS3BG]",
- "computedValue": "list, each item consists of two keywords representing the origin and two offsets from that origin, each given as an absolute length (if given a <length>), otherwise as a percentage.",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "mask-position",
- "maskPosition"
- ],
- "syntax": "<position>#",
- "extended": []
- }
- ],
- [
- "mask-repeat",
- {
- "name": "mask-repeat",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-repeat",
- "initial": "repeat",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list, each item a pair of keywords, one per dimension",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-repeat",
- "maskRepeat"
- ],
- "syntax": "<repeat-style>#",
- "extended": []
- }
- ],
- [
- "mask-size",
- {
- "name": "mask-size",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-size",
- "initial": "auto",
- "appliesTo": "All elements. In SVG, it applies to container elements excluding the defs element, all graphics elements and the use element",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list, each item as specified, but with lengths made absolute",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "mask-size",
- "maskSize"
- ],
- "syntax": "<bg-size>#",
- "extended": []
- }
- ],
- [
- "mask-type",
- {
- "name": "mask-type",
- "href": "https://drafts.fxtf.org/css-masking-1/#propdef-mask-type",
- "initial": "luminance",
- "appliesTo": "mask elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "mask-type",
- "maskType"
- ],
- "syntax": "luminance | alpha",
- "extended": []
- }
- ],
- [
- "max-block-size",
- {
- "name": "max-block-size",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-max-block-size",
- "initial": "none",
- "appliesTo": "same as height and width",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as max-height, max-width",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "max-size",
- "styleDeclaration": [
- "max-block-size",
- "maxBlockSize"
- ],
- "syntax": "<'max-width'>",
- "extended": []
- }
- ],
- [
- "max-height",
- {
- "name": "max-height",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-max-height",
- "initial": "none",
- "appliesTo": "all elements that accept width or height",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value, recursing into fit-content()",
- "logicalPropertyGroup": "max-size",
- "styleDeclaration": [
- "max-height",
- "maxHeight"
- ],
- "syntax": "none | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ],
- [
- "max-inline-size",
- {
- "name": "max-inline-size",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-max-inline-size",
- "initial": "none",
- "appliesTo": "same as height and width",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as max-height, max-width",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "max-size",
- "styleDeclaration": [
- "max-inline-size",
- "maxInlineSize"
- ],
- "syntax": "<'max-width'>",
- "extended": []
- }
- ],
- [
- "max-lines",
- {
- "name": "max-lines",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-max-lines",
- "initial": "none",
- "appliesTo": "block containers which are also either line-clamp containers or fragmentation containers that capture region breaks",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword none or an integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "max-lines",
- "maxLines"
- ],
- "syntax": "none | <integer [1,∞]>",
- "extended": []
- }
- ],
- [
- "max-width",
- {
- "name": "max-width",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-max-width",
- "initial": "none",
- "appliesTo": "all elements that accept width or height",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value, recursing into fit-content()",
- "logicalPropertyGroup": "max-size",
- "styleDeclaration": [
- "max-width",
- "maxWidth"
- ],
- "syntax": "none | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ],
- [
- "min-block-size",
- {
- "name": "min-block-size",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-min-block-size",
- "initial": "0",
- "appliesTo": "same as height and width",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as min-height, min-width",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "min-size",
- "styleDeclaration": [
- "min-block-size",
- "minBlockSize"
- ],
- "syntax": "<'min-width'>",
- "extended": []
- }
- ],
- [
- "min-height",
- {
- "name": "min-height",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-min-height",
- "initial": "auto",
- "appliesTo": "all elements that accept width or height",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value, recursing into fit-content()",
- "logicalPropertyGroup": "min-size",
- "styleDeclaration": [
- "min-height",
- "minHeight"
- ],
- "syntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ],
- [
- "min-inline-size",
- {
- "name": "min-inline-size",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-min-inline-size",
- "initial": "0",
- "appliesTo": "same as height and width",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as min-height, min-width",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "min-size",
- "styleDeclaration": [
- "min-inline-size",
- "minInlineSize"
- ],
- "syntax": "<'min-width'>",
- "extended": []
- }
- ],
- [
- "min-intrinsic-sizing",
- {
- "name": "min-intrinsic-sizing",
- "href": "https://drafts.csswg.org/css-sizing-4/#propdef-min-intrinsic-sizing",
- "initial": "legacy",
- "appliesTo": "all elements except inline boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "min-intrinsic-sizing",
- "minIntrinsicSizing"
- ],
- "syntax": "legacy | zero-if-scroll || zero-if-extrinsic",
- "extended": []
- }
- ],
- [
- "min-width",
- {
- "name": "min-width",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-min-width",
- "initial": "auto",
- "appliesTo": "all elements that accept width or height",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value, recursing into fit-content()",
- "logicalPropertyGroup": "min-size",
- "styleDeclaration": [
- "min-width",
- "minWidth"
- ],
- "syntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ],
- [
- "mix-blend-mode",
- {
- "name": "mix-blend-mode",
- "href": "https://drafts.fxtf.org/compositing-2/#propdef-mix-blend-mode",
- "initial": "normal",
- "appliesTo": "All elements. In SVG, it applies to container elements, graphics elements and graphics referencing elements. [SVG11]",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "media": "visual",
- "animatable": "no",
- "styleDeclaration": [
- "mix-blend-mode",
- "mixBlendMode"
- ],
- "syntax": "<blend-mode> | plus-darker | plus-lighter",
- "extended": []
- }
- ],
- [
- "nav-down",
- {
- "name": "nav-down",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-nav-down",
- "initial": "auto",
- "appliesTo": "all enabled elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "nav-down",
- "navDown"
- ],
- "syntax": "auto | <id> [ current | root | <target-name> ]?",
- "extended": []
- }
- ],
- [
- "nav-left",
- {
- "name": "nav-left",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-nav-left",
- "initial": "auto",
- "appliesTo": "all enabled elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "nav-left",
- "navLeft"
- ],
- "syntax": "auto | <id> [ current | root | <target-name> ]?",
- "extended": []
- }
- ],
- [
- "nav-right",
- {
- "name": "nav-right",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-nav-right",
- "initial": "auto",
- "appliesTo": "all enabled elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "nav-right",
- "navRight"
- ],
- "syntax": "auto | <id> [ current | root | <target-name> ]?",
- "extended": []
- }
- ],
- [
- "nav-up",
- {
- "name": "nav-up",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-nav-up",
- "initial": "auto",
- "appliesTo": "all enabled elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "nav-up",
- "navUp"
- ],
- "syntax": "auto | <id> [ current | root | <target-name> ]?",
- "extended": []
- }
- ],
- [
- "object-fit",
- {
- "name": "object-fit",
- "href": "https://drafts.csswg.org/css-images-4/#propdef-object-fit",
- "initial": "fill",
- "appliesTo": "replaced elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "object-fit",
- "objectFit"
- ],
- "syntax": "fill | none | [contain | cover] || scale-down",
- "extended": []
- }
- ],
- [
- "object-position",
- {
- "name": "object-position",
- "href": "https://drafts.csswg.org/css-images-3/#propdef-object-position",
- "initial": "50% 50%",
- "appliesTo": "replaced elements",
- "inherited": "no",
- "percentages": "refer to width and height of element itself",
- "computedValue": "as for background-position",
- "canonicalOrder": "the horizontal component of the <position>, followed by the vertical component",
- "animationType": "as for background-position",
- "styleDeclaration": [
- "object-position",
- "objectPosition"
- ],
- "syntax": "<position>",
- "extended": []
- }
- ],
- [
- "offset",
- {
- "name": "offset",
- "href": "https://drafts.fxtf.org/motion-1/#propdef-offset",
- "initial": "see individual properties",
- "appliesTo": "transformable elements",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "offset"
- ],
- "syntax": "[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?",
- "extended": []
- }
- ],
- [
- "offset-anchor",
- {
- "name": "offset-anchor",
- "href": "https://drafts.fxtf.org/motion-1/#propdef-offset-anchor",
- "initial": "auto",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "relative to the width and the height of the element’s reference box",
- "computedValue": "the auto keyword or a computed <position>",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "offset-anchor",
- "offsetAnchor"
- ],
- "syntax": "auto | <position>",
- "extended": []
- }
- ],
- [
- "offset-distance",
- {
- "name": "offset-distance",
- "href": "https://drafts.fxtf.org/motion-1/#propdef-offset-distance",
- "initial": "0",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "relative to the offset path length",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "offset-distance",
- "offsetDistance"
- ],
- "syntax": "<length-percentage>",
- "extended": []
- }
- ],
- [
- "offset-path",
- {
- "name": "offset-path",
- "href": "https://drafts.fxtf.org/motion-1/#propdef-offset-path",
- "initial": "none",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "offset-path",
- "offsetPath"
- ],
- "syntax": "none | <offset-path> || <coord-box>",
- "extended": []
- }
- ],
- [
- "offset-position",
- {
- "name": "offset-position",
- "href": "https://drafts.fxtf.org/motion-1/#propdef-offset-position",
- "initial": "normal",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "Refer to the size of containing block",
- "computedValue": "The normal or auto keywords, or a computed <position>",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "offset-position",
- "offsetPosition"
- ],
- "syntax": "normal | auto | <position>",
- "extended": []
- }
- ],
- [
- "offset-rotate",
- {
- "name": "offset-rotate",
- "href": "https://drafts.fxtf.org/motion-1/#propdef-offset-rotate",
- "initial": "auto",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "computed <angle> value, optionally preceded by auto",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "offset-rotate",
- "offsetRotate"
- ],
- "syntax": "[ auto | reverse ] || <angle>",
- "extended": []
- }
- ],
- [
- "opacity",
- {
- "name": "opacity",
- "href": "https://drafts.csswg.org/css-color-4/#propdef-opacity",
- "initial": "1",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "map to the range [0,1]",
- "computedValue": "specified number, clamped to the range [0,1]",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "opacity"
- ],
- "syntax": "<opacity-value>",
- "extended": []
- }
- ],
- [
- "order",
- {
- "name": "order",
- "href": "https://drafts.csswg.org/css-display-4/#propdef-order",
- "initial": "0",
- "appliesTo": "flex items and grid items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "order"
- ],
- "syntax": "<integer>",
- "extended": []
- }
- ],
- [
- "orphans",
- {
- "name": "orphans",
- "href": "https://drafts.csswg.org/css-break-4/#propdef-orphans",
- "initial": "2",
- "appliesTo": "block containers that establish an inline formatting context",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "orphans"
- ],
- "syntax": "<integer [1,∞]>",
- "extended": []
- }
- ],
- [
- "outline",
- {
- "name": "outline",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-outline",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "outline"
- ],
- "syntax": "<'outline-width'> || <'outline-style'> || <'outline-color'>",
- "extended": []
- }
- ],
- [
- "outline-color",
- {
- "name": "outline-color",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-outline-color",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see below",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "outline-color",
- "outlineColor"
- ],
- "syntax": "auto | <'border-top-color'>",
- "extended": []
- }
- ],
- [
- "outline-offset",
- {
- "name": "outline-offset",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-outline-offset",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "outline-offset",
- "outlineOffset"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "outline-style",
- {
- "name": "outline-style",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-outline-style",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "outline-style",
- "outlineStyle"
- ],
- "syntax": "auto | <outline-line-style>",
- "extended": []
- }
- ],
- [
- "outline-width",
- {
- "name": "outline-width",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-outline-width",
- "initial": "medium",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "absolute length, snapped as a border width",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "outline-width",
- "outlineWidth"
- ],
- "syntax": "<line-width>",
- "extended": []
- }
- ],
- [
- "overflow",
- {
- "name": "overflow",
- "href": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow",
- "initial": "visible",
- "appliesTo": "block containers [CSS2], flex containers [CSS3-FLEXBOX], and grid containers [CSS3-GRID-LAYOUT]",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "discrete",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "overflow"
- ],
- "syntax": "<'overflow-block'>{1,2}",
- "extended": []
- }
- ],
- [
- "overflow-anchor",
- {
- "name": "overflow-anchor",
- "href": "https://drafts.csswg.org/css-scroll-anchoring-1/#propdef-overflow-anchor",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "overflow-anchor",
- "overflowAnchor"
- ],
- "syntax": "auto | none",
- "extended": []
- }
- ],
- [
- "overflow-block",
- {
- "name": "overflow-block",
- "href": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-block",
- "initial": "visible",
- "appliesTo": "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "usually specified value, but see text",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overflow",
- "styleDeclaration": [
- "overflow-block",
- "overflowBlock"
- ],
- "syntax": "visible | hidden | clip | scroll | auto",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin",
- {
- "name": "overflow-clip-margin",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "overflow-clip-margin",
- "overflowClipMargin"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-block",
- {
- "name": "overflow-clip-margin-block",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-block",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "overflow-clip-margin-block",
- "overflowClipMarginBlock"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-block-end",
- {
- "name": "overflow-clip-margin-block-end",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-block-end",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-block-end",
- "overflowClipMarginBlockEnd"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-block-start",
- {
- "name": "overflow-clip-margin-block-start",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-block-start",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-block-start",
- "overflowClipMarginBlockStart"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-bottom",
- {
- "name": "overflow-clip-margin-bottom",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-bottom",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-bottom",
- "overflowClipMarginBottom"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-inline",
- {
- "name": "overflow-clip-margin-inline",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-inline",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "overflow-clip-margin-inline",
- "overflowClipMarginInline"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-inline-end",
- {
- "name": "overflow-clip-margin-inline-end",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-inline-end",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-inline-end",
- "overflowClipMarginInlineEnd"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-inline-start",
- {
- "name": "overflow-clip-margin-inline-start",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-inline-start",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-inline-start",
- "overflowClipMarginInlineStart"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-left",
- {
- "name": "overflow-clip-margin-left",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-left",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-left",
- "overflowClipMarginLeft"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-right",
- {
- "name": "overflow-clip-margin-right",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-right",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-right",
- "overflowClipMarginRight"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-clip-margin-top",
- {
- "name": "overflow-clip-margin-top",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-overflow-clip-margin-top",
- "initial": "0px",
- "appliesTo": "boxes to which overflow applies",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "the computed <length> and a <visual-box> keyword",
- "animationType": "per computed value if the <visual-box> values match; otherwise discrete",
- "canonicalOrder": "per grammar",
- "logicalPropertyGroup": "overflow-clip-margin",
- "styleDeclaration": [
- "overflow-clip-margin-top",
- "overflowClipMarginTop"
- ],
- "syntax": "<visual-box> || <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "overflow-inline",
- {
- "name": "overflow-inline",
- "href": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-inline",
- "initial": "visible",
- "appliesTo": "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "usually specified value, but see text",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overflow",
- "styleDeclaration": [
- "overflow-inline",
- "overflowInline"
- ],
- "syntax": "visible | hidden | clip | scroll | auto",
- "extended": []
- }
- ],
- [
- "overflow-wrap",
- {
- "name": "overflow-wrap",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-overflow-wrap",
- "initial": "normal",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "overflow-wrap",
- "overflowWrap"
- ],
- "syntax": "normal | break-word | anywhere",
- "extended": []
- }
- ],
- [
- "overflow-x",
- {
- "name": "overflow-x",
- "href": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-x",
- "initial": "visible",
- "appliesTo": "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "usually specified value, but see text",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overflow",
- "styleDeclaration": [
- "overflow-x",
- "overflowX"
- ],
- "syntax": "visible | hidden | clip | scroll | auto",
- "extended": []
- }
- ],
- [
- "overflow-y",
- {
- "name": "overflow-y",
- "href": "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-y",
- "initial": "visible",
- "appliesTo": "block containers [CSS2], flex containers [CSS3-FLEXBOX], grid containers [CSS3-GRID-LAYOUT]",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "usually specified value, but see text",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overflow",
- "styleDeclaration": [
- "overflow-y",
- "overflowY"
- ],
- "syntax": "visible | hidden | clip | scroll | auto",
- "extended": []
- }
- ],
- [
- "overlay",
- {
- "name": "overlay",
- "href": "https://drafts.csswg.org/css-position-4/#propdef-overlay",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "see prose",
- "styleDeclaration": [
- "overlay"
- ],
- "syntax": "none | auto",
- "extended": []
- }
- ],
- [
- "overscroll-behavior",
- {
- "name": "overscroll-behavior",
- "href": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior",
- "initial": "auto auto",
- "appliesTo": "scroll container elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "overscroll-behavior",
- "overscrollBehavior"
- ],
- "syntax": "[ contain | none | auto ]{1,2}",
- "extended": []
- }
- ],
- [
- "overscroll-behavior-block",
- {
- "name": "overscroll-behavior-block",
- "href": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-block",
- "initial": "auto",
- "appliesTo": "scroll container elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overscroll-behavior",
- "media": "visual",
- "styleDeclaration": [
- "overscroll-behavior-block",
- "overscrollBehaviorBlock"
- ],
- "syntax": "contain | none | auto",
- "extended": []
- }
- ],
- [
- "overscroll-behavior-inline",
- {
- "name": "overscroll-behavior-inline",
- "href": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-inline",
- "initial": "auto",
- "appliesTo": "scroll container elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overscroll-behavior",
- "media": "visual",
- "styleDeclaration": [
- "overscroll-behavior-inline",
- "overscrollBehaviorInline"
- ],
- "syntax": "contain | none | auto",
- "extended": []
- }
- ],
- [
- "overscroll-behavior-x",
- {
- "name": "overscroll-behavior-x",
- "href": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-x",
- "initial": "auto",
- "appliesTo": "scroll container elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overscroll-behavior",
- "media": "visual",
- "styleDeclaration": [
- "overscroll-behavior-x",
- "overscrollBehaviorX"
- ],
- "syntax": "contain | none | auto",
- "extended": []
- }
- ],
- [
- "overscroll-behavior-y",
- {
- "name": "overscroll-behavior-y",
- "href": "https://drafts.csswg.org/css-overscroll-1/#propdef-overscroll-behavior-y",
- "initial": "auto",
- "appliesTo": "scroll container elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "logicalPropertyGroup": "overscroll-behavior",
- "media": "visual",
- "styleDeclaration": [
- "overscroll-behavior-y",
- "overscrollBehaviorY"
- ],
- "syntax": "contain | none | auto",
- "extended": []
- }
- ],
- [
- "padding",
- {
- "name": "padding",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "padding"
- ],
- "syntax": "<'padding-top'>{1,4}",
- "extended": []
- }
- ],
- [
- "padding-block",
- {
- "name": "padding-block",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-padding-block",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "padding-block",
- "paddingBlock"
- ],
- "syntax": "<'padding-top'>{1,2}",
- "extended": []
- }
- ],
- [
- "padding-block-end",
- {
- "name": "padding-block-end",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-padding-block-end",
- "initial": "0",
- "appliesTo": "Same as padding-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding padding-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-block-end",
- "paddingBlockEnd"
- ],
- "syntax": "<'padding-top'>",
- "extended": []
- }
- ],
- [
- "padding-block-start",
- {
- "name": "padding-block-start",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-padding-block-start",
- "initial": "0",
- "appliesTo": "Same as padding-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding padding-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-block-start",
- "paddingBlockStart"
- ],
- "syntax": "<'padding-top'>",
- "extended": []
- }
- ],
- [
- "padding-bottom",
- {
- "name": "padding-bottom",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-bottom",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-bottom",
- "paddingBottom"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "padding-inline",
- {
- "name": "padding-inline",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-padding-inline",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "padding-inline",
- "paddingInline"
- ],
- "syntax": "<'padding-top'>{1,2}",
- "extended": []
- }
- ],
- [
- "padding-inline-end",
- {
- "name": "padding-inline-end",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-padding-inline-end",
- "initial": "0",
- "appliesTo": "Same as padding-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding padding-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-inline-end",
- "paddingInlineEnd"
- ],
- "syntax": "<'padding-top'>",
- "extended": []
- }
- ],
- [
- "padding-inline-start",
- {
- "name": "padding-inline-start",
- "href": "https://drafts.csswg.org/css-logical-1/#propdef-padding-inline-start",
- "initial": "0",
- "appliesTo": "Same as padding-top",
- "inherited": "no",
- "percentages": "As for the corresponding physical property",
- "computedValue": "Same as corresponding padding-* properties",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-inline-start",
- "paddingInlineStart"
- ],
- "syntax": "<'padding-top'>",
- "extended": []
- }
- ],
- [
- "padding-left",
- {
- "name": "padding-left",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-left",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-left",
- "paddingLeft"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "padding-right",
- {
- "name": "padding-right",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-right",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-right",
- "paddingRight"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "padding-top",
- {
- "name": "padding-top",
- "href": "https://drafts.csswg.org/css-box-4/#propdef-padding-top",
- "initial": "0",
- "appliesTo": "all elements except: internal table elements other than table cells, ruby base containers, and ruby annotation containers",
- "inherited": "no",
- "percentages": "refer to logical width of containing block",
- "computedValue": "a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "padding",
- "styleDeclaration": [
- "padding-top",
- "paddingTop"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "page",
- {
- "name": "page",
- "href": "https://drafts.csswg.org/css-page-3/#propdef-page",
- "initial": "auto",
- "appliesTo": "boxes that create class A break points",
- "inherited": "no (but see prose)",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "page"
- ],
- "syntax": "auto | <custom-ident>",
- "extended": []
- }
- ],
- [
- "page-break-after",
- {
- "name": "page-break-after",
- "href": "https://drafts.csswg.org/css2/#propdef-page-break-after",
- "initial": "auto",
- "appliesTo": "block-level elements (but see text)",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "media": "visual, paged",
- "styleDeclaration": [
- "page-break-after",
- "pageBreakAfter"
- ],
- "syntax": "auto | always | avoid | left | right | inherit",
- "extended": []
- }
- ],
- [
- "page-break-before",
- {
- "name": "page-break-before",
- "href": "https://drafts.csswg.org/css2/#propdef-page-break-before",
- "initial": "auto",
- "appliesTo": "block-level elements (but see text)",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "media": "visual, paged",
- "styleDeclaration": [
- "page-break-before",
- "pageBreakBefore"
- ],
- "syntax": "auto | always | avoid | left | right | inherit",
- "extended": []
- }
- ],
- [
- "page-break-inside",
- {
- "name": "page-break-inside",
- "href": "https://drafts.csswg.org/css2/#propdef-page-break-inside",
- "initial": "auto",
- "appliesTo": "block-level elements (but see text)",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "media": "visual, paged",
- "styleDeclaration": [
- "page-break-inside",
- "pageBreakInside"
- ],
- "syntax": "avoid | auto | inherit",
- "extended": []
- }
- ],
- [
- "pause",
- {
- "name": "pause",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-pause",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "pause"
- ],
- "syntax": "<'pause-before'> <'pause-after'>?",
- "extended": []
- }
- ],
- [
- "pause-after",
- {
- "name": "pause-after",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-pause-after",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "pause-after",
- "pauseAfter"
- ],
- "syntax": "<time [0s,∞]> | none | x-weak | weak | medium | strong | x-strong",
- "extended": []
- }
- ],
- [
- "pause-before",
- {
- "name": "pause-before",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-pause-before",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "pause-before",
- "pauseBefore"
- ],
- "syntax": "<time [0s,∞]> | none | x-weak | weak | medium | strong | x-strong",
- "extended": []
- }
- ],
- [
- "perspective",
- {
- "name": "perspective",
- "href": "https://drafts.csswg.org/css-transforms-2/#propdef-perspective",
- "initial": "none",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword none or an absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "perspective"
- ],
- "syntax": "none | <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "perspective-origin",
- {
- "name": "perspective-origin",
- "href": "https://drafts.csswg.org/css-transforms-2/#propdef-perspective-origin",
- "initial": "50% 50%",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "refer to the size of the reference box",
- "computedValue": "see background-position",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "perspective-origin",
- "perspectiveOrigin"
- ],
- "syntax": "<position>",
- "extended": []
- }
- ],
- [
- "place-content",
- {
- "name": "place-content",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-place-content",
- "initial": "normal",
- "appliesTo": "see individual properties",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "place-content",
- "placeContent"
- ],
- "syntax": "<'align-content'> <'justify-content'>?",
- "extended": []
- }
- ],
- [
- "place-items",
- {
- "name": "place-items",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-place-items",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "place-items",
- "placeItems"
- ],
- "syntax": "<'align-items'> <'justify-items'>?",
- "extended": []
- }
- ],
- [
- "place-self",
- {
- "name": "place-self",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-place-self",
- "initial": "auto",
- "appliesTo": "see individual properties",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "place-self",
- "placeSelf"
- ],
- "syntax": "<'align-self'> <'justify-self'>?",
- "extended": []
- }
- ],
- [
- "pointer-events",
- {
- "name": "pointer-events",
- "href": "https://svgwg.org/svg2-draft/interact.html#PointerEventsProperty",
- "initial": "auto",
- "appliesTo": "container elements, graphics elements and ‘use’",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified",
- "animationType": "discrete",
- "styleDeclaration": [
- "pointer-events",
- "pointerEvents"
- ],
- "syntax": "auto | bounding-box | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | none",
- "extended": []
- }
- ],
- [
- "position",
- {
- "name": "position",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-position",
- "initial": "static",
- "appliesTo": "all elements except table-column-group and table-column",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "position"
- ],
- "syntax": "static | relative | absolute | sticky | fixed | <running()>",
- "extended": [
- "https://drafts.csswg.org/css-gcpm-3/"
- ]
- }
- ],
- [
- "position-anchor",
- {
- "name": "position-anchor",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-anchor",
- "initial": "auto",
- "appliesTo": "absolutely positioned boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "position-anchor",
- "positionAnchor"
- ],
- "syntax": "auto | <anchor-name>",
- "extended": []
- }
- ],
- [
- "position-area",
- {
- "name": "position-area",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-area",
- "initial": "none",
- "appliesTo": "positioned boxes with a default anchor box",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a pair of keywords, see § 3.1.3 Computed Value and Serialization of <position-area>",
- "canonicalOrder": "per grammar",
- "animationType": "TBD",
- "styleDeclaration": [
- "position-area",
- "positionArea"
- ],
- "syntax": "none | <position-area>",
- "extended": []
- }
- ],
- [
- "position-try",
- {
- "name": "position-try",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-try",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "position-try",
- "positionTry"
- ],
- "syntax": "<'position-try-order'>? <'position-try-fallbacks'>",
- "extended": []
- }
- ],
- [
- "position-try-fallbacks",
- {
- "name": "position-try-fallbacks",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-try-fallbacks",
- "initial": "none",
- "appliesTo": "absolutely positioned boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "position-try-fallbacks",
- "positionTryFallbacks"
- ],
- "syntax": "none | [ [<dashed-ident> || <try-tactic>] | <position-area> ]#",
- "extended": []
- }
- ],
- [
- "position-try-order",
- {
- "name": "position-try-order",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-try-order",
- "initial": "normal",
- "appliesTo": "absolutely positioned boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "position-try-order",
- "positionTryOrder"
- ],
- "syntax": "normal | <try-size>",
- "extended": []
- }
- ],
- [
- "position-visibility",
- {
- "name": "position-visibility",
- "href": "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-visibility",
- "initial": "anchors-visible",
- "appliesTo": "absolutely positioned boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "position-visibility",
- "positionVisibility"
- ],
- "syntax": "always | [ anchors-valid || anchors-visible || no-overflow ]",
- "extended": []
- }
- ],
- [
- "print-color-adjust",
- {
- "name": "print-color-adjust",
- "href": "https://drafts.csswg.org/css-color-adjust-1/#propdef-print-color-adjust",
- "initial": "economy",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "print-color-adjust",
- "printColorAdjust"
- ],
- "syntax": "economy | exact",
- "extended": []
- }
- ],
- [
- "quotes",
- {
- "name": "quotes",
- "href": "https://drafts.csswg.org/css-content-3/#propdef-quotes",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the keyword none, the keyword auto or match-parent, or a list, each item a pair of string values",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "quotes"
- ],
- "syntax": "auto | none | match-parent | [ <string> <string> ]+",
- "extended": []
- }
- ],
- [
- "reading-flow",
- {
- "name": "reading-flow",
- "href": "https://drafts.csswg.org/css-display-4/#propdef-reading-flow",
- "initial": "normal",
- "appliesTo": "block, flex and grid containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "reading-flow",
- "readingFlow"
- ],
- "syntax": "normal | source-order | flex-visual | flex-flow | grid-rows | grid-columns | grid-order",
- "extended": []
- }
- ],
- [
- "region-fragment",
- {
- "name": "region-fragment",
- "href": "https://drafts.csswg.org/css-regions-1/#propdef-region-fragment",
- "initial": "auto",
- "appliesTo": "CSS Regions",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "region-fragment",
- "regionFragment"
- ],
- "syntax": "auto | break",
- "extended": []
- }
- ],
- [
- "resize",
- {
- "name": "resize",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-resize",
- "initial": "none",
- "appliesTo": "elements that are scroll containers and optionally replaced elements such as images, videos, and iframes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "resize"
- ],
- "syntax": "none | both | horizontal | vertical | block | inline",
- "extended": []
- }
- ],
- [
- "rest",
- {
- "name": "rest",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-rest",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rest"
- ],
- "syntax": "<'rest-before'> <'rest-after'>?",
- "extended": []
- }
- ],
- [
- "rest-after",
- {
- "name": "rest-after",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-rest-after",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rest-after",
- "restAfter"
- ],
- "syntax": "<time [0s,∞]> | none | x-weak | weak | medium | strong | x-strong",
- "extended": []
- }
- ],
- [
- "rest-before",
- {
- "name": "rest-before",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-rest-before",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rest-before",
- "restBefore"
- ],
- "syntax": "<time [0s,∞]> | none | x-weak | weak | medium | strong | x-strong",
- "extended": []
- }
- ],
- [
- "right",
- {
- "name": "right",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-right",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "right"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "rotate",
- {
- "name": "rotate",
- "href": "https://drafts.csswg.org/css-transforms-2/#propdef-rotate",
- "initial": "none",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none, or an <angle> with an axis consisting of a list of three <number>s",
- "canonicalOrder": "per grammar",
- "animationType": "as SLERP, but see below for none",
- "styleDeclaration": [
- "rotate"
- ],
- "syntax": "none | <angle> | [ x | y | z | <number>{3} ] && <angle>",
- "extended": []
- }
- ],
- [
- "row-gap",
- {
- "name": "row-gap",
- "href": "https://drafts.csswg.org/css-align-3/#propdef-row-gap",
- "initial": "normal",
- "appliesTo": "multi-column containers, flex containers, grid containers",
- "inherited": "no",
- "percentages": "see § 8.3 Percentages In gap Properties",
- "computedValue": "specified keyword, else a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "row-gap",
- "rowGap"
- ],
- "syntax": "normal | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "row-rule",
- {
- "name": "row-rule",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-row-rule",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "row-rule",
- "rowRule"
- ],
- "syntax": "<gap-rule-list> | <gap-auto-rule-list>",
- "extended": []
- }
- ],
- [
- "row-rule-break",
- {
- "name": "row-rule-break",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-row-rule-break",
- "initial": "spanning-item",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "row-rule-break",
- "rowRuleBreak"
- ],
- "syntax": "none | spanning-item | intersection",
- "extended": []
- }
- ],
- [
- "row-rule-color",
- {
- "name": "row-rule-color",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-row-rule-color",
- "initial": "currentcolor",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list, see § 3.4.1 Interpolation behavior.",
- "styleDeclaration": [
- "row-rule-color",
- "rowRuleColor"
- ],
- "syntax": "<line-color-list> | <auto-line-color-list>",
- "extended": []
- }
- ],
- [
- "row-rule-outset",
- {
- "name": "row-rule-outset",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-row-rule-outset",
- "initial": "50%",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "refer to the crossing gap width",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "row-rule-outset",
- "rowRuleOutset"
- ],
- "syntax": "<length-percentage>",
- "extended": []
- }
- ],
- [
- "row-rule-style",
- {
- "name": "row-rule-style",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-row-rule-style",
- "initial": "none",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "row-rule-style",
- "rowRuleStyle"
- ],
- "syntax": "<line-style-list> | <auto-line-style-list>",
- "extended": []
- }
- ],
- [
- "row-rule-width",
- {
- "name": "row-rule-width",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-row-rule-width",
- "initial": "medium",
- "appliesTo": "grid containers, flex containers, multicol containers, and masonry containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "list of absolute lengths, snapped as a border width",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list, see § 3.4.1 Interpolation behavior.",
- "styleDeclaration": [
- "row-rule-width",
- "rowRuleWidth"
- ],
- "syntax": "<line-width-list> | <auto-line-width-list>",
- "extended": []
- }
- ],
- [
- "ruby-align",
- {
- "name": "ruby-align",
- "href": "https://drafts.csswg.org/css-ruby-1/#propdef-ruby-align",
- "initial": "space-around",
- "appliesTo": "ruby bases, ruby annotations, ruby base containers, ruby annotation containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "ruby-align",
- "rubyAlign"
- ],
- "syntax": "start | center | space-between | space-around",
- "extended": []
- }
- ],
- [
- "ruby-merge",
- {
- "name": "ruby-merge",
- "href": "https://drafts.csswg.org/css-ruby-1/#propdef-ruby-merge",
- "initial": "separate",
- "appliesTo": "interlinear ruby annotation containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "ruby-merge",
- "rubyMerge"
- ],
- "syntax": "separate | merge | auto",
- "extended": []
- }
- ],
- [
- "ruby-overhang",
- {
- "name": "ruby-overhang",
- "href": "https://drafts.csswg.org/css-ruby-1/#propdef-ruby-overhang",
- "initial": "auto",
- "appliesTo": "ruby annotation containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "ruby-overhang",
- "rubyOverhang"
- ],
- "syntax": "auto | none",
- "extended": []
- }
- ],
- [
- "ruby-position",
- {
- "name": "ruby-position",
- "href": "https://drafts.csswg.org/css-ruby-1/#propdef-ruby-position",
- "initial": "alternate",
- "appliesTo": "ruby annotation containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "ruby-position",
- "rubyPosition"
- ],
- "syntax": "[ alternate || [ over | under ] ] | inter-character",
- "extended": []
- }
- ],
- [
- "rule",
- {
- "name": "rule",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-rule",
- "initial": "see individual properties",
- "appliesTo": "Same as column-rule and row-rule",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rule"
- ],
- "syntax": "<'column-rule'>",
- "extended": []
- }
- ],
- [
- "rule-break",
- {
- "name": "rule-break",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-rule-break",
- "initial": "see individual properties",
- "appliesTo": "Same as column-rule-break and row-rule-break",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rule-break",
- "ruleBreak"
- ],
- "syntax": "<'column-rule-break'>",
- "extended": []
- }
- ],
- [
- "rule-color",
- {
- "name": "rule-color",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-rule-color",
- "initial": "see individual properties",
- "appliesTo": "Same as column-rule-color and row-rule-color",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rule-color",
- "ruleColor"
- ],
- "syntax": "<'column-rule-color'>",
- "extended": []
- }
- ],
- [
- "rule-outset",
- {
- "name": "rule-outset",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-rule-outset",
- "initial": "see individual properties",
- "appliesTo": "Same as column-rule-outset and row-rule-outset",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rule-outset",
- "ruleOutset"
- ],
- "syntax": "<'column-rule-outset'>",
- "extended": []
- }
- ],
- [
- "rule-style",
- {
- "name": "rule-style",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-rule-style",
- "initial": "see individual properties",
- "appliesTo": "Same as column-rule-style and row-rule-style",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rule-style",
- "ruleStyle"
- ],
- "syntax": "<'column-rule-style'>",
- "extended": []
- }
- ],
- [
- "rule-width",
- {
- "name": "rule-width",
- "href": "https://drafts.csswg.org/css-gaps-1/#propdef-rule-width",
- "initial": "see individual properties",
- "appliesTo": "Same as column-rule-width and row-rule-width",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "rule-width",
- "ruleWidth"
- ],
- "syntax": "<'column-rule-width'>",
- "extended": []
- }
- ],
- [
- "scale",
- {
- "name": "scale",
- "href": "https://drafts.csswg.org/css-transforms-2/#propdef-scale",
- "initial": "none",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none, or a list of 3 <number>s",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value, but see below for none",
- "styleDeclaration": [
- "scale"
- ],
- "syntax": "none | [ <number> | <percentage> ]{1,3}",
- "extended": []
- }
- ],
- [
- "scroll-behavior",
- {
- "name": "scroll-behavior",
- "href": "https://drafts.csswg.org/css-overflow-3/#propdef-scroll-behavior",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "scroll-behavior",
- "scrollBehavior"
- ],
- "syntax": "auto | smooth",
- "extended": []
- }
- ],
- [
- "scroll-margin",
- {
- "name": "scroll-margin",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "per side, an absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "scroll-margin",
- "scrollMargin"
- ],
- "syntax": "<length>{1,4}",
- "extended": []
- }
- ],
- [
- "scroll-margin-block",
- {
- "name": "scroll-margin-block",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-block",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "see individual properties",
- "animationType": "by computed value type",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "scroll-margin-block",
- "scrollMarginBlock"
- ],
- "syntax": "<length>{1,2}",
- "extended": []
- }
- ],
- [
- "scroll-margin-block-end",
- {
- "name": "scroll-margin-block-end",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-block-end",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-block-end",
- "scrollMarginBlockEnd"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-margin-block-start",
- {
- "name": "scroll-margin-block-start",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-block-start",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-block-start",
- "scrollMarginBlockStart"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-margin-bottom",
- {
- "name": "scroll-margin-bottom",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-bottom",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-bottom",
- "scrollMarginBottom"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-margin-inline",
- {
- "name": "scroll-margin-inline",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-inline",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "see individual properties",
- "animationType": "by computed value type",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "scroll-margin-inline",
- "scrollMarginInline"
- ],
- "syntax": "<length>{1,2}",
- "extended": []
- }
- ],
- [
- "scroll-margin-inline-end",
- {
- "name": "scroll-margin-inline-end",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-inline-end",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-inline-end",
- "scrollMarginInlineEnd"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-margin-inline-start",
- {
- "name": "scroll-margin-inline-start",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-inline-start",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-inline-start",
- "scrollMarginInlineStart"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-margin-left",
- {
- "name": "scroll-margin-left",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-left",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-left",
- "scrollMarginLeft"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-margin-right",
- {
- "name": "scroll-margin-right",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-right",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-right",
- "scrollMarginRight"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-margin-top",
- {
- "name": "scroll-margin-top",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-top",
- "initial": "0",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-margin",
- "styleDeclaration": [
- "scroll-margin-top",
- "scrollMarginTop"
- ],
- "syntax": "<length>",
- "extended": []
- }
- ],
- [
- "scroll-marker-group",
- {
- "name": "scroll-marker-group",
- "href": "https://drafts.csswg.org/css-overflow-5/#propdef-scroll-marker-group",
- "initial": "none",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "scroll-marker-group",
- "scrollMarkerGroup"
- ],
- "syntax": "none | before | after",
- "extended": []
- }
- ],
- [
- "scroll-padding",
- {
- "name": "scroll-padding",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the corresponding dimension of the scroll container’s scrollport",
- "computedValue": "per side, either the keyword auto or a computed <length-percentage> value",
- "animationType": "by computed value type",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "scroll-padding",
- "scrollPadding"
- ],
- "syntax": "[ auto | <length-percentage [0,∞]> ]{1,4}",
- "extended": []
- }
- ],
- [
- "scroll-padding-block",
- {
- "name": "scroll-padding-block",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-block",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "see individual properties",
- "animationType": "by computed value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "scroll-padding-block",
- "scrollPaddingBlock"
- ],
- "syntax": "[ auto | <length-percentage [0,∞]> ]{1,2}",
- "extended": []
- }
- ],
- [
- "scroll-padding-block-end",
- {
- "name": "scroll-padding-block-end",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-block-end",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-block-end",
- "scrollPaddingBlockEnd"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-padding-block-start",
- {
- "name": "scroll-padding-block-start",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-block-start",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-block-start",
- "scrollPaddingBlockStart"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-padding-bottom",
- {
- "name": "scroll-padding-bottom",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-bottom",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-bottom",
- "scrollPaddingBottom"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-padding-inline",
- {
- "name": "scroll-padding-inline",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-inline",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "see individual properties",
- "animationType": "by computed value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "scroll-padding-inline",
- "scrollPaddingInline"
- ],
- "syntax": "[ auto | <length-percentage [0,∞]> ]{1,2}",
- "extended": []
- }
- ],
- [
- "scroll-padding-inline-end",
- {
- "name": "scroll-padding-inline-end",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-inline-end",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-inline-end",
- "scrollPaddingInlineEnd"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-padding-inline-start",
- {
- "name": "scroll-padding-inline-start",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-inline-start",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-inline-start",
- "scrollPaddingInlineStart"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-padding-left",
- {
- "name": "scroll-padding-left",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-left",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-left",
- "scrollPaddingLeft"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-padding-right",
- {
- "name": "scroll-padding-right",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-right",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-right",
- "scrollPaddingRight"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-padding-top",
- {
- "name": "scroll-padding-top",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-top",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "relative to the scroll container’s scrollport",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "scroll-padding",
- "styleDeclaration": [
- "scroll-padding-top",
- "scrollPaddingTop"
- ],
- "syntax": "auto | <length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "scroll-snap-align",
- {
- "name": "scroll-snap-align",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-align",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "two keywords",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "scroll-snap-align",
- "scrollSnapAlign"
- ],
- "syntax": "[ none | start | end | center ]{1,2}",
- "extended": []
- }
- ],
- [
- "scroll-snap-stop",
- {
- "name": "scroll-snap-stop",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-stop",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "scroll-snap-stop",
- "scrollSnapStop"
- ],
- "syntax": "normal | always",
- "extended": []
- }
- ],
- [
- "scroll-snap-type",
- {
- "name": "scroll-snap-type",
- "href": "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-type",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "scroll-snap-type",
- "scrollSnapType"
- ],
- "syntax": "none | [ x | y | block | inline | both ] [ mandatory | proximity ]?",
- "extended": []
- }
- ],
- [
- "scroll-timeline",
- {
- "name": "scroll-timeline",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-scroll-timeline",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "not animatable",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "scroll-timeline",
- "scrollTimeline"
- ],
- "syntax": "[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#",
- "extended": []
- }
- ],
- [
- "scroll-timeline-axis",
- {
- "name": "scroll-timeline-axis",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-scroll-timeline-axis",
- "initial": "block",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "a list of the keywords specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "scroll-timeline-axis",
- "scrollTimelineAxis"
- ],
- "syntax": "[ block | inline | x | y ]#",
- "extended": []
- }
- ],
- [
- "scroll-timeline-name",
- {
- "name": "scroll-timeline-name",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-scroll-timeline-name",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a list of CSS identifiers",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "scroll-timeline-name",
- "scrollTimelineName"
- ],
- "syntax": "[ none | <dashed-ident> ]#",
- "extended": []
- }
- ],
- [
- "scrollbar-color",
- {
- "name": "scrollbar-color",
- "href": "https://drafts.csswg.org/css-scrollbars-1/#propdef-scrollbar-color",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword or two computed colors",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "scrollbar-color",
- "scrollbarColor"
- ],
- "syntax": "auto | <color>{2}",
- "extended": []
- }
- ],
- [
- "scrollbar-gutter",
- {
- "name": "scrollbar-gutter",
- "href": "https://drafts.csswg.org/css-overflow-3/#propdef-scrollbar-gutter",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "scrollbar-gutter",
- "scrollbarGutter"
- ],
- "syntax": "auto | stable && both-edges?",
- "extended": []
- }
- ],
- [
- "scrollbar-width",
- {
- "name": "scrollbar-width",
- "href": "https://drafts.csswg.org/css-scrollbars-1/#propdef-scrollbar-width",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "scrollbar-width",
- "scrollbarWidth"
- ],
- "syntax": "auto | thin | none",
- "extended": []
- }
- ],
- [
- "shape-image-threshold",
- {
- "name": "shape-image-threshold",
- "href": "https://drafts.csswg.org/css-shapes-1/#propdef-shape-image-threshold",
- "initial": "0",
- "appliesTo": "floats",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified number, clamped to the range [0,1]",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "shape-image-threshold",
- "shapeImageThreshold"
- ],
- "syntax": "<opacity-value>",
- "extended": []
- }
- ],
- [
- "shape-inside",
- {
- "name": "shape-inside",
- "href": "https://drafts.csswg.org/css-shapes-2/#propdef-shape-inside",
- "initial": "auto",
- "appliesTo": "block-level elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "computed lengths for <basic-shape>, the absolute URL for <url>, otherwise as specified",
- "canonicalOrder": "per grammar",
- "animationType": "as defined for <basic-shape>, otherwise discrete",
- "styleDeclaration": [
- "shape-inside",
- "shapeInside"
- ],
- "syntax": "auto | outside-shape | [ <basic-shape> || shape-box ] | <image> | display",
- "extended": []
- }
- ],
- [
- "shape-margin",
- {
- "name": "shape-margin",
- "href": "https://drafts.csswg.org/css-shapes-1/#propdef-shape-margin",
- "initial": "0",
- "appliesTo": "floats and initial letter boxes",
- "inherited": "no",
- "percentages": "refer to the inline size of the containing block",
- "computedValue": "computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "shape-margin",
- "shapeMargin"
- ],
- "syntax": "<length-percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "shape-outside",
- {
- "name": "shape-outside",
- "href": "https://drafts.csswg.org/css-shapes-1/#propdef-shape-outside",
- "initial": "none",
- "appliesTo": "floats and initial letter boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as defined for <basic-shape> (with <shape-box> following, if supplied); else the computed <image>; else the keyword as specified",
- "canonicalOrder": "per grammar",
- "animationType": "as defined for <basic-shape>, otherwise discrete",
- "styleDeclaration": [
- "shape-outside",
- "shapeOutside"
- ],
- "syntax": "none | [ <basic-shape> || <shape-box> ] | <image>",
- "extended": []
- }
- ],
- [
- "shape-rendering",
- {
- "name": "shape-rendering",
- "href": "https://svgwg.org/svg2-draft/painting.html#ShapeRenderingProperty",
- "initial": "auto",
- "appliesTo": "shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified",
- "animationType": "discrete",
- "styleDeclaration": [
- "shape-rendering",
- "shapeRendering"
- ],
- "syntax": "auto | optimizeSpeed | crispEdges | geometricPrecision",
- "extended": []
- }
- ],
- [
- "slider-orientation",
- {
- "name": "slider-orientation",
- "href": "https://drafts.csswg.org/css-forms-1/#propdef-slider-orientation",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "slider-orientation",
- "sliderOrientation"
- ],
- "syntax": "auto | left-to-right | right-to-left | top-to-bottom | bottom-to-top",
- "extended": []
- }
- ],
- [
- "spatial-navigation-action",
- {
- "name": "spatial-navigation-action",
- "href": "https://drafts.csswg.org/css-nav-1/#propdef-spatial-navigation-action",
- "initial": "auto",
- "appliesTo": "scroll containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "spatial-navigation-action",
- "spatialNavigationAction"
- ],
- "syntax": "auto | focus | scroll",
- "extended": []
- }
- ],
- [
- "spatial-navigation-contain",
- {
- "name": "spatial-navigation-contain",
- "href": "https://drafts.csswg.org/css-nav-1/#propdef-spatial-navigation-contain",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "spatial-navigation-contain",
- "spatialNavigationContain"
- ],
- "syntax": "auto | contain",
- "extended": []
- }
- ],
- [
- "spatial-navigation-function",
- {
- "name": "spatial-navigation-function",
- "href": "https://drafts.csswg.org/css-nav-1/#propdef-spatial-navigation-function",
- "initial": "normal",
- "appliesTo": "spatial navigation containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "spatial-navigation-function",
- "spatialNavigationFunction"
- ],
- "syntax": "normal | grid",
- "extended": []
- }
- ],
- [
- "speak",
- {
- "name": "speak",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-speak",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "speak"
- ],
- "syntax": "auto | never | always",
- "extended": []
- }
- ],
- [
- "speak-as",
- {
- "name": "speak-as",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-speak-as",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "speak-as",
- "speakAs"
- ],
- "syntax": "normal | spell-out || digits || [ literal-punctuation | no-punctuation ]",
- "extended": []
- }
- ],
- [
- "stop-color",
- {
- "name": "stop-color",
- "href": "https://svgwg.org/svg2-draft/pservers.html#StopColorProperty",
- "styleDeclaration": [
- "stop-color",
- "stopColor"
- ],
- "extended": []
- }
- ],
- [
- "stop-opacity",
- {
- "name": "stop-opacity",
- "href": "https://svgwg.org/svg2-draft/pservers.html#StopOpacityProperty",
- "styleDeclaration": [
- "stop-opacity",
- "stopOpacity"
- ],
- "extended": []
- }
- ],
- [
- "string-set",
- {
- "name": "string-set",
- "href": "https://drafts.csswg.org/css-content-3/#propdef-string-set",
- "initial": "none",
- "appliesTo": "all elements, but not pseudo-elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword none or a list, each item an identifier paired with a list of string values",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "string-set",
- "stringSet"
- ],
- "syntax": "none | [ <custom-ident> <string>+ ]#",
- "extended": []
- }
- ],
- [
- "stroke",
- {
- "name": "stroke",
- "href": "https://svgwg.org/svg2-draft/painting.html#StrokeProperty",
- "initial": "none",
- "appliesTo": "shapes and text content elements",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified, but with <color> values computed and <url> values made absolute",
- "animationType": "by computed value",
- "styleDeclaration": [
- "stroke"
- ],
- "syntax": "<paint>",
- "extended": []
- }
- ],
- [
- "stroke-align",
- {
- "name": "stroke-align",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-align",
- "initial": "center",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-align",
- "strokeAlign"
- ],
- "syntax": "center | inset | outset",
- "extended": []
- }
- ],
- [
- "stroke-alignment",
- {
- "name": "stroke-alignment",
- "href": "https://svgwg.org/specs/strokes/#StrokeAlignmentProperty",
- "initial": "center",
- "appliesTo": "shapes and text content elements",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computed value": "as specified",
- "animatable": "yes",
- "styleDeclaration": [
- "stroke-alignment",
- "strokeAlignment"
- ],
- "syntax": "center | inner | outer",
- "extended": []
- }
- ],
- [
- "stroke-break",
- {
- "name": "stroke-break",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-break",
- "initial": "bounding-box",
- "appliesTo": "all elements",
- "inherited": "?",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-break",
- "strokeBreak"
- ],
- "syntax": "bounding-box | slice | clone",
- "extended": []
- }
- ],
- [
- "stroke-color",
- {
- "name": "stroke-color",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-color",
- "initial": "transparent",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "stroke-color",
- "strokeColor"
- ],
- "syntax": "<color>#",
- "extended": []
- }
- ],
- [
- "stroke-dash-corner",
- {
- "name": "stroke-dash-corner",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-dash-corner",
- "initial": "none",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified value, with lengths made absolute",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value if <length>, otherwise discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-dash-corner",
- "strokeDashCorner"
- ],
- "syntax": "none | <length>",
- "extended": []
- }
- ],
- [
- "stroke-dash-justify",
- {
- "name": "stroke-dash-justify",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-dash-justify",
- "initial": "none",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified value, with lengths made absolute",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-dash-justify",
- "strokeDashJustify"
- ],
- "syntax": "none | [ stretch | compress ] || [ dashes || gaps ]",
- "extended": []
- }
- ],
- [
- "stroke-dashadjust",
- {
- "name": "stroke-dashadjust",
- "href": "https://svgwg.org/specs/strokes/#StrokeDashadjustProperty",
- "initial": "none",
- "appliesTo": "shapes and text content elements",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computed value": "as specified",
- "animatable": "yes",
- "styleDeclaration": [
- "stroke-dashadjust",
- "strokeDashadjust"
- ],
- "syntax": "none | [stretch | compress] [dashes | gaps]?",
- "extended": []
- }
- ],
- [
- "stroke-dasharray",
- {
- "name": "stroke-dasharray",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-dasharray",
- "initial": "none",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "relative to the scaled viewport size",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "stroke-dasharray",
- "strokeDasharray"
- ],
- "syntax": "none | [<length-percentage> | <number>]+#",
- "extended": []
- }
- ],
- [
- "stroke-dashcorner",
- {
- "name": "stroke-dashcorner",
- "href": "https://svgwg.org/specs/strokes/#StrokeDashcornerProperty",
- "initial": "none",
- "appliesTo": "shapes and text content elements",
- "inherited": "yes",
- "percentages": "refer to the size of the current viewport (see Units)",
- "media": "visual",
- "computed value": "absolute length or keyword specified",
- "animatable": "yes",
- "styleDeclaration": [
- "stroke-dashcorner",
- "strokeDashcorner"
- ],
- "syntax": "none | <length>",
- "extended": []
- }
- ],
- [
- "stroke-dashoffset",
- {
- "name": "stroke-dashoffset",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-dashoffset",
- "initial": "0",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "relative to the scaled viewport size",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "stroke-dashoffset",
- "strokeDashoffset"
- ],
- "syntax": "<length-percentage> | <number>",
- "extended": []
- }
- ],
- [
- "stroke-image",
- {
- "name": "stroke-image",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-image",
- "initial": "none",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified, with any <image> computed",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "stroke-image",
- "strokeImage"
- ],
- "syntax": "<paint>#",
- "extended": []
- }
- ],
- [
- "stroke-linecap",
- {
- "name": "stroke-linecap",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-linecap",
- "initial": "butt",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-linecap",
- "strokeLinecap"
- ],
- "syntax": "butt | round | square",
- "extended": []
- }
- ],
- [
- "stroke-linejoin",
- {
- "name": "stroke-linejoin",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-linejoin",
- "initial": "miter",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-linejoin",
- "strokeLinejoin"
- ],
- "syntax": "[ crop | arcs | miter ] || [ bevel | round | fallback ]",
- "extended": []
- }
- ],
- [
- "stroke-miterlimit",
- {
- "name": "stroke-miterlimit",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-miterlimit",
- "initial": "4",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "a number",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-miterlimit",
- "strokeMiterlimit"
- ],
- "syntax": "<number>",
- "extended": []
- }
- ],
- [
- "stroke-opacity",
- {
- "name": "stroke-opacity",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-opacity",
- "initial": "1",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the specified value converted to a <number>, clamped to the range [0,1]",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "stroke-opacity",
- "strokeOpacity"
- ],
- "syntax": "<'opacity'>",
- "extended": []
- }
- ],
- [
- "stroke-origin",
- {
- "name": "stroke-origin",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-origin",
- "initial": "match-parent",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-origin",
- "strokeOrigin"
- ],
- "syntax": "match-parent | fill-box | stroke-box | content-box | padding-box | border-box",
- "extended": []
- }
- ],
- [
- "stroke-position",
- {
- "name": "stroke-position",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-position",
- "initial": "0% 0%",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "A list, each item consisting of: a pair of offsets (horizontal and vertical) from the top left origin each given as a combination of an absolute length and a percentage",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "stroke-position",
- "strokePosition"
- ],
- "syntax": "<position>#",
- "extended": []
- }
- ],
- [
- "stroke-repeat",
- {
- "name": "stroke-repeat",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-repeat",
- "initial": "repeat",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "A list, each item consisting of: two keywords, one per dimension",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "stroke-repeat",
- "strokeRepeat"
- ],
- "syntax": "<repeat-style>#",
- "extended": []
- }
- ],
- [
- "stroke-size",
- {
- "name": "stroke-size",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-size",
- "initial": "auto",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "as specified, but with lengths made absolute and omitted auto keywords filled in",
- "canonicalOrder": "per grammar",
- "animationType": "repeatable list",
- "media": "visual",
- "styleDeclaration": [
- "stroke-size",
- "strokeSize"
- ],
- "syntax": "<bg-size>#",
- "extended": []
- }
- ],
- [
- "stroke-width",
- {
- "name": "stroke-width",
- "href": "https://drafts.fxtf.org/fill-stroke-3/#propdef-stroke-width",
- "initial": "1px",
- "appliesTo": "text and SVG shapes",
- "inherited": "yes",
- "percentages": "relative to the scaled viewport size",
- "computedValue": "the absolute length, or percentage",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "media": "visual",
- "styleDeclaration": [
- "stroke-width",
- "strokeWidth"
- ],
- "syntax": "[<length-percentage> | <number>]#",
- "extended": []
- }
- ],
- [
- "tab-size",
- {
- "name": "tab-size",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-tab-size",
- "initial": "8",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the specified number or absolute length",
- "canonicalOrder": "n/a",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "tab-size",
- "tabSize"
- ],
- "syntax": "<number [0,∞]> | <length [0,∞]>",
- "extended": []
- }
- ],
- [
- "table-layout",
- {
- "name": "table-layout",
- "href": "https://drafts.csswg.org/css-tables-3/#propdef-table-layout",
- "initial": "auto",
- "appliesTo": "table grid boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "table-layout",
- "tableLayout"
- ],
- "syntax": "auto | fixed",
- "extended": []
- }
- ],
- [
- "text-align",
- {
- "name": "text-align",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-align",
- "initial": "start",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "discrete",
- "canonicalOrder": "n/a",
- "styleDeclaration": [
- "text-align",
- "textAlign"
- ],
- "syntax": "start | end | left | right | center | <string> | justify | match-parent | justify-all",
- "extended": []
- }
- ],
- [
- "text-align-all",
- {
- "name": "text-align-all",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-align-all",
- "initial": "start",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "keyword as specified, except for match-parent which computes as defined above",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-align-all",
- "textAlignAll"
- ],
- "syntax": "start | end | left | right | center | <string> | justify | match-parent",
- "extended": []
- }
- ],
- [
- "text-align-last",
- {
- "name": "text-align-last",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-align-last",
- "initial": "auto",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "keyword as specified, except for match-parent which computes as defined above",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-align-last",
- "textAlignLast"
- ],
- "syntax": "auto | start | end | left | right | center | justify | match-parent",
- "extended": []
- }
- ],
- [
- "text-anchor",
- {
- "name": "text-anchor",
- "href": "https://svgwg.org/svg2-draft/text.html#TextAnchorProperty",
- "initial": "start",
- "appliesTo": "text content elements",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-anchor",
- "textAnchor"
- ],
- "syntax": "start | middle | end",
- "extended": []
- }
- ],
- [
- "text-autospace",
- {
- "name": "text-autospace",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-autospace",
- "initial": "normal",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-autospace",
- "textAutospace"
- ],
- "syntax": "normal | <autospace> | auto",
- "extended": []
- }
- ],
- [
- "text-box",
- {
- "name": "text-box",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-text-box",
- "initial": "normal",
- "appliesTo": "block containers, multi-column containers, and inline boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-box",
- "textBox"
- ],
- "syntax": "normal | <'text-box-trim'> || <'text-box-edge'>",
- "extended": []
- }
- ],
- [
- "text-box-edge",
- {
- "name": "text-box-edge",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-text-box-edge",
- "initial": "auto",
- "appliesTo": "block containers and inline boxes",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-box-edge",
- "textBoxEdge"
- ],
- "syntax": "auto | <text-edge>",
- "extended": []
- }
- ],
- [
- "text-box-trim",
- {
- "name": "text-box-trim",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-text-box-trim",
- "initial": "none",
- "appliesTo": "block containers, multi-column containers, and inline boxes",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-box-trim",
- "textBoxTrim"
- ],
- "syntax": "none | trim-start | trim-end | trim-both",
- "extended": []
- }
- ],
- [
- "text-combine-upright",
- {
- "name": "text-combine-upright",
- "href": "https://drafts.csswg.org/css-writing-modes-4/#propdef-text-combine-upright",
- "initial": "none",
- "appliesTo": "inline boxes and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword, plus integer if digits",
- "canonicalOrder": "n/a",
- "animationType": "not animatable",
- "styleDeclaration": [
- "text-combine-upright",
- "textCombineUpright"
- ],
- "syntax": "none | all | [ digits <integer [2,4]>? ]",
- "extended": []
- }
- ],
- [
- "text-decoration",
- {
- "name": "text-decoration",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "text-decoration",
- "textDecoration"
- ],
- "syntax": "<'text-decoration-line'> || <'text-decoration-thickness'> || <'text-decoration-style'> || <'text-decoration-color'>",
- "extended": []
- }
- ],
- [
- "text-decoration-color",
- {
- "name": "text-decoration-color",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-color",
- "initial": "currentcolor",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "text-decoration-color",
- "textDecorationColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "text-decoration-line",
- {
- "name": "text-decoration-line",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-line",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no (but see prose, above)",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-decoration-line",
- "textDecorationLine"
- ],
- "syntax": "none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error",
- "extended": []
- }
- ],
- [
- "text-decoration-skip",
- {
- "name": "text-decoration-skip",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-skip",
- "initial": "See individual properties",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "See individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-decoration-skip",
- "textDecorationSkip"
- ],
- "syntax": "none | auto",
- "extended": []
- }
- ],
- [
- "text-decoration-skip-box",
- {
- "name": "text-decoration-skip-box",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-skip-box",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-decoration-skip-box",
- "textDecorationSkipBox"
- ],
- "syntax": "none | all",
- "extended": []
- }
- ],
- [
- "text-decoration-skip-ink",
- {
- "name": "text-decoration-skip-ink",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-skip-ink",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-decoration-skip-ink",
- "textDecorationSkipInk"
- ],
- "syntax": "auto | none | all",
- "extended": []
- }
- ],
- [
- "text-decoration-skip-self",
- {
- "name": "text-decoration-skip-self",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-skip-self",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword(s) except for skip-all, see below",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-decoration-skip-self",
- "textDecorationSkipSelf"
- ],
- "syntax": "auto | skip-all | [ skip-underline || skip-overline || skip-line-through ] | no-skip",
- "extended": []
- }
- ],
- [
- "text-decoration-skip-spaces",
- {
- "name": "text-decoration-skip-spaces",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-skip-spaces",
- "initial": "start end",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-decoration-skip-spaces",
- "textDecorationSkipSpaces"
- ],
- "syntax": "none | all | [ start || end ]",
- "extended": []
- }
- ],
- [
- "text-decoration-style",
- {
- "name": "text-decoration-style",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-style",
- "initial": "solid",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-decoration-style",
- "textDecorationStyle"
- ],
- "syntax": "solid | double | dotted | dashed | wavy",
- "extended": []
- }
- ],
- [
- "text-decoration-thickness",
- {
- "name": "text-decoration-thickness",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-decoration-thickness",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "text-decoration-thickness",
- "textDecorationThickness"
- ],
- "syntax": "auto | from-font | <length-percentage>",
- "extended": []
- }
- ],
- [
- "text-emphasis",
- {
- "name": "text-emphasis",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-emphasis",
- "initial": "see individual properties",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "text-emphasis",
- "textEmphasis"
- ],
- "syntax": "<'text-emphasis-style'> || <'text-emphasis-color'>",
- "extended": []
- }
- ],
- [
- "text-emphasis-color",
- {
- "name": "text-emphasis-color",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-emphasis-color",
- "initial": "currentcolor",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "computed color",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "text-emphasis-color",
- "textEmphasisColor"
- ],
- "syntax": "<color>",
- "extended": []
- }
- ],
- [
- "text-emphasis-position",
- {
- "name": "text-emphasis-position",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-emphasis-position",
- "initial": "over right",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-emphasis-position",
- "textEmphasisPosition"
- ],
- "syntax": "[ over | under ] && [ right | left ]?",
- "extended": []
- }
- ],
- [
- "text-emphasis-skip",
- {
- "name": "text-emphasis-skip",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-emphasis-skip",
- "initial": "spaces punctuation",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-emphasis-skip",
- "textEmphasisSkip"
- ],
- "syntax": "spaces || punctuation || symbols || narrow",
- "extended": []
- }
- ],
- [
- "text-emphasis-style",
- {
- "name": "text-emphasis-style",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-emphasis-style",
- "initial": "none",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "the keyword none, a pair of keywords representing the shape and fill, or a string",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-emphasis-style",
- "textEmphasisStyle"
- ],
- "syntax": "none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>",
- "extended": []
- }
- ],
- [
- "text-group-align",
- {
- "name": "text-group-align",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-group-align",
- "initial": "none",
- "appliesTo": "block containers",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-group-align",
- "textGroupAlign"
- ],
- "syntax": "none | start | end | left | right | center",
- "extended": []
- }
- ],
- [
- "text-indent",
- {
- "name": "text-indent",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-indent",
- "initial": "0",
- "appliesTo": "block containers",
- "inherited": "yes",
- "percentages": "refers to block container’s own inline-axis inner size",
- "computedValue": "computed <length-percentage> value, plus any specified keywords",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "text-indent",
- "textIndent"
- ],
- "syntax": "[ <length-percentage> ] && hanging? && each-line?",
- "extended": []
- }
- ],
- [
- "text-justify",
- {
- "name": "text-justify",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-justify",
- "initial": "auto",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword (except for the distribute legacy value)",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-justify",
- "textJustify"
- ],
- "syntax": "[ auto | none | inter-word | inter-character | ruby ] || no-compress",
- "extended": []
- }
- ],
- [
- "text-orientation",
- {
- "name": "text-orientation",
- "href": "https://drafts.csswg.org/css-writing-modes-4/#propdef-text-orientation",
- "initial": "mixed",
- "appliesTo": "all elements except table row groups, rows, column groups, and columns; and text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "n/a",
- "animationType": "not animatable",
- "styleDeclaration": [
- "text-orientation",
- "textOrientation"
- ],
- "syntax": "mixed | upright | sideways",
- "extended": []
- }
- ],
- [
- "text-overflow",
- {
- "name": "text-overflow",
- "href": "https://drafts.csswg.org/css-overflow-4/#propdef-text-overflow",
- "initial": "clip",
- "appliesTo": "block containers",
- "inherited": "no",
- "percentages": "refer to the width of the line box",
- "computedValue": "as specified, with lengths made absolute",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "text-overflow",
- "textOverflow"
- ],
- "syntax": "[ clip | ellipsis | <string> | fade | <fade()> ]{1,2}",
- "extended": []
- }
- ],
- [
- "text-rendering",
- {
- "name": "text-rendering",
- "href": "https://svgwg.org/svg2-draft/painting.html#TextRenderingProperty",
- "initial": "auto",
- "appliesTo": "‘text’",
- "inherited": "yes",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-rendering",
- "textRendering"
- ],
- "syntax": "auto | optimizeSpeed | optimizeLegibility | geometricPrecision",
- "extended": []
- }
- ],
- [
- "text-shadow",
- {
- "name": "text-shadow",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-shadow",
- "initial": "none",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "either the keyword none or a list, each item consisting of four absolute lengths plus a computed color and optionally also an inset keyword",
- "canonicalOrder": "per grammar",
- "animationType": "as shadow list",
- "styleDeclaration": [
- "text-shadow",
- "textShadow"
- ],
- "syntax": "none | <shadow>#",
- "extended": []
- }
- ],
- [
- "text-spacing",
- {
- "name": "text-spacing",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-spacing",
- "initial": "see individual properties",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "animationType": "discrete",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "text-spacing",
- "textSpacing"
- ],
- "syntax": "none | auto | <spacing-trim> || <autospace>",
- "extended": []
- }
- ],
- [
- "text-spacing-trim",
- {
- "name": "text-spacing-trim",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-spacing-trim",
- "initial": "normal",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-spacing-trim",
- "textSpacingTrim"
- ],
- "syntax": "<spacing-trim> | auto",
- "extended": []
- }
- ],
- [
- "text-transform",
- {
- "name": "text-transform",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-transform",
- "initial": "none",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-transform",
- "textTransform"
- ],
- "syntax": "none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto",
- "extended": []
- }
- ],
- [
- "text-underline-offset",
- {
- "name": "text-underline-offset",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-underline-offset",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "text-underline-offset",
- "textUnderlineOffset"
- ],
- "syntax": "auto | <length-percentage>",
- "extended": []
- }
- ],
- [
- "text-underline-position",
- {
- "name": "text-underline-position",
- "href": "https://drafts.csswg.org/css-text-decor-4/#propdef-text-underline-position",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-underline-position",
- "textUnderlinePosition"
- ],
- "syntax": "auto | [ from-font | under ] || [ left | right ]",
- "extended": []
- }
- ],
- [
- "text-wrap",
- {
- "name": "text-wrap",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-wrap",
- "initial": "wrap",
- "appliesTo": "see individual properties",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "canonicalOrder": "per grammar",
- "animationType": "see individual properties",
- "styleDeclaration": [
- "text-wrap",
- "textWrap"
- ],
- "syntax": "<'text-wrap-mode'> || <'text-wrap-style'>",
- "extended": []
- }
- ],
- [
- "text-wrap-mode",
- {
- "name": "text-wrap-mode",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-wrap-mode",
- "initial": "wrap",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-wrap-mode",
- "textWrapMode"
- ],
- "syntax": "wrap | nowrap",
- "extended": []
- }
- ],
- [
- "text-wrap-style",
- {
- "name": "text-wrap-style",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-text-wrap-style",
- "initial": "auto",
- "appliesTo": "block containers hat establish an inline formatting context",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "text-wrap-style",
- "textWrapStyle"
- ],
- "syntax": "auto | balance | stable | pretty | avoid-orphans",
- "extended": []
- }
- ],
- [
- "timeline-scope",
- {
- "name": "timeline-scope",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-timeline-scope",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a list of CSS identifiers",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "timeline-scope",
- "timelineScope"
- ],
- "syntax": "none | all | <dashed-ident>#",
- "extended": []
- }
- ],
- [
- "top",
- {
- "name": "top",
- "href": "https://drafts.csswg.org/css-position-3/#propdef-top",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "refer to size of containing block; see prose",
- "computedValue": "the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "logicalPropertyGroup": "inset",
- "styleDeclaration": [
- "top"
- ],
- "syntax": "auto | <length-percentage> | <anchor()> | <anchor-size()>",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/"
- ]
- }
- ],
- [
- "transform",
- {
- "name": "transform",
- "href": "https://drafts.csswg.org/css-transforms-1/#propdef-transform",
- "initial": "none",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "refer to the size of reference box",
- "computedValue": "as specified, but with lengths made absolute",
- "canonicalOrder": "per grammar",
- "animationType": "transform list, see interpolation rules",
- "styleDeclaration": [
- "transform"
- ],
- "syntax": "none | <transform-list>",
- "extended": []
- }
- ],
- [
- "transform-box",
- {
- "name": "transform-box",
- "href": "https://drafts.csswg.org/css-transforms-1/#propdef-transform-box",
- "initial": "view-box",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "transform-box",
- "transformBox"
- ],
- "syntax": "content-box | border-box | fill-box | stroke-box | view-box",
- "extended": []
- }
- ],
- [
- "transform-origin",
- {
- "name": "transform-origin",
- "href": "https://drafts.csswg.org/css-transforms-1/#propdef-transform-origin",
- "initial": "50% 50%",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "refer to the size of reference box",
- "computedValue": "see background-position",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value",
- "styleDeclaration": [
- "transform-origin",
- "transformOrigin"
- ],
- "syntax": "[ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] <length>? | [ [ center | left | right ] && [ center | top | bottom ] ] <length>?",
- "extended": []
- }
- ],
- [
- "transform-style",
- {
- "name": "transform-style",
- "href": "https://drafts.csswg.org/css-transforms-2/#propdef-transform-style",
- "initial": "flat",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "usedValue": "flat if a grouping property is present, specified keyword otherwise",
- "styleDeclaration": [
- "transform-style",
- "transformStyle"
- ],
- "syntax": "flat | preserve-3d",
- "extended": []
- }
- ],
- [
- "transition",
- {
- "name": "transition",
- "href": "https://drafts.csswg.org/css-transitions-1/#propdef-transition",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "not animatable",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "transition"
- ],
- "syntax": "<single-transition>#",
- "extended": []
- }
- ],
- [
- "transition-behavior",
- {
- "name": "transition-behavior",
- "href": "https://drafts.csswg.org/css-transitions-2/#propdef-transition-behavior",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "transition-behavior",
- "transitionBehavior"
- ],
- "syntax": "<transition-behavior-value>#",
- "extended": []
- }
- ],
- [
- "transition-delay",
- {
- "name": "transition-delay",
- "href": "https://drafts.csswg.org/css-transitions-1/#propdef-transition-delay",
- "initial": "0s",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a duration",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "transition-delay",
- "transitionDelay"
- ],
- "syntax": "<time>#",
- "extended": []
- }
- ],
- [
- "transition-duration",
- {
- "name": "transition-duration",
- "href": "https://drafts.csswg.org/css-transitions-1/#propdef-transition-duration",
- "initial": "0s",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "list, each item a duration",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "transition-duration",
- "transitionDuration"
- ],
- "syntax": "<time [0s,∞]>#",
- "extended": []
- }
- ],
- [
- "transition-property",
- {
- "name": "transition-property",
- "href": "https://drafts.csswg.org/css-transitions-1/#propdef-transition-property",
- "initial": "all",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "the keyword none else a list of identifiers",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "transition-property",
- "transitionProperty"
- ],
- "syntax": "none | <single-transition-property>#",
- "extended": []
- }
- ],
- [
- "transition-timing-function",
- {
- "name": "transition-timing-function",
- "href": "https://drafts.csswg.org/css-transitions-1/#propdef-transition-timing-function",
- "initial": "ease",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "transition-timing-function",
- "transitionTimingFunction"
- ],
- "syntax": "<easing-function>#",
- "extended": []
- }
- ],
- [
- "translate",
- {
- "name": "translate",
- "href": "https://drafts.csswg.org/css-transforms-2/#propdef-translate",
- "initial": "none",
- "appliesTo": "transformable elements",
- "inherited": "no",
- "percentages": "relative to the width of the reference box (for the first value) or the height (for the second value)",
- "computedValue": "the keyword none or a pair of computed <length-percentage> values and an absolute length",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value, but see below for none",
- "styleDeclaration": [
- "translate"
- ],
- "syntax": "none | <length-percentage> [ <length-percentage> <length>? ]?",
- "extended": []
- }
- ],
- [
- "unicode-bidi",
- {
- "name": "unicode-bidi",
- "href": "https://drafts.csswg.org/css-writing-modes-4/#propdef-unicode-bidi",
- "initial": "normal",
- "appliesTo": "all elements, but see prose",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "unicode-bidi",
- "unicodeBidi"
- ],
- "syntax": "normal | embed | isolate | bidi-override | isolate-override | plaintext",
- "extended": []
- }
- ],
- [
- "user-select",
- {
- "name": "user-select",
- "href": "https://drafts.csswg.org/css-ui-4/#propdef-user-select",
- "initial": "auto",
- "appliesTo": "all elements, and optionally to the ::before and ::after pseudo-elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "user-select",
- "userSelect"
- ],
- "syntax": "auto | text | none | contain | all",
- "extended": []
- }
- ],
- [
- "vector-effect",
- {
- "name": "vector-effect",
- "href": "https://svgwg.org/svg2-draft/coords.html#VectorEffectProperty",
- "initial": "none",
- "appliesTo": "graphics elements and ‘use’",
- "inherited": "no",
- "percentages": "N/A",
- "media": "visual",
- "computedValue": "as specified",
- "animationType": "discrete",
- "styleDeclaration": [
- "vector-effect",
- "vectorEffect"
- ],
- "syntax": "none | non-scaling-stroke | non-scaling-size | non-rotation | fixed-position",
- "extended": []
- }
- ],
- [
- "vertical-align",
- {
- "name": "vertical-align",
- "href": "https://drafts.csswg.org/css-inline-3/#propdef-vertical-align",
- "initial": "baseline",
- "appliesTo": "see individual properties",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "vertical-align",
- "verticalAlign"
- ],
- "syntax": "[ first | last] || <'alignment-baseline'> || <'baseline-shift'>",
- "extended": []
- }
- ],
- [
- "view-timeline",
- {
- "name": "view-timeline",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-view-timeline",
- "initial": "see individual properties",
- "appliesTo": "all elements",
- "inherited": "see individual properties",
- "percentages": "see individual properties",
- "computedValue": "see individual properties",
- "animationType": "see individual properties",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "view-timeline",
- "viewTimeline"
- ],
- "syntax": "[ <'view-timeline-name'> [ <'view-timeline-axis'> || <'view-timeline-inset'> ]? ]#",
- "extended": []
- }
- ],
- [
- "view-timeline-axis",
- {
- "name": "view-timeline-axis",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-view-timeline-axis",
- "initial": "block",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "a list of the keywords specified",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "view-timeline-axis",
- "viewTimelineAxis"
- ],
- "syntax": "[ block | inline | x | y ]#",
- "extended": []
- }
- ],
- [
- "view-timeline-inset",
- {
- "name": "view-timeline-inset",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-view-timeline-inset",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "relative to the corresponding dimension of the relevant scrollport",
- "computedValue": "a list consisting of two-value pairs representing the start and end insets each as either the keyword auto or a computed <length-percentage> value",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "view-timeline-inset",
- "viewTimelineInset"
- ],
- "syntax": "[ [ auto | <length-percentage> ]{1,2} ]#",
- "extended": []
- }
- ],
- [
- "view-timeline-name",
- {
- "name": "view-timeline-name",
- "href": "https://drafts.csswg.org/scroll-animations-1/#propdef-view-timeline-name",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "the keyword none or a list of CSS identifiers",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "view-timeline-name",
- "viewTimelineName"
- ],
- "syntax": "[ none | <dashed-ident> ]#",
- "extended": []
- }
- ],
- [
- "view-transition-class",
- {
- "name": "view-transition-class",
- "href": "https://drafts.csswg.org/css-view-transitions-2/#propdef-view-transition-class",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "view-transition-class",
- "viewTransitionClass"
- ],
- "syntax": "none | <custom-ident>+",
- "extended": []
- }
- ],
- [
- "view-transition-group",
- {
- "name": "view-transition-group",
- "href": "https://drafts.csswg.org/css-view-transitions-2/#propdef-view-transition-group",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "view-transition-group",
- "viewTransitionGroup"
- ],
- "syntax": "normal | contain | nearest | <custom-ident>",
- "extended": []
- }
- ],
- [
- "view-transition-name",
- {
- "name": "view-transition-name",
- "href": "https://drafts.csswg.org/css-view-transitions-2/#propdef-view-transition-name",
- "initial": "none",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "view-transition-name",
- "viewTransitionName"
- ],
- "syntax": "none | <custom-ident>",
- "extended": []
- }
- ],
- [
- "visibility",
- {
- "name": "visibility",
- "href": "https://drafts.csswg.org/css-display-4/#propdef-visibility",
- "initial": "visible",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "media": "visual",
- "styleDeclaration": [
- "visibility"
- ],
- "syntax": "visible | hidden | force-hidden | collapse",
- "extended": []
- }
- ],
- [
- "voice-balance",
- {
- "name": "voice-balance",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-balance",
- "initial": "center",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "the specified value resolved to a <number> between -100 and 100 (inclusive)",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-balance",
- "voiceBalance"
- ],
- "syntax": "<number> | left | center | right | leftwards | rightwards",
- "extended": []
- }
- ],
- [
- "voice-duration",
- {
- "name": "voice-duration",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-duration",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-duration",
- "voiceDuration"
- ],
- "syntax": "auto | <time [0s,∞]>",
- "extended": []
- }
- ],
- [
- "voice-family",
- {
- "name": "voice-family",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-family",
- "initial": "implementation-dependent",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-family",
- "voiceFamily"
- ],
- "syntax": "[[<family-name> | <generic-voice>],]* [<family-name> | <generic-voice>] | preserve",
- "extended": []
- }
- ],
- [
- "voice-pitch",
- {
- "name": "voice-pitch",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-pitch",
- "initial": "medium",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "refer to inherited value",
- "computedValue": "one of the predefined pitch keywords if only the keyword is specified by itself, otherwise an absolute frequency calculated by converting the keyword value (if any) to a fixed frequency based on the current voice-family and by applying the specified relative offset (if any)",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-pitch",
- "voicePitch"
- ],
- "syntax": "<frequency [0Hz,∞]> && absolute | [[x-low | low | medium | high | x-high] || [<frequency> | <semitones> | <percentage>]]",
- "extended": []
- }
- ],
- [
- "voice-range",
- {
- "name": "voice-range",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-range",
- "initial": "medium",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "refer to inherited value",
- "computedValue": "one of the predefined pitch keywords if only the keyword is specified by itself, otherwise an absolute frequency calculated by converting the keyword value (if any) to a fixed frequency based on the current voice-family and by applying the specified relative offset (if any)",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-range",
- "voiceRange"
- ],
- "syntax": "<frequency [0Hz,∞]> && absolute | [[x-low | low | medium | high | x-high] || [<frequency> | <semitones> | <percentage>]]",
- "extended": []
- }
- ],
- [
- "voice-rate",
- {
- "name": "voice-rate",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-rate",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "refer to default value",
- "computedValue": "a keyword value, and optionally also a percentage relative to the keyword (if not 100%)",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-rate",
- "voiceRate"
- ],
- "syntax": "[normal | x-slow | slow | medium | fast | x-fast] || <percentage [0,∞]>",
- "extended": []
- }
- ],
- [
- "voice-stress",
- {
- "name": "voice-stress",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-stress",
- "initial": "normal",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-stress",
- "voiceStress"
- ],
- "syntax": "normal | strong | moderate | none | reduced",
- "extended": []
- }
- ],
- [
- "voice-volume",
- {
- "name": "voice-volume",
- "href": "https://drafts.csswg.org/css-speech-1/#propdef-voice-volume",
- "initial": "medium",
- "appliesTo": "all elements",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "silent, or a keyword value and optionally also a decibel offset (if not zero)",
- "canonicalOrder": "per grammar",
- "styleDeclaration": [
- "voice-volume",
- "voiceVolume"
- ],
- "syntax": "silent | [[x-soft | soft | medium | loud | x-loud] || <decibel>]",
- "extended": []
- }
- ],
- [
- "white-space",
- {
- "name": "white-space",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-white-space",
- "initial": "normal",
- "appliesTo": "text",
- "inherited": "see individual properties",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "white-space",
- "whiteSpace"
- ],
- "syntax": "normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'> || <'white-space-trim'>",
- "extended": []
- }
- ],
- [
- "white-space-collapse",
- {
- "name": "white-space-collapse",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-white-space-collapse",
- "initial": "collapse",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "white-space-collapse",
- "whiteSpaceCollapse"
- ],
- "syntax": "collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces",
- "extended": []
- }
- ],
- [
- "white-space-trim",
- {
- "name": "white-space-trim",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-white-space-trim",
- "initial": "none",
- "appliesTo": "inline boxes and block containers",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword(s)",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "white-space-trim",
- "whiteSpaceTrim"
- ],
- "syntax": "none | discard-before || discard-after || discard-inner",
- "extended": []
- }
- ],
- [
- "widows",
- {
- "name": "widows",
- "href": "https://drafts.csswg.org/css-break-4/#propdef-widows",
- "initial": "2",
- "appliesTo": "block containers that establish an inline formatting context",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified integer",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "widows"
- ],
- "syntax": "<integer [1,∞]>",
- "extended": []
- }
- ],
- [
- "width",
- {
- "name": "width",
- "href": "https://drafts.csswg.org/css-sizing-3/#propdef-width",
- "initial": "auto",
- "appliesTo": "all elements except non-replaced inlines",
- "inherited": "no",
- "percentages": "relative to width/height of containing block",
- "computedValue": "as specified, with <length-percentage> values computed",
- "canonicalOrder": "per grammar",
- "animationType": "by computed value type, recursing into fit-content()",
- "logicalPropertyGroup": "size",
- "styleDeclaration": [
- "width"
- ],
- "syntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content(<length-percentage [0,∞]>) | <calc-size()> | <anchor-size()> | stretch | fit-content | contain",
- "extended": [
- "https://drafts.csswg.org/css-anchor-position-1/",
- "https://drafts.csswg.org/css-sizing-4/"
- ]
- }
- ],
- [
- "will-change",
- {
- "name": "will-change",
- "href": "https://drafts.csswg.org/css-will-change-1/#propdef-will-change",
- "initial": "auto",
- "appliesTo": "all elements",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "per grammar",
- "animationType": "not animatable",
- "styleDeclaration": [
- "will-change",
- "willChange"
- ],
- "syntax": "auto | <animateable-feature>#",
- "extended": []
- }
- ],
- [
- "word-break",
- {
- "name": "word-break",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-word-break",
- "initial": "normal",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "word-break",
- "wordBreak"
- ],
- "syntax": "normal | break-all | keep-all | manual | auto-phrase | break-word",
- "extended": []
- }
- ],
- [
- "word-space-transform",
- {
- "name": "word-space-transform",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-word-space-transform",
- "initial": "none",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "word-space-transform",
- "wordSpaceTransform"
- ],
- "syntax": "none | [ space | ideographic-space ] && auto-phrase?",
- "extended": []
- }
- ],
- [
- "word-spacing",
- {
- "name": "word-spacing",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-word-spacing",
- "initial": "normal",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "relative to computed font-size, i.e. 1em",
- "computedValue": "an absolute length and/or a percentage",
- "canonicalOrder": "n/a",
- "animationType": "by computed value type",
- "styleDeclaration": [
- "word-spacing",
- "wordSpacing"
- ],
- "syntax": "normal | <length-percentage>",
- "extended": []
- }
- ],
- [
- "word-wrap",
- {
- "name": "word-wrap",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-word-wrap",
- "initial": "normal",
- "appliesTo": "text",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "n/a",
- "animationType": "discrete",
- "styleDeclaration": [
- "word-wrap",
- "wordWrap"
- ],
- "syntax": "normal | break-word | anywhere",
- "extended": []
- }
- ],
- [
- "wrap-after",
- {
- "name": "wrap-after",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-wrap-after",
- "initial": "auto",
- "appliesTo": "inline-level boxes and flex items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "wrap-after",
- "wrapAfter"
- ],
- "syntax": "auto | avoid | avoid-line | avoid-flex | line | flex",
- "extended": []
- }
- ],
- [
- "wrap-before",
- {
- "name": "wrap-before",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-wrap-before",
- "initial": "auto",
- "appliesTo": "inline-level boxes and flex items",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "wrap-before",
- "wrapBefore"
- ],
- "syntax": "auto | avoid | avoid-line | avoid-flex | line | flex",
- "extended": []
- }
- ],
- [
- "wrap-flow",
- {
- "name": "wrap-flow",
- "href": "https://drafts.csswg.org/css-exclusions-1/#propdef-wrap-flow",
- "initial": "auto",
- "appliesTo": "block-level elements.",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified except for element’s whose float computed value is not none, in which case the computed value is auto.",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "wrap-flow",
- "wrapFlow"
- ],
- "syntax": "auto | both | start | end | minimum | maximum | clear",
- "extended": []
- }
- ],
- [
- "wrap-inside",
- {
- "name": "wrap-inside",
- "href": "https://drafts.csswg.org/css-text-4/#propdef-wrap-inside",
- "initial": "auto",
- "appliesTo": "inline boxes",
- "inherited": "no",
- "percentages": "n/a",
- "computedValue": "specified keyword",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "wrap-inside",
- "wrapInside"
- ],
- "syntax": "auto | avoid",
- "extended": []
- }
- ],
- [
- "wrap-through",
- {
- "name": "wrap-through",
- "href": "https://drafts.csswg.org/css-exclusions-1/#propdef-wrap-through",
- "initial": "wrap",
- "appliesTo": "block-level elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "animationType": "discrete",
- "styleDeclaration": [
- "wrap-through",
- "wrapThrough"
- ],
- "syntax": "wrap | none",
- "extended": []
- }
- ],
- [
- "writing-mode",
- {
- "name": "writing-mode",
- "href": "https://drafts.csswg.org/css-writing-modes-4/#propdef-writing-mode",
- "initial": "horizontal-tb",
- "appliesTo": "All elements except table row groups, table column groups, table rows, table columns, ruby base containers, ruby annotation containers",
- "inherited": "yes",
- "percentages": "n/a",
- "computedValue": "specified value",
- "canonicalOrder": "n/a",
- "animationType": "not animatable",
- "styleDeclaration": [
- "writing-mode",
- "writingMode"
- ],
- "syntax": "horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr",
- "extended": []
- }
- ],
- [
- "z-index",
- {
- "name": "z-index",
- "href": "https://drafts.csswg.org/css2/#propdef-z-index",
- "initial": "auto",
- "appliesTo": "positioned elements",
- "inherited": "no",
- "percentages": "N/A",
- "computedValue": "as specified",
- "canonicalOrder": "per grammar",
- "media": "visual",
- "styleDeclaration": [
- "z-index",
- "zIndex"
- ],
- "syntax": "auto | <integer> | inherit",
- "extended": []
- }
- ]
-]);
diff --git a/vanilla/node_modules/cssstyle/lib/normalize.js b/vanilla/node_modules/cssstyle/lib/normalize.js
deleted file mode 100644
index bc39b70..0000000
--- a/vanilla/node_modules/cssstyle/lib/normalize.js
+++ /dev/null
@@ -1,1574 +0,0 @@
-"use strict";
-
-const propertyDefinitions = require("./generated/propertyDefinitions");
-const { hasVarFunc, isGlobalKeyword, isValidPropertyValue, splitValue } = require("./parsers");
-const background = require("./properties/background");
-const backgroundColor = require("./properties/backgroundColor");
-const backgroundSize = require("./properties/backgroundSize");
-const border = require("./properties/border");
-const borderWidth = require("./properties/borderWidth");
-const borderStyle = require("./properties/borderStyle");
-const borderColor = require("./properties/borderColor");
-const borderTop = require("./properties/borderTop");
-const borderRight = require("./properties/borderRight");
-const borderBottom = require("./properties/borderBottom");
-const borderLeft = require("./properties/borderLeft");
-const flex = require("./properties/flex");
-const font = require("./properties/font");
-const margin = require("./properties/margin");
-const padding = require("./properties/padding");
-
-/* constants */
-const BORDER_IMAGE = "border-image";
-const TOP = "top";
-const RIGHT = "right";
-const BOTTOM = "bottom";
-const LEFT = "left";
-const WIDTH = "width";
-const STYLE = "style";
-const COLOR = "color";
-const NONE = "none";
-const TRBL_INDICES = {
- [TOP]: 0,
- [RIGHT]: 1,
- [BOTTOM]: 2,
- [LEFT]: 3
-};
-
-/* shorthands */
-const shorthandProperties = new Map([
- [background.property, background],
- [
- border.property,
- {
- definition: border.definition,
- parse: border.parse,
- shorthandFor: new Map([
- ...border.shorthandFor,
- ...border.positionShorthandFor,
- [BORDER_IMAGE, null]
- ])
- }
- ],
- [borderWidth.property, borderWidth],
- [borderStyle.property, borderStyle],
- [borderColor.property, borderColor],
- [borderTop.property, borderTop],
- [borderRight.property, borderRight],
- [borderBottom.property, borderBottom],
- [borderLeft.property, borderLeft],
- ["flex", flex],
- ["font", font],
- ["margin", margin],
- ["padding", padding]
-]);
-
-/* borders */
-const borderProperties = new Set([
- border.property,
- BORDER_IMAGE,
- ...border.shorthandFor.keys(),
- ...border.positionShorthandFor.keys(),
- ...borderTop.shorthandFor.keys(),
- ...borderRight.shorthandFor.keys(),
- ...borderBottom.shorthandFor.keys(),
- ...borderLeft.shorthandFor.keys()
-]);
-const borderPositions = new Set([TOP, RIGHT, BOTTOM, LEFT]);
-const borderLines = new Set([WIDTH, STYLE, COLOR]);
-
-/**
- * Ensures consistent object shape.
- *
- * @param {string} property - The property name.
- * @param {string} [value=""] - The property value.
- * @param {string} [priority=""] - The priority.
- * @returns {Object} The property item object.
- */
-const createPropertyItem = (property, value = "", priority = "") => ({
- property,
- value,
- priority
-});
-
-/**
- * Retrieves a property item from the map or creates a default one if it doesn't exist.
- *
- * @param {string} property - The name of the property.
- * @param {Map} properties - The map containing all properties.
- * @returns {Object} The property item containing name, value, and priority.
- */
-const getPropertyItem = (property, properties) => {
- const propertyItem = properties.get(property) ?? createPropertyItem(property);
- return propertyItem;
-};
-
-/**
- * Calculates the value for a specific position (top, right, bottom, left)
- * based on the array of values provided for a shorthand property.
- *
- * @param {string[]} positionValues - The values extracted from the shorthand property.
- * @param {string} position - The specific position (top, right, bottom, left) to retrieve.
- * @returns {string} The calculated value for the position.
- */
-const getPositionValue = (positionValues, position) => {
- const [val1, val2, val3, val4] = positionValues;
- const index = TRBL_INDICES[position] ?? -1;
- // If a specific position (top, right, bottom, left) is requested.
- if (index !== -1) {
- switch (positionValues.length) {
- case 2: {
- // Index 0 (Top) & 2 (Bottom) -> val1
- // Index 1 (Right) & 3 (Left) -> val2
- return index % 2 === 0 ? val1 : val2;
- }
- case 3: {
- // Index 0 (Top) -> val1
- // Index 1 (Right) & 3 (Left) -> val2
- // Index 2 (Bottom) -> val3
- if (index === 2) {
- return val3;
- }
- return index % 2 === 0 ? val1 : val2;
- }
- case 4: {
- return positionValues[index];
- }
- case 1:
- default: {
- return val1;
- }
- }
- }
- // Fallback logic for when no specific position is requested.
- switch (positionValues.length) {
- case 2: {
- if (val1 === val2) {
- return val1;
- }
- return `${val1} ${val2}`;
- }
- case 3: {
- if (val1 === val3) {
- if (val1 === val2) {
- return val1;
- }
- return `${val1} ${val2}`;
- }
- return `${val1} ${val2} ${val3}`;
- }
- case 4: {
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return val1;
- }
- return `${val1} ${val2}`;
- }
- return `${val1} ${val2} ${val3}`;
- }
- return `${val1} ${val2} ${val3} ${val4}`;
- }
- case 1:
- default: {
- return val1;
- }
- }
-};
-
-/**
- * Replaces the background shorthand property based on individual longhand values.
- *
- * @param {string} property - The specific background longhand property being updated.
- * @param {Map} properties - The map of all properties.
- * @param {Object} opt - Parsing options including global object and configurations.
- * @returns {string} The constructed background shorthand string.
- */
-const replaceBackgroundShorthand = (property, properties, opt) => {
- const { value: propertyValue } = properties.get(property);
- const parsedValue = background.shorthandFor.get(property).parse(propertyValue, opt);
- const values = splitValue(parsedValue, {
- delimiter: ","
- });
- const { value: shorthandValue } = properties.get(background.property);
- const bgValues = background.parse(shorthandValue, opt);
- const bgLength = bgValues.length;
- if (property === backgroundColor.property) {
- bgValues[bgLength - 1][property] = parsedValue[0];
- } else {
- for (let i = 0; i < bgLength; i++) {
- bgValues[i][property] = values[i];
- }
- }
- const backgrounds = [];
- for (const bgValue of bgValues) {
- const bg = [];
- for (const [longhand, value] of Object.entries(bgValue)) {
- if (!value || value === background.initialValues.get(longhand)) {
- continue;
- }
- if (longhand === backgroundSize.property) {
- bg.push(`/ ${value}`);
- } else {
- bg.push(value);
- }
- }
- backgrounds.push(bg.join(" "));
- }
- return backgrounds.join(", ");
-};
-
-/**
- * Checks if a property value matches the value within a border shorthand.
- *
- * @param {string} property - The property to check.
- * @param {string} value - The value to compare.
- * @param {string} shorthandValue - The shorthand string to parse and compare against.
- * @param {Object} [opt={}] - Parsing options.
- * @returns {boolean} True if the value matches the shorthand's value.
- */
-const matchesBorderShorthandValue = (property, value, shorthandValue, opt = {}) => {
- const { globalObject, options } = opt;
- const obj = border.parse(shorthandValue, {
- globalObject,
- options
- });
- if (Object.hasOwn(obj, property)) {
- return value === obj[property];
- }
- return value === border.initialValues.get(property);
-};
-
-/**
- * Replaces or updates a value within a border shorthand string.
- *
- * @param {string} value - The new value to insert.
- * @param {string} shorthandValue - The existing shorthand string.
- * @param {Object} [opt={}] - Parsing options.
- * @returns {string} The updated border shorthand string.
- */
-const replaceBorderShorthandValue = (value, shorthandValue, opt = {}) => {
- const { globalObject, options } = opt;
- const borderFirstInitialKey = border.initialValues.keys().next().value;
- const borderFirstInitialValue = border.initialValues.get(borderFirstInitialKey);
- const parseOpt = {
- globalObject,
- options
- };
- const valueObj = border.parse(value, parseOpt);
- const shorthandObj = shorthandValue
- ? border.parse(shorthandValue, parseOpt)
- : {
- [borderFirstInitialKey]: borderFirstInitialValue
- };
- const keys = border.shorthandFor.keys();
- for (const key of keys) {
- const initialValue = border.initialValues.get(key);
- let parsedValue = initialValue;
- if (Object.hasOwn(valueObj, key)) {
- parsedValue = valueObj[key];
- }
- if (parsedValue === initialValue) {
- if (key === borderFirstInitialKey) {
- if (!Object.hasOwn(shorthandObj, key)) {
- shorthandObj[key] = parsedValue;
- }
- } else {
- delete shorthandObj[key];
- }
- } else {
- shorthandObj[key] = parsedValue;
- if (
- shorthandObj[borderFirstInitialKey] &&
- shorthandObj[borderFirstInitialKey] === borderFirstInitialValue
- ) {
- delete shorthandObj[borderFirstInitialKey];
- }
- }
- }
- return Object.values(shorthandObj).join(" ");
-};
-
-/**
- * Replaces a value at a specific position (top, right, bottom, left) within a position shorthand.
- *
- * @param {string} value - The new value to set.
- * @param {string[]} positionValues - The array of existing position values.
- * @param {string} position - The position to update.
- * @returns {string} The updated shorthand string.
- */
-const replacePositionValue = (value, positionValues, position) => {
- const index = TRBL_INDICES[position] ?? -1;
- let currentValues = positionValues;
- if (index !== -1) {
- // Loop for reducing array length (instead of recursion)
- while (true) {
- const [val1, val2, val3, val4] = currentValues;
- switch (currentValues.length) {
- case 2: {
- if (val1 === val2) {
- currentValues = [val1];
- continue;
- }
- switch (index) {
- // Top
- case 0: {
- if (val1 === value) {
- return currentValues.join(" ");
- }
- return `${value} ${val2} ${val1}`;
- }
- // Right
- case 1: {
- if (val2 === value) {
- return currentValues.join(" ");
- }
- return `${val1} ${value} ${val1} ${val2}`;
- }
- // Bottom
- case 2: {
- if (val1 === value) {
- return currentValues.join(" ");
- }
- return `${val1} ${val2} ${value}`;
- }
- // Left
- case 3:
- default: {
- if (val2 === value) {
- return currentValues.join(" ");
- }
- return `${val1} ${val2} ${val1} ${value}`;
- }
- }
- }
- case 3: {
- if (val1 === val3) {
- currentValues = [val1, val2];
- continue;
- }
- switch (index) {
- // Top
- case 0: {
- if (val1 === value) {
- return currentValues.join(" ");
- } else if (val3 === value) {
- return `${value} ${val2}`;
- }
- return `${value} ${val2} ${val3}`;
- }
- // Right
- case 1: {
- if (val2 === value) {
- return currentValues.join(" ");
- }
- return `${val1} ${value} ${val3} ${val2}`;
- }
- // Bottom
- case 2: {
- if (val3 === value) {
- return currentValues.join(" ");
- } else if (val1 === value) {
- return `${val1} ${val2}`;
- }
- return `${val1} ${val2} ${value}`;
- }
- // Left
- case 3:
- default: {
- if (val2 === value) {
- return currentValues.join(" ");
- }
- return `${val1} ${val2} ${val3} ${value}`;
- }
- }
- }
- case 4: {
- if (val2 === val4) {
- currentValues = [val1, val2, val3];
- continue;
- }
- switch (index) {
- // Top
- case 0: {
- if (val1 === value) {
- return currentValues.join(" ");
- }
- return `${value} ${val2} ${val3} ${val4}`;
- }
- // Right
- case 1: {
- if (val2 === value) {
- return currentValues.join(" ");
- } else if (val4 === value) {
- return `${val1} ${value} ${val3}`;
- }
- return `${val1} ${value} ${val3} ${val4}`;
- }
- // Bottom
- case 2: {
- if (val3 === value) {
- return currentValues.join(" ");
- }
- return `${val1} ${val2} ${value} ${val4}`;
- }
- // Left
- case 3:
- default: {
- if (val4 === value) {
- return currentValues.join(" ");
- } else if (val2 === value) {
- return `${val1} ${val2} ${val3}`;
- }
- return `${val1} ${val2} ${val3} ${value}`;
- }
- }
- }
- case 1:
- default: {
- const [val] = currentValues;
- if (val === value) {
- return currentValues.join(" ");
- }
- switch (index) {
- // Top
- case 0: {
- return `${value} ${val} ${val}`;
- }
- // Right
- case 1: {
- return `${val} ${value} ${val} ${val}`;
- }
- // Bottom
- case 2: {
- return `${val} ${val} ${value}`;
- }
- // Left
- case 3:
- default: {
- return `${val} ${val} ${val} ${value}`;
- }
- }
- }
- }
- }
- }
- // Fallback logic for when no specific position is requested.
- const [val1, val2, val3, val4] = currentValues;
- switch (currentValues.length) {
- case 2: {
- if (val1 === val2) {
- return val1;
- }
- return `${val1} ${val2}`;
- }
- case 3: {
- if (val1 === val3) {
- if (val1 === val2) {
- return val1;
- }
- return `${val1} ${val2}`;
- }
- return `${val1} ${val2} ${val3}`;
- }
- case 4: {
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return val1;
- }
- return `${val1} ${val2}`;
- }
- return `${val1} ${val2} ${val3}`;
- }
- return `${val1} ${val2} ${val3} ${val4}`;
- }
- case 1:
- default: {
- return val1;
- }
- }
-};
-
-/**
- * Handles border property preparation when the value is a string.
- *
- * @param {Object} params - The parameters object.
- * @param {string} params.property - The property name.
- * @param {string} params.value - The property value.
- * @param {string} params.priority - The property priority.
- * @param {Map} params.properties - The map of properties.
- * @param {Object} params.parts - The split property name parts.
- * @param {Object} params.opt - Parsing options.
- * @param {Map} params.borderItems - The map to store processed border items.
- */
-const prepareBorderStringValue = ({
- property,
- value,
- priority,
- properties,
- parts,
- opt,
- borderItems
-}) => {
- const { prop1, prop2, prop3 } = parts;
- const { globalObject, options } = opt;
- const parseOpt = {
- globalObject,
- options
- };
- const shorthandItem = getPropertyItem(border.property, properties);
- const imageItem = getPropertyItem(BORDER_IMAGE, properties);
- // Handle longhand properties.
- if (prop3) {
- const lineProperty = `${prop1}-${prop3}`;
- const lineItem = getPropertyItem(lineProperty, properties);
- const positionProperty = `${prop1}-${prop2}`;
- const positionItem = getPropertyItem(positionProperty, properties);
- const longhandProperty = `${prop1}-${prop2}-${prop3}`;
- const longhandItem = getPropertyItem(longhandProperty, properties);
- longhandItem.value = value;
- longhandItem.priority = priority;
- const propertyValue = hasVarFunc(value) ? "" : value;
- if (propertyValue === "") {
- shorthandItem.value = "";
- lineItem.value = "";
- positionItem.value = "";
- } else if (isGlobalKeyword(propertyValue)) {
- if (shorthandItem.value !== propertyValue) {
- shorthandItem.value = "";
- }
- if (lineItem.value !== propertyValue) {
- lineItem.value = "";
- }
- if (positionItem.value !== propertyValue) {
- positionItem.value = "";
- }
- } else {
- if (
- shorthandItem.value &&
- !matchesBorderShorthandValue(lineProperty, propertyValue, shorthandItem.value, parseOpt)
- ) {
- shorthandItem.value = "";
- }
- if (lineItem.value) {
- lineItem.value = replacePositionValue(propertyValue, splitValue(lineItem.value), prop2);
- }
- if (
- positionItem.value &&
- !matchesBorderShorthandValue(lineProperty, propertyValue, positionItem.value, parseOpt)
- ) {
- positionItem.value = "";
- }
- }
- borderItems.set(border.property, shorthandItem);
- borderItems.set(BORDER_IMAGE, imageItem);
- borderItems.set(lineProperty, lineItem);
- borderItems.set(positionProperty, positionItem);
- borderItems.set(longhandProperty, longhandItem);
- // Handle side-specific border shorthands (border-top, border-right, border-bottom, border-left).
- } else if (prop2 && borderPositions.has(prop2)) {
- const lineWidthProperty = `${prop1}-width`;
- const lineWidthItem = getPropertyItem(lineWidthProperty, properties);
- const lineStyleProperty = `${prop1}-style`;
- const lineStyleItem = getPropertyItem(lineStyleProperty, properties);
- const lineColorProperty = `${prop1}-color`;
- const lineColorItem = getPropertyItem(lineColorProperty, properties);
- const positionProperty = `${prop1}-${prop2}`;
- const positionItem = getPropertyItem(positionProperty, properties);
- positionItem.value = value;
- positionItem.priority = priority;
- const propertyValue = hasVarFunc(value) ? "" : value;
- if (propertyValue === "") {
- shorthandItem.value = "";
- lineWidthItem.value = "";
- lineStyleItem.value = "";
- lineColorItem.value = "";
- } else if (isGlobalKeyword(propertyValue)) {
- if (shorthandItem.value !== propertyValue) {
- shorthandItem.value = "";
- }
- if (lineWidthItem.value !== propertyValue) {
- lineWidthItem.value = "";
- }
- if (lineStyleItem.value !== propertyValue) {
- lineStyleItem.value = "";
- }
- if (lineColorItem.value !== propertyValue) {
- lineColorItem.value = "";
- }
- } else {
- if (
- shorthandItem.value &&
- !matchesBorderShorthandValue(property, propertyValue, shorthandItem.value, parseOpt)
- ) {
- shorthandItem.value = "";
- }
- if (
- lineWidthItem.value &&
- isValidPropertyValue(lineWidthProperty, propertyValue, globalObject)
- ) {
- lineWidthItem.value = propertyValue;
- }
- if (
- lineStyleItem.value &&
- isValidPropertyValue(lineStyleProperty, propertyValue, globalObject)
- ) {
- lineStyleItem.value = propertyValue;
- }
- if (
- lineColorItem.value &&
- isValidPropertyValue(lineColorProperty, propertyValue, globalObject)
- ) {
- lineColorItem.value = propertyValue;
- }
- }
- for (const line of borderLines) {
- const longhandProperty = `${prop1}-${prop2}-${line}`;
- const longhandItem = getPropertyItem(longhandProperty, properties);
- longhandItem.value = propertyValue;
- longhandItem.priority = priority;
- borderItems.set(longhandProperty, longhandItem);
- }
- borderItems.set(border.property, shorthandItem);
- borderItems.set(BORDER_IMAGE, imageItem);
- borderItems.set(lineWidthProperty, lineWidthItem);
- borderItems.set(lineStyleProperty, lineStyleItem);
- borderItems.set(lineColorProperty, lineColorItem);
- borderItems.set(positionProperty, positionItem);
- // Handle property-specific border shorthands (border-width, border-style, border-color).
- } else if (prop2 && borderLines.has(prop2)) {
- const lineProperty = `${prop1}-${prop2}`;
- const lineItem = getPropertyItem(lineProperty, properties);
- lineItem.value = value;
- lineItem.priority = priority;
- const propertyValue = hasVarFunc(value) ? "" : value;
- if (propertyValue === "") {
- shorthandItem.value = "";
- } else if (isGlobalKeyword(propertyValue)) {
- if (shorthandItem.value !== propertyValue) {
- shorthandItem.value = "";
- }
- }
- for (const position of borderPositions) {
- const positionProperty = `${prop1}-${position}`;
- const positionItem = getPropertyItem(positionProperty, properties);
- const longhandProperty = `${prop1}-${position}-${prop2}`;
- const longhandItem = getPropertyItem(longhandProperty, properties);
- if (propertyValue) {
- positionItem.value = replaceBorderShorthandValue(
- propertyValue,
- positionItem.value,
- parseOpt
- );
- } else {
- positionItem.value = "";
- }
- longhandItem.value = propertyValue;
- longhandItem.priority = priority;
- borderItems.set(positionProperty, positionItem);
- borderItems.set(longhandProperty, longhandItem);
- }
- borderItems.set(border.property, shorthandItem);
- borderItems.set(BORDER_IMAGE, imageItem);
- borderItems.set(lineProperty, lineItem);
- // Handle border shorthand.
- } else {
- const propertyValue = hasVarFunc(value) ? "" : value;
- imageItem.value = propertyValue ? NONE : "";
- for (const line of borderLines) {
- const lineProperty = `${prop1}-${line}`;
- const lineItem = getPropertyItem(lineProperty, properties);
- lineItem.value = propertyValue;
- lineItem.priority = priority;
- borderItems.set(lineProperty, lineItem);
- }
- for (const position of borderPositions) {
- const positionProperty = `${prop1}-${position}`;
- const positionItem = getPropertyItem(positionProperty, properties);
- positionItem.value = propertyValue;
- positionItem.priority = priority;
- borderItems.set(positionProperty, positionItem);
- for (const line of borderLines) {
- const longhandProperty = `${positionProperty}-${line}`;
- const longhandItem = getPropertyItem(longhandProperty, properties);
- longhandItem.value = propertyValue;
- longhandItem.priority = priority;
- borderItems.set(longhandProperty, longhandItem);
- }
- }
- borderItems.set(property, shorthandItem);
- borderItems.set(BORDER_IMAGE, imageItem);
- }
-};
-
-/**
- * Handles border property preparation when the value is an array.
- *
- * @param {Object} params - The parameters object.
- * @param {Array} params.value - The property value.
- * @param {string} params.priority - The property priority.
- * @param {Map} params.properties - The map of properties.
- * @param {Object} params.parts - The split property name parts.
- * @param {Object} params.opt - Parsing options.
- * @param {Map} params.borderItems - The map to store processed border items.
- */
-const prepareBorderArrayValue = ({ value, priority, properties, parts, opt, borderItems }) => {
- const { prop1, prop2 } = parts;
- const { globalObject, options } = opt;
- const parseOpt = {
- globalObject,
- options
- };
- if (!value.length || !borderLines.has(prop2)) {
- return;
- }
- const shorthandItem = getPropertyItem(border.property, properties);
- const imageItem = getPropertyItem(BORDER_IMAGE, properties);
- const lineProperty = `${prop1}-${prop2}`;
- const lineItem = getPropertyItem(lineProperty, properties);
- if (value.length === 1) {
- const [propertyValue] = value;
- if (shorthandItem.value) {
- if (hasVarFunc(shorthandItem.value)) {
- shorthandItem.value = "";
- } else if (propertyValue) {
- shorthandItem.value = replaceBorderShorthandValue(
- propertyValue,
- shorthandItem.value,
- parseOpt
- );
- }
- }
- } else {
- shorthandItem.value = "";
- }
- lineItem.value = value.join(" ");
- lineItem.priority = priority;
- const positionValues = {};
- const [val1, val2, val3, val4] = value;
- switch (value.length) {
- case 2: {
- positionValues.top = val1;
- positionValues.right = val2;
- positionValues.bottom = val1;
- positionValues.left = val2;
- break;
- }
- case 3: {
- positionValues.top = val1;
- positionValues.right = val2;
- positionValues.bottom = val3;
- positionValues.left = val2;
- break;
- }
- case 4: {
- positionValues.top = val1;
- positionValues.right = val2;
- positionValues.bottom = val3;
- positionValues.left = val4;
- break;
- }
- case 1:
- default: {
- positionValues.top = val1;
- positionValues.right = val1;
- positionValues.bottom = val1;
- positionValues.left = val1;
- }
- }
- for (const position of borderPositions) {
- const positionProperty = `${prop1}-${position}`;
- const positionItem = getPropertyItem(positionProperty, properties);
- if (positionItem.value && positionValues[position]) {
- positionItem.value = replaceBorderShorthandValue(
- positionValues[position],
- positionItem.value,
- parseOpt
- );
- }
- const longhandProperty = `${positionProperty}-${prop2}`;
- const longhandItem = getPropertyItem(longhandProperty, properties);
- longhandItem.value = positionValues[position];
- longhandItem.priority = priority;
- borderItems.set(positionProperty, positionItem);
- borderItems.set(longhandProperty, longhandItem);
- }
- borderItems.set(border.property, shorthandItem);
- borderItems.set(BORDER_IMAGE, imageItem);
- borderItems.set(lineProperty, lineItem);
-};
-
-/**
- * Handles border property preparation when the value is an object.
- *
- * @param {Object} params - The parameters object.
- * @param {string} params.property - The property name.
- * @param {Object} params.value - The property value.
- * @param {string} params.priority - The property priority.
- * @param {Map} params.properties - The map of properties.
- * @param {Object} params.parts - The split property name parts.
- * @param {Object} params.opt - Parsing options.
- * @param {Map} params.borderItems - The map to store processed border items.
- */
-const prepareBorderObjectValue = ({
- property,
- value,
- priority,
- properties,
- parts,
- opt,
- borderItems
-}) => {
- const { prop1, prop2 } = parts;
- const { globalObject, options } = opt;
- const parseOpt = {
- globalObject,
- options
- };
- const imageItem = getPropertyItem(BORDER_IMAGE, properties);
- // Handle position shorthands.
- if (prop2) {
- if (!borderPositions.has(prop2)) {
- return;
- }
- const shorthandItem = getPropertyItem(border.property, properties);
- const lineWidthProperty = `${prop1}-width`;
- const lineWidthItem = getPropertyItem(lineWidthProperty, properties);
- const lineStyleProperty = `${prop1}-style`;
- const lineStyleItem = getPropertyItem(lineStyleProperty, properties);
- const lineColorProperty = `${prop1}-color`;
- const lineColorItem = getPropertyItem(lineColorProperty, properties);
- const positionProperty = `${prop1}-${prop2}`;
- const positionItem = getPropertyItem(positionProperty, properties);
- if (shorthandItem.value) {
- for (const positionValue of Object.values(value)) {
- if (!matchesBorderShorthandValue(property, positionValue, shorthandItem.value, parseOpt)) {
- shorthandItem.value = "";
- break;
- }
- }
- }
- positionItem.value = Object.values(value).join(" ");
- positionItem.priority = priority;
- for (const line of borderLines) {
- const longhandProperty = `${prop1}-${prop2}-${line}`;
- const longhandItem = getPropertyItem(longhandProperty, properties);
- const itemValue = Object.hasOwn(value, longhandProperty)
- ? value[longhandProperty]
- : border.initialValues.get(`${prop1}-${line}`);
- if (line === WIDTH && lineWidthItem.value) {
- lineWidthItem.value = replacePositionValue(
- itemValue,
- splitValue(lineWidthItem.value),
- prop2
- );
- } else if (line === STYLE && lineStyleItem.value) {
- lineStyleItem.value = replacePositionValue(
- itemValue,
- splitValue(lineStyleItem.value),
- prop2
- );
- } else if (line === COLOR && lineColorItem.value) {
- lineColorItem.value = replacePositionValue(
- itemValue,
- splitValue(lineColorItem.value),
- prop2
- );
- }
- longhandItem.value = itemValue;
- longhandItem.priority = priority;
- borderItems.set(longhandProperty, longhandItem);
- }
- borderItems.set(border.property, shorthandItem);
- borderItems.set(BORDER_IMAGE, imageItem);
- borderItems.set(lineWidthProperty, lineWidthItem);
- borderItems.set(lineStyleProperty, lineStyleItem);
- borderItems.set(lineColorProperty, lineColorItem);
- borderItems.set(positionProperty, positionItem);
- // Handle border shorthand.
- } else {
- const shorthandItem = getPropertyItem(prop1, properties);
- const lineWidthProperty = `${prop1}-width`;
- const lineWidthItem = getPropertyItem(lineWidthProperty, properties);
- const lineStyleProperty = `${prop1}-style`;
- const lineStyleItem = getPropertyItem(lineStyleProperty, properties);
- const lineColorProperty = `${prop1}-color`;
- const lineColorItem = getPropertyItem(lineColorProperty, properties);
- const propertyValue = Object.values(value).join(" ");
- shorthandItem.value = propertyValue;
- shorthandItem.priority = priority;
- imageItem.value = propertyValue ? NONE : "";
- if (Object.hasOwn(value, lineWidthProperty)) {
- lineWidthItem.value = value[lineWidthProperty];
- } else {
- lineWidthItem.value = border.initialValues.get(lineWidthProperty);
- }
- lineWidthItem.priority = priority;
- if (Object.hasOwn(value, lineStyleProperty)) {
- lineStyleItem.value = value[lineStyleProperty];
- } else {
- lineStyleItem.value = border.initialValues.get(lineStyleProperty);
- }
- lineStyleItem.priority = priority;
- if (Object.hasOwn(value, lineColorProperty)) {
- lineColorItem.value = value[lineColorProperty];
- } else {
- lineColorItem.value = border.initialValues.get(lineColorProperty);
- }
- lineColorItem.priority = priority;
- for (const position of borderPositions) {
- const positionProperty = `${prop1}-${position}`;
- const positionItem = getPropertyItem(positionProperty, properties);
- positionItem.value = propertyValue;
- positionItem.priority = priority;
- for (const line of borderLines) {
- const longhandProperty = `${positionProperty}-${line}`;
- const longhandItem = getPropertyItem(longhandProperty, properties);
- const lineProperty = `${prop1}-${line}`;
- if (Object.hasOwn(value, lineProperty)) {
- longhandItem.value = value[lineProperty];
- } else {
- longhandItem.value = border.initialValues.get(lineProperty);
- }
- longhandItem.priority = priority;
- borderItems.set(longhandProperty, longhandItem);
- }
- borderItems.set(positionProperty, positionItem);
- }
- borderItems.set(property, shorthandItem);
- borderItems.set(BORDER_IMAGE, imageItem);
- borderItems.set(lineWidthProperty, lineWidthItem);
- borderItems.set(lineStyleProperty, lineStyleItem);
- borderItems.set(lineColorProperty, lineColorItem);
- }
-};
-
-/**
- * Prepares border properties by splitting shorthands and handling updates.
- *
- * @param {string} property - The border property name.
- * @param {string|Array|Object} value - The value of the property.
- * @param {string} priority - The priority of the property (e.g., "important").
- * @param {Map} properties - The map of all properties.
- * @param {Object} [opt={}] - Parsing options.
- * @returns {Map|undefined} A map of expanded or updated border properties.
- */
-const prepareBorderProperties = (property, value, priority, properties, opt = {}) => {
- if (typeof property !== "string" || value === null) {
- return;
- }
- if (!property.startsWith(border.property)) {
- return;
- }
- let prop2, prop3;
- if (property.length > border.property.length) {
- // Check if next char is '-'
- if (property.charCodeAt(border.property.length) !== 45) {
- return;
- }
- // property is like "border-..."
- const remainder = property.substring(border.property.length + 1);
- const hyphenIndex = remainder.indexOf("-");
- if (hyphenIndex !== -1) {
- prop2 = remainder.substring(0, hyphenIndex);
- prop3 = remainder.substring(hyphenIndex + 1);
- } else {
- prop2 = remainder;
- }
- }
- if (
- (borderPositions.has(prop2) && prop3 && !borderLines.has(prop3)) ||
- (borderLines.has(prop2) && prop3)
- ) {
- return;
- }
- const parts = {
- prop1: border.property,
- prop2,
- prop3
- };
- const borderItems = new Map();
- if (typeof value === "string") {
- prepareBorderStringValue({
- property,
- value,
- priority,
- properties,
- parts,
- opt,
- borderItems
- });
- } else if (Array.isArray(value)) {
- prepareBorderArrayValue({
- value,
- priority,
- properties,
- parts,
- opt,
- borderItems
- });
- } else if (value && typeof value === "object") {
- prepareBorderObjectValue({
- property,
- value,
- priority,
- properties,
- parts,
- opt,
- borderItems
- });
- }
- if (!borderItems.has(border.property)) {
- return;
- }
- const borderProps = new Map([[border.property, borderItems.get(border.property)]]);
- for (const line of borderLines) {
- const lineProperty = `${border.property}-${line}`;
- const lineItem = borderItems.get(lineProperty) ?? getPropertyItem(lineProperty, properties);
- borderProps.set(lineProperty, lineItem);
- }
- for (const position of borderPositions) {
- const positionProperty = `${border.property}-${position}`;
- const positionItem =
- borderItems.get(positionProperty) ?? getPropertyItem(positionProperty, properties);
- borderProps.set(positionProperty, positionItem);
- for (const line of borderLines) {
- const longhandProperty = `${border.property}-${position}-${line}`;
- const longhandItem =
- borderItems.get(longhandProperty) ?? getPropertyItem(longhandProperty, properties);
- borderProps.set(longhandProperty, longhandItem);
- }
- }
- const borderImageItem = borderItems.get(BORDER_IMAGE) ?? createPropertyItem(BORDER_IMAGE);
- borderProps.set(BORDER_IMAGE, borderImageItem);
- return borderProps;
-};
-
-/**
- * Generates a border line shorthand property if all line components are present.
- *
- * @param {Map} items - The map of collected property items.
- * @param {string} property - The shorthand property name to generate.
- * @param {string} [priority=""] - The priority of the property.
- * @returns {Array} A key-value pair for the generated property.
- */
-const generateBorderLineShorthand = (items, property, priority = "") => {
- const values = [];
- for (const [, item] of items) {
- const { value: itemValue } = item;
- values.push(itemValue);
- }
- const value = getPositionValue(values);
- return [property, createPropertyItem(property, value, priority)];
-};
-
-/**
- * Generates a border position shorthand property if all position components are present.
- *
- * @param {Map} items - The map of collected property items.
- * @param {string} property - The shorthand property name to generate.
- * @param {string} [priority=""] - The priority of the property.
- * @returns {Array} A key-value pair for the generated property.
- */
-const generateBorderPositionShorthand = (items, property, priority = "") => {
- const values = [];
- for (const [, item] of items) {
- const { value: itemValue } = item;
- values.push(itemValue);
- }
- const value = values.join(" ");
- return [property, createPropertyItem(property, value, priority)];
-};
-
-/**
- * Generates a border shorthand property if all components match.
- *
- * @param {Array} items - The collection of property values.
- * @param {string} property - The shorthand property name to generate.
- * @param {string} [priority=""] - The priority of the property.
- * @returns {Array|undefined} A key-value pair for the generated property or undefined.
- */
-const generateBorderShorthand = (items, property, priority = "") => {
- const values = new Set(items);
- if (values.size === 1) {
- const value = values.keys().next().value;
- return [property, createPropertyItem(property, value, priority)];
- }
-};
-
-const borderCollectionConfig = {
- [WIDTH]: {
- shorthand: borderWidth.property,
- generator: generateBorderLineShorthand
- },
- [STYLE]: {
- shorthand: borderStyle.property,
- generator: generateBorderLineShorthand
- },
- [COLOR]: {
- shorthand: borderColor.property,
- generator: generateBorderLineShorthand
- },
- [TOP]: {
- shorthand: borderTop.property,
- generator: generateBorderPositionShorthand
- },
- [RIGHT]: {
- shorthand: borderRight.property,
- generator: generateBorderPositionShorthand
- },
- [BOTTOM]: {
- shorthand: borderBottom.property,
- generator: generateBorderPositionShorthand
- },
- [LEFT]: {
- shorthand: borderLeft.property,
- generator: generateBorderPositionShorthand
- }
-};
-
-/**
- * Processes and consolidates border-related longhands into shorthands where possible.
- *
- * @param {Map} properties - The map of current properties.
- * @returns {Map} The updated map with consolidated border properties.
- */
-const prepareBorderShorthands = (properties) => {
- const borderCollections = {};
- for (const key of Object.keys(borderCollectionConfig)) {
- borderCollections[key] = {
- ...borderCollectionConfig[key],
- items: new Map(),
- priorityItems: new Map()
- };
- }
- for (const [property, item] of properties) {
- const { priority, value } = item;
- let positionPart, linePart;
- // We can assume property starts with "border-"
- const firstHyphen = property.indexOf("-");
- if (firstHyphen !== -1) {
- const remainder = property.substring(firstHyphen + 1);
- const secondHyphen = remainder.indexOf("-");
- if (secondHyphen !== -1) {
- positionPart = remainder.substring(0, secondHyphen);
- linePart = remainder.substring(secondHyphen + 1);
- } else {
- positionPart = remainder;
- linePart = undefined;
- }
- }
- if (linePart && borderCollections[linePart]) {
- const collection = borderCollections[linePart];
- if (priority) {
- collection.priorityItems.set(property, { property, value, priority });
- } else {
- collection.items.set(property, { property, value, priority });
- }
- }
- if (positionPart && borderCollections[positionPart]) {
- const collection = borderCollections[positionPart];
- if (priority) {
- collection.priorityItems.set(property, { property, value, priority });
- } else {
- collection.items.set(property, { property, value, priority });
- }
- }
- }
- const shorthandItems = [];
- const shorthandPriorityItems = [];
- for (const [key, collection] of Object.entries(borderCollections)) {
- const { shorthand, generator, items, priorityItems } = collection;
- const requiredSize = borderLines.has(key) ? 4 : 3;
- if (items.size === requiredSize) {
- const [property, item] = generator(items, shorthand) ?? [];
- if (property && item) {
- properties.set(property, item);
- if (borderPositions.has(key) && properties.has(BORDER_IMAGE)) {
- const { value: imageValue } = properties.get(BORDER_IMAGE);
- if (imageValue === NONE) {
- shorthandItems.push(item.value);
- }
- }
- }
- } else if (priorityItems.size === requiredSize) {
- const [property, item] = generator(priorityItems, shorthand, "important") ?? [];
- if (property && item) {
- properties.set(property, item);
- if (borderPositions.has(key) && properties.has(BORDER_IMAGE)) {
- const { value: imageValue } = properties.get(BORDER_IMAGE);
- if (imageValue === NONE) {
- shorthandPriorityItems.push(item.value);
- }
- }
- }
- }
- }
- const mixedPriorities = shorthandItems.length && shorthandPriorityItems.length;
- const imageItem = createPropertyItem(BORDER_IMAGE, NONE);
- if (shorthandItems.length === 4) {
- const [property, item] = generateBorderShorthand(shorthandItems, border.property) ?? [];
- if (property && item) {
- properties.set(property, item);
- properties.delete(BORDER_IMAGE);
- properties.set(BORDER_IMAGE, imageItem);
- }
- } else if (shorthandPriorityItems.length === 4) {
- const [property, item] =
- generateBorderShorthand(shorthandPriorityItems, border.property, "important") ?? [];
- if (property && item) {
- properties.set(property, item);
- properties.delete(BORDER_IMAGE);
- properties.set(BORDER_IMAGE, imageItem);
- }
- } else if (properties.has(BORDER_IMAGE)) {
- const { value: imageValue } = properties.get(BORDER_IMAGE);
- if (imageValue === NONE) {
- if (mixedPriorities) {
- properties.delete(BORDER_IMAGE);
- properties.set(BORDER_IMAGE, imageItem);
- } else {
- properties.delete(BORDER_IMAGE);
- }
- }
- }
- if (mixedPriorities) {
- const items = [];
- const priorityItems = [];
- for (const item of properties) {
- const [, { priority }] = item;
- if (priority) {
- priorityItems.push(item);
- } else {
- items.push(item);
- }
- }
- const firstPropertyKey = properties.keys().next().value;
- const { priority: firstPropertyPriority } = properties.get(firstPropertyKey);
- if (firstPropertyPriority) {
- return new Map([...priorityItems, ...items]);
- }
- return new Map([...items, ...priorityItems]);
- }
- if (properties.has(BORDER_IMAGE)) {
- properties.delete(BORDER_IMAGE);
- properties.set(BORDER_IMAGE, imageItem);
- }
- return properties;
-};
-
-/**
- * Processes shorthand properties from the shorthands map.
- *
- * @param {Map} shorthands - The map containing shorthand property groups.
- * @returns {Map} A map of processed shorthand properties.
- */
-const processShorthandProperties = (shorthands) => {
- const shorthandItems = new Map();
- for (const [property, item] of shorthands) {
- const shorthandItem = shorthandProperties.get(property);
- if (item.size === shorthandItem.shorthandFor.size && shorthandItem.position) {
- const positionValues = [];
- let priority = "";
- for (const { value: longhandValue, priority: longhandPriority } of item.values()) {
- positionValues.push(longhandValue);
- if (longhandPriority) {
- priority = longhandPriority;
- }
- }
- const value = getPositionValue(positionValues, shorthandItem.position);
- shorthandItems.set(property, createPropertyItem(property, value, priority));
- }
- }
- return shorthandItems;
-};
-
-/**
- * Updates the longhand properties map with a new property item.
- * If a property with normal priority already exists, it will be overwritten by the new item.
- * If the existing property has "important" priority, it will not be overwritten.
- *
- * @param {string} property - The CSS property name.
- * @param {Object} item - The property item object containing value and priority.
- * @param {Map} longhandProperties - The map of longhand properties to update.
- */
-const updateLonghandProperties = (property, item, longhandProperties) => {
- if (longhandProperties.has(property)) {
- const { priority: longhandPriority } = longhandProperties.get(property);
- if (!longhandPriority) {
- longhandProperties.delete(property);
- longhandProperties.set(property, item);
- }
- } else {
- longhandProperties.set(property, item);
- }
-};
-
-/**
- * Processes border properties from the borders map, expanding and normalizing them.
- *
- * @param {Map} borders - The map containing accumulated border properties.
- * @param {Object} parseOpt - Options for parsing values.
- * @returns {Map} A map of fully processed and normalized border properties.
- */
-const processBorderProperties = (borders, parseOpt) => {
- const longhandProperties = new Map();
- for (const [property, item] of borders) {
- if (shorthandProperties.has(property)) {
- const { value, priority } = item;
- if (property === border.property) {
- const lineItems = border.parse(value, parseOpt);
- for (const [key, initialValue] of border.initialValues) {
- if (!Object.hasOwn(lineItems, key)) {
- lineItems[key] = initialValue;
- }
- }
- for (const lineProperty of Object.keys(lineItems)) {
- let namePart, linePart;
- const hyphenIndex = lineProperty.indexOf("-");
- if (hyphenIndex !== -1) {
- namePart = lineProperty.substring(0, hyphenIndex);
- linePart = lineProperty.substring(hyphenIndex + 1);
- } else {
- // fallback for safety, though lineProperty from border.parse keys
- // should have hyphen
- namePart = lineProperty;
- linePart = "";
- }
- const lineValue = lineItems[lineProperty];
- for (const position of borderPositions) {
- const longhandProperty = `${namePart}-${position}-${linePart}`;
- const longhandItem = createPropertyItem(longhandProperty, lineValue, priority);
- updateLonghandProperties(longhandProperty, longhandItem, longhandProperties);
- }
- }
- if (value) {
- longhandProperties.set(BORDER_IMAGE, createPropertyItem(BORDER_IMAGE, NONE, priority));
- }
- } else {
- const shorthandItem = shorthandProperties.get(property);
- const parsedItem = shorthandItem.parse(value, parseOpt);
- if (Array.isArray(parsedItem)) {
- let namePart, linePart;
- const hyphenIndex = property.indexOf("-");
- if (hyphenIndex !== -1) {
- namePart = property.substring(0, hyphenIndex);
- linePart = property.substring(hyphenIndex + 1);
- } else {
- namePart = property;
- }
- for (const position of borderPositions) {
- const longhandProperty = `${namePart}-${position}-${linePart}`;
- const longhandValue = getPositionValue(parsedItem, position);
- const longhandItem = createPropertyItem(longhandProperty, longhandValue, priority);
- updateLonghandProperties(longhandProperty, longhandItem, longhandProperties);
- }
- } else if (parsedItem) {
- for (const [key, initialValue] of shorthandItem.initialValues) {
- if (!Object.hasOwn(parsedItem, key)) {
- parsedItem[key] = initialValue;
- }
- }
- for (const longhandProperty of Object.keys(parsedItem)) {
- const longhandValue = parsedItem[longhandProperty];
- const longhandItem = createPropertyItem(longhandProperty, longhandValue, priority);
- updateLonghandProperties(longhandProperty, longhandItem, longhandProperties);
- }
- }
- }
- } else if (longhandProperties.has(property)) {
- const { priority } = longhandProperties.get(property);
- if (!priority) {
- longhandProperties.delete(property);
- longhandProperties.set(property, item);
- }
- } else {
- longhandProperties.set(property, item);
- }
- }
- const borderItems = prepareBorderShorthands(longhandProperties);
- return borderItems;
-};
-
-/**
- * Normalize and prepare CSS properties, handling shorthands and longhands.
- *
- * @param {Map} properties - The initial map of properties.
- * @param {Object} [opt={}] - Parsing options.
- * @returns {Map} The normalized map of properties.
- */
-const prepareProperties = (properties, opt = {}) => {
- const { globalObject, options } = opt;
- const parseOpt = {
- globalObject,
- options
- };
- const parsedProperties = new Map();
- const shorthands = new Map();
- const borders = new Map();
- let hasPrecedingBackground = false;
- for (const [property, item] of properties) {
- const { value, priority } = item;
- const { logicalPropertyGroup: shorthandProperty } = propertyDefinitions.get(property) ?? {};
- if (borderProperties.has(property)) {
- borders.set(property, { property, value, priority });
- } else if (shorthandProperties.has(shorthandProperty)) {
- if (!shorthands.has(shorthandProperty)) {
- shorthands.set(shorthandProperty, new Map());
- }
- const longhandItems = shorthands.get(shorthandProperty);
- if (longhandItems.size) {
- const firstPropertyKey = longhandItems.keys().next().value;
- const { priority: firstPropertyPriority } = longhandItems.get(firstPropertyKey);
- if (priority === firstPropertyPriority) {
- longhandItems.set(property, { property, value, priority });
- shorthands.set(shorthandProperty, longhandItems);
- } else {
- parsedProperties.delete(shorthandProperty);
- }
- } else {
- longhandItems.set(property, { property, value, priority });
- shorthands.set(shorthandProperty, longhandItems);
- }
- parsedProperties.set(property, item);
- } else if (shorthandProperties.has(property)) {
- const shorthandItem = shorthandProperties.get(property);
- const parsedValues = shorthandItem.parse(value, parseOpt);
- let omitShorthandProperty = false;
- if (Array.isArray(parsedValues)) {
- const [parsedValue] = parsedValues;
- if (typeof parsedValue === "string") {
- for (const [longhandProperty, longhandItem] of shorthandItem.shorthandFor) {
- if (!priority && properties.has(longhandProperty)) {
- const { priority: longhandPriority } = properties.get(longhandProperty);
- if (longhandPriority) {
- omitShorthandProperty = true;
- continue;
- }
- }
- const { position } = longhandItem;
- const longhandValue = getPositionValue([parsedValue], position);
- parsedProperties.set(
- longhandProperty,
- createPropertyItem(longhandProperty, longhandValue, priority)
- );
- }
- } else if (parsedValue) {
- for (const longhandProperty of Object.keys(parsedValue)) {
- const longhandValue = parsedValue[longhandProperty];
- parsedProperties.set(
- longhandProperty,
- createPropertyItem(longhandProperty, longhandValue, priority)
- );
- }
- }
- } else if (parsedValues && typeof parsedValues !== "string") {
- for (const longhandProperty of Object.keys(parsedValues)) {
- const longhandValue = parsedValues[longhandProperty];
- parsedProperties.set(
- longhandProperty,
- createPropertyItem(longhandProperty, longhandValue, priority)
- );
- }
- }
- if (!omitShorthandProperty) {
- if (property === background.property) {
- hasPrecedingBackground = true;
- }
- parsedProperties.set(property, createPropertyItem(property, value, priority));
- }
- } else {
- parsedProperties.set(property, createPropertyItem(property, value, priority));
- if (hasPrecedingBackground) {
- const { value: shorthandValue, priority: shorthandPriority } = properties.get(
- background.property
- );
- if ((!shorthandPriority || priority) && !hasVarFunc(shorthandValue)) {
- const replacedShorthandValue = replaceBackgroundShorthand(
- property,
- parsedProperties,
- parseOpt
- );
- properties.delete(background.property);
- properties.set(
- background.property,
- createPropertyItem(background.property, replacedShorthandValue, shorthandPriority)
- );
- }
- }
- }
- }
- if (shorthands.size) {
- const shorthandItems = processShorthandProperties(shorthands);
- for (const [property, item] of shorthandItems) {
- parsedProperties.set(property, item);
- }
- }
- if (borders.size) {
- const borderItems = processBorderProperties(borders, parseOpt);
- for (const [property, item] of borderItems) {
- parsedProperties.set(property, item);
- }
- }
- return parsedProperties;
-};
-
-/**
- * Cleans up redundancy in border properties by removing longhands that are covered by shorthands.
- *
- * @param {Map} properties - The map of properties to normalize.
- * @returns {Map} The normalized properties map.
- */
-const normalizeProperties = (properties) => {
- if (properties.has(border.property)) {
- for (const line of borderLines) {
- properties.delete(`${border.property}-${line}`);
- }
- for (const position of borderPositions) {
- properties.delete(`${border.property}-${position}`);
- for (const line of borderLines) {
- properties.delete(`${border.property}-${position}-${line}`);
- }
- }
- properties.delete(`${border.property}-image`);
- }
- for (const line of borderLines) {
- const lineProperty = `${border.property}-${line}`;
- if (properties.has(lineProperty)) {
- for (const position of borderPositions) {
- const positionProperty = `${border.property}-${position}`;
- const longhandProperty = `${border.property}-${position}-${line}`;
- properties.delete(positionProperty);
- properties.delete(longhandProperty);
- }
- }
- }
- for (const position of borderPositions) {
- const positionProperty = `${border.property}-${position}`;
- if (properties.has(positionProperty)) {
- const longhandProperties = [];
- for (const line of borderLines) {
- const longhandProperty = `${border.property}-${position}-${line}`;
- longhandProperties.push(longhandProperty);
- }
- if (longhandProperties.length === 3) {
- for (const longhandProperty of longhandProperties) {
- properties.delete(longhandProperty);
- }
- } else {
- properties.delete(positionProperty);
- }
- }
- }
- return properties;
-};
-
-module.exports = {
- borderProperties,
- getPositionValue,
- normalizeProperties,
- prepareBorderProperties,
- prepareProperties,
- shorthandProperties
-};
diff --git a/vanilla/node_modules/cssstyle/lib/parsers.js b/vanilla/node_modules/cssstyle/lib/parsers.js
deleted file mode 100644
index ad6951d..0000000
--- a/vanilla/node_modules/cssstyle/lib/parsers.js
+++ /dev/null
@@ -1,871 +0,0 @@
-"use strict";
-
-const {
- resolve: resolveColor,
- utils: { cssCalc, resolveGradient, splitValue }
-} = require("@asamuzakjp/css-color");
-const { next: syntaxes } = require("@csstools/css-syntax-patches-for-csstree");
-const csstree = require("css-tree");
-const { LRUCache } = require("lru-cache");
-const { asciiLowercase } = require("./utils/strings");
-
-// CSS global keywords
-// @see https://drafts.csswg.org/css-cascade-5/#defaulting-keywords
-const GLOBAL_KEYS = new Set(["initial", "inherit", "unset", "revert", "revert-layer"]);
-
-// System colors
-// @see https://drafts.csswg.org/css-color/#css-system-colors
-// @see https://drafts.csswg.org/css-color/#deprecated-system-colors
-const SYS_COLORS = new Set([
- "accentcolor",
- "accentcolortext",
- "activeborder",
- "activecaption",
- "activetext",
- "appworkspace",
- "background",
- "buttonborder",
- "buttonface",
- "buttonhighlight",
- "buttonshadow",
- "buttontext",
- "canvas",
- "canvastext",
- "captiontext",
- "field",
- "fieldtext",
- "graytext",
- "highlight",
- "highlighttext",
- "inactiveborder",
- "inactivecaption",
- "inactivecaptiontext",
- "infobackground",
- "infotext",
- "linktext",
- "mark",
- "marktext",
- "menu",
- "menutext",
- "scrollbar",
- "selecteditem",
- "selecteditemtext",
- "threeddarkshadow",
- "threedface",
- "threedhighlight",
- "threedlightshadow",
- "threedshadow",
- "visitedtext",
- "window",
- "windowframe",
- "windowtext"
-]);
-
-// AST node types
-const AST_TYPES = Object.freeze({
- CALC: "Calc",
- DIMENSION: "Dimension",
- FUNCTION: "Function",
- GLOBAL_KEYWORD: "GlobalKeyword",
- HASH: "Hash",
- IDENTIFIER: "Identifier",
- NUMBER: "Number",
- PERCENTAGE: "Percentage",
- STRING: "String",
- URL: "Url"
-});
-
-// Regular expressions
-const CALC_FUNC_NAMES =
- "(?:a?(?:cos|sin|tan)|abs|atan2|calc|clamp|exp|hypot|log|max|min|mod|pow|rem|round|sign|sqrt)";
-const calcRegEx = new RegExp(`^${CALC_FUNC_NAMES}\\(`);
-const calcContainedRegEx = new RegExp(`(?<=[*/\\s(])${CALC_FUNC_NAMES}\\(`);
-const calcNameRegEx = new RegExp(`^${CALC_FUNC_NAMES}$`);
-const varRegEx = /^var\(/;
-const varContainedRegEx = /(?<=[*/\s(])var\(/;
-
-// Patched css-tree
-const cssTree = csstree.fork(syntaxes);
-
-// Instance of the LRU Cache. Stores up to 4096 items.
-const lruCache = new LRUCache({
- max: 4096
-});
-
-/**
- * Prepares a stringified value.
- *
- * @param {string|number|null|undefined} value - The value to prepare.
- * @returns {string} The prepared value.
- */
-const prepareValue = (value) => {
- // `null` is converted to an empty string.
- // @see https://webidl.spec.whatwg.org/#LegacyNullToEmptyString
- if (value === null) {
- return "";
- }
- return `${value}`.trim();
-};
-
-/**
- * Checks if the value is a global keyword.
- *
- * @param {string} val - The value to check.
- * @returns {boolean} True if the value is a global keyword, false otherwise.
- */
-const isGlobalKeyword = (val) => {
- return GLOBAL_KEYS.has(asciiLowercase(val));
-};
-
-/**
- * Checks if the value starts with or contains a CSS var() function.
- *
- * @param {string} val - The value to check.
- * @returns {boolean} True if the value contains a var() function, false otherwise.
- */
-const hasVarFunc = (val) => {
- return varRegEx.test(val) || varContainedRegEx.test(val);
-};
-
-/**
- * Checks if the value starts with or contains CSS calc() or math functions.
- *
- * @param {string} val - The value to check.
- * @returns {boolean} True if the value contains calc() or math functions, false otherwise.
- */
-const hasCalcFunc = (val) => {
- return calcRegEx.test(val) || calcContainedRegEx.test(val);
-};
-
-/**
- * Parses a CSS string into an AST.
- *
- * @param {string} val - The CSS string to parse.
- * @param {object} opt - The options for parsing.
- * @param {boolean} [toObject=false] - Whether to return a plain object.
- * @returns {object} The AST or a plain object.
- */
-const parseCSS = (val, opt, toObject = false) => {
- val = prepareValue(val);
- const ast = cssTree.parse(val, opt);
- if (toObject) {
- return cssTree.toPlainObject(ast);
- }
- return ast;
-};
-
-/**
- * Checks if the value is a valid property value.
- * Returns false for custom properties or values containing var().
- *
- * @param {string} prop - The property name.
- * @param {string} val - The property value.
- * @returns {boolean} True if the value is valid, false otherwise.
- */
-const isValidPropertyValue = (prop, val) => {
- val = prepareValue(val);
- if (val === "") {
- return true;
- }
- // cssTree.lexer does not support deprecated system colors
- // @see https://github.com/w3c/webref/issues/1519#issuecomment-3120290261
- // @see https://github.com/w3c/webref/issues/1647
- if (SYS_COLORS.has(asciiLowercase(val))) {
- if (/^(?:-webkit-)?(?:[a-z][a-z\d]*-)*color$/i.test(prop)) {
- return true;
- }
- return false;
- }
- const cacheKey = `isValidPropertyValue_${prop}_${val}`;
- const cachedValue = lruCache.get(cacheKey);
- if (typeof cachedValue === "boolean") {
- return cachedValue;
- }
- let result;
- try {
- const ast = parseCSS(val, {
- context: "value"
- });
- const { error, matched } = cssTree.lexer.matchProperty(prop, ast);
- result = error === null && matched !== null;
- } catch {
- result = false;
- }
- lruCache.set(cacheKey, result);
- return result;
-};
-
-/**
- * Resolves CSS math functions.
- *
- * @param {string} val - The value to resolve.
- * @param {object} [opt={ format: "specifiedValue" }] - The options for resolving.
- * @returns {string|undefined} The resolved value.
- */
-const resolveCalc = (val, opt = { format: "specifiedValue" }) => {
- val = prepareValue(val);
- if (val === "" || hasVarFunc(val) || !hasCalcFunc(val)) {
- return val;
- }
- const cacheKey = `resolveCalc_${val}`;
- const cachedValue = lruCache.get(cacheKey);
- if (typeof cachedValue === "string") {
- return cachedValue;
- }
- const obj = parseCSS(val, { context: "value" }, true);
- if (!obj?.children) {
- return;
- }
- const { children: items } = obj;
- const values = [];
- for (const item of items) {
- const { type: itemType, name: itemName, value: itemValue } = item;
- if (itemType === AST_TYPES.FUNCTION) {
- const value = cssTree
- .generate(item)
- .replace(/\)(?!\)|\s|,)/g, ") ")
- .trim();
- if (calcNameRegEx.test(itemName)) {
- const newValue = cssCalc(value, opt);
- values.push(newValue);
- } else {
- values.push(value);
- }
- } else if (itemType === AST_TYPES.STRING) {
- values.push(`"${itemValue}"`);
- } else {
- values.push(itemName ?? itemValue);
- }
- }
- const resolvedValue = values.join(" ");
- lruCache.set(cacheKey, resolvedValue);
- return resolvedValue;
-};
-
-/**
- * Parses a property value.
- * Returns a string or an array of parsed objects.
- *
- * @param {string} prop - The property name.
- * @param {string} val - The property value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|Array<object>|undefined} The parsed value.
- */
-const parsePropertyValue = (prop, val, opt = {}) => {
- const { caseSensitive, inArray } = opt;
- val = prepareValue(val);
- if (val === "" || hasVarFunc(val)) {
- return val;
- } else if (hasCalcFunc(val)) {
- const calculatedValue = resolveCalc(val, {
- format: "specifiedValue"
- });
- if (typeof calculatedValue !== "string") {
- return;
- }
- val = calculatedValue;
- }
- const cacheKey = `parsePropertyValue_${prop}_${val}_${caseSensitive}`;
- const cachedValue = lruCache.get(cacheKey);
- if (cachedValue === false) {
- return;
- } else if (inArray) {
- if (Array.isArray(cachedValue)) {
- return cachedValue;
- }
- } else if (typeof cachedValue === "string") {
- return cachedValue;
- }
- let parsedValue;
- const lowerCasedValue = asciiLowercase(val);
- if (GLOBAL_KEYS.has(lowerCasedValue)) {
- if (inArray) {
- parsedValue = [
- {
- type: AST_TYPES.GLOBAL_KEYWORD,
- name: lowerCasedValue
- }
- ];
- } else {
- parsedValue = lowerCasedValue;
- }
- } else if (SYS_COLORS.has(lowerCasedValue)) {
- if (/^(?:(?:-webkit-)?(?:[a-z][a-z\d]*-)*color|border)$/i.test(prop)) {
- if (inArray) {
- parsedValue = [
- {
- type: AST_TYPES.IDENTIFIER,
- name: lowerCasedValue
- }
- ];
- } else {
- parsedValue = lowerCasedValue;
- }
- } else {
- parsedValue = false;
- }
- } else {
- try {
- const ast = parseCSS(val, {
- context: "value"
- });
- const { error, matched } = cssTree.lexer.matchProperty(prop, ast);
- if (error || !matched) {
- parsedValue = false;
- } else if (inArray) {
- const obj = cssTree.toPlainObject(ast);
- const items = obj.children;
- const values = [];
- for (const item of items) {
- const { children, name, type, value, unit } = item;
- switch (type) {
- case AST_TYPES.DIMENSION: {
- values.push({
- type,
- value,
- unit: asciiLowercase(unit)
- });
- break;
- }
- case AST_TYPES.FUNCTION: {
- const css = cssTree
- .generate(item)
- .replace(/\)(?!\)|\s|,)/g, ") ")
- .trim();
- const raw = items.length === 1 ? val : css;
- // Remove "${name}(" from the start and ")" from the end
- const itemValue = raw.slice(name.length + 1, -1).trim();
- if (name === "calc") {
- if (children.length === 1) {
- const [child] = children;
- if (child.type === AST_TYPES.NUMBER) {
- values.push({
- type: AST_TYPES.CALC,
- isNumber: true,
- value: `${parseFloat(child.value)}`,
- name,
- raw
- });
- } else {
- values.push({
- type: AST_TYPES.CALC,
- isNumber: false,
- value: `${asciiLowercase(itemValue)}`,
- name,
- raw
- });
- }
- } else {
- values.push({
- type: AST_TYPES.CALC,
- isNumber: false,
- value: asciiLowercase(itemValue),
- name,
- raw
- });
- }
- } else {
- values.push({
- type,
- name,
- value: asciiLowercase(itemValue),
- raw
- });
- }
- break;
- }
- case AST_TYPES.IDENTIFIER: {
- if (caseSensitive) {
- values.push(item);
- } else {
- values.push({
- type,
- name: asciiLowercase(name)
- });
- }
- break;
- }
- default: {
- values.push(item);
- }
- }
- }
- parsedValue = values;
- } else {
- parsedValue = val;
- }
- } catch {
- parsedValue = false;
- }
- }
- lruCache.set(cacheKey, parsedValue);
- if (parsedValue === false) {
- return;
- }
- return parsedValue;
-};
-
-/**
- * Parses a numeric value (number, dimension, percentage).
- * Helper function for parseNumber, parseLength, etc.
- *
- * @param {Array<object>} val - The AST value.
- * @param {object} [opt={}] - The options for parsing.
- * @param {Function} validateType - Function to validate the node type.
- * @returns {object|undefined} The parsed result containing num and unit, or undefined.
- */
-const parseNumericValue = (val, opt, validateType) => {
- const [item] = val;
- const { type, value, unit } = item ?? {};
- if (!validateType(type, value, unit)) {
- return;
- }
- const { clamp } = opt || {};
- const max = opt?.max ?? Number.INFINITY;
- const min = opt?.min ?? Number.NEGATIVE_INFINITY;
- let num = parseFloat(value);
- if (clamp) {
- if (num > max) {
- num = max;
- } else if (num < min) {
- num = min;
- }
- } else if (num > max || num < min) {
- return;
- }
- return {
- num,
- unit: unit ? asciiLowercase(unit) : null,
- type
- };
-};
-
-/**
- * Parses a <number> value.
- *
- * @param {Array<object>} val - The AST value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The parsed number.
- */
-const parseNumber = (val, opt = {}) => {
- const res = parseNumericValue(val, opt, (type) => type === AST_TYPES.NUMBER);
- if (!res) {
- return;
- }
- return `${res.num}`;
-};
-
-/**
- * Parses a <length> value.
- *
- * @param {Array<object>} val - The AST value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The parsed length.
- */
-const parseLength = (val, opt = {}) => {
- const res = parseNumericValue(
- val,
- opt,
- (type, value) => type === AST_TYPES.DIMENSION || (type === AST_TYPES.NUMBER && value === "0")
- );
- if (!res) {
- return;
- }
- const { num, unit } = res;
- if (num === 0 && !unit) {
- return `${num}px`;
- } else if (unit) {
- return `${num}${unit}`;
- }
-};
-
-/**
- * Parses a <percentage> value.
- *
- * @param {Array<object>} val - The AST value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The parsed percentage.
- */
-const parsePercentage = (val, opt = {}) => {
- const res = parseNumericValue(
- val,
- opt,
- (type, value) => type === AST_TYPES.PERCENTAGE || (type === AST_TYPES.NUMBER && value === "0")
- );
- if (!res) {
- return;
- }
- const { num } = res;
- return `${num}%`;
-};
-
-/**
- * Parses an <angle> value.
- *
- * @param {Array<object>} val - The AST value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The parsed angle.
- */
-const parseAngle = (val, opt = {}) => {
- const res = parseNumericValue(
- val,
- opt,
- (type, value) => type === AST_TYPES.DIMENSION || (type === AST_TYPES.NUMBER && value === "0")
- );
- if (!res) {
- return;
- }
- const { num, unit } = res;
- if (unit) {
- if (!/^(?:deg|g?rad|turn)$/i.test(unit)) {
- return;
- }
- return `${num}${unit}`;
- } else if (num === 0) {
- return `${num}deg`;
- }
-};
-
-/**
- * Parses a <url> value.
- *
- * @param {Array<object>} val - The AST value.
- * @returns {string|undefined} The parsed url.
- */
-const parseUrl = (val) => {
- const [item] = val;
- const { type, value } = item ?? {};
- if (type !== AST_TYPES.URL) {
- return;
- }
- const str = value.replace(/\\\\/g, "\\").replaceAll('"', '\\"');
- return `url("${str}")`;
-};
-
-/**
- * Parses a <string> value.
- *
- * @param {Array<object>} val - The AST value.
- * @returns {string|undefined} The parsed string.
- */
-const parseString = (val) => {
- const [item] = val;
- const { type, value } = item ?? {};
- if (type !== AST_TYPES.STRING) {
- return;
- }
- const str = value.replace(/\\\\/g, "\\").replaceAll('"', '\\"');
- return `"${str}"`;
-};
-
-/**
- * Parses a <color> value.
- *
- * @param {Array<object>} val - The AST value.
- * @returns {string|undefined} The parsed color.
- */
-const parseColor = (val) => {
- const [item] = val;
- const { name, type, value } = item ?? {};
- switch (type) {
- case AST_TYPES.FUNCTION: {
- const res = resolveColor(`${name}(${value})`, {
- format: "specifiedValue"
- });
- if (res) {
- return res;
- }
- break;
- }
- case AST_TYPES.HASH: {
- const res = resolveColor(`#${value}`, {
- format: "specifiedValue"
- });
- if (res) {
- return res;
- }
- break;
- }
- case AST_TYPES.IDENTIFIER: {
- if (SYS_COLORS.has(name)) {
- return name;
- }
- const res = resolveColor(name, {
- format: "specifiedValue"
- });
- if (res) {
- return res;
- }
- break;
- }
- default:
- }
-};
-
-/**
- * Parses a <gradient> value.
- *
- * @param {Array<object>} val - The AST value.
- * @returns {string|undefined} The parsed gradient.
- */
-const parseGradient = (val) => {
- const [item] = val;
- const { name, type, value } = item ?? {};
- if (type !== AST_TYPES.FUNCTION) {
- return;
- }
- const res = resolveGradient(`${name}(${value})`, {
- format: "specifiedValue"
- });
- if (res) {
- return res;
- }
-};
-
-/**
- * Resolves a keyword value.
- *
- * @param {Array<object>} value - The AST node array containing the keyword value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The resolved keyword or undefined.
- */
-const resolveKeywordValue = (value, opt = {}) => {
- const [{ name, type }] = value;
- const { length } = opt;
- switch (type) {
- case AST_TYPES.GLOBAL_KEYWORD: {
- if (length > 1) {
- return;
- }
- return name;
- }
- case AST_TYPES.IDENTIFIER: {
- return name;
- }
- default:
- }
-};
-
-/**
- * Resolves a function value.
- *
- * @param {Array<object>} value - The AST node array containing the function value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The resolved function or undefined.
- */
-const resolveFunctionValue = (value, opt = {}) => {
- const [{ name, type, value: itemValue }] = value;
- const { length } = opt;
- switch (type) {
- case AST_TYPES.FUNCTION: {
- return `${name}(${itemValue})`;
- }
- case AST_TYPES.GLOBAL_KEYWORD: {
- if (length > 1) {
- return;
- }
- return name;
- }
- case AST_TYPES.IDENTIFIER: {
- return name;
- }
- default:
- }
-};
-
-/**
- * Resolves a length or percentage or number value.
- *
- * @param {Array<object>} value - The AST node array containing the value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The resolved length/percentage/number or undefined.
- */
-const resolveNumericValue = (value, opt = {}) => {
- const [{ name, type: itemType, value: itemValue }] = value;
- const { length, type } = opt;
- switch (itemType) {
- case AST_TYPES.CALC: {
- return `${name}(${itemValue})`;
- }
- case AST_TYPES.DIMENSION: {
- if (type === "angle") {
- return parseAngle(value, opt);
- }
- return parseLength(value, opt);
- }
- case AST_TYPES.GLOBAL_KEYWORD: {
- if (length > 1) {
- return;
- }
- return name;
- }
- case AST_TYPES.IDENTIFIER: {
- return name;
- }
- case AST_TYPES.NUMBER: {
- switch (type) {
- case "angle": {
- return parseAngle(value, opt);
- }
- case "length": {
- return parseLength(value, opt);
- }
- case "percentage": {
- return parsePercentage(value, opt);
- }
- default: {
- return parseNumber(value, opt);
- }
- }
- }
- case AST_TYPES.PERCENTAGE: {
- return parsePercentage(value, opt);
- }
- default:
- }
-};
-
-/**
- * Resolves a color value.
- *
- * @param {Array<object>} value - The AST node array containing the color value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The resolved color or undefined.
- */
-const resolveColorValue = (value, opt = {}) => {
- const [{ name, type }] = value;
- const { length } = opt;
- switch (type) {
- case AST_TYPES.GLOBAL_KEYWORD: {
- if (length > 1) {
- return;
- }
- return name;
- }
- default: {
- return parseColor(value, opt);
- }
- }
-};
-
-/**
- * Resolves a gradient or URL value.
- *
- * @param {Array<object>} value - The AST node array containing the color value.
- * @param {object} [opt={}] - The options for parsing.
- * @returns {string|undefined} The resolved gradient/url or undefined.
- */
-const resolveGradientUrlValue = (value, opt = {}) => {
- const [{ name, type }] = value;
- const { length } = opt;
- switch (type) {
- case AST_TYPES.GLOBAL_KEYWORD: {
- if (length > 1) {
- return;
- }
- return name;
- }
- case AST_TYPES.IDENTIFIER: {
- return name;
- }
- case AST_TYPES.URL: {
- return parseUrl(value, opt);
- }
- default: {
- return parseGradient(value, opt);
- }
- }
-};
-
-/**
- * Resolves a border shorthand value.
- *
- * @param {Array<object>} value - The AST node array containing the shorthand value.
- * @param {object} subProps - The sub properties object.
- * @param {Map} parsedValues - The Map of parsed values.
- * @returns {Array|string|undefined} - The resolved [prop, value] pair, keyword or undefined.
- */
-const resolveBorderShorthandValue = (value, subProps, parsedValues) => {
- const [{ isNumber, name, type, value: itemValue }] = value;
- const { color: colorProp, style: styleProp, width: widthProp } = subProps;
- switch (type) {
- case AST_TYPES.CALC: {
- if (isNumber || parsedValues.has(widthProp)) {
- return;
- }
- return [widthProp, `${name}(${itemValue}`];
- }
- case AST_TYPES.DIMENSION:
- case AST_TYPES.NUMBER: {
- if (parsedValues.has(widthProp)) {
- return;
- }
- const parsedValue = parseLength(value, { min: 0 });
- if (!parsedValue) {
- return;
- }
- return [widthProp, parsedValue];
- }
- case AST_TYPES.FUNCTION:
- case AST_TYPES.HASH: {
- if (parsedValues.has(colorProp)) {
- return;
- }
- const parsedValue = parseColor(value);
- if (!parsedValue) {
- return;
- }
- return [colorProp, parsedValue];
- }
- case AST_TYPES.GLOBAL_KEYWORD: {
- return name;
- }
- case AST_TYPES.IDENTIFIER: {
- if (isValidPropertyValue(widthProp, name)) {
- if (parsedValues.has(widthProp)) {
- return;
- }
- return [widthProp, name];
- } else if (isValidPropertyValue(styleProp, name)) {
- if (parsedValues.has(styleProp)) {
- return;
- }
- return [styleProp, name];
- } else if (isValidPropertyValue(colorProp, name)) {
- if (parsedValues.has(colorProp)) {
- return;
- }
- return [colorProp, name];
- }
- break;
- }
- default:
- }
-};
-
-module.exports = {
- AST_TYPES,
- hasCalcFunc,
- hasVarFunc,
- isGlobalKeyword,
- isValidPropertyValue,
- parseAngle,
- parseCSS,
- parseColor,
- parseGradient,
- parseLength,
- parseNumber,
- parsePercentage,
- parsePropertyValue,
- parseString,
- parseUrl,
- prepareValue,
- resolveBorderShorthandValue,
- resolveCalc,
- resolveColorValue,
- resolveFunctionValue,
- resolveGradientUrlValue,
- resolveKeywordValue,
- resolveNumericValue,
- splitValue
-};
diff --git a/vanilla/node_modules/cssstyle/lib/properties/background.js b/vanilla/node_modules/cssstyle/lib/properties/background.js
deleted file mode 100644
index cf4acb4..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/background.js
+++ /dev/null
@@ -1,406 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const backgroundImage = require("./backgroundImage");
-const backgroundPosition = require("./backgroundPosition");
-const backgroundSize = require("./backgroundSize");
-const backgroundRepeat = require("./backgroundRepeat");
-const backgroundOrigin = require("./backgroundOrigin");
-const backgroundClip = require("./backgroundClip");
-const backgroundAttachment = require("./backgroundAttachment");
-const backgroundColor = require("./backgroundColor");
-
-const property = "background";
-
-module.exports.initialValues = new Map([
- [backgroundImage.property, "none"],
- [backgroundPosition.property, "0% 0%"],
- [backgroundSize.property, "auto"],
- [backgroundRepeat.property, "repeat"],
- [backgroundOrigin.property, "padding-box"],
- [backgroundClip.property, "border-box"],
- [backgroundAttachment.property, "scroll"],
- [backgroundColor.property, "transparent"]
-]);
-
-module.exports.shorthandFor = new Map([
- [backgroundImage.property, backgroundImage],
- [backgroundPosition.property, backgroundPosition],
- [backgroundSize.property, backgroundSize],
- [backgroundRepeat.property, backgroundRepeat],
- [backgroundOrigin.property, backgroundOrigin],
- [backgroundClip.property, backgroundClip],
- [backgroundAttachment.property, backgroundAttachment],
- [backgroundColor.property, backgroundColor]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- } else if (parsers.hasCalcFunc(v)) {
- v = parsers.resolveCalc(v);
- }
- if (!parsers.isValidPropertyValue(property, v)) {
- return;
- }
- const values = parsers.splitValue(v, {
- delimiter: ","
- });
- const bgValues = [];
- const l = values.length;
- for (let i = 0; i < l; i++) {
- let bg = {
- [backgroundImage.property]: module.exports.initialValues.get(backgroundImage.property),
- [backgroundPosition.property]: module.exports.initialValues.get(backgroundPosition.property),
- [backgroundSize.property]: module.exports.initialValues.get(backgroundSize.property),
- [backgroundRepeat.property]: module.exports.initialValues.get(backgroundRepeat.property),
- [backgroundOrigin.property]: module.exports.initialValues.get(backgroundOrigin.property),
- [backgroundClip.property]: module.exports.initialValues.get(backgroundClip.property),
- [backgroundAttachment.property]: module.exports.initialValues.get(
- backgroundAttachment.property
- ),
- [backgroundColor.property]: module.exports.initialValues.get(backgroundColor.property)
- };
- if (l > 1 && i !== l - 1) {
- bg = {
- [backgroundImage.property]: module.exports.initialValues.get(backgroundImage.property),
- [backgroundPosition.property]: module.exports.initialValues.get(
- backgroundPosition.property
- ),
- [backgroundSize.property]: module.exports.initialValues.get(backgroundSize.property),
- [backgroundRepeat.property]: module.exports.initialValues.get(backgroundRepeat.property),
- [backgroundOrigin.property]: module.exports.initialValues.get(backgroundOrigin.property),
- [backgroundClip.property]: module.exports.initialValues.get(backgroundClip.property),
- [backgroundAttachment.property]: module.exports.initialValues.get(
- backgroundAttachment.property
- )
- };
- }
- const bgPosition = [];
- const bgSize = [];
- const bgRepeat = [];
- const bgBox = [];
- const bgParts = parsers.splitValue(values[i], {
- delimiter: "/"
- });
- if (!bgParts.length || bgParts.length > 2) {
- return;
- }
- const [bgPart1, bgPart2 = ""] = bgParts;
- const parts1 = parsers.splitValue(bgPart1);
- for (const part of parts1) {
- let partValid = false;
- for (const [longhand, value] of module.exports.shorthandFor) {
- if (parsers.isValidPropertyValue(longhand, part)) {
- partValid = true;
- switch (longhand) {
- case backgroundClip.property:
- case backgroundOrigin.property: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bgBox.push(parsedValue);
- }
- break;
- }
- case backgroundColor.property: {
- if (i !== values.length - 1) {
- return;
- }
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- break;
- }
- case backgroundPosition.property: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bgPosition.push(parsedValue);
- }
- break;
- }
- case backgroundRepeat.property: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bgRepeat.push(parsedValue);
- }
- break;
- }
- case backgroundSize.property: {
- break;
- }
- default: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- }
- }
- }
- }
- if (!partValid) {
- return;
- }
- }
- if (bgPart2) {
- const parts2 = parsers.splitValue(bgPart2);
- for (const part of parts2) {
- let partValid = false;
- for (const [longhand, value] of module.exports.shorthandFor) {
- if (parsers.isValidPropertyValue(longhand, part)) {
- partValid = true;
- switch (longhand) {
- case backgroundClip.property:
- case backgroundOrigin.property: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bgBox.push(parsedValue);
- }
- break;
- }
- case backgroundColor.property: {
- if (i !== l - 1) {
- return;
- }
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- break;
- }
- case backgroundPosition.property: {
- break;
- }
- case backgroundRepeat.property: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bgRepeat.push(parsedValue);
- }
- break;
- }
- case backgroundSize.property: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bgSize.push(parsedValue);
- }
- break;
- }
- default: {
- const parsedValue = value.parse(part, { globalObject });
- if (parsedValue) {
- bg[longhand] = parsedValue;
- }
- }
- }
- }
- }
- if (!partValid) {
- return;
- }
- }
- }
- if (bgPosition.length) {
- const { parse: parser } = module.exports.shorthandFor.get(backgroundPosition.property);
- const value = parser(bgPosition.join(" "), { globalObject });
- if (value) {
- bg[backgroundPosition.property] = value;
- }
- }
- if (bgSize.length) {
- const { parse: parser } = module.exports.shorthandFor.get(backgroundSize.property);
- const value = parser(bgSize.join(" "), { globalObject });
- if (value) {
- bg[backgroundSize.property] = value;
- }
- }
- if (bgRepeat.length) {
- const { parse: parser } = module.exports.shorthandFor.get(backgroundRepeat.property);
- const value = parser(bgRepeat.join(" "), { globalObject });
- if (value) {
- bg[backgroundRepeat.property] = value;
- }
- }
- if (bgBox.length) {
- switch (bgBox.length) {
- case 1: {
- const [value] = bgBox;
- bg[backgroundOrigin.property] = value;
- bg[backgroundClip.property] = value;
- break;
- }
- case 2: {
- const [value1, value2] = bgBox;
- bg[backgroundOrigin.property] = value1;
- bg[backgroundClip.property] = value2;
- break;
- }
- default: {
- return;
- }
- }
- }
- bgValues.push(bg);
- }
- return bgValues;
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (v === "" || parsers.hasVarFunc(v)) {
- for (const [key] of module.exports.shorthandFor) {
- this._setProperty(key, "");
- }
- this._setProperty(property, v);
- } else {
- const bgValues = module.exports.parse(v, {
- globalObject: this._global
- });
- if (!Array.isArray(bgValues)) {
- return;
- }
- const bgMap = new Map([
- [backgroundImage.property, []],
- [backgroundPosition.property, []],
- [backgroundSize.property, []],
- [backgroundRepeat.property, []],
- [backgroundOrigin.property, []],
- [backgroundClip.property, []],
- [backgroundAttachment.property, []],
- [backgroundColor.property, []]
- ]);
- const backgrounds = [];
- for (const bgValue of bgValues) {
- const bg = [];
- for (const [longhand, value] of Object.entries(bgValue)) {
- if (value) {
- const arr = bgMap.get(longhand);
- arr.push(value);
- bgMap.set(longhand, arr);
- if (value !== module.exports.initialValues.get(longhand)) {
- if (longhand === backgroundSize.property) {
- bg.push(`/ ${value}`);
- } else {
- bg.push(value);
- }
- } else if (longhand === backgroundImage.property) {
- if (v === "none") {
- bg.push(value);
- }
- } else if (longhand === backgroundColor.property) {
- if (v === "transparent") {
- bg.push(value);
- }
- }
- }
- }
- backgrounds.push(bg.join(" "));
- }
- const priority = this._priorities.get(property) ?? "";
- for (const [longhand, value] of bgMap) {
- this._setProperty(longhand, value.join(", "), priority);
- }
- this._setProperty(property, backgrounds.join(", "), priority);
- }
- },
- get() {
- const v = this.getPropertyValue(property);
- if (parsers.hasVarFunc(v)) {
- return v;
- }
- const bgMap = new Map();
- let l = 0;
- for (const [longhand] of module.exports.shorthandFor) {
- const val = this.getPropertyValue(longhand);
- if (longhand === backgroundImage.property) {
- if (
- val === "none" &&
- v === "none" &&
- this.getPropertyValue(backgroundColor.property) === "transparent"
- ) {
- return val;
- }
- if (val !== module.exports.initialValues.get(longhand)) {
- const imgValues = parsers.splitValue(val, {
- delimiter: ","
- });
- l = imgValues.length;
- bgMap.set(longhand, imgValues);
- }
- } else if (longhand === backgroundColor.property) {
- if (val !== module.exports.initialValues.get(longhand) || v.includes(val)) {
- bgMap.set(longhand, [val]);
- }
- } else if (val !== module.exports.initialValues.get(longhand)) {
- bgMap.set(
- longhand,
- parsers.splitValue(val, {
- delimiter: ","
- })
- );
- }
- }
- if (l === 0) {
- const bgColArr = bgMap.get(backgroundColor.property);
- const background = bgColArr ? bgColArr[0] : null;
- if (background) {
- return background;
- }
- return "";
- }
- const bgValues = [];
- for (let i = 0; i < l; i++) {
- bgValues[i] = [];
- }
- for (const [longhand, values] of bgMap) {
- for (let i = 0; i < l; i++) {
- switch (longhand) {
- case backgroundColor.property: {
- if (i === l - 1) {
- const value = values[0];
- if (parsers.hasVarFunc(value)) {
- return "";
- }
- if (value && value !== module.exports.initialValues.get(longhand)) {
- const bgValue = bgValues[i];
- bgValue.push(value);
- }
- }
- break;
- }
- case backgroundSize.property: {
- const value = values[i];
- if (parsers.hasVarFunc(value)) {
- return "";
- }
- if (value && value !== module.exports.initialValues.get(longhand)) {
- const bgValue = bgValues[i];
- bgValue.push(`/ ${value}`);
- }
- break;
- }
- default: {
- const value = values[i];
- if (parsers.hasVarFunc(value)) {
- return "";
- }
- if (value && value !== module.exports.initialValues.get(longhand)) {
- const bgValue = bgValues[i];
- bgValue.push(value);
- }
- }
- }
- }
- }
- const backgrounds = [];
- for (const bgValue of bgValues) {
- backgrounds.push(bgValue.join(" "));
- }
- return backgrounds.join(", ");
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundAttachment.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundAttachment.js
deleted file mode 100644
index 32b3aff..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundAttachment.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-attachment";
-const shorthand = "background";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v, { delimiter: "," });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveKeywordValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundClip.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundClip.js
deleted file mode 100644
index 80407bc..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundClip.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-clip";
-const shorthand = "background";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v, { delimiter: "," });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveKeywordValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundColor.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundColor.js
deleted file mode 100644
index 7d3bf99..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundColor.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-color";
-const shorthand = "background";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundImage.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundImage.js
deleted file mode 100644
index 8959685..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundImage.js
+++ /dev/null
@@ -1,63 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-image";
-const shorthand = "background";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v, { delimiter: "," });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveGradientUrlValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- } else {
- return;
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundOrigin.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundOrigin.js
deleted file mode 100644
index a1fe9ac..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundOrigin.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-origin";
-const shorthand = "background";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v, { delimiter: "," });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveKeywordValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundPosition.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundPosition.js
deleted file mode 100644
index 23c6c68..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundPosition.js
+++ /dev/null
@@ -1,204 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-position";
-const shorthand = "background";
-const keyX = ["left", "right"];
-const keyY = ["top", "bottom"];
-const keywordsX = ["center", ...keyX];
-const keywordsY = ["center", ...keyY];
-const keywords = ["center", ...keyX, ...keyY];
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const values = parsers.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- const [part1, part2, part3, part4] = value;
- let parsedValue = "";
- switch (value.length) {
- case 1: {
- const val1 =
- part1.type === AST_TYPES.IDENTIFIER
- ? part1.name
- : parsers.resolveNumericValue([part1], { type: "length" });
- if (val1) {
- if (val1 === "center") {
- parsedValue = `${val1} ${val1}`;
- } else if (val1 === "top" || val1 === "bottom") {
- parsedValue = `center ${val1}`;
- } else {
- parsedValue = `${val1} center`;
- }
- }
- break;
- }
- case 2: {
- const val1 =
- part1.type === AST_TYPES.IDENTIFIER
- ? part1.name
- : parsers.resolveNumericValue([part1], { type: "length" });
- const val2 =
- part2.type === AST_TYPES.IDENTIFIER
- ? part2.name
- : parsers.resolveNumericValue([part2], { type: "length" });
- if (val1 && val2) {
- if (keywordsX.includes(val1) && keywordsY.includes(val2)) {
- parsedValue = `${val1} ${val2}`;
- } else if (keywordsY.includes(val1) && keywordsX.includes(val2)) {
- parsedValue = `${val2} ${val1}`;
- } else if (keywordsX.includes(val1)) {
- if (val2 === "center" || !keywordsX.includes(val2)) {
- parsedValue = `${val1} ${val2}`;
- }
- } else if (keywordsY.includes(val2)) {
- if (!keywordsY.includes(val1)) {
- parsedValue = `${val1} ${val2}`;
- }
- } else if (!keywordsY.includes(val1) && !keywordsX.includes(val2)) {
- parsedValue = `${val1} ${val2}`;
- }
- }
- break;
- }
- case 3: {
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 =
- part2.type === AST_TYPES.IDENTIFIER
- ? part2.name
- : parsers.resolveNumericValue([part2], { type: "length" });
- const val3 =
- part3.type === AST_TYPES.IDENTIFIER
- ? part3.name
- : parsers.resolveNumericValue([part3], { type: "length" });
- if (val1 && val2 && val3) {
- let posX = "";
- let offX = "";
- let posY = "";
- let offY = "";
- if (keywordsX.includes(val1)) {
- if (keyY.includes(val2)) {
- if (!keywords.includes(val3)) {
- posX = val1;
- posY = val2;
- offY = val3;
- }
- } else if (keyY.includes(val3)) {
- if (!keywords.includes(val2)) {
- posX = val1;
- offX = val2;
- posY = val3;
- }
- }
- } else if (keywordsY.includes(val1)) {
- if (keyX.includes(val2)) {
- if (!keywords.includes(val3)) {
- posX = val2;
- offX = val3;
- posY = val1;
- }
- } else if (keyX.includes(val3)) {
- if (!keywords.includes(val2)) {
- posX = val3;
- posY = val1;
- offY = val2;
- }
- }
- }
- if (posX && posY) {
- if (offX) {
- parsedValue = `${posX} ${offX} ${posY}`;
- } else if (offY) {
- parsedValue = `${posX} ${posY} ${offY}`;
- }
- }
- }
- break;
- }
- case 4: {
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = parsers.resolveNumericValue([part2], { type: "length" });
- const val3 = part3.type === AST_TYPES.IDENTIFIER && part3.name;
- const val4 = parsers.resolveNumericValue([part4], { type: "length" });
- if (val1 && val2 && val3 && val4) {
- let posX = "";
- let offX = "";
- let posY = "";
- let offY = "";
- if (keywordsX.includes(val1) && keyY.includes(val3)) {
- posX = val1;
- offX = val2;
- posY = val3;
- offY = val4;
- } else if (keyX.includes(val1) && keywordsY.includes(val3)) {
- posX = val1;
- offX = val2;
- posY = val3;
- offY = val4;
- } else if (keyY.includes(val1) && keywordsX.includes(val3)) {
- posX = val3;
- offX = val4;
- posY = val1;
- offY = val2;
- }
- if (posX && offX && posY && offY) {
- parsedValue = `${posX} ${offX} ${posY} ${offY}`;
- }
- }
- break;
- }
- default:
- }
- if (parsedValue) {
- parsedValues.push(parsedValue);
- } else {
- return;
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundRepeat.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundRepeat.js
deleted file mode 100644
index 6bb9ddd..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundRepeat.js
+++ /dev/null
@@ -1,93 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-repeat";
-const shorthand = "background";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const values = parsers.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- let parsedValue = "";
- switch (value.length) {
- case 1: {
- const [part1] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- if (val1) {
- parsedValue = val1;
- }
- break;
- }
- case 2: {
- const [part1, part2] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
- if (val1 && val2) {
- if (val1 === "repeat" && val2 === "no-repeat") {
- parsedValue = "repeat-x";
- } else if (val1 === "no-repeat" && val2 === "repeat") {
- parsedValue = "repeat-y";
- } else if (val1 === val2) {
- parsedValue = val1;
- } else {
- parsedValue = `${val1} ${val2}`;
- }
- }
- break;
- }
- default:
- }
- if (parsedValue) {
- parsedValues.push(parsedValue);
- } else {
- return;
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/backgroundSize.js b/vanilla/node_modules/cssstyle/lib/properties/backgroundSize.js
deleted file mode 100644
index be31044..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/backgroundSize.js
+++ /dev/null
@@ -1,126 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "background-size";
-const shorthand = "background";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const values = parsers.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- if (value.length === 1) {
- const [{ isNumber, name, type, value: itemValue }] = value;
- switch (type) {
- case AST_TYPES.CALC: {
- if (isNumber) {
- return;
- }
- parsedValues.push(`${name}(${itemValue})`);
- break;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER: {
- parsedValues.push(name);
- break;
- }
- default: {
- const parsedValue = parsers.resolveNumericValue(value, {
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- }
- } else {
- const [val1, val2] = value;
- const parts = [];
- if (val1.type === AST_TYPES.CALC && !val1.isNumber) {
- parts.push(`${val1.name}(${val1.value})`);
- } else if (val1.type === AST_TYPES.IDENTIFIER) {
- parts.push(val1.name);
- } else if (val1.type === AST_TYPES.DIMENSION) {
- parts.push(`${val1.value}${val1.unit}`);
- } else if (val1.type === AST_TYPES.PERCENTAGE) {
- parts.push(`${val1.value}%`);
- } else {
- return;
- }
- switch (val2.type) {
- case AST_TYPES.CALC: {
- if (val2.isNumber) {
- return;
- }
- parts.push(`${val2.name}(${val2.value})`);
- break;
- }
- case AST_TYPES.DIMENSION: {
- parts.push(`${val2.value}${val2.unit}`);
- break;
- }
- case AST_TYPES.IDENTIFIER: {
- if (val2.name !== "auto") {
- parts.push(val2.name);
- }
- break;
- }
- case AST_TYPES.PERCENTAGE: {
- parts.push(`${val2.value}%`);
- break;
- }
- default: {
- return;
- }
- }
- parsedValues.push(parts.join(" "));
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/border.js b/vanilla/node_modules/cssstyle/lib/properties/border.js
deleted file mode 100644
index 889bd5a..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/border.js
+++ /dev/null
@@ -1,107 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderWidth = require("./borderWidth");
-const borderStyle = require("./borderStyle");
-const borderColor = require("./borderColor");
-const borderTop = require("./borderTop");
-const borderRight = require("./borderRight");
-const borderBottom = require("./borderBottom");
-const borderLeft = require("./borderLeft");
-
-const property = "border";
-
-const subProps = {
- width: borderWidth.property,
- style: borderStyle.property,
- color: borderColor.property
-};
-
-module.exports.initialValues = new Map([
- [borderWidth.property, "medium"],
- [borderStyle.property, "none"],
- [borderColor.property, "currentcolor"]
-]);
-
-module.exports.shorthandFor = new Map([
- [borderWidth.property, borderWidth],
- [borderStyle.property, borderStyle],
- [borderColor.property, borderColor]
-]);
-
-module.exports.positionShorthandFor = new Map([
- [borderTop.property, borderTop],
- [borderRight.property, borderRight],
- [borderBottom.property, borderBottom],
- [borderLeft.property, borderLeft]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "" || parsers.hasVarFunc(v)) {
- return v;
- }
- const values = parsers.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveBorderShorthandValue(value, subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = module.exports.shorthandFor.keys();
- const obj = {
- [borderWidth.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== module.exports.initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[borderWidth.property] && obj[borderWidth.property] === "medium") {
- delete obj[borderWidth.property];
- }
- }
- }
- }
- return obj;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderBottom.js b/vanilla/node_modules/cssstyle/lib/properties/borderBottom.js
deleted file mode 100644
index 7cb2892..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderBottom.js
+++ /dev/null
@@ -1,100 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderBottomWidth = require("./borderBottomWidth");
-const borderBottomStyle = require("./borderBottomStyle");
-const borderBottomColor = require("./borderBottomColor");
-
-const property = "border-bottom";
-const shorthand = "border";
-
-const subProps = {
- width: borderBottomWidth.property,
- style: borderBottomStyle.property,
- color: borderBottomColor.property
-};
-
-module.exports.initialValues = new Map([
- [borderBottomWidth.property, "medium"],
- [borderBottomStyle.property, "none"],
- [borderBottomColor.property, "currentcolor"]
-]);
-
-module.exports.shorthandFor = new Map([
- [borderBottomWidth.property, borderBottomWidth],
- [borderBottomStyle.property, borderBottomStyle],
- [borderBottomColor.property, borderBottomColor]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveBorderShorthandValue(value, subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = module.exports.shorthandFor.keys();
- const obj = {
- [borderBottomWidth.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== module.exports.initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[borderBottomWidth.property] && obj[borderBottomWidth.property] === "medium") {
- delete obj[borderBottomWidth.property];
- }
- }
- }
- }
- return obj;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderBottomColor.js b/vanilla/node_modules/cssstyle/lib/properties/borderBottomColor.js
deleted file mode 100644
index b458fd4..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderBottomColor.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-bottom-color";
-const lineShorthand = "border-color";
-const positionShorthand = "border-bottom";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderBottomStyle.js b/vanilla/node_modules/cssstyle/lib/properties/borderBottomStyle.js
deleted file mode 100644
index b54b6a9..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderBottomStyle.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-bottom-style";
-const lineShorthand = "border-style";
-const positionShorthand = "border-bottom";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderBottomWidth.js b/vanilla/node_modules/cssstyle/lib/properties/borderBottomWidth.js
deleted file mode 100644
index 3200365..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderBottomWidth.js
+++ /dev/null
@@ -1,57 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-bottom-width";
-const lineShorthand = "border-width";
-const positionShorthand = "border-bottom";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderCollapse.js b/vanilla/node_modules/cssstyle/lib/properties/borderCollapse.js
deleted file mode 100644
index f77c445..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderCollapse.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-collapse";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderColor.js b/vanilla/node_modules/cssstyle/lib/properties/borderColor.js
deleted file mode 100644
index 232d34c..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderColor.js
+++ /dev/null
@@ -1,110 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderTopColor = require("./borderTopColor");
-const borderRightColor = require("./borderRightColor");
-const borderBottomColor = require("./borderBottomColor");
-const borderLeftColor = require("./borderLeftColor");
-
-const property = "border-color";
-const shorthand = "border";
-
-module.exports.shorthandFor = new Map([
- [borderTopColor.property, borderTopColor],
- [borderRightColor.property, borderRightColor],
- [borderBottomColor.property, borderBottomColor],
- [borderLeftColor.property, borderLeftColor]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = parsers.resolveColorValue([value], {
- length: values.length
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- switch (parsedValues.length) {
- case 1: {
- return parsedValues;
- }
- case 2: {
- const [val1, val2] = parsedValues;
- if (val1 === val2) {
- return [val1];
- }
- return parsedValues;
- }
- case 3: {
- const [val1, val2, val3] = parsedValues;
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return parsedValues;
- }
- case 4: {
- const [val1, val2, val3, val4] = parsedValues;
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return [val1, val2, val3];
- }
- return parsedValues;
- }
- default:
- }
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderLeft.js b/vanilla/node_modules/cssstyle/lib/properties/borderLeft.js
deleted file mode 100644
index 7c40f58..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderLeft.js
+++ /dev/null
@@ -1,100 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderLeftWidth = require("./borderLeftWidth");
-const borderLeftStyle = require("./borderLeftStyle");
-const borderLeftColor = require("./borderLeftColor");
-
-const property = "border-left";
-const shorthand = "border";
-
-const subProps = {
- width: borderLeftWidth.property,
- style: borderLeftStyle.property,
- color: borderLeftColor.property
-};
-
-module.exports.initialValues = new Map([
- [borderLeftWidth.property, "medium"],
- [borderLeftStyle.property, "none"],
- [borderLeftColor.property, "currentcolor"]
-]);
-
-module.exports.shorthandFor = new Map([
- [borderLeftWidth.property, borderLeftWidth],
- [borderLeftStyle.property, borderLeftStyle],
- [borderLeftColor.property, borderLeftColor]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveBorderShorthandValue(value, subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = module.exports.shorthandFor.keys();
- const obj = {
- [borderLeftWidth.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== module.exports.initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[borderLeftWidth.property] && obj[borderLeftWidth.property] === "medium") {
- delete obj[borderLeftWidth.property];
- }
- }
- }
- }
- return obj;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderLeftColor.js b/vanilla/node_modules/cssstyle/lib/properties/borderLeftColor.js
deleted file mode 100644
index 7cb630e..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderLeftColor.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-left-color";
-const lineShorthand = "border-color";
-const positionShorthand = "border-left";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderLeftStyle.js b/vanilla/node_modules/cssstyle/lib/properties/borderLeftStyle.js
deleted file mode 100644
index 8fa5761..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderLeftStyle.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-left-style";
-const lineShorthand = "border-style";
-const positionShorthand = "border-left";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderLeftWidth.js b/vanilla/node_modules/cssstyle/lib/properties/borderLeftWidth.js
deleted file mode 100644
index 74dd03f..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderLeftWidth.js
+++ /dev/null
@@ -1,57 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-left-width";
-const lineShorthand = "border-width";
-const positionShorthand = "border-left";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderRight.js b/vanilla/node_modules/cssstyle/lib/properties/borderRight.js
deleted file mode 100644
index 43c2878..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderRight.js
+++ /dev/null
@@ -1,100 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderRightWidth = require("./borderRightWidth");
-const borderRightStyle = require("./borderRightStyle");
-const borderRightColor = require("./borderRightColor");
-
-const property = "border-right";
-const shorthand = "border";
-
-const subProps = {
- width: borderRightWidth.property,
- style: borderRightStyle.property,
- color: borderRightColor.property
-};
-
-module.exports.initialValues = new Map([
- [borderRightWidth.property, "medium"],
- [borderRightStyle.property, "none"],
- [borderRightColor.property, "currentcolor"]
-]);
-
-module.exports.shorthandFor = new Map([
- [borderRightWidth.property, borderRightWidth],
- [borderRightStyle.property, borderRightStyle],
- [borderRightColor.property, borderRightColor]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveBorderShorthandValue(value, subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = module.exports.shorthandFor.keys();
- const obj = {
- [borderRightWidth.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== module.exports.initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[borderRightWidth.property] && obj[borderRightWidth.property] === "medium") {
- delete obj[borderRightWidth.property];
- }
- }
- }
- }
- return obj;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderRightColor.js b/vanilla/node_modules/cssstyle/lib/properties/borderRightColor.js
deleted file mode 100644
index 9071c50..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderRightColor.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-right-color";
-const lineShorthand = "border-color";
-const positionShorthand = "border-right";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderRightStyle.js b/vanilla/node_modules/cssstyle/lib/properties/borderRightStyle.js
deleted file mode 100644
index 09ffe48..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderRightStyle.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-right-style";
-const lineShorthand = "border-style";
-const positionShorthand = "border-right";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderRightWidth.js b/vanilla/node_modules/cssstyle/lib/properties/borderRightWidth.js
deleted file mode 100644
index b56ab28..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderRightWidth.js
+++ /dev/null
@@ -1,57 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-right-width";
-const lineShorthand = "border-width";
-const positionShorthand = "border-right";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderSpacing.js b/vanilla/node_modules/cssstyle/lib/properties/borderSpacing.js
deleted file mode 100644
index 3bba0be..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderSpacing.js
+++ /dev/null
@@ -1,65 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-spacing";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- switch (value.length) {
- case 1: {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- }
- case 2: {
- const [part1, part2] = value;
- const val1 = parsers.resolveNumericValue([part1], {
- type: "length"
- });
- const val2 = parsers.resolveNumericValue([part2], {
- type: "length"
- });
- if (val1 && val2) {
- return `${val1} ${val2}`;
- }
- break;
- }
- default:
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderStyle.js b/vanilla/node_modules/cssstyle/lib/properties/borderStyle.js
deleted file mode 100644
index 2cf8836..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderStyle.js
+++ /dev/null
@@ -1,110 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderTopStyle = require("./borderTopStyle");
-const borderRightStyle = require("./borderRightStyle");
-const borderBottomStyle = require("./borderBottomStyle");
-const borderLeftStyle = require("./borderLeftStyle");
-
-const property = "border-style";
-const shorthand = "border";
-
-module.exports.shorthandFor = new Map([
- [borderTopStyle.property, borderTopStyle],
- [borderRightStyle.property, borderRightStyle],
- [borderBottomStyle.property, borderBottomStyle],
- [borderLeftStyle.property, borderLeftStyle]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = parsers.resolveKeywordValue([value], {
- length: values.length
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- switch (parsedValues.length) {
- case 1: {
- return parsedValues;
- }
- case 2: {
- const [val1, val2] = parsedValues;
- if (val1 === val2) {
- return [val1];
- }
- return parsedValues;
- }
- case 3: {
- const [val1, val2, val3] = parsedValues;
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return parsedValues;
- }
- case 4: {
- const [val1, val2, val3, val4] = parsedValues;
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return [val1, val2, val3];
- }
- return parsedValues;
- }
- default:
- }
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderTop.js b/vanilla/node_modules/cssstyle/lib/properties/borderTop.js
deleted file mode 100644
index 29f649d..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderTop.js
+++ /dev/null
@@ -1,100 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderTopWidth = require("./borderTopWidth");
-const borderTopStyle = require("./borderTopStyle");
-const borderTopColor = require("./borderTopColor");
-
-const property = "border-top";
-const shorthand = "border";
-
-const subProps = {
- width: borderTopWidth.property,
- style: borderTopStyle.property,
- color: borderTopColor.property
-};
-
-module.exports.initialValues = new Map([
- [borderTopWidth.property, "medium"],
- [borderTopStyle.property, "none"],
- [borderTopColor.property, "currentcolor"]
-]);
-
-module.exports.shorthandFor = new Map([
- [borderTopWidth.property, borderTopWidth],
- [borderTopStyle.property, borderTopStyle],
- [borderTopColor.property, borderTopColor]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v);
- const parsedValues = new Map();
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveBorderShorthandValue(value, subProps, parsedValues);
- if (typeof parsedValue === "string") {
- return parsedValue;
- } else if (Array.isArray(parsedValue)) {
- const [key, resolvedVal] = parsedValue;
- parsedValues.set(key, resolvedVal);
- } else {
- return;
- }
- } else {
- return;
- }
- }
- if (parsedValues.size) {
- const keys = module.exports.shorthandFor.keys();
- const obj = {
- [borderTopWidth.property]: "medium"
- };
- for (const key of keys) {
- if (parsedValues.has(key)) {
- const parsedValue = parsedValues.get(key);
- if (parsedValue !== module.exports.initialValues.get(key)) {
- obj[key] = parsedValues.get(key);
- if (obj[borderTopWidth.property] && obj[borderTopWidth.property] === "medium") {
- delete obj[borderTopWidth.property];
- }
- }
- }
- }
- return obj;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (val || typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderTopColor.js b/vanilla/node_modules/cssstyle/lib/properties/borderTopColor.js
deleted file mode 100644
index 3c22b90..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderTopColor.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-top-color";
-const lineShorthand = "border-color";
-const positionShorthand = "border-top";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderTopStyle.js b/vanilla/node_modules/cssstyle/lib/properties/borderTopStyle.js
deleted file mode 100644
index c0bdf0e..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderTopStyle.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-top-style";
-const lineShorthand = "border-style";
-const positionShorthand = "border-top";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderTopWidth.js b/vanilla/node_modules/cssstyle/lib/properties/borderTopWidth.js
deleted file mode 100644
index 177fe83..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderTopWidth.js
+++ /dev/null
@@ -1,57 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "border-top-width";
-const lineShorthand = "border-width";
-const positionShorthand = "border-top";
-const shorthand = "border";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const shorthandPriority = this._priorities.get(shorthand);
- const linePriority = this._priorities.get(lineShorthand);
- const positionPriority = this._priorities.get(positionShorthand);
- const priority =
- !(shorthandPriority || linePriority || positionPriority) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/borderWidth.js b/vanilla/node_modules/cssstyle/lib/properties/borderWidth.js
deleted file mode 100644
index 1306f2e..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/borderWidth.js
+++ /dev/null
@@ -1,111 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const borderTopWidth = require("./borderTopWidth");
-const borderRightWidth = require("./borderRightWidth");
-const borderBottomWidth = require("./borderBottomWidth");
-const borderLeftWidth = require("./borderLeftWidth");
-
-const property = "border-width";
-const shorthand = "border";
-
-module.exports.shorthandFor = new Map([
- [borderTopWidth.property, borderTopWidth],
- [borderRightWidth.property, borderRightWidth],
- [borderBottomWidth.property, borderBottomWidth],
- [borderLeftWidth.property, borderLeftWidth]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = parsers.resolveNumericValue([value], {
- length: values.length,
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- switch (parsedValues.length) {
- case 1: {
- return parsedValues;
- }
- case 2: {
- const [val1, val2] = parsedValues;
- if (val1 === val2) {
- return [val1];
- }
- return parsedValues;
- }
- case 3: {
- const [val1, val2, val3] = parsedValues;
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return parsedValues;
- }
- case 4: {
- const [val1, val2, val3, val4] = parsedValues;
- if (val2 === val4) {
- if (val1 === val3) {
- if (val1 === val2) {
- return [val1];
- }
- return [val1, val2];
- }
- return [val1, val2, val3];
- }
- return parsedValues;
- }
- default:
- }
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._borderSetter(property, v, "");
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._borderSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/bottom.js b/vanilla/node_modules/cssstyle/lib/properties/bottom.js
deleted file mode 100644
index af7bc58..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/bottom.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "bottom";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/clear.js b/vanilla/node_modules/cssstyle/lib/properties/clear.js
deleted file mode 100644
index 28e9ef3..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/clear.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "clear";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/clip.js b/vanilla/node_modules/cssstyle/lib/properties/clip.js
deleted file mode 100644
index a3db772..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/clip.js
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-// deprecated
-// @see https://drafts.csswg.org/css-masking-1/#clip-property
-
-const parsers = require("../parsers");
-
-const property = "clip";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const [{ name, type, value: itemValue }] = value;
- switch (type) {
- case AST_TYPES.FUNCTION: {
- const values = parsers.splitValue(itemValue, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const item of values) {
- const parsedValue = parsers.parseCSS(item, { context: "value" }, true);
- const val = parsers.resolveNumericValue(parsedValue.children, {
- type: "length"
- });
- if (val) {
- parsedValues.push(val);
- } else {
- return;
- }
- }
- return `${name}(${parsedValues.join(", ")})`;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER: {
- return name;
- }
- default:
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/color.js b/vanilla/node_modules/cssstyle/lib/properties/color.js
deleted file mode 100644
index d0ad35c..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/color.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/display.js b/vanilla/node_modules/cssstyle/lib/properties/display.js
deleted file mode 100644
index d331d54..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/display.js
+++ /dev/null
@@ -1,210 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "display";
-
-/* keywords */
-const displayOutside = ["block", "inline", "run-in"];
-const displayFlow = ["flow", "flow-root"];
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- switch (value.length) {
- case 1: {
- const [{ name, type }] = value;
- switch (type) {
- case AST_TYPES.GLOBAL_KEYWORD: {
- return name;
- }
- case AST_TYPES.IDENTIFIER: {
- if (name === "flow") {
- return "block";
- }
- return name;
- }
- default:
- }
- break;
- }
- case 2: {
- const [part1, part2] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
- if (val1 && val2) {
- let outerValue = "";
- let innerValue = "";
- if (val1 === "list-item") {
- outerValue = val2;
- innerValue = val1;
- } else if (val2 === "list-item") {
- outerValue = val1;
- innerValue = val2;
- } else if (displayOutside.includes(val1)) {
- outerValue = val1;
- innerValue = val2;
- } else if (displayOutside.includes(val2)) {
- outerValue = val2;
- innerValue = val1;
- }
- if (innerValue === "list-item") {
- switch (outerValue) {
- case "block":
- case "flow": {
- return innerValue;
- }
- case "flow-root":
- case "inline":
- case "run-in": {
- return `${outerValue} ${innerValue}`;
- }
- default:
- }
- } else if (outerValue === "block") {
- switch (innerValue) {
- case "flow": {
- return outerValue;
- }
- case "flow-root":
- case "flex":
- case "grid":
- case "table": {
- return innerValue;
- }
- case "ruby": {
- return `${outerValue} ${innerValue}`;
- }
- default:
- }
- } else if (outerValue === "inline") {
- switch (innerValue) {
- case "flow": {
- return outerValue;
- }
- case "flow-root": {
- return `${outerValue}-block`;
- }
- case "flex":
- case "grid":
- case "table": {
- return `${outerValue}-${innerValue}`;
- }
- case "ruby": {
- return innerValue;
- }
- default:
- }
- } else if (outerValue === "run-in") {
- switch (innerValue) {
- case "flow": {
- return outerValue;
- }
- case "flow-root":
- case "flex":
- case "grid":
- case "table":
- case "ruby": {
- return `${outerValue} ${innerValue}`;
- }
- default:
- }
- }
- }
- break;
- }
- case 3: {
- const [part1, part2, part3] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = part2.type === AST_TYPES.IDENTIFIER && part2.name;
- const val3 = part3.type === AST_TYPES.IDENTIFIER && part3.name;
- if (val1 && val2 && part3) {
- let outerValue = "";
- let flowValue = "";
- let listItemValue = "";
- if (val1 === "list-item") {
- listItemValue = val1;
- if (displayFlow.includes(val2)) {
- flowValue = val2;
- outerValue = val3;
- } else if (displayFlow.includes(val3)) {
- flowValue = val3;
- outerValue = val2;
- }
- } else if (val2 === "list-item") {
- listItemValue = val2;
- if (displayFlow.includes(val1)) {
- flowValue = val1;
- outerValue = val3;
- } else if (displayFlow.includes(val3)) {
- flowValue = val3;
- outerValue = val1;
- }
- } else if (val3 === "list-item") {
- listItemValue = val3;
- if (displayFlow.includes(val1)) {
- flowValue = val1;
- outerValue = val2;
- } else if (displayFlow.includes(val2)) {
- flowValue = val2;
- outerValue = val1;
- }
- }
- if (outerValue && flowValue && listItemValue) {
- switch (outerValue) {
- case "block": {
- if (flowValue === "flow") {
- return listItemValue;
- }
- return `${flowValue} ${listItemValue}`;
- }
- case "inline":
- case "run-in": {
- if (flowValue === "flow") {
- return `${outerValue} ${listItemValue}`;
- }
- return `${outerValue} ${flowValue} ${listItemValue}`;
- }
- }
- }
- }
- break;
- }
- default:
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/flex.js b/vanilla/node_modules/cssstyle/lib/properties/flex.js
deleted file mode 100644
index 084e99d..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/flex.js
+++ /dev/null
@@ -1,178 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const flexGrow = require("./flexGrow");
-const flexShrink = require("./flexShrink");
-const flexBasis = require("./flexBasis");
-
-const property = "flex";
-
-module.exports.initialValues = new Map([
- [flexGrow.property, "0"],
- [flexShrink.property, "1"],
- [flexBasis.property, "auto"]
-]);
-
-module.exports.shorthandFor = new Map([
- [flexGrow.property, flexGrow],
- [flexShrink.property, flexShrink],
- [flexBasis.property, flexBasis]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- const flex = {
- [flexGrow.property]: "1",
- [flexShrink.property]: "1",
- [flexBasis.property]: "0%"
- };
- if (value.length === 1) {
- const [{ isNumber, name, type, unit, value: itemValue }] = value;
- switch (type) {
- case AST_TYPES.CALC: {
- if (isNumber) {
- flex[flexGrow.property] = `${name}(${itemValue})`;
- return flex;
- }
- flex[flexBasis.property] = `${name}(${itemValue})`;
- return flex;
- }
- case AST_TYPES.DIMENSION: {
- flex[flexBasis.property] = `${itemValue}${unit}`;
- return flex;
- }
- case AST_TYPES.GLOBAL_KEYWORD: {
- return name;
- }
- case AST_TYPES.IDENTIFIER: {
- if (name === "none") {
- return {
- [flexGrow.property]: "0",
- [flexShrink.property]: "0",
- [flexBasis.property]: "auto"
- };
- }
- flex[flexBasis.property] = name;
- return flex;
- }
- case AST_TYPES.NUMBER: {
- flex[flexGrow.property] = itemValue;
- return flex;
- }
- case AST_TYPES.PERCENTAGE: {
- flex[flexBasis.property] = `${itemValue}%`;
- return flex;
- }
- default:
- }
- } else {
- const [val1, val2, val3] = value;
- if (val1.type === AST_TYPES.CALC && val1.isNumber) {
- flex[flexGrow.property] = `${val1.name}(${val1.value})`;
- } else if (val1.type === AST_TYPES.NUMBER) {
- flex[flexGrow.property] = val1.value;
- } else {
- return;
- }
- if (val3) {
- if (val2.type === AST_TYPES.CALC && val2.isNumber) {
- flex[flexShrink.property] = `${val2.name}(${val2.value})`;
- } else if (val2.type === AST_TYPES.NUMBER) {
- flex[flexShrink.property] = val2.value;
- } else {
- return;
- }
- if (val3.type === AST_TYPES.GLOBAL_KEYWORD || val3.type === AST_TYPES.IDENTIFIER) {
- flex[flexBasis.property] = val3.name;
- } else if (val3.type === AST_TYPES.CALC && !val3.isNumber) {
- flex[flexBasis.property] = `${val3.name}(${val3.value})`;
- } else if (val3.type === AST_TYPES.DIMENSION) {
- flex[flexBasis.property] = `${val3.value}${val3.unit}`;
- } else if (val3.type === AST_TYPES.PERCENTAGE) {
- flex[flexBasis.property] = `${val3.value}%`;
- } else {
- return;
- }
- } else {
- switch (val2.type) {
- case AST_TYPES.CALC: {
- if (val2.isNumber) {
- flex[flexShrink.property] = `${val2.name}(${val2.value})`;
- } else {
- flex[flexBasis.property] = `${val2.name}(${val2.value})`;
- }
- break;
- }
- case AST_TYPES.DIMENSION: {
- flex[flexBasis.property] = `${val2.value}${val2.unit}`;
- break;
- }
- case AST_TYPES.NUMBER: {
- flex[flexShrink.property] = val2.value;
- break;
- }
- case AST_TYPES.PERCENTAGE: {
- flex[flexBasis.property] = `${val2.value}%`;
- break;
- }
- case AST_TYPES.IDENTIFIER: {
- flex[flexBasis.property] = val2.name;
- break;
- }
- default: {
- return;
- }
- }
- }
- return flex;
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- for (const [longhand] of module.exports.shorthandFor) {
- this._setProperty(longhand, "");
- }
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- const priority = this._priorities.get(property) ?? "";
- if (typeof val === "string") {
- for (const [longhand] of module.exports.shorthandFor) {
- this._setProperty(longhand, val, priority);
- }
- this._setProperty(property, val, priority);
- } else if (val) {
- const values = [];
- for (const [longhand, value] of Object.entries(val)) {
- values.push(value);
- this._setProperty(longhand, value, priority);
- }
- this._setProperty(property, values.join(" "), priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/flexBasis.js b/vanilla/node_modules/cssstyle/lib/properties/flexBasis.js
deleted file mode 100644
index 68bebc2..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/flexBasis.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "flex-basis";
-const shorthand = "flex";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._flexBoxSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/flexGrow.js b/vanilla/node_modules/cssstyle/lib/properties/flexGrow.js
deleted file mode 100644
index 7789021..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/flexGrow.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "flex-grow";
-const shorthand = "flex";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue("flex-grow", v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._flexBoxSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/flexShrink.js b/vanilla/node_modules/cssstyle/lib/properties/flexShrink.js
deleted file mode 100644
index ed0abb4..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/flexShrink.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "flex-shrink";
-const shorthand = "flex";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._flexBoxSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/float.js b/vanilla/node_modules/cssstyle/lib/properties/float.js
deleted file mode 100644
index 7080260..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/float.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "float";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveKeywordValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/floodColor.js b/vanilla/node_modules/cssstyle/lib/properties/floodColor.js
deleted file mode 100644
index 7ef4fe8..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/floodColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "flood-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/font.js b/vanilla/node_modules/cssstyle/lib/properties/font.js
deleted file mode 100644
index 17897f3..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/font.js
+++ /dev/null
@@ -1,302 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const fontStyle = require("./fontStyle");
-const fontVariant = require("./fontVariant");
-const fontWeight = require("./fontWeight");
-const fontSize = require("./fontSize");
-const lineHeight = require("./lineHeight");
-const fontFamily = require("./fontFamily");
-
-const property = "font";
-
-module.exports.shorthandFor = new Map([
- [fontStyle.property, fontStyle],
- [fontVariant.property, fontVariant],
- [fontWeight.property, fontWeight],
- [fontSize.property, fontSize],
- [lineHeight.property, lineHeight],
- [fontFamily.property, fontFamily]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- } else if (parsers.hasCalcFunc(v)) {
- v = parsers.resolveCalc(v);
- }
- if (!parsers.isValidPropertyValue(property, v)) {
- return;
- }
- const { AST_TYPES } = parsers;
- const [fontBlock, ...families] = parsers.splitValue(v, {
- delimiter: ","
- });
- const [fontBlockA, fontBlockB] = parsers.splitValue(fontBlock, {
- delimiter: "/"
- });
- const font = {
- [fontStyle.property]: "normal",
- [fontVariant.property]: "normal",
- [fontWeight.property]: "normal"
- };
- const fontFamilies = new Set();
- if (fontBlockB) {
- const [lineB, ...familiesB] = fontBlockB.trim().split(" ");
- if (!lineB || !familiesB.length) {
- return;
- }
- const lineHeightB = lineHeight.parse(lineB, {
- global
- });
- if (typeof lineHeightB !== "string") {
- return;
- }
- const familyB = fontFamily.parse(familiesB.join(" "), {
- globalObject,
- caseSensitive: true
- });
- if (typeof familyB === "string") {
- fontFamilies.add(familyB);
- } else {
- return;
- }
- const parts = parsers.splitValue(fontBlockA.trim());
- const properties = [
- fontStyle.property,
- fontVariant.property,
- fontWeight.property,
- fontSize.property
- ];
- for (const part of parts) {
- if (part === "normal") {
- continue;
- } else {
- for (const longhand of properties) {
- switch (longhand) {
- case fontSize.property: {
- const parsedValue = fontSize.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- font[longhand] = parsedValue;
- }
- break;
- }
- case fontStyle.property:
- case fontWeight.property: {
- if (font[longhand] === "normal") {
- const longhandItem = module.exports.shorthandFor.get(longhand);
- const parsedValue = longhandItem.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- font[longhand] = parsedValue;
- }
- }
- break;
- }
- case fontVariant.property: {
- if (font[longhand] === "normal") {
- const parsedValue = fontVariant.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- if (parsedValue === "small-cap") {
- font[longhand] = parsedValue;
- } else if (parsedValue !== "normal") {
- return;
- }
- }
- }
- break;
- }
- default:
- }
- }
- }
- }
- if (Object.hasOwn(font, fontSize.property)) {
- font[lineHeight.property] = lineHeightB;
- } else {
- return;
- }
- } else {
- const revParts = parsers.splitValue(fontBlockA.trim()).toReversed();
- if (revParts.length === 1) {
- const [part] = revParts;
- const value = parsers.parsePropertyValue(property, part, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const [{ name, type }] = value;
- if (type === AST_TYPES.GLOBAL_KEYWORD) {
- return {
- [fontStyle.property]: name,
- [fontVariant.property]: name,
- [fontWeight.property]: name,
- [fontSize.property]: name,
- [lineHeight.property]: name,
- [fontFamily.property]: name
- };
- }
- }
- return;
- }
- const properties = [
- fontStyle.property,
- fontVariant.property,
- fontWeight.property,
- lineHeight.property
- ];
- for (const longhand of properties) {
- font[longhand] = "normal";
- }
- const revFontFamily = [];
- let fontSizeA;
- for (const part of revParts) {
- if (fontSizeA) {
- if (/^normal$/i.test(part)) {
- continue;
- } else {
- for (const longhand of properties) {
- switch (longhand) {
- case fontStyle.property:
- case fontWeight.property:
- case lineHeight.property: {
- if (font[longhand] === "normal") {
- const longhandItem = module.exports.shorthandFor.get(longhand);
- const parsedValue = longhandItem.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- font[longhand] = parsedValue;
- }
- }
- break;
- }
- case fontVariant.property: {
- if (font[longhand] === "normal") {
- const parsedValue = fontVariant.parse(part, {
- globalObject
- });
- if (typeof parsedValue === "string") {
- if (parsedValue === "small-cap") {
- font[longhand] = parsedValue;
- } else if (parsedValue !== "normal") {
- return;
- }
- }
- }
- break;
- }
- default:
- }
- }
- }
- } else {
- const parsedFontSize = fontSize.parse(part, {
- globalObject
- });
- if (typeof parsedFontSize === "string") {
- fontSizeA = parsedFontSize;
- } else {
- const parsedFontFamily = fontFamily.parse(part, {
- globalObject,
- caseSensitive: true
- });
- if (typeof parsedFontFamily === "string") {
- revFontFamily.push(parsedFontFamily);
- } else {
- return;
- }
- }
- }
- }
- const family = fontFamily.parse(revFontFamily.toReversed().join(" "), {
- globalObject,
- caseSensitive: true
- });
- if (fontSizeA && family) {
- font[fontSize.property] = fontSizeA;
- fontFamilies.add(fontFamily.parse(family));
- } else {
- return;
- }
- }
- for (const family of families) {
- const parsedFontFamily = fontFamily.parse(family, {
- globalObject,
- caseSensitive: true
- });
- if (parsedFontFamily) {
- fontFamilies.add(parsedFontFamily);
- } else {
- return;
- }
- }
- font[fontFamily.property] = [...fontFamilies].join(", ");
- return font;
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (v === "" || parsers.hasVarFunc(v)) {
- for (const [key] of module.exports.shorthandFor) {
- this._setProperty(key, "");
- }
- this._setProperty(property, v);
- } else {
- const obj = module.exports.parse(v, {
- globalObject: this._global
- });
- if (!obj) {
- return;
- }
- const priority = this._priorities.get(property) ?? "";
- const str = new Set();
- for (const [key] of module.exports.shorthandFor) {
- const val = obj[key];
- if (typeof val === "string") {
- this._setProperty(key, val, priority);
- if (val && val !== "normal" && !str.has(val)) {
- if (key === lineHeight.property) {
- str.add(`/ ${val}`);
- } else {
- str.add(val);
- }
- }
- }
- }
- this._setProperty(property, [...str].join(" "), priority);
- }
- },
- get() {
- const val = this.getPropertyValue(property);
- if (parsers.hasVarFunc(val)) {
- return val;
- }
- const str = new Set();
- for (const [key] of module.exports.shorthandFor) {
- const v = this.getPropertyValue(key);
- if (parsers.hasVarFunc(v)) {
- return "";
- }
- if (v && v !== "normal" && !str.has(v)) {
- if (key === lineHeight.property) {
- str.add(`/ ${v}`);
- } else {
- str.add(`${v}`);
- }
- }
- }
- return [...str].join(" ");
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/fontFamily.js b/vanilla/node_modules/cssstyle/lib/properties/fontFamily.js
deleted file mode 100644
index e3fc7ee..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/fontFamily.js
+++ /dev/null
@@ -1,98 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "font-family";
-const shorthand = "font";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const values = parsers.splitValue(v, {
- delimiter: ","
- });
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- caseSensitive: true,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- if (value.length === 1) {
- const [{ name, type, value: itemValue }] = value;
- switch (type) {
- case AST_TYPES.FUNCTION: {
- parsedValues.push(`${name}(${itemValue})`);
- break;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER: {
- if (name === "undefined") {
- return;
- }
- parsedValues.push(name);
- break;
- }
- case "String": {
- const parsedValue = itemValue.replaceAll("\\", "").replaceAll('"', '\\"');
- parsedValues.push(`"${parsedValue}"`);
- break;
- }
- default: {
- return;
- }
- }
- } else {
- const parts = [];
- for (const item of value) {
- const { name, type } = item;
- if (type !== AST_TYPES.IDENTIFIER) {
- return;
- }
- parts.push(name);
- }
- const parsedValue = parts.join(" ").replaceAll("\\", "").replaceAll('"', '\\"');
- parsedValues.push(`"${parsedValue}"`);
- }
- } else if (typeof value === "string") {
- parsedValues.push(value);
- } else {
- return;
- }
- }
- if (parsedValues.length) {
- return parsedValues.join(", ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/fontSize.js b/vanilla/node_modules/cssstyle/lib/properties/fontSize.js
deleted file mode 100644
index 80b015e..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/fontSize.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "font-size";
-const shorthand = "font";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/fontStyle.js b/vanilla/node_modules/cssstyle/lib/properties/fontStyle.js
deleted file mode 100644
index f07a17d..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/fontStyle.js
+++ /dev/null
@@ -1,69 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "font-style";
-const shorthand = "font";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const { AST_TYPES } = parsers;
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length) {
- if (value.length === 1) {
- const [{ name, type }] = value;
- switch (type) {
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER: {
- return name;
- }
- default:
- }
- } else if (value.length === 2) {
- const [part1, part2] = value;
- const val1 = part1.type === AST_TYPES.IDENTIFIER && part1.name;
- const val2 = parsers.resolveNumericValue([part2], {
- type: "angle"
- });
- if (val1 && val1 === "oblique" && val2) {
- return `${val1} ${val2}`;
- }
- }
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/fontVariant.js b/vanilla/node_modules/cssstyle/lib/properties/fontVariant.js
deleted file mode 100644
index 515b75e..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/fontVariant.js
+++ /dev/null
@@ -1,66 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "font-variant";
-const shorthand = "font";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.splitValue(v);
- const parsedValues = [];
- for (const val of values) {
- const value = parsers.parsePropertyValue(property, val, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveFunctionValue(value);
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- } else if (typeof value === "string") {
- parsedValues.push(value);
- }
- }
- if (parsedValues.length) {
- if (parsedValues.length > 1) {
- if (parsedValues.includes("normal") || parsedValues.includes("none")) {
- return;
- }
- }
- return parsedValues.join(" ");
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/fontWeight.js b/vanilla/node_modules/cssstyle/lib/properties/fontWeight.js
deleted file mode 100644
index 8087e07..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/fontWeight.js
+++ /dev/null
@@ -1,57 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "font-weight";
-const shorthand = "font";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- const parsedValue = parsers.resolveNumericValue(value, {
- min: 1,
- max: 1000
- });
- if (!parsedValue) {
- return;
- }
- return parsedValue;
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/height.js b/vanilla/node_modules/cssstyle/lib/properties/height.js
deleted file mode 100644
index 1e3bd78..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/height.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "height";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/left.js b/vanilla/node_modules/cssstyle/lib/properties/left.js
deleted file mode 100644
index 8cea211..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/left.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "left";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/lightingColor.js b/vanilla/node_modules/cssstyle/lib/properties/lightingColor.js
deleted file mode 100644
index a007bd5..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/lightingColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "lighting-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/lineHeight.js b/vanilla/node_modules/cssstyle/lib/properties/lineHeight.js
deleted file mode 100644
index e1f4b37..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/lineHeight.js
+++ /dev/null
@@ -1,52 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "line-height";
-const shorthand = "font";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/margin.js b/vanilla/node_modules/cssstyle/lib/properties/margin.js
deleted file mode 100644
index ffb8704..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/margin.js
+++ /dev/null
@@ -1,77 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const marginTop = require("./marginTop");
-const marginRight = require("./marginRight");
-const marginBottom = require("./marginBottom");
-const marginLeft = require("./marginLeft");
-
-const property = "margin";
-
-module.exports.position = "edges";
-
-module.exports.shorthandFor = new Map([
- [marginTop.property, marginTop],
- [marginRight.property, marginRight],
- [marginBottom.property, marginBottom],
- [marginLeft.property, marginLeft]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = parsers.resolveNumericValue([value], {
- length: values.length,
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- return parsedValues;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- for (const [longhand] of module.exports.shorthandFor) {
- this._setProperty(longhand, "");
- }
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._positionShorthandSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/marginBottom.js b/vanilla/node_modules/cssstyle/lib/properties/marginBottom.js
deleted file mode 100644
index c3b1e0b..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/marginBottom.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "margin-bottom";
-const shorthand = "margin";
-
-module.exports.position = "bottom";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/marginLeft.js b/vanilla/node_modules/cssstyle/lib/properties/marginLeft.js
deleted file mode 100644
index f70fe4a..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/marginLeft.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "margin-left";
-const shorthand = "margin";
-
-module.exports.position = "left";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/marginRight.js b/vanilla/node_modules/cssstyle/lib/properties/marginRight.js
deleted file mode 100644
index 8ec0234..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/marginRight.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "margin-right";
-const shorthand = "margin";
-
-module.exports.position = "right";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/marginTop.js b/vanilla/node_modules/cssstyle/lib/properties/marginTop.js
deleted file mode 100644
index af8f842..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/marginTop.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "margin-top";
-const shorthand = "margin";
-
-module.exports.position = "top";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/opacity.js b/vanilla/node_modules/cssstyle/lib/properties/opacity.js
deleted file mode 100644
index 119fd28..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/opacity.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "opacity";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- clamp: true
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/outlineColor.js b/vanilla/node_modules/cssstyle/lib/properties/outlineColor.js
deleted file mode 100644
index 6e44b5a..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/outlineColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "outline-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/padding.js b/vanilla/node_modules/cssstyle/lib/properties/padding.js
deleted file mode 100644
index 0168aa6..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/padding.js
+++ /dev/null
@@ -1,78 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-const paddingTop = require("./paddingTop");
-const paddingRight = require("./paddingRight");
-const paddingBottom = require("./paddingBottom");
-const paddingLeft = require("./paddingLeft");
-
-const property = "padding";
-
-module.exports.position = "edges";
-
-module.exports.shorthandFor = new Map([
- [paddingTop.property, paddingTop],
- [paddingRight.property, paddingRight],
- [paddingBottom.property, paddingBottom],
- [paddingLeft.property, paddingLeft]
-]);
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const values = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- const parsedValues = [];
- if (Array.isArray(values) && values.length) {
- if (values.length > 4) {
- return;
- }
- for (const value of values) {
- const parsedValue = parsers.resolveNumericValue([value], {
- length: values.length,
- min: 0,
- type: "length"
- });
- if (!parsedValue) {
- return;
- }
- parsedValues.push(parsedValue);
- }
- } else if (typeof values === "string") {
- parsedValues.push(values);
- }
- if (parsedValues.length) {
- return parsedValues;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- for (const [longhand] of module.exports.shorthandFor) {
- this._setProperty(longhand, "");
- }
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (Array.isArray(val) || typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._positionShorthandSetter(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/paddingBottom.js b/vanilla/node_modules/cssstyle/lib/properties/paddingBottom.js
deleted file mode 100644
index 0b03592..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/paddingBottom.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "padding-bottom";
-const shorthand = "padding";
-
-module.exports.position = "bottom";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/paddingLeft.js b/vanilla/node_modules/cssstyle/lib/properties/paddingLeft.js
deleted file mode 100644
index 1b6b13e..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/paddingLeft.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "padding-left";
-const shorthand = "padding";
-
-module.exports.position = "left";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/paddingRight.js b/vanilla/node_modules/cssstyle/lib/properties/paddingRight.js
deleted file mode 100644
index f7088bd..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/paddingRight.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "padding-right";
-const shorthand = "padding";
-
-module.exports.position = "right";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/paddingTop.js b/vanilla/node_modules/cssstyle/lib/properties/paddingTop.js
deleted file mode 100644
index 32e9f76..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/paddingTop.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "padding-top";
-const shorthand = "padding";
-
-module.exports.position = "top";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(shorthand, "");
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority =
- !this._priorities.get(shorthand) && this._priorities.has(property)
- ? this._priorities.get(property)
- : "";
- this._positionLonghandSetter(property, val, priority, shorthand);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/right.js b/vanilla/node_modules/cssstyle/lib/properties/right.js
deleted file mode 100644
index a28687a..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/right.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "right";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/stopColor.js b/vanilla/node_modules/cssstyle/lib/properties/stopColor.js
deleted file mode 100644
index 4ab8871..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/stopColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "stop-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/top.js b/vanilla/node_modules/cssstyle/lib/properties/top.js
deleted file mode 100644
index 29794a8..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/top.js
+++ /dev/null
@@ -1,47 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "top";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js
deleted file mode 100644
index 7190ec3..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-border-after-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js
deleted file mode 100644
index f6008ff..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-border-before-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js
deleted file mode 100644
index 3870118..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-border-end-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js
deleted file mode 100644
index 96bec13..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-border-start-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js
deleted file mode 100644
index 087695f..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-column-rule-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js
deleted file mode 100644
index abda140..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-tap-highlight-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js
deleted file mode 100644
index 049babe..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-text-emphasis-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitTextFillColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitTextFillColor.js
deleted file mode 100644
index 027835d..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitTextFillColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-text-fill-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js b/vanilla/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js
deleted file mode 100644
index e4f7224..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "-webkit-text-stroke-color";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveColorValue(value);
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/properties/width.js b/vanilla/node_modules/cssstyle/lib/properties/width.js
deleted file mode 100644
index 91d5a1a..0000000
--- a/vanilla/node_modules/cssstyle/lib/properties/width.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const property = "width";
-
-module.exports.parse = (v, opt = {}) => {
- const { globalObject } = opt;
- if (v === "") {
- return v;
- }
- const value = parsers.parsePropertyValue(property, v, {
- globalObject,
- inArray: true
- });
- if (Array.isArray(value) && value.length === 1) {
- return parsers.resolveNumericValue(value, {
- min: 0,
- type: "length"
- });
- } else if (typeof value === "string") {
- return value;
- }
-};
-
-module.exports.definition = {
- set(v) {
- v = parsers.prepareValue(v);
- if (parsers.hasVarFunc(v)) {
- this._setProperty(property, v);
- } else {
- const val = module.exports.parse(v, {
- globalObject: this._global
- });
- if (typeof val === "string") {
- const priority = this._priorities.get(property) ?? "";
- this._setProperty(property, val, priority);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-};
-
-module.exports.property = property;
diff --git a/vanilla/node_modules/cssstyle/lib/utils/allExtraProperties.js b/vanilla/node_modules/cssstyle/lib/utils/allExtraProperties.js
deleted file mode 100644
index a8d8711..0000000
--- a/vanilla/node_modules/cssstyle/lib/utils/allExtraProperties.js
+++ /dev/null
@@ -1,155 +0,0 @@
-"use strict";
-
-/**
- * This file contains all implemented properties that are not a part of any
- * current specifications or drafts, but are handled by browsers nevertheless.
- */
-
-const webkitProperties = [
- "background-composite",
- "border-after",
- "border-after-color",
- "border-after-style",
- "border-after-width",
- "border-before",
- "border-before-color",
- "border-before-style",
- "border-before-width",
- "border-end",
- "border-end-color",
- "border-end-style",
- "border-end-width",
- "border-fit",
- "border-horizontal-spacing",
- "border-start",
- "border-start-color",
- "border-start-style",
- "border-start-width",
- "border-vertical-spacing",
- "color-correction",
- "column-axis",
- "column-break-after",
- "column-break-before",
- "column-break-inside",
- "column-rule-color",
- "flex-align",
- "flex-item-align",
- "flex-line-pack",
- "flex-order",
- "flex-pack",
- "flex-wrap",
- "font-size-delta",
- "font-smoothing",
- "highlight",
- "hyphenate-limit-after",
- "hyphenate-limit-before",
- "locale",
- "logical-height",
- "logical-width",
- "margin-after",
- "margin-after-collapse",
- "margin-before",
- "margin-before-collapse",
- "margin-bottom-collapse",
- "margin-collapse",
- "margin-end",
- "margin-start",
- "margin-top-collapse",
- "marquee",
- "marquee-direction",
- "marquee-increment",
- "marquee-repetition",
- "marquee-speed",
- "marquee-style",
- "mask-attachment",
- "mask-box-image-outset",
- "mask-box-image-repeat",
- "mask-box-image-slice",
- "mask-box-image-source",
- "mask-box-image-width",
- "mask-position-x",
- "mask-position-y",
- "mask-repeat-x",
- "mask-repeat-y",
- "match-nearest-mail-blockquote-color",
- "max-logical-height",
- "max-logical-width",
- "min-logical-height",
- "min-logical-width",
- "nbsp-mode",
- "overflow-scrolling",
- "padding-after",
- "padding-before",
- "padding-end",
- "padding-start",
- "perspective-origin-x",
- "perspective-origin-y",
- "region-break-after",
- "region-break-before",
- "region-break-inside",
- "region-overflow",
- "rtl-ordering",
- "svg-shadow",
- "tap-highlight-color",
- "text-decorations-in-effect",
- "text-emphasis-color",
- "text-fill-color",
- "text-security",
- "text-size-adjust",
- "text-stroke",
- "text-stroke-color",
- "text-stroke-width",
- "transform",
- "transform-origin-x",
- "transform-origin-y",
- "transform-origin-z",
- "user-drag",
- "user-modify",
- "wrap",
- "wrap-margin",
- "wrap-padding",
- "wrap-shape-inside",
- "wrap-shape-outside",
- "zoom"
-].map((prop) => `-webkit-${prop}`);
-
-module.exports = new Set([
- "background-position-x",
- "background-position-y",
- "background-repeat-x",
- "background-repeat-y",
- "color-interpolation",
- "color-profile",
- "color-rendering",
- "enable-background",
- "glyph-orientation-horizontal",
- "kerning",
- "marker-offset",
- "marks",
- "pointer-events",
- "shape-rendering",
- "size",
- "src",
- "stop-color",
- "stop-opacity",
- "text-anchor",
- "text-line-through",
- "text-line-through-color",
- "text-line-through-mode",
- "text-line-through-style",
- "text-line-through-width",
- "text-overline",
- "text-overline-color",
- "text-overline-mode",
- "text-overline-style",
- "text-overline-width",
- "text-rendering",
- "text-underline",
- "text-underline-color",
- "text-underline-mode",
- "text-underline-style",
- "text-underline-width",
- "unicode-range",
- "vector-effect",
- ...webkitProperties
-]);
diff --git a/vanilla/node_modules/cssstyle/lib/utils/camelize.js b/vanilla/node_modules/cssstyle/lib/utils/camelize.js
deleted file mode 100644
index 19aaf7d..0000000
--- a/vanilla/node_modules/cssstyle/lib/utils/camelize.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-
-const { asciiLowercase } = require("./strings");
-
-// Utility to translate from `border-width` to `borderWidth`.
-// NOTE: For values prefixed with webkit, e.g. `-webkit-foo`, we need to provide
-// both `webkitFoo` and `WebkitFoo`. Here we only return `webkitFoo`.
-exports.dashedToCamelCase = function (dashed) {
- if (dashed.startsWith("--")) {
- return dashed;
- }
- let camel = "";
- let nextCap = false;
- // skip leading hyphen in vendor prefixed value, e.g. -webkit-foo
- let i = /^-webkit-/.test(dashed) ? 1 : 0;
- for (; i < dashed.length; i++) {
- if (dashed[i] !== "-") {
- camel += nextCap ? dashed[i].toUpperCase() : dashed[i];
- nextCap = false;
- } else {
- nextCap = true;
- }
- }
- return camel;
-};
-
-// Utility to translate from `borderWidth` to `border-width`.
-exports.camelCaseToDashed = function (camelCase) {
- if (camelCase.startsWith("--")) {
- return camelCase;
- }
- const dashed = asciiLowercase(camelCase.replace(/(?<=[a-z])[A-Z]/g, "-$&"));
- if (/^webkit-/.test(dashed)) {
- return `-${dashed}`;
- }
- return dashed;
-};
diff --git a/vanilla/node_modules/cssstyle/lib/utils/propertyDescriptors.js b/vanilla/node_modules/cssstyle/lib/utils/propertyDescriptors.js
deleted file mode 100644
index f568d84..0000000
--- a/vanilla/node_modules/cssstyle/lib/utils/propertyDescriptors.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-const parsers = require("../parsers");
-
-const { AST_TYPES } = parsers;
-
-const getPropertyDescriptor = (property) => ({
- set(v) {
- const value = parsers.prepareValue(v);
- if (parsers.hasVarFunc(value)) {
- this._setProperty(property, value);
- } else {
- const parsedValue = parsers.parsePropertyValue(property, v, {
- globalObject: this._global,
- inArray: true
- });
- if (Array.isArray(parsedValue)) {
- if (parsedValue.length === 1) {
- const [{ name, type, value: itemValue }] = parsedValue;
- switch (type) {
- case AST_TYPES.CALC: {
- this._setProperty(property, `${name}(${itemValue})`);
- break;
- }
- case AST_TYPES.GLOBAL_KEYWORD:
- case AST_TYPES.IDENTIFIER: {
- // Set the normalized name for keywords or identifiers.
- this._setProperty(property, name);
- break;
- }
- default: {
- // Set the prepared value for Dimension, Function, etc.
- this._setProperty(property, value);
- }
- }
- } else {
- // Set the prepared value for lists containing multiple values.
- this._setProperty(property, value);
- }
- } else if (typeof parsedValue === "string") {
- // Empty string.
- this._setProperty(property, parsedValue);
- }
- }
- },
- get() {
- return this.getPropertyValue(property);
- },
- enumerable: true,
- configurable: true
-});
-
-module.exports = {
- getPropertyDescriptor
-};
diff --git a/vanilla/node_modules/cssstyle/lib/utils/strings.js b/vanilla/node_modules/cssstyle/lib/utils/strings.js
deleted file mode 100644
index c0227e0..0000000
--- a/vanilla/node_modules/cssstyle/lib/utils/strings.js
+++ /dev/null
@@ -1,173 +0,0 @@
-// Forked from https://github.com/jsdom/jsdom/blob/main/lib/jsdom/living/helpers/strings.js
-
-"use strict";
-
-// https://infra.spec.whatwg.org/#ascii-whitespace
-const asciiWhitespaceRe = /^[\t\n\f\r ]$/;
-exports.asciiWhitespaceRe = asciiWhitespaceRe;
-
-// https://infra.spec.whatwg.org/#ascii-lowercase
-exports.asciiLowercase = (s) => {
- if (!/[^\x00-\x7f]/.test(s)) {
- return s.toLowerCase();
- }
- const len = s.length;
- const out = new Array(len);
- for (let i = 0; i < len; i++) {
- const code = s.charCodeAt(i);
- // If the character is between 'A' (65) and 'Z' (90), convert using bitwise OR with 32
- out[i] = code >= 65 && code <= 90 ? String.fromCharCode(code | 32) : s[i];
- }
- return out.join("");
-};
-
-// https://infra.spec.whatwg.org/#ascii-uppercase
-exports.asciiUppercase = (s) => {
- if (!/[^\x00-\x7f]/.test(s)) {
- return s.toUpperCase();
- }
- const len = s.length;
- const out = new Array(len);
- for (let i = 0; i < len; i++) {
- const code = s.charCodeAt(i);
- // If the character is between 'a' (97) and 'z' (122), convert using bitwise AND with ~32
- out[i] = code >= 97 && code <= 122 ? String.fromCharCode(code & ~32) : s[i];
- }
- return out.join("");
-};
-
-// https://infra.spec.whatwg.org/#strip-newlines
-exports.stripNewlines = (s) => {
- return s.replace(/[\n\r]+/g, "");
-};
-
-// https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace
-exports.stripLeadingAndTrailingASCIIWhitespace = (s) => {
- return s.replace(/^[ \t\n\f\r]+/, "").replace(/[ \t\n\f\r]+$/, "");
-};
-
-// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
-exports.stripAndCollapseASCIIWhitespace = (s) => {
- return s
- .replace(/[ \t\n\f\r]+/g, " ")
- .replace(/^[ \t\n\f\r]+/, "")
- .replace(/[ \t\n\f\r]+$/, "");
-};
-
-// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-simple-colour
-exports.isValidSimpleColor = (s) => {
- return /^#[a-fA-F\d]{6}$/.test(s);
-};
-
-// https://infra.spec.whatwg.org/#ascii-case-insensitive
-exports.asciiCaseInsensitiveMatch = (a, b) => {
- if (a.length !== b.length) {
- return false;
- }
-
- for (let i = 0; i < a.length; ++i) {
- if ((a.charCodeAt(i) | 32) !== (b.charCodeAt(i) | 32)) {
- return false;
- }
- }
-
- return true;
-};
-
-// https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#rules-for-parsing-integers
-// Error is represented as null.
-const parseInteger = (exports.parseInteger = (input) => {
- // The implementation here is slightly different from the spec's. We want to use parseInt(), but parseInt() trims
- // Unicode whitespace in addition to just ASCII ones, so we make sure that the trimmed prefix contains only ASCII
- // whitespace ourselves.
- const numWhitespace = input.length - input.trimStart().length;
- if (/[^\t\n\f\r ]/.test(input.slice(0, numWhitespace))) {
- return null;
- }
- // We don't allow hexadecimal numbers here.
- // eslint-disable-next-line radix
- const value = parseInt(input, 10);
- if (Number.isNaN(value)) {
- return null;
- }
- // parseInt() returns -0 for "-0". Normalize that here.
- return value === 0 ? 0 : value;
-});
-
-// https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#rules-for-parsing-non-negative-integers
-// Error is represented as null.
-exports.parseNonNegativeInteger = (input) => {
- const value = parseInteger(input);
- if (value === null) {
- return null;
- }
- if (value < 0) {
- return null;
- }
- return value;
-};
-
-// https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-floating-point-number
-const floatingPointNumRe = /^-?(?:\d+|\d*\.\d+)(?:[eE][-+]?\d+)?$/;
-exports.isValidFloatingPointNumber = (str) => floatingPointNumRe.test(str);
-
-// https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#rules-for-parsing-floating-point-number-values
-// Error is represented as null.
-exports.parseFloatingPointNumber = (str) => {
- // The implementation here is slightly different from the spec's. We need to use parseFloat() in order to retain
- // accuracy, but parseFloat() trims Unicode whitespace in addition to just ASCII ones, so we make sure that the
- // trimmed prefix contains only ASCII whitespace ourselves.
- const numWhitespace = str.length - str.trimStart().length;
- if (/[^\t\n\f\r ]/.test(str.slice(0, numWhitespace))) {
- return null;
- }
- const parsed = parseFloat(str);
- return isFinite(parsed) ? parsed : null;
-};
-
-// https://infra.spec.whatwg.org/#split-on-ascii-whitespace
-exports.splitOnASCIIWhitespace = (str) => {
- let position = 0;
- const tokens = [];
- while (position < str.length && asciiWhitespaceRe.test(str[position])) {
- position++;
- }
- if (position === str.length) {
- return tokens;
- }
- while (position < str.length) {
- const start = position;
- while (position < str.length && !asciiWhitespaceRe.test(str[position])) {
- position++;
- }
- tokens.push(str.slice(start, position));
- while (position < str.length && asciiWhitespaceRe.test(str[position])) {
- position++;
- }
- }
- return tokens;
-};
-
-// https://infra.spec.whatwg.org/#split-on-commas
-exports.splitOnCommas = (str) => {
- let position = 0;
- const tokens = [];
- while (position < str.length) {
- let start = position;
- while (position < str.length && str[position] !== ",") {
- position++;
- }
- let end = position;
- while (start < str.length && asciiWhitespaceRe.test(str[start])) {
- start++;
- }
- while (end > start && asciiWhitespaceRe.test(str[end - 1])) {
- end--;
- }
- tokens.push(str.slice(start, end));
- if (position < str.length) {
- position++;
- }
- }
- return tokens;
-};
diff --git a/vanilla/node_modules/cssstyle/package.json b/vanilla/node_modules/cssstyle/package.json
deleted file mode 100644
index 43f28dd..0000000
--- a/vanilla/node_modules/cssstyle/package.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "name": "cssstyle",
- "description": "An implementation of the CSSStyleDeclaration class from the CSS Object Model specification",
- "keywords": [
- "CSS",
- "CSSStyleDeclaration",
- "StyleSheet"
- ],
- "version": "5.3.7",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jsdom/cssstyle.git"
- },
- "files": [
- "lib/"
- ],
- "main": "./lib/CSSStyleDeclaration.js",
- "dependencies": {
- "@asamuzakjp/css-color": "^4.1.1",
- "@csstools/css-syntax-patches-for-csstree": "^1.0.21",
- "css-tree": "^3.1.0",
- "lru-cache": "^11.2.4"
- },
- "devDependencies": {
- "@babel/generator": "^7.28.5",
- "@babel/parser": "^7.28.5",
- "@babel/traverse": "^7.28.5",
- "@babel/types": "^7.28.5",
- "@domenic/eslint-config": "^4.0.1",
- "@webref/css": "^8.1.1",
- "eslint": "^9.39.1",
- "eslint-config-prettier": "^10.1.8",
- "eslint-plugin-prettier": "^5.5.4",
- "globals": "^16.5.0",
- "npm-run-all": "^4.1.5",
- "prettier": "^3.7.4",
- "resolve": "^1.22.11"
- },
- "scripts": {
- "download": "node ./scripts/downloadLatestProperties.mjs",
- "lint": "eslint --max-warnings 0",
- "lint:fix": "eslint --fix --max-warnings 0",
- "prepare": "run-p prepare:*",
- "prepare:implemented_properties": "node ./scripts/generateImplementedProperties.mjs",
- "prepare:properties": "node ./scripts/generateProperties.js",
- "prepare:propertyDefinitions": "node ./scripts/generatePropertyDefinitions.mjs",
- "test": "node --test"
- },
- "license": "MIT",
- "engines": {
- "node": ">=20"
- }
-}