use html5ever::LocalName; use std::collections::{HashMap, HashSet}; use super::basic::{ ADD_ATTRIBUTES as BASIC_ADD_ATTRIBUTES, ALL_ATTRIBUTES as BASIC_ALL_ATTRIBUTES, ATTRIBUTES as BASIC_ATTRIBUTES, CSS_PROPERTIES as BASIC_CSS_PROPERTIES, ELEMENTS as BASIC_ELEMENTS, }; #[macro_use] mod css_property { include!(concat!(env!("OUT_DIR"), "/css_property.rs")); } use css_property::{CssProperty}; lazy_static! { pub static ref ELEMENTS: HashSet = BASIC_ELEMENTS .union(&hashset!( local_name!("address"), local_name!("article"), local_name!("aside"), local_name!("bdi"), local_name!("bdo"), local_name!("body"), local_name!("caption"), local_name!("col"), local_name!("colgroup"), local_name!("data"), local_name!("del"), local_name!("div"), local_name!("figcaption"), local_name!("figure"), local_name!("footer"), local_name!("h1"), local_name!("h2"), local_name!("h3"), local_name!("h4"), local_name!("h5"), local_name!("h6"), local_name!("head"), local_name!("header"), local_name!("hgroup"), local_name!("hr"), local_name!("html"), local_name!("img"), local_name!("ins"), local_name!("main"), local_name!("nav"), local_name!("rp"), local_name!("rt"), local_name!("ruby"), local_name!("section"), local_name!("span"), local_name!("style"), local_name!("summary"), local_name!("sup"), local_name!("table"), local_name!("tbody"), local_name!("td"), local_name!("tfoot"), local_name!("th"), local_name!("thead"), local_name!("title"), local_name!("tr"), local_name!("wbr"), )) .into_iter() .cloned() .collect(); pub static ref ALL_ATTRIBUTES: HashSet = BASIC_ALL_ATTRIBUTES.union(&hashset! { local_name!("class"), local_name!("dir"), local_name!("hidden"), local_name!("id"), local_name!("lang"), local_name!("style"), local_name!("tabindex"), local_name!("title"), LocalName::from("translate"), }).into_iter().cloned().collect(); // Can't figure out how to merge HashMaps :( pub static ref ATTRIBUTES: HashMap> = hashmap! { local_name!("a") => hashset!{ local_name!("href"), local_name!("hreflang"), local_name!("name"), local_name!("rel"), }, local_name!("abbr") => hashset!{ local_name!("title"), }, local_name!("blockquote") => hashset!{ local_name!("cite"), }, local_name!("col") => hashset!{ local_name!("span"), local_name!("width"), }, local_name!("colgroup") => hashset!{ local_name!("span"), local_name!("width"), }, local_name!("data") => hashset!{ local_name!("value"), }, local_name!("del") => hashset!{ local_name!("cite"), local_name!("datetime"), }, local_name!("dfn") => hashset!{ local_name!("title"), }, local_name!("img") => hashset!{ local_name!("align"), local_name!("alt"), local_name!("border"), local_name!("height"), local_name!("src"), local_name!("srcset"), local_name!("width"), }, local_name!("ins") => hashset!{ local_name!("cite"), local_name!("datetime"), }, local_name!("li") => hashset!{ local_name!("value"), }, local_name!("ol") => hashset!{ LocalName::from("reversed"), local_name!("start"), local_name!("type"), }, local_name!("q") => hashset!{ local_name!("cite"), }, local_name!("style") => hashset!{ local_name!("media"), local_name!("scoped"), local_name!("type"), }, local_name!("table") => hashset!{ local_name!("align"), local_name!("bgcolor"), local_name!("border"), local_name!("cellpadding"), local_name!("cellspacing"), local_name!("frame"), local_name!("rules"), LocalName::from("sortable"), local_name!("summary"), local_name!("width"), }, local_name!("td") => hashset!{ local_name!("abbr"), local_name!("align"), local_name!("axis"), local_name!("colspan"), local_name!("headers"), local_name!("rowspan"), local_name!("valign"), local_name!("width"), }, local_name!("th") => hashset!{ local_name!("abbr"), local_name!("align"), local_name!("axis"), local_name!("colspan"), local_name!("headers"), local_name!("rowspan"), local_name!("scope"), LocalName::from("sorted"), local_name!("valign"), local_name!("width"), }, local_name!("time") => hashset!{ local_name!("datetime"), LocalName::from("pubdate"), }, local_name!("ul") => hashset!{ local_name!("type"), }, }; pub static ref ADD_ATTRIBUTES: HashMap> = BASIC_ADD_ATTRIBUTES.clone(); pub static ref PROTOCOLS: HashMap>> = hashmap! { local_name!("a") => hashmap! { local_name!("href") => hashset!{"ftp", "http", "https", "mailto"}, }, local_name!("blockquote") => hashmap! { local_name!("cite") => hashset!{"http", "https"}, }, local_name!("del") => hashmap! { local_name!("cite") => hashset!{"http", "https"}, }, local_name!("img") => hashmap! { local_name!("src") => hashset!{"http", "https"}, }, local_name!("ins") => hashmap! { local_name!("cite") => hashset!{"http", "https"}, }, local_name!("q") => hashmap! { local_name!("cite") => hashset!{"http", "https"}, }, }; pub static ref CSS_PROPERTIES: Vec = vec![ css_property!("-moz-appearance"), css_property!("-moz-background-inline-policy"), css_property!("-moz-box-sizing"), css_property!("-moz-column-count"), css_property!("-moz-column-fill"), css_property!("-moz-column-gap"), css_property!("-moz-column-rule"), css_property!("-moz-column-rule-color"), css_property!("-moz-column-rule-style"), css_property!("-moz-column-rule-width"), css_property!("-moz-column-width"), css_property!("-moz-font-feature-settings"), css_property!("-moz-font-language-override"), css_property!("-moz-hyphens"), css_property!("-moz-text-align-last"), css_property!("-moz-text-decoration-color"), css_property!("-moz-text-decoration-line"), css_property!("-moz-text-decoration-style"), css_property!("-moz-text-size-adjust"), css_property!("-ms-background-position-x"), css_property!("-ms-background-position-y"), css_property!("-ms-block-progression"), css_property!("-ms-content-zoom-chaining"), css_property!("-ms-content-zoom-limit"), css_property!("-ms-content-zoom-limit-max"), css_property!("-ms-content-zoom-limit-min"), css_property!("-ms-content-zoom-snap"), css_property!("-ms-content-zoom-snap-points"), css_property!("-ms-content-zoom-snap-type"), css_property!("-ms-content-zooming"), css_property!("-ms-filter"), css_property!("-ms-flex"), css_property!("-ms-flex-align"), css_property!("-ms-flex-direction"), css_property!("-ms-flex-order"), css_property!("-ms-flex-pack"), css_property!("-ms-flex-wrap"), css_property!("-ms-flow-from"), css_property!("-ms-flow-into"), css_property!("-ms-grid-column"), css_property!("-ms-grid-column-align"), css_property!("-ms-grid-column-span"), css_property!("-ms-grid-columns"), css_property!("-ms-grid-row"), css_property!("-ms-grid-row-align"), css_property!("-ms-grid-row-span"), css_property!("-ms-grid-rows"), css_property!("-ms-high-contrast-adjust"), css_property!("-ms-hyphenate-limit-chars"), css_property!("-ms-hyphenate-limit-lines"), css_property!("-ms-hyphenate-limit-zone"), css_property!("-ms-hyphens"), css_property!("-ms-ime-mode"), css_property!("-ms-interpolation-mode"), css_property!("-ms-layout-flow"), css_property!("-ms-layout-grid"), css_property!("-ms-layout-grid-char"), css_property!("-ms-layout-grid-line"), css_property!("-ms-layout-grid-mode"), css_property!("-ms-layout-grid-type"), css_property!("-ms-overflow-style"), css_property!("-ms-overflow-x"), css_property!("-ms-overflow-y"), css_property!("-ms-progress-appearance"), css_property!("-ms-scroll-chaining"), css_property!("-ms-scroll-limit"), css_property!("-ms-scroll-limit-x-max"), css_property!("-ms-scroll-limit-x-min"), css_property!("-ms-scroll-limit-y-max"), css_property!("-ms-scroll-limit-y-min"), css_property!("-ms-scroll-rails"), css_property!("-ms-scroll-snap-points-x"), css_property!("-ms-scroll-snap-points-y"), css_property!("-ms-scroll-snap-type"), css_property!("-ms-scroll-snap-x"), css_property!("-ms-scroll-snap-y"), css_property!("-ms-scroll-translation"), css_property!("-ms-scrollbar-arrow-color"), css_property!("-ms-scrollbar-base-color"), css_property!("-ms-scrollbar-darkshadow-color"), css_property!("-ms-scrollbar-face-color"), css_property!("-ms-scrollbar-highlight-color"), css_property!("-ms-scrollbar-shadow-color"), css_property!("-ms-scrollbar-track-color"), css_property!("-ms-text-align-last"), css_property!("-ms-text-autospace"), css_property!("-ms-text-justify"), css_property!("-ms-text-kashida-space"), css_property!("-ms-text-overflow"), css_property!("-ms-text-size-adjust"), css_property!("-ms-text-underline-position"), css_property!("-ms-touch-action"), css_property!("-ms-user-select"), css_property!("-ms-word-break"), css_property!("-ms-word-wrap"), css_property!("-ms-wrap-flow"), css_property!("-ms-wrap-margin"), css_property!("-ms-wrap-through"), css_property!("-ms-writing-mode"), css_property!("-ms-zoom"), css_property!("-webkit-align-content"), css_property!("-webkit-align-items"), css_property!("-webkit-align-self"), css_property!("-webkit-animation"), css_property!("-webkit-animation-delay"), css_property!("-webkit-animation-direction"), css_property!("-webkit-animation-duration"), css_property!("-webkit-animation-fill-mode"), css_property!("-webkit-animation-iteration-count"), css_property!("-webkit-animation-name"), css_property!("-webkit-animation-play-state"), css_property!("-webkit-animation-timing-function"), css_property!("-webkit-appearance"), css_property!("-webkit-backface-visibility"), css_property!("-webkit-background-blend-mode"), css_property!("-webkit-background-clip"), css_property!("-webkit-background-composite"), css_property!("-webkit-background-origin"), css_property!("-webkit-background-size"), css_property!("-webkit-blend-mode"), css_property!("-webkit-border-after"), css_property!("-webkit-border-after-color"), css_property!("-webkit-border-after-style"), css_property!("-webkit-border-after-width"), css_property!("-webkit-border-before"), css_property!("-webkit-border-before-color"), css_property!("-webkit-border-before-style"), css_property!("-webkit-border-before-width"), css_property!("-webkit-border-bottom-left-radius"), css_property!("-webkit-border-bottom-right-radius"), css_property!("-webkit-border-end"), css_property!("-webkit-border-end-color"), css_property!("-webkit-border-end-style"), css_property!("-webkit-border-end-width"), css_property!("-webkit-border-fit"), css_property!("-webkit-border-image"), css_property!("-webkit-border-radius"), css_property!("-webkit-border-start"), css_property!("-webkit-border-start-color"), css_property!("-webkit-border-start-style"), css_property!("-webkit-border-start-width"), css_property!("-webkit-border-top-left-radius"), css_property!("-webkit-border-top-right-radius"), css_property!("-webkit-box-align"), css_property!("-webkit-box-decoration-break"), css_property!("-webkit-box-flex"), css_property!("-webkit-box-flex-group"), css_property!("-webkit-box-lines"), css_property!("-webkit-box-ordinal-group"), css_property!("-webkit-box-orient"), css_property!("-webkit-box-pack"), css_property!("-webkit-box-reflect"), css_property!("-webkit-box-shadow"), css_property!("-webkit-box-sizing"), css_property!("-webkit-clip-path"), css_property!("-webkit-column-axis"), css_property!("-webkit-column-break-after"), css_property!("-webkit-column-break-before"), css_property!("-webkit-column-break-inside"), css_property!("-webkit-column-count"), css_property!("-webkit-column-gap"), css_property!("-webkit-column-progression"), css_property!("-webkit-column-rule"), css_property!("-webkit-column-rule-color"), css_property!("-webkit-column-rule-style"), css_property!("-webkit-column-rule-width"), css_property!("-webkit-column-span"), css_property!("-webkit-column-width"), css_property!("-webkit-columns"), css_property!("-webkit-filter"), css_property!("-webkit-flex"), css_property!("-webkit-flex-basis"), css_property!("-webkit-flex-direction"), css_property!("-webkit-flex-flow"), css_property!("-webkit-flex-grow"), css_property!("-webkit-flex-shrink"), css_property!("-webkit-flex-wrap"), css_property!("-webkit-flow-from"), css_property!("-webkit-flow-into"), css_property!("-webkit-font-size-delta"), css_property!("-webkit-font-smoothing"), css_property!("-webkit-grid-area"), css_property!("-webkit-grid-auto-columns"), css_property!("-webkit-grid-auto-flow"), css_property!("-webkit-grid-auto-rows"), css_property!("-webkit-grid-column"), css_property!("-webkit-grid-column-end"), css_property!("-webkit-grid-column-start"), css_property!("-webkit-grid-definition-columns"), css_property!("-webkit-grid-definition-rows"), css_property!("-webkit-grid-row"), css_property!("-webkit-grid-row-end"), css_property!("-webkit-grid-row-start"), css_property!("-webkit-justify-content"), css_property!("-webkit-line-clamp"), css_property!("-webkit-logical-height"), css_property!("-webkit-logical-width"), css_property!("-webkit-margin-after"), css_property!("-webkit-margin-after-collapse"), css_property!("-webkit-margin-before"), css_property!("-webkit-margin-before-collapse"), css_property!("-webkit-margin-bottom-collapse"), css_property!("-webkit-margin-collapse"), css_property!("-webkit-margin-end"), css_property!("-webkit-margin-start"), css_property!("-webkit-margin-top-collapse"), css_property!("-webkit-marquee"), css_property!("-webkit-marquee-direction"), css_property!("-webkit-marquee-increment"), css_property!("-webkit-marquee-repetition"), css_property!("-webkit-marquee-speed"), css_property!("-webkit-marquee-style"), css_property!("-webkit-mask"), css_property!("-webkit-mask-box-image"), css_property!("-webkit-mask-box-image-outset"), css_property!("-webkit-mask-box-image-repeat"), css_property!("-webkit-mask-box-image-slice"), css_property!("-webkit-mask-box-image-source"), css_property!("-webkit-mask-box-image-width"), css_property!("-webkit-mask-clip"), css_property!("-webkit-mask-composite"), css_property!("-webkit-mask-image"), css_property!("-webkit-mask-origin"), css_property!("-webkit-mask-position"), css_property!("-webkit-mask-position-x"), css_property!("-webkit-mask-position-y"), css_property!("-webkit-mask-repeat"), css_property!("-webkit-mask-repeat-x"), css_property!("-webkit-mask-repeat-y"), css_property!("-webkit-mask-size"), css_property!("-webkit-mask-source-type"), css_property!("-webkit-max-logical-height"), css_property!("-webkit-max-logical-width"), css_property!("-webkit-min-logical-height"), css_property!("-webkit-min-logical-width"), css_property!("-webkit-opacity"), css_property!("-webkit-order"), css_property!("-webkit-padding-after"), css_property!("-webkit-padding-before"), css_property!("-webkit-padding-end"), css_property!("-webkit-padding-start"), css_property!("-webkit-perspective"), css_property!("-webkit-perspective-origin"), css_property!("-webkit-perspective-origin-x"), css_property!("-webkit-perspective-origin-y"), css_property!("-webkit-region-break-after"), css_property!("-webkit-region-break-before"), css_property!("-webkit-region-break-inside"), css_property!("-webkit-region-fragment"), css_property!("-webkit-shape-inside"), css_property!("-webkit-shape-margin"), css_property!("-webkit-shape-outside"), css_property!("-webkit-shape-padding"), css_property!("-webkit-svg-shadow"), css_property!("-webkit-tap-highlight-color"), css_property!("-webkit-text-decoration"), css_property!("-webkit-text-decoration-color"), css_property!("-webkit-text-decoration-line"), css_property!("-webkit-text-decoration-style"), css_property!("-webkit-text-size-adjust"), css_property!("-webkit-touch-callout"), css_property!("-webkit-transform"), css_property!("-webkit-transform-origin"), css_property!("-webkit-transform-origin-x"), css_property!("-webkit-transform-origin-y"), css_property!("-webkit-transform-origin-z"), css_property!("-webkit-transform-style"), css_property!("-webkit-transition"), css_property!("-webkit-transition-delay"), css_property!("-webkit-transition-duration"), css_property!("-webkit-transition-property"), css_property!("-webkit-transition-timing-function"), css_property!("-webkit-user-drag"), css_property!("-webkit-wrap-flow"), css_property!("-webkit-wrap-through"), css_property!("align-content"), css_property!("align-items"), css_property!("align-self"), css_property!("alignment-adjust"), css_property!("alignment-baseline"), css_property!("all"), css_property!("anchor-point"), css_property!("animation"), css_property!("animation-delay"), css_property!("animation-direction"), css_property!("animation-duration"), css_property!("animation-fill-mode"), css_property!("animation-iteration-count"), css_property!("animation-name"), css_property!("animation-play-state"), css_property!("animation-timing-function"), css_property!("azimuth"), css_property!("backface-visibility"), css_property!("background"), css_property!("background-attachment"), css_property!("background-clip"), css_property!("background-color"), css_property!("background-image"), css_property!("background-origin"), css_property!("background-position"), css_property!("background-repeat"), css_property!("background-size"), css_property!("baseline-shift"), css_property!("binding"), css_property!("bleed"), css_property!("bookmark-label"), css_property!("bookmark-level"), css_property!("bookmark-state"), css_property!("border"), css_property!("border-bottom"), css_property!("border-bottom-color"), css_property!("border-bottom-left-radius"), css_property!("border-bottom-right-radius"), css_property!("border-bottom-style"), css_property!("border-bottom-width"), css_property!("border-collapse"), css_property!("border-color"), css_property!("border-image"), css_property!("border-image-outset"), css_property!("border-image-repeat"), css_property!("border-image-slice"), css_property!("border-image-source"), css_property!("border-image-width"), css_property!("border-left"), css_property!("border-left-color"), css_property!("border-left-style"), css_property!("border-left-width"), css_property!("border-radius"), css_property!("border-right"), css_property!("border-right-color"), css_property!("border-right-style"), css_property!("border-right-width"), css_property!("border-spacing"), css_property!("border-style"), css_property!("border-top"), css_property!("border-top-color"), css_property!("border-top-left-radius"), css_property!("border-top-right-radius"), css_property!("border-top-style"), css_property!("border-top-width"), css_property!("border-width"), css_property!("bottom"), css_property!("box-decoration-break"), css_property!("box-shadow"), css_property!("box-sizing"), css_property!("box-snap"), css_property!("box-suppress"), css_property!("break-after"), css_property!("break-before"), css_property!("break-inside"), css_property!("caption-side"), css_property!("chains"), css_property!("clear"), css_property!("clip"), css_property!("clip-path"), css_property!("clip-rule"), css_property!("color"), css_property!("color-interpolation"), css_property!("color-interpolation-filters"), css_property!("color-profile"), css_property!("color-rendering"), css_property!("column-count"), css_property!("column-fill"), css_property!("column-gap"), css_property!("column-rule"), css_property!("column-rule-color"), css_property!("column-rule-style"), css_property!("column-rule-width"), css_property!("column-span"), css_property!("column-width"), css_property!("columns"), css_property!("contain"), css_property!("content"), css_property!("counter-increment"), css_property!("counter-reset"), css_property!("counter-set"), css_property!("crop"), css_property!("cue"), css_property!("cue-after"), css_property!("cue-before"), css_property!("cursor"), css_property!("direction"), css_property!("display"), css_property!("display-inside"), css_property!("display-list"), css_property!("display-outside"), css_property!("dominant-baseline"), css_property!("elevation"), css_property!("empty-cells"), css_property!("enable-background"), css_property!("fill"), css_property!("fill-opacity"), css_property!("fill-rule"), css_property!("filter"), css_property!("flex"), css_property!("flex-basis"), css_property!("flex-direction"), css_property!("flex-flow"), css_property!("flex-grow"), css_property!("flex-shrink"), css_property!("flex-wrap"), css_property!("float"), css_property!("float-offset"), css_property!("flood-color"), css_property!("flood-opacity"), css_property!("flow-from"), css_property!("flow-into"), css_property!("font"), css_property!("font-family"), css_property!("font-feature-settings"), css_property!("font-kerning"), css_property!("font-language-override"), css_property!("font-size"), css_property!("font-size-adjust"), css_property!("font-stretch"), css_property!("font-style"), css_property!("font-synthesis"), css_property!("font-variant"), css_property!("font-variant-alternates"), css_property!("font-variant-caps"), css_property!("font-variant-east-asian"), css_property!("font-variant-ligatures"), css_property!("font-variant-numeric"), css_property!("font-variant-position"), css_property!("font-weight"), css_property!("glyph-orientation-horizontal"), css_property!("glyph-orientation-vertical"), css_property!("grid"), css_property!("grid-area"), css_property!("grid-auto-columns"), css_property!("grid-auto-flow"), css_property!("grid-auto-rows"), css_property!("grid-column"), css_property!("grid-column-end"), css_property!("grid-column-start"), css_property!("grid-row"), css_property!("grid-row-end"), css_property!("grid-row-start"), css_property!("grid-template"), css_property!("grid-template-areas"), css_property!("grid-template-columns"), css_property!("grid-template-rows"), css_property!("hanging-punctuation"), css_property!("height"), css_property!("hyphens"), css_property!("icon"), css_property!("image-orientation"), css_property!("image-rendering"), css_property!("image-resolution"), css_property!("ime-mode"), css_property!("initial-letters"), css_property!("inline-box-align"), css_property!("justify-content"), css_property!("justify-items"), css_property!("justify-self"), css_property!("kerning"), css_property!("left"), css_property!("letter-spacing"), css_property!("lighting-color"), css_property!("line-box-contain"), css_property!("line-break"), css_property!("line-grid"), css_property!("line-height"), css_property!("line-snap"), css_property!("line-stacking"), css_property!("line-stacking-ruby"), css_property!("line-stacking-shift"), css_property!("line-stacking-strategy"), css_property!("list-style"), css_property!("list-style-image"), css_property!("list-style-position"), css_property!("list-style-type"), css_property!("margin"), css_property!("margin-bottom"), css_property!("margin-left"), css_property!("margin-right"), css_property!("margin-top"), css_property!("marker"), css_property!("marker-end"), css_property!("marker-mid"), css_property!("marker-offset"), css_property!("marker-side"), css_property!("marker-start"), css_property!("marks"), css_property!("mask"), css_property!("mask-box"), css_property!("mask-box-outset"), css_property!("mask-box-repeat"), css_property!("mask-box-slice"), css_property!("mask-box-source"), css_property!("mask-box-width"), css_property!("mask-clip"), css_property!("mask-image"), css_property!("mask-origin"), css_property!("mask-position"), css_property!("mask-repeat"), css_property!("mask-size"), css_property!("mask-source-type"), css_property!("mask-type"), css_property!("max-height"), css_property!("max-lines"), css_property!("max-width"), css_property!("min-height"), css_property!("min-width"), css_property!("move-to"), css_property!("nav-down"), css_property!("nav-index"), css_property!("nav-left"), css_property!("nav-right"), css_property!("nav-up"), css_property!("object-fit"), css_property!("object-position"), css_property!("opacity"), css_property!("order"), css_property!("orphans"), css_property!("outline"), css_property!("outline-color"), css_property!("outline-offset"), css_property!("outline-style"), css_property!("outline-width"), css_property!("overflow"), css_property!("overflow-wrap"), css_property!("overflow-x"), css_property!("overflow-y"), css_property!("padding"), css_property!("padding-bottom"), css_property!("padding-left"), css_property!("padding-right"), css_property!("padding-top"), css_property!("page"), css_property!("page-break-after"), css_property!("page-break-before"), css_property!("page-break-inside"), css_property!("page-policy"), css_property!("pause"), css_property!("pause-after"), css_property!("pause-before"), css_property!("perspective"), css_property!("perspective-origin"), css_property!("pitch"), css_property!("pitch-range"), css_property!("play-during"), css_property!("pointer-events"), css_property!("position"), css_property!("presentation-level"), css_property!("quotes"), css_property!("region-fragment"), css_property!("resize"), css_property!("rest"), css_property!("rest-after"), css_property!("rest-before"), css_property!("richness"), css_property!("right"), css_property!("rotation"), css_property!("rotation-point"), css_property!("ruby-align"), css_property!("ruby-merge"), css_property!("ruby-position"), css_property!("shape-image-threshold"), css_property!("shape-margin"), css_property!("shape-outside"), css_property!("shape-rendering"), css_property!("size"), css_property!("speak"), css_property!("speak-as"), css_property!("speak-header"), css_property!("speak-numeral"), css_property!("speak-punctuation"), css_property!("speech-rate"), css_property!("stop-color"), css_property!("stop-opacity"), css_property!("stress"), css_property!("string-set"), css_property!("stroke"), css_property!("stroke-dasharray"), css_property!("stroke-dashoffset"), css_property!("stroke-linecap"), css_property!("stroke-linejoin"), css_property!("stroke-miterlimit"), css_property!("stroke-opacity"), css_property!("stroke-width"), css_property!("tab-size"), css_property!("table-layout"), css_property!("text-align"), css_property!("text-align-last"), css_property!("text-anchor"), css_property!("text-combine-horizontal"), css_property!("text-combine-upright"), css_property!("text-decoration"), css_property!("text-decoration-color"), css_property!("text-decoration-line"), css_property!("text-decoration-skip"), css_property!("text-decoration-style"), css_property!("text-emphasis"), css_property!("text-emphasis-color"), css_property!("text-emphasis-position"), css_property!("text-emphasis-style"), css_property!("text-height"), css_property!("text-indent"), css_property!("text-justify"), css_property!("text-orientation"), css_property!("text-overflow"), css_property!("text-rendering"), css_property!("text-shadow"), css_property!("text-size-adjust"), css_property!("text-space-collapse"), css_property!("text-transform"), css_property!("text-underline-position"), css_property!("text-wrap"), css_property!("top"), css_property!("touch-action"), css_property!("transform"), css_property!("transform-origin"), css_property!("transform-style"), css_property!("transition"), css_property!("transition-delay"), css_property!("transition-duration"), css_property!("transition-property"), css_property!("transition-timing-function"), css_property!("unicode-bidi"), css_property!("unicode-range"), css_property!("vertical-align"), css_property!("visibility"), css_property!("voice-balance"), css_property!("voice-duration"), css_property!("voice-family"), css_property!("voice-pitch"), css_property!("voice-range"), css_property!("voice-rate"), css_property!("voice-stress"), css_property!("voice-volume"), css_property!("volume"), css_property!("white-space"), css_property!("widows"), css_property!("width"), css_property!("will-change"), css_property!("word-break"), css_property!("word-spacing"), css_property!("word-wrap"), css_property!("wrap-flow"), css_property!("wrap-through"), css_property!("writing-mode"), css_property!("z-index"), ]; }