| /** @type {ReadonlySet<string>} */ |
| export const acceptCustomIdentsProperties = new Set([ |
| 'animation', |
| 'animation-name', |
| 'font', |
| 'font-family', |
| 'counter-increment', |
| 'grid-row', |
| 'grid-column', |
| 'grid-area', |
| 'list-style', |
| 'list-style-type', |
| ]); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const acceptPropertyNamesProperties = new Set([ |
| 'transition', |
| 'transition-property', |
| 'will-change', |
| ]); |
| |
| /** @type {ReadonlyMap<string, ReadonlySet<string>>} */ |
| export const shorthandToResetToInitialProperty = new Map([ |
| [ |
| 'border', |
| new Set([ |
| 'border-image', |
| 'border-image-outset', |
| 'border-image-repeat', |
| 'border-image-slice', |
| 'border-image-source', |
| 'border-image-width', |
| ]), |
| ], |
| [ |
| /** @see https://www.w3.org/TR/css-fonts-4/#font-prop */ |
| 'font', |
| new Set([ |
| // prettier-ignore |
| 'font-feature-settings', |
| 'font-kerning', |
| 'font-language-override', |
| 'font-optical-sizing', |
| 'font-size-adjust', |
| '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', |
| ]), |
| ], |
| ]); |
| |
| /** @type {import('stylelint').LonghandSubPropertiesOfShorthandProperties} */ |
| export const longhandSubPropertiesOfShorthandProperties = new Map([ |
| // Sort alphabetically |
| [ |
| 'animation', |
| new Set([ |
| // prettier-ignore |
| 'animation-name', |
| 'animation-duration', |
| 'animation-timing-function', |
| 'animation-delay', |
| 'animation-iteration-count', |
| 'animation-direction', |
| 'animation-fill-mode', |
| 'animation-play-state', |
| ]), |
| ], |
| [ |
| 'background', |
| new Set([ |
| // prettier-ignore |
| 'background-image', |
| 'background-size', |
| 'background-position', |
| 'background-repeat', |
| 'background-origin', |
| 'background-clip', |
| 'background-attachment', |
| 'background-color', |
| ]), |
| ], |
| [ |
| 'border', |
| new Set([ |
| // prettier-ignore |
| 'border-top-width', |
| 'border-right-width', |
| 'border-bottom-width', |
| 'border-left-width', |
| 'border-top-style', |
| 'border-right-style', |
| 'border-bottom-style', |
| 'border-left-style', |
| 'border-top-color', |
| 'border-right-color', |
| 'border-bottom-color', |
| 'border-left-color', |
| 'border-width', |
| 'border-style', |
| 'border-color', |
| ]), |
| ], |
| [ |
| 'border-block', |
| new Set([ |
| // prettier-ignore |
| 'border-block-width', |
| 'border-block-style', |
| 'border-block-color', |
| ]), |
| ], |
| [ |
| 'border-block-end', |
| new Set([ |
| // prettier-ignore |
| 'border-block-end-width', |
| 'border-block-end-style', |
| 'border-block-end-color', |
| ]), |
| ], |
| [ |
| 'border-block-start', |
| new Set([ |
| // prettier-ignore |
| 'border-block-start-width', |
| 'border-block-start-style', |
| 'border-block-start-color', |
| ]), |
| ], |
| [ |
| 'border-bottom', |
| new Set([ |
| // prettier-ignore |
| 'border-bottom-width', |
| 'border-bottom-style', |
| 'border-bottom-color', |
| ]), |
| ], |
| [ |
| 'border-color', |
| new Set([ |
| // prettier-ignore |
| 'border-top-color', |
| 'border-right-color', |
| 'border-bottom-color', |
| 'border-left-color', |
| ]), |
| ], |
| [ |
| 'border-image', |
| new Set([ |
| // prettier-ignore |
| 'border-image-source', |
| 'border-image-slice', |
| 'border-image-width', |
| 'border-image-outset', |
| 'border-image-repeat', |
| ]), |
| ], |
| [ |
| 'border-inline', |
| new Set([ |
| // prettier-ignore |
| 'border-inline-width', |
| 'border-inline-style', |
| 'border-inline-color', |
| ]), |
| ], |
| [ |
| 'border-inline-end', |
| new Set([ |
| // prettier-ignore |
| 'border-inline-end-width', |
| 'border-inline-end-style', |
| 'border-inline-end-color', |
| ]), |
| ], |
| [ |
| 'border-inline-start', |
| new Set([ |
| // prettier-ignore |
| 'border-inline-start-width', |
| 'border-inline-start-style', |
| 'border-inline-start-color', |
| ]), |
| ], |
| [ |
| 'border-left', |
| new Set([ |
| // prettier-ignore |
| 'border-left-width', |
| 'border-left-style', |
| 'border-left-color', |
| ]), |
| ], |
| [ |
| 'border-radius', |
| new Set([ |
| // prettier-ignore |
| 'border-top-left-radius', |
| 'border-top-right-radius', |
| 'border-bottom-right-radius', |
| 'border-bottom-left-radius', |
| ]), |
| ], |
| [ |
| 'border-right', |
| new Set([ |
| // prettier-ignore |
| 'border-right-width', |
| 'border-right-style', |
| 'border-right-color', |
| ]), |
| ], |
| [ |
| 'border-style', |
| new Set([ |
| // prettier-ignore |
| 'border-top-style', |
| 'border-right-style', |
| 'border-bottom-style', |
| 'border-left-style', |
| ]), |
| ], |
| [ |
| 'border-top', |
| new Set([ |
| // prettier-ignore |
| 'border-top-width', |
| 'border-top-style', |
| 'border-top-color', |
| ]), |
| ], |
| [ |
| 'border-width', |
| new Set([ |
| // prettier-ignore |
| 'border-top-width', |
| 'border-right-width', |
| 'border-bottom-width', |
| 'border-left-width', |
| ]), |
| ], |
| [ |
| 'column-rule', |
| new Set([ |
| // prettier-ignore |
| 'column-rule-width', |
| 'column-rule-style', |
| 'column-rule-color', |
| ]), |
| ], |
| [ |
| 'columns', |
| new Set([ |
| // prettier-ignore |
| 'column-width', |
| 'column-count', |
| ]), |
| ], |
| [ |
| 'flex', |
| new Set([ |
| // prettier-ignore |
| 'flex-grow', |
| 'flex-shrink', |
| 'flex-basis', |
| ]), |
| ], |
| [ |
| 'flex-flow', |
| new Set([ |
| // prettier-ignore |
| 'flex-direction', |
| 'flex-wrap', |
| ]), |
| ], |
| [ |
| 'font', |
| new Set([ |
| // prettier-ignore |
| 'font-style', |
| /** |
| * reset explicitly: normal | small-caps |
| * reset implicitly: all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps |
| * i.e. either way it will be reset |
| * {@link https://www.w3.org/TR/css-fonts-4/#font-variant-prop World Wide Web Consortium} |
| */ |
| 'font-variant', |
| 'font-weight', |
| 'font-stretch', |
| 'font-size', |
| 'line-height', |
| 'font-family', |
| ]), |
| ], |
| [ |
| 'font-synthesis', |
| new Set([ |
| // prettier-ignore |
| 'font-synthesis-weight', |
| 'font-synthesis-style', |
| 'font-synthesis-small-caps', |
| ]), |
| ], |
| [ |
| 'font-variant', |
| new Set([ |
| // prettier-ignore |
| 'font-variant-ligatures', |
| 'font-variant-position', |
| 'font-variant-caps', |
| 'font-variant-numeric', |
| 'font-variant-alternates', |
| 'font-variant-east-asian', |
| 'font-variant-emoji', |
| ]), |
| ], |
| [ |
| 'gap', |
| new Set([ |
| // prettier-ignore |
| 'row-gap', |
| 'column-gap', |
| ]), |
| ], |
| [ |
| 'grid', |
| new Set([ |
| // prettier-ignore |
| 'grid-template-rows', |
| 'grid-template-columns', |
| 'grid-template-areas', |
| 'grid-auto-rows', |
| 'grid-auto-columns', |
| 'grid-auto-flow', |
| 'grid-column-gap', |
| 'grid-row-gap', |
| ]), |
| ], |
| [ |
| 'grid-area', |
| new Set([ |
| // prettier-ignore |
| 'grid-row-start', |
| 'grid-column-start', |
| 'grid-row-end', |
| 'grid-column-end', |
| ]), |
| ], |
| [ |
| 'grid-column', |
| new Set([ |
| // prettier-ignore |
| 'grid-column-start', |
| 'grid-column-end', |
| ]), |
| ], |
| [ |
| 'grid-gap', |
| new Set([ |
| // prettier-ignore |
| 'grid-row-gap', |
| 'grid-column-gap', |
| ]), |
| ], |
| [ |
| 'grid-row', |
| new Set([ |
| // prettier-ignore |
| 'grid-row-start', |
| 'grid-row-end', |
| ]), |
| ], |
| [ |
| 'grid-template', |
| new Set([ |
| // prettier-ignore |
| 'grid-template-columns', |
| 'grid-template-rows', |
| 'grid-template-areas', |
| ]), |
| ], |
| [ |
| 'inset', |
| new Set([ |
| // prettier-ignore |
| 'top', |
| 'right', |
| 'bottom', |
| 'left', |
| ]), |
| ], |
| [ |
| 'inset-block', |
| new Set([ |
| // prettier-ignore |
| 'inset-block-start', |
| 'inset-block-end', |
| ]), |
| ], |
| [ |
| 'inset-inline', |
| new Set([ |
| // prettier-ignore |
| 'inset-inline-start', |
| 'inset-inline-end', |
| ]), |
| ], |
| [ |
| 'list-style', |
| new Set([ |
| // prettier-ignore |
| 'list-style-type', |
| 'list-style-position', |
| 'list-style-image', |
| ]), |
| ], |
| [ |
| 'margin', |
| new Set([ |
| // prettier-ignore |
| 'margin-top', |
| 'margin-right', |
| 'margin-bottom', |
| 'margin-left', |
| ]), |
| ], |
| [ |
| 'margin-block', |
| new Set([ |
| // prettier-ignore |
| 'margin-block-start', |
| 'margin-block-end', |
| ]), |
| ], |
| [ |
| 'margin-inline', |
| new Set([ |
| // prettier-ignore |
| 'margin-inline-start', |
| 'margin-inline-end', |
| ]), |
| ], |
| [ |
| 'mask', |
| new Set([ |
| // prettier-ignore |
| 'mask-image', |
| 'mask-mode', |
| 'mask-position', |
| 'mask-size', |
| 'mask-repeat', |
| 'mask-origin', |
| 'mask-clip', |
| 'mask-composite', |
| ]), |
| ], |
| [ |
| 'outline', |
| new Set([ |
| // prettier-ignore |
| 'outline-color', |
| 'outline-style', |
| 'outline-width', |
| ]), |
| ], |
| [ |
| 'overflow', |
| new Set([ |
| // prettier-ignore |
| 'overflow-x', |
| 'overflow-y', |
| ]), |
| ], |
| [ |
| 'overscroll-behavior', |
| new Set([ |
| // prettier-ignore |
| 'overscroll-behavior-x', |
| 'overscroll-behavior-y', |
| ]), |
| ], |
| [ |
| 'padding', |
| new Set([ |
| // prettier-ignore |
| 'padding-top', |
| 'padding-right', |
| 'padding-bottom', |
| 'padding-left', |
| ]), |
| ], |
| [ |
| 'padding-block', |
| new Set([ |
| // prettier-ignore |
| 'padding-block-start', |
| 'padding-block-end', |
| ]), |
| ], |
| [ |
| 'padding-inline', |
| new Set([ |
| // prettier-ignore |
| 'padding-inline-start', |
| 'padding-inline-end', |
| ]), |
| ], |
| [ |
| 'place-content', |
| new Set([ |
| // prettier-ignore |
| 'align-content', |
| 'justify-content', |
| ]), |
| ], |
| [ |
| 'place-items', |
| new Set([ |
| // prettier-ignore |
| 'align-items', |
| 'justify-items', |
| ]), |
| ], |
| [ |
| 'place-self', |
| new Set([ |
| // prettier-ignore |
| 'align-self', |
| 'justify-self', |
| ]), |
| ], |
| [ |
| 'scroll-margin', |
| new Set([ |
| // prettier-ignore |
| 'scroll-margin-top', |
| 'scroll-margin-right', |
| 'scroll-margin-bottom', |
| 'scroll-margin-left', |
| ]), |
| ], |
| [ |
| 'scroll-margin-block', |
| new Set([ |
| // prettier-ignore |
| 'scroll-margin-block-start', |
| 'scroll-margin-block-end', |
| ]), |
| ], |
| [ |
| 'scroll-margin-inline', |
| new Set([ |
| // prettier-ignore |
| 'scroll-margin-inline-start', |
| 'scroll-margin-inline-end', |
| ]), |
| ], |
| [ |
| 'scroll-padding', |
| new Set([ |
| // prettier-ignore |
| 'scroll-padding-top', |
| 'scroll-padding-right', |
| 'scroll-padding-bottom', |
| 'scroll-padding-left', |
| ]), |
| ], |
| [ |
| 'scroll-padding-block', |
| new Set([ |
| // prettier-ignore |
| 'scroll-padding-block-start', |
| 'scroll-padding-block-end', |
| ]), |
| ], |
| [ |
| 'scroll-padding-inline', |
| new Set([ |
| // prettier-ignore |
| 'scroll-padding-inline-start', |
| 'scroll-padding-inline-end', |
| ]), |
| ], |
| [ |
| 'text-decoration', |
| new Set([ |
| // prettier-ignore |
| 'text-decoration-line', |
| 'text-decoration-style', |
| 'text-decoration-color', |
| 'text-decoration-thickness', |
| ]), |
| ], |
| [ |
| 'text-emphasis', |
| new Set([ |
| // prettier-ignore |
| 'text-emphasis-style', |
| 'text-emphasis-color', |
| ]), |
| ], |
| [ |
| 'transition', |
| new Set([ |
| // prettier-ignore |
| 'transition-property', |
| 'transition-duration', |
| 'transition-timing-function', |
| 'transition-delay', |
| ]), |
| ], |
| ]); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const singleValueColorProperties = new Set([ |
| 'accent-color', |
| 'background-color', |
| 'border-block-color', |
| 'border-block-end-color', |
| 'border-block-start-color', |
| 'border-bottom-color', |
| 'border-inline-color', |
| 'border-inline-end-color', |
| 'border-inline-start-color', |
| 'border-left-color', |
| 'border-right-color', |
| 'border-top-color', |
| 'caret-color', |
| 'color', |
| 'column-rule-color', |
| 'outline-color', |
| 'text-decoration-color', |
| 'text-emphasis-color', |
| // SVG |
| 'flood-color', |
| 'lighting-color', |
| 'stop-color', |
| ]); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const multiValueColorProperties = new Set(['border-color', 'scrollbar-color']); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const colorProperties = new Set([ |
| ...singleValueColorProperties, |
| ...multiValueColorProperties, |
| ]); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const longhandTimeProperties = new Set([ |
| 'transition-duration', |
| 'transition-delay', |
| 'animation-duration', |
| 'animation-delay', |
| ]); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const shorthandTimeProperties = new Set(['transition', 'animation']); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const pageContextProperties = new Set([ |
| 'direction', |
| 'background-color', |
| 'background-image', |
| 'background-repeat', |
| 'background-attachment', |
| 'background-position', |
| 'background', |
| 'border-top-width', |
| 'border-right-width', |
| 'border-bottom-width', |
| 'border-left-width', |
| 'border-width', |
| 'border-top-color', |
| 'border-right-color', |
| 'border-bottom-color', |
| 'border-left-color', |
| 'border-color', |
| 'border-top-style', |
| 'border-right-style', |
| 'border-bottom-style', |
| 'border-left-style', |
| 'border-style', |
| 'border-top', |
| 'border-right', |
| 'border-bottom', |
| 'border-left', |
| 'border', |
| 'counter-reset', |
| 'counter-increment', |
| 'color', |
| 'font-family', |
| 'font-size', |
| 'font-style', |
| 'font-variant', |
| 'font-weight', |
| 'font', |
| 'height', |
| 'min-height', |
| 'max-height', |
| 'line-height', |
| 'margin-top', |
| 'margin-right', |
| 'margin-bottom', |
| 'margin-left', |
| 'margin', |
| 'outline-width', |
| 'outline-style', |
| 'outline-color', |
| 'outline', |
| 'padding-top', |
| 'padding-right', |
| 'padding-bottom', |
| 'padding-left', |
| 'padding', |
| 'quotes', |
| 'letter-spacing', |
| 'text-align', |
| 'text-decoration', |
| 'text-indent', |
| 'text-transform', |
| 'white-space', |
| 'word-spacing', |
| 'visibility', |
| 'width', |
| 'min-width', |
| 'max-width', |
| ]); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const marginContextProperties = new Set([ |
| 'direction', |
| 'unicode-bidi', |
| 'background-color', |
| 'background-image', |
| 'background-repeat', |
| 'background-attachment', |
| 'background-position', |
| 'background', |
| 'border-top-width', |
| 'border-right-width', |
| 'border-bottom-width', |
| 'border-left-width', |
| 'border-width', |
| 'border-top-color', |
| 'border-right-color', |
| 'border-bottom-color', |
| 'border-left-color', |
| 'border-color', |
| 'border-top-style', |
| 'border-right-style', |
| 'border-bottom-style', |
| 'border-left-style', |
| 'border-style', |
| 'border-top', |
| 'border-right', |
| 'border-bottom', |
| 'border-left', |
| 'border', |
| 'counter-reset', |
| 'counter-increment', |
| 'content', |
| 'color', |
| 'font-family', |
| 'font-size', |
| 'font-style', |
| 'font-variant', |
| 'font-weight', |
| 'font', |
| 'height', |
| 'min-height', |
| 'max-height', |
| 'line-height', |
| 'margin-top', |
| 'margin-right', |
| 'margin-bottom', |
| 'margin-left', |
| 'margin', |
| 'outline-width', |
| 'outline-style', |
| 'outline-color', |
| 'outline', |
| 'overflow', |
| 'padding-top', |
| 'padding-right', |
| 'padding-bottom', |
| 'padding-left', |
| 'padding', |
| 'quotes', |
| 'letter-spacing', |
| 'text-align', |
| 'text-decoration', |
| 'text-indent', |
| 'text-transform', |
| 'white-space', |
| 'word-spacing', |
| 'vertical-align', |
| 'visibility', |
| 'width', |
| 'min-width', |
| 'max-width', |
| 'z-index', |
| ]); |
| |
| // Known from before migrating to CSSTree |
| // @see https://github.com/stylelint/stylelint/issues/9065 |
| /** @type {ReadonlySet<string>} */ |
| export const previouslyKnownProperties = new Set([ |
| 'accelerator', |
| 'alt', |
| 'animation-trigger-behavior', |
| 'animation-trigger-exit-range', |
| 'animation-trigger-exit-range-end', |
| 'animation-trigger-exit-range-start', |
| 'animation-trigger-range', |
| 'animation-trigger-range-end', |
| 'animation-trigger-range-start', |
| 'animation-trigger-timeline', |
| 'app-region', |
| 'audio-level', |
| 'buffered-rendering', |
| 'chains', |
| 'color-profile', |
| 'color-rendering', |
| 'column-progression', |
| 'column-rule-outset', |
| 'display-align', |
| 'elevation', |
| 'enable-background', |
| 'epub-caption-side', |
| 'epub-hyphens', |
| 'epub-text-combine', |
| 'epub-text-emphasis', |
| 'epub-text-emphasis-color', |
| 'epub-text-emphasis-style', |
| 'epub-text-orientation', |
| 'epub-text-transform', |
| 'epub-word-break', |
| 'epub-writing-mode', |
| 'flow', |
| 'input-format', |
| 'inset-area', |
| 'item-slack', |
| 'layout-flow', |
| 'layout-grid', |
| 'layout-grid-char', |
| 'layout-grid-line', |
| 'layout-grid-mode', |
| 'layout-grid-type', |
| 'line-increment', |
| 'marker-knockout-left', |
| 'marker-knockout-right', |
| 'marker-offset', |
| 'marker-pattern', |
| 'marker-segment', |
| 'mask-position-x', |
| 'mask-position-y', |
| 'mask-source-type', |
| 'motion', |
| 'motion-offset', |
| 'motion-path', |
| 'motion-rotation', |
| 'nav-down', |
| 'nav-index', |
| 'nav-left', |
| 'nav-right', |
| 'nav-up', |
| 'navigation', |
| 'offset-block-end', |
| 'offset-block-start', |
| 'offset-inline-end', |
| 'offset-inline-start', |
| 'offset-rotation', |
| 'pen-action', |
| 'perspective-origin-x', |
| 'perspective-origin-y', |
| 'pitch', |
| 'pitch-range', |
| 'play-during', |
| 'position-try-options', |
| 'property-name', |
| 'richness', |
| 'row-rule-outset', |
| 'rule-outset', |
| 'rule-paint-order', |
| 'running', |
| 'scroll-snap-margin', |
| 'scroll-snap-margin-bottom', |
| 'scroll-snap-margin-left', |
| 'scroll-snap-margin-right', |
| 'scroll-snap-margin-top', |
| 'scroll-start-target', |
| 'scrollbar-arrow-color', |
| 'scrollbar-base-color', |
| 'scrollbar-dark-shadow-color', |
| 'scrollbar-darkshadow-color', |
| 'scrollbar-face-color', |
| 'scrollbar-highlight-color', |
| 'scrollbar-shadow-color', |
| 'scrollbar-track-color', |
| 'scrollbar3d-light-color', |
| 'scrollbar3dlight-color', |
| 'snap-height', |
| 'solid-color', |
| 'solid-opacity', |
| 'speak-header', |
| 'speak-numeral', |
| 'speak-punctuation', |
| 'speech-rate', |
| 'stress', |
| 'supported-color-schemes', |
| 'text-decoration-blink', |
| 'text-decoration-line-through', |
| 'text-decoration-none', |
| 'text-decoration-overline', |
| 'text-decoration-skip-inset', |
| 'text-decoration-trim', |
| 'text-decoration-underline', |
| 'text-justify-trim', |
| 'text-kashida', |
| 'text-kashida-space', |
| '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-underline', |
| 'text-underline-color', |
| 'text-underline-mode', |
| 'text-underline-style', |
| 'text-underline-width', |
| 'touch-action-delay', |
| 'transform-origin-x', |
| 'transform-origin-y', |
| 'transform-origin-z', |
| 'uc-alt-skin', |
| 'uc-skin', |
| 'viewport-fill', |
| 'viewport-fill-opacity', |
| 'volume', |
| ]); |
| |
| // Known from before migrating to CSSTree |
| // @see https://github.com/stylelint/stylelint/issues/9065 |
| /** @type {ReadonlySet<string>} */ |
| export const previouslyKnownPrefixedProperties = new Set([ |
| '-epub-text-combine', |
| '-internal-text-autosizing-status', |
| '-wap-accesskey', |
| '-webkit-alt', |
| '-webkit-app-region', |
| '-webkit-background-composite', |
| '-moz-background-inline-policy', |
| '-khtml-binding', |
| '-webkit-border-after-color', |
| '-webkit-border-after-style', |
| '-webkit-border-after', |
| '-webkit-border-after-width', |
| '-moz-border-end-color', |
| '-webkit-border-end-color', |
| '-moz-border-end', |
| '-moz-border-end-style', |
| '-webkit-border-end-style', |
| '-webkit-border-end', |
| '-moz-border-end-width', |
| '-webkit-border-end-width', |
| '-webkit-border-fit', |
| '-khtml-border-horizontal-spacing', |
| '-webkit-border-horizontal-spacing', |
| '-moz-border-start-color', |
| '-webkit-border-start-color', |
| '-moz-border-start', |
| '-moz-border-start-style', |
| '-webkit-border-start-style', |
| '-webkit-border-start', |
| '-moz-border-start-width', |
| '-webkit-border-start-width', |
| '-khtml-border-vertical-spacing', |
| '-webkit-border-vertical-spacing', |
| '-khtml-box-flex-group-transition', |
| '-webkit-color-correction', |
| '-apple-color-filter', |
| '-webkit-column-axis', |
| '-webkit-column-progression', |
| '-webkit-composition-fill-color', |
| '-webkit-composition-frame-color', |
| '-webkit-cursor-visibility', |
| '-apple-dashboard-region', |
| '-khtml-dashboard-region', |
| '-webkit-dashboard-region', |
| '-webkit-flex-align', |
| '-webkit-flex-item-align', |
| '-webkit-flex-line-pack', |
| '-webkit-flex-order', |
| '-webkit-flex-pack', |
| '-khtml-flow-mode', |
| '-konq-flow-mode', |
| '-khtml-font-size-delta', |
| '-webkit-font-size-delta', |
| '-webkit-grid-after', |
| '-webkit-grid-before', |
| '-ms-grid-column-span', |
| '-webkit-grid-columns', |
| '-webkit-grid-end', |
| '-ms-grid-row-span', |
| '-webkit-grid-rows', |
| '-webkit-grid-start', |
| '-webkit-highlight', |
| '-khtml-horizontal-border-spacing', |
| '-webkit-hyphenate-limit-after', |
| '-webkit-hyphenate-limit-before', |
| '-wap-input-format', |
| '-wap-input-required', |
| '-konq-js-clip', |
| '-webkit-line-align', |
| '-webkit-line-box-contain', |
| '-webkit-line-grid-snap', |
| '-o-link', |
| '-o-link-source', |
| '-webkit-locale', |
| '-webkit-logical-height', |
| '-webkit-logical-width', |
| '-webkit-margin-after-collapse', |
| '-webkit-margin-after', |
| '-webkit-margin-before-collapse', |
| '-webkit-margin-before', |
| '-khtml-margin-bottom-collapse', |
| '-webkit-margin-bottom-collapse', |
| '-khtml-margin-collapse', |
| '-webkit-margin-collapse', |
| '-moz-margin-end', |
| '-webkit-margin-end', |
| '-khtml-margin-start', |
| '-moz-margin-start', |
| '-webkit-margin-start', |
| '-khtml-margin-top-collapse', |
| '-webkit-margin-top-collapse', |
| '-wap-marquee-dir', |
| '-khtml-marquee-direction', |
| '-webkit-marquee-direction', |
| '-khtml-marquee-increment', |
| '-webkit-marquee-increment', |
| '-khtml-marquee', |
| '-wap-marquee-loop', |
| '-khtml-marquee-repetition', |
| '-webkit-marquee-repetition', |
| '-khtml-marquee-speed', |
| '-wap-marquee-speed', |
| '-webkit-marquee-speed', |
| '-khtml-marquee-style', |
| '-wap-marquee-style', |
| '-webkit-marquee-style', |
| '-webkit-marquee', |
| '-webkit-mask-box-image-outset', |
| '-webkit-mask-box-image-repeat', |
| '-webkit-mask-box-image-slice', |
| '-webkit-mask-box-image-source', |
| '-webkit-mask-box-image-width', |
| '-webkit-mask-source-type', |
| '-khtml-match-nearest-mail-blockquote-color', |
| '-webkit-match-nearest-mail-blockquote-color', |
| '-webkit-max-logical-height', |
| '-webkit-max-logical-width', |
| '-webkit-min-logical-height', |
| '-webkit-min-logical-width', |
| '-khtml-nbsp-mode', |
| '-webkit-nbsp-mode', |
| '-webkit-padding-after', |
| '-webkit-padding-before', |
| '-moz-padding-end', |
| '-webkit-padding-end', |
| '-khtml-padding-start', |
| '-moz-padding-start', |
| '-webkit-padding-start', |
| '-apple-pay-button-style', |
| '-apple-pay-button-type', |
| '-webkit-perspective-origin-x', |
| '-webkit-perspective-origin-y', |
| '-webkit-region-break-after', |
| '-webkit-region-break-before', |
| '-webkit-region-break-inside', |
| '-webkit-region-overflow', |
| '-khtml-rtl-ordering', |
| '-webkit-rtl-ordering', |
| '-webkit-svg-shadow', |
| '-o-table-baseline', |
| '-ms-text-combine-horizontal', |
| '-webkit-text-combine', |
| '-khtml-text-decorations-in-effect', |
| '-webkit-text-decorations-in-effect', |
| '-webkit-text-zoom', |
| '-apple-trailing-word', |
| '-webkit-transform-origin-x', |
| '-webkit-transform-origin-y', |
| '-webkit-transform-origin-z', |
| '-khtml-user-drag', |
| '-khtml-user-modify', |
| '-khtml-vertical-border-spacing', |
| '-webkit-widget-region', |
| '-webkit-wrap-margin', |
| '-webkit-wrap-padding', |
| '-webkit-wrap-shape-inside', |
| '-webkit-wrap-shape-outside', |
| '-webkit-wrap', |
| ]); |
| |
| /** @type {ReadonlyMap<string, string>} */ |
| export const physicalToFlowRelativeProperties = new Map([ |
| // Margin properties |
| ['margin-left', 'margin-inline-start'], |
| ['margin-right', 'margin-inline-end'], |
| ['margin-top', 'margin-block-start'], |
| ['margin-bottom', 'margin-block-end'], |
| |
| // Padding properties |
| ['padding-left', 'padding-inline-start'], |
| ['padding-right', 'padding-inline-end'], |
| ['padding-top', 'padding-block-start'], |
| ['padding-bottom', 'padding-block-end'], |
| |
| // Border properties |
| ['border-left', 'border-inline-start'], |
| ['border-right', 'border-inline-end'], |
| ['border-top', 'border-block-start'], |
| ['border-bottom', 'border-block-end'], |
| ['border-left-width', 'border-inline-start-width'], |
| ['border-right-width', 'border-inline-end-width'], |
| ['border-top-width', 'border-block-start-width'], |
| ['border-bottom-width', 'border-block-end-width'], |
| ['border-left-style', 'border-inline-start-style'], |
| ['border-right-style', 'border-inline-end-style'], |
| ['border-top-style', 'border-block-start-style'], |
| ['border-bottom-style', 'border-block-end-style'], |
| ['border-left-color', 'border-inline-start-color'], |
| ['border-right-color', 'border-inline-end-color'], |
| ['border-top-color', 'border-block-start-color'], |
| ['border-bottom-color', 'border-block-end-color'], |
| |
| // Inset properties |
| ['left', 'inset-inline-start'], |
| ['right', 'inset-inline-end'], |
| ['top', 'inset-block-start'], |
| ['bottom', 'inset-block-end'], |
| |
| // Size properties |
| ['width', 'inline-size'], |
| ['height', 'block-size'], |
| ['min-width', 'min-inline-size'], |
| ['min-height', 'min-block-size'], |
| ['max-width', 'max-inline-size'], |
| ['max-height', 'max-block-size'], |
| |
| // Scroll margin properties |
| ['scroll-margin-left', 'scroll-margin-inline-start'], |
| ['scroll-margin-right', 'scroll-margin-inline-end'], |
| ['scroll-margin-top', 'scroll-margin-block-start'], |
| ['scroll-margin-bottom', 'scroll-margin-block-end'], |
| |
| // Scroll padding properties |
| ['scroll-padding-left', 'scroll-padding-inline-start'], |
| ['scroll-padding-right', 'scroll-padding-inline-end'], |
| ['scroll-padding-top', 'scroll-padding-block-start'], |
| ['scroll-padding-bottom', 'scroll-padding-block-end'], |
| |
| // Border radius properties |
| ['border-top-left-radius', 'border-start-start-radius'], |
| ['border-top-right-radius', 'border-start-end-radius'], |
| ['border-bottom-left-radius', 'border-end-start-radius'], |
| ['border-bottom-right-radius', 'border-end-end-radius'], |
| |
| // Overflow properties |
| ['overflow-x', 'overflow-inline'], |
| ['overflow-y', 'overflow-block'], |
| |
| // Overscroll behavior properties |
| ['overscroll-behavior-x', 'overscroll-behavior-inline'], |
| ['overscroll-behavior-y', 'overscroll-behavior-block'], |
| |
| // Contain intrinsic size properties |
| ['contain-intrinsic-width', 'contain-intrinsic-inline-size'], |
| ['contain-intrinsic-height', 'contain-intrinsic-block-size'], |
| ]); |
| |
| /** @type {ReadonlySet<string>} */ |
| export const flowRelativeProperties = new Set([ |
| ...physicalToFlowRelativeProperties.values(), |
| // Flow-relative shorthand properties with no 1:1 physical equivalent |
| 'margin-inline', |
| 'margin-block', |
| 'padding-inline', |
| 'padding-block', |
| 'border-inline', |
| 'border-block', |
| 'border-inline-width', |
| 'border-block-width', |
| 'border-inline-style', |
| 'border-block-style', |
| 'border-inline-color', |
| 'border-block-color', |
| 'inset', |
| 'inset-inline', |
| 'inset-block', |
| 'scroll-margin-inline', |
| 'scroll-margin-block', |
| 'scroll-padding-inline', |
| 'scroll-padding-block', |
| ]); |