pub(crate) fn is_zero_length_unit_property(property: &str) -> bool {
matches!(
property,
"border"
| "border-block"
| "border-block-end"
| "border-block-end-width"
| "border-block-start"
| "border-block-start-width"
| "border-block-width"
| "border-bottom"
| "border-bottom-left-radius"
| "border-bottom-right-radius"
| "border-bottom-width"
| "border-inline"
| "border-inline-end"
| "border-end-end-radius"
| "border-end-start-radius"
| "border-inline-end-width"
| "border-inline-start"
| "border-inline-start-width"
| "border-inline-width"
| "border-left"
| "border-left-width"
| "border-radius"
| "border-right"
| "border-right-width"
| "border-start-end-radius"
| "border-start-start-radius"
| "border-spacing"
| "border-top"
| "border-top-left-radius"
| "border-top-right-radius"
| "border-top-width"
| "border-width"
| "margin"
| "margin-block"
| "margin-block-end"
| "margin-block-start"
| "margin-bottom"
| "margin-inline"
| "margin-inline-end"
| "margin-inline-start"
| "margin-left"
| "margin-right"
| "margin-top"
| "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"
| "inset"
| "inset-block"
| "inset-block-end"
| "inset-block-start"
| "inset-inline"
| "inset-inline-end"
| "inset-inline-start"
| "top"
| "right"
| "bottom"
| "left"
| "width"
| "min-width"
| "max-width"
| "height"
| "min-height"
| "max-height"
| "box-shadow"
| "block-size"
| "min-block-size"
| "max-block-size"
| "inline-size"
| "min-inline-size"
| "max-inline-size"
| "outline"
| "outline-width"
| "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-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"
| "text-shadow"
| "text-decoration"
| "text-decoration-thickness"
| "text-indent"
| "gap"
| "row-gap"
| "column-gap"
| "letter-spacing"
| "word-spacing"
| "line-height"
| "stroke-dasharray"
| "stroke-dashoffset"
| "stroke-width"
| "font-size"
| "tab-size"
| "vertical-align"
| "border-image-width"
| "flex-basis"
| "perspective"
| "grid-template-columns"
| "grid-template-rows"
| "grid-auto-columns"
| "grid-auto-rows"
| "translate"
)
}
pub(crate) fn is_zero_percentage_unit_property(property: &str) -> bool {
matches!(
property,
"background-position"
| "mask-position"
| "-webkit-mask-position"
| "perspective-origin"
| "transform-origin"
| "translate"
)
}
pub(crate) fn is_css_angle_unit(unit: &str) -> bool {
matches!(
unit.to_ascii_lowercase().as_str(),
"deg" | "grad" | "rad" | "turn"
)
}
pub(crate) fn is_css_length_unit(unit: &str) -> bool {
matches!(
unit.to_ascii_lowercase().as_str(),
"cap"
| "ch"
| "cm"
| "em"
| "ex"
| "ic"
| "in"
| "lh"
| "mm"
| "pc"
| "pt"
| "px"
| "q"
| "rem"
| "rlh"
| "vb"
| "vh"
| "vi"
| "vmax"
| "vmin"
| "vw"
)
}
pub(crate) fn is_known_css_unit(unit: &str) -> bool {
is_css_length_unit(unit)
|| matches!(
unit,
"deg"
| "grad"
| "rad"
| "turn"
| "ms"
| "s"
| "hz"
| "khz"
| "dpi"
| "dpcm"
| "dppx"
| "x"
| "fr"
)
}