module FF.CSS.Spec.Safe.Property where

open import Agda.Builtin.String using (String; primStringAppend)
open import Agda.Primitive using (lzero) renaming (Set to Type)

private
  infixr 5 _++_

  _++_ : String -> String -> String
  _++_ = primStringAppend

-- MDN CSS property reference:
-- https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties
data PropertyName : Type lzero where
  allProp colorProp backgroundColorProp backgroundAttachmentProp backgroundClipProp backgroundOriginProp backgroundRepeatProp backgroundSizeProp backgroundBlendModeProp displayProp visibilityProp opacityProp orderProp readingFlowProp readingOrderProp : PropertyName
  colorSchemeProp dynamicRangeLimitProp forcedColorAdjustProp printColorAdjustProp : PropertyName
  positionProp topProp rightProp bottomProp leftProp insetProp zIndexProp floatProp clearProp : PropertyName
  widthProp heightProp minWidthProp maxWidthProp minHeightProp maxHeightProp boxSizingProp aspectRatioProp : PropertyName
  marginProp marginTopProp marginRightProp marginBottomProp marginLeftProp : PropertyName
  paddingProp paddingTopProp paddingRightProp paddingBottomProp paddingLeftProp : PropertyName
  borderWidthProp borderTopWidthProp borderRightWidthProp borderBottomWidthProp borderLeftWidthProp : PropertyName
  borderStyleProp borderTopStyleProp borderRightStyleProp borderBottomStyleProp borderLeftStyleProp borderColorProp borderTopColorProp borderRightColorProp borderBottomColorProp borderLeftColorProp borderRadiusProp borderTopLeftRadiusProp borderTopRightRadiusProp borderBottomRightRadiusProp borderBottomLeftRadiusProp boxShadowProp : PropertyName
  borderCollapseProp borderSpacingProp captionSideProp emptyCellsProp tableLayoutProp : PropertyName
  breakAfterProp breakBeforeProp breakInsideProp boxDecorationBreakProp orphansProp widowsProp : PropertyName
  accentColorProp appearanceProp caretAnimationProp caretColorProp caretShapeProp interactivityProp outlineColorProp outlineOffsetProp outlineStyleProp outlineWidthProp pointerEventsProp resizeProp userSelectProp : PropertyName
  overflowProp overflowBlockProp overflowInlineProp overflowXProp overflowYProp lineClampProp scrollBehaviorProp scrollMarkerGroupProp scrollTargetGroupProp scrollbarGutterProp textOverflowProp : PropertyName
  overscrollBehaviorProp overscrollBehaviorBlockProp overscrollBehaviorInlineProp overscrollBehaviorXProp overscrollBehaviorYProp : PropertyName
  scrollSnapAlignProp scrollSnapStopProp scrollSnapTypeProp : PropertyName
  scrollPaddingProp scrollPaddingBlockProp scrollPaddingBlockStartProp scrollPaddingBlockEndProp scrollPaddingInlineProp scrollPaddingInlineStartProp scrollPaddingInlineEndProp : PropertyName
  scrollPaddingTopProp scrollPaddingRightProp scrollPaddingBottomProp scrollPaddingLeftProp : PropertyName
  scrollMarginProp scrollMarginBlockProp scrollMarginBlockStartProp scrollMarginBlockEndProp scrollMarginInlineProp scrollMarginInlineStartProp scrollMarginInlineEndProp : PropertyName
  scrollMarginTopProp scrollMarginRightProp scrollMarginBottomProp scrollMarginLeftProp : PropertyName
  scrollTimelineAxisProp scrollTimelineNameProp scrollbarColorProp scrollbarWidthProp : PropertyName
  fontSizeProp fontStyleProp fontWeightProp fontKerningProp fontLanguageOverrideProp fontOpticalSizingProp fontSynthesisSmallCapsProp fontSynthesisStyleProp fontSynthesisWeightProp fontVariantCapsProp fontVariantEmojiProp fontVariantPositionProp lineHeightProp textAlignProp textAlignLastProp textTransformProp whiteSpaceProp whiteSpaceCollapseProp textWrapProp textWrapModeProp textWrapStyleProp overflowWrapProp wordBreakProp wordWrapProp hyphensProp lineBreakProp textJustifyProp letterSpacingProp wordSpacingProp tabSizeProp hyphenateCharacterProp : PropertyName
  contentProp quotesProp : PropertyName
  textDecorationColorProp textDecorationLineProp textDecorationSkipInkProp textDecorationStyleProp textDecorationThicknessProp textEmphasisColorProp textEmphasisPositionProp textEmphasisStyleProp textUnderlineOffsetProp textUnderlinePositionProp : PropertyName
  listStylePositionProp listStyleTypeProp listStyleImageProp listStyleProp counterResetProp counterIncrementProp counterSetProp : PropertyName
  flexDirectionProp flexWrapProp flexGrowProp flexShrinkProp flexBasisProp justifyContentProp alignItemsProp gapProp rowGapProp columnGapProp : PropertyName
  alignContentProp alignSelfProp justifyItemsProp justifySelfProp flexFlowProp : PropertyName
  columnCountProp columnFillProp columnRuleColorProp columnRuleStyleProp columnRuleWidthProp columnRuleProp columnSpanProp columnWidthProp columnHeightProp columnWrapProp columnsProp : PropertyName
  gridTemplateProp gridTemplateAreasProp gridTemplateColumnsProp gridTemplateRowsProp gridAutoColumnsProp gridAutoRowsProp gridAutoFlowProp gridColumnProp gridColumnStartProp gridColumnEndProp gridRowProp gridRowStartProp gridRowEndProp gridAreaProp : PropertyName
  imageOrientationProp imageRenderingProp objectFitProp objectPositionProp : PropertyName
  containProp contentVisibilityProp containerNameProp containerTypeProp containerProp : PropertyName
  rubyAlignProp rubyOverhangProp rubyPositionProp : PropertyName
  alignmentBaselineProp baselineShiftProp baselineSourceProp dominantBaselineProp initialLetterProp textBoxProp textBoxEdgeProp textBoxTrimProp verticalAlignProp : PropertyName
  directionProp writingModeProp textOrientationProp unicodeBidiProp textCombineUprightProp : PropertyName
  blockSizeProp inlineSizeProp minBlockSizeProp minInlineSizeProp maxBlockSizeProp maxInlineSizeProp : PropertyName
  insetBlockProp insetBlockStartProp insetBlockEndProp insetInlineProp insetInlineStartProp insetInlineEndProp : PropertyName
  marginBlockProp marginBlockStartProp marginBlockEndProp marginInlineProp marginInlineStartProp marginInlineEndProp : PropertyName
  paddingBlockProp paddingBlockStartProp paddingBlockEndProp paddingInlineProp paddingInlineStartProp paddingInlineEndProp : PropertyName
  borderBlockColorProp borderBlockStartColorProp borderBlockEndColorProp borderInlineColorProp borderInlineStartColorProp borderInlineEndColorProp : PropertyName
  borderBlockStyleProp borderBlockStartStyleProp borderBlockEndStyleProp borderInlineStyleProp borderInlineStartStyleProp borderInlineEndStyleProp : PropertyName
  borderBlockWidthProp borderBlockStartWidthProp borderBlockEndWidthProp borderInlineWidthProp borderInlineStartWidthProp borderInlineEndWidthProp : PropertyName
  borderStartStartRadiusProp borderStartEndRadiusProp borderEndStartRadiusProp borderEndEndRadiusProp : PropertyName
  backfaceVisibilityProp perspectiveProp perspectiveOriginProp rotateProp scaleProp transformProp transformBoxProp transformOriginProp transformStyleProp translateProp : PropertyName
  animationProp animationCompositionProp animationDelayProp animationDirectionProp animationDurationProp animationFillModeProp animationIterationCountProp animationNameProp animationPlayStateProp animationTimingFunctionProp : PropertyName
  transitionProp transitionBehaviorProp transitionDelayProp transitionDurationProp transitionPropertyProp transitionTimingFunctionProp : PropertyName
  clipPathProp maskClipProp maskCompositeProp maskImageProp maskModeProp maskOriginProp maskPositionProp maskRepeatProp maskSizeProp maskTypeProp : PropertyName
  filterProp backdropFilterProp colorInterpolationFiltersProp floodColorProp floodOpacityProp lightingColorProp : PropertyName
  isolationProp mixBlendModeProp : PropertyName
  willChangeProp viewTransitionClassProp viewTransitionNameProp overflowAnchorProp : PropertyName
  customProp : String -> PropertyName

propertyString : PropertyName -> String
propertyString allProp = "all"
propertyString colorProp = "color"
propertyString backgroundColorProp = "background-color"
propertyString backgroundAttachmentProp = "background-attachment"
propertyString backgroundClipProp = "background-clip"
propertyString backgroundOriginProp = "background-origin"
propertyString backgroundRepeatProp = "background-repeat"
propertyString backgroundSizeProp = "background-size"
propertyString backgroundBlendModeProp = "background-blend-mode"
propertyString displayProp = "display"
propertyString visibilityProp = "visibility"
propertyString opacityProp = "opacity"
propertyString orderProp = "order"
propertyString readingFlowProp = "reading-flow"
propertyString readingOrderProp = "reading-order"
propertyString colorSchemeProp = "color-scheme"
propertyString dynamicRangeLimitProp = "dynamic-range-limit"
propertyString forcedColorAdjustProp = "forced-color-adjust"
propertyString printColorAdjustProp = "print-color-adjust"
propertyString positionProp = "position"
propertyString topProp = "top"
propertyString rightProp = "right"
propertyString bottomProp = "bottom"
propertyString leftProp = "left"
propertyString insetProp = "inset"
propertyString zIndexProp = "z-index"
propertyString floatProp = "float"
propertyString clearProp = "clear"
propertyString widthProp = "width"
propertyString heightProp = "height"
propertyString minWidthProp = "min-width"
propertyString maxWidthProp = "max-width"
propertyString minHeightProp = "min-height"
propertyString maxHeightProp = "max-height"
propertyString boxSizingProp = "box-sizing"
propertyString aspectRatioProp = "aspect-ratio"
propertyString marginProp = "margin"
propertyString marginTopProp = "margin-top"
propertyString marginRightProp = "margin-right"
propertyString marginBottomProp = "margin-bottom"
propertyString marginLeftProp = "margin-left"
propertyString paddingProp = "padding"
propertyString paddingTopProp = "padding-top"
propertyString paddingRightProp = "padding-right"
propertyString paddingBottomProp = "padding-bottom"
propertyString paddingLeftProp = "padding-left"
propertyString borderWidthProp = "border-width"
propertyString borderTopWidthProp = "border-top-width"
propertyString borderRightWidthProp = "border-right-width"
propertyString borderBottomWidthProp = "border-bottom-width"
propertyString borderLeftWidthProp = "border-left-width"
propertyString borderStyleProp = "border-style"
propertyString borderTopStyleProp = "border-top-style"
propertyString borderRightStyleProp = "border-right-style"
propertyString borderBottomStyleProp = "border-bottom-style"
propertyString borderLeftStyleProp = "border-left-style"
propertyString borderColorProp = "border-color"
propertyString borderTopColorProp = "border-top-color"
propertyString borderRightColorProp = "border-right-color"
propertyString borderBottomColorProp = "border-bottom-color"
propertyString borderLeftColorProp = "border-left-color"
propertyString borderRadiusProp = "border-radius"
propertyString borderTopLeftRadiusProp = "border-top-left-radius"
propertyString borderTopRightRadiusProp = "border-top-right-radius"
propertyString borderBottomRightRadiusProp = "border-bottom-right-radius"
propertyString borderBottomLeftRadiusProp = "border-bottom-left-radius"
propertyString boxShadowProp = "box-shadow"
propertyString borderCollapseProp = "border-collapse"
propertyString borderSpacingProp = "border-spacing"
propertyString captionSideProp = "caption-side"
propertyString emptyCellsProp = "empty-cells"
propertyString tableLayoutProp = "table-layout"
propertyString breakAfterProp = "break-after"
propertyString breakBeforeProp = "break-before"
propertyString breakInsideProp = "break-inside"
propertyString boxDecorationBreakProp = "box-decoration-break"
propertyString orphansProp = "orphans"
propertyString widowsProp = "widows"
propertyString accentColorProp = "accent-color"
propertyString appearanceProp = "appearance"
propertyString caretAnimationProp = "caret-animation"
propertyString caretColorProp = "caret-color"
propertyString caretShapeProp = "caret-shape"
propertyString interactivityProp = "interactivity"
propertyString outlineColorProp = "outline-color"
propertyString outlineOffsetProp = "outline-offset"
propertyString outlineStyleProp = "outline-style"
propertyString outlineWidthProp = "outline-width"
propertyString pointerEventsProp = "pointer-events"
propertyString resizeProp = "resize"
propertyString userSelectProp = "user-select"
propertyString overflowProp = "overflow"
propertyString overflowBlockProp = "overflow-block"
propertyString overflowInlineProp = "overflow-inline"
propertyString overflowXProp = "overflow-x"
propertyString overflowYProp = "overflow-y"
propertyString lineClampProp = "line-clamp"
propertyString scrollBehaviorProp = "scroll-behavior"
propertyString scrollMarkerGroupProp = "scroll-marker-group"
propertyString scrollTargetGroupProp = "scroll-target-group"
propertyString scrollbarGutterProp = "scrollbar-gutter"
propertyString textOverflowProp = "text-overflow"
propertyString overscrollBehaviorProp = "overscroll-behavior"
propertyString overscrollBehaviorBlockProp = "overscroll-behavior-block"
propertyString overscrollBehaviorInlineProp = "overscroll-behavior-inline"
propertyString overscrollBehaviorXProp = "overscroll-behavior-x"
propertyString overscrollBehaviorYProp = "overscroll-behavior-y"
propertyString scrollSnapAlignProp = "scroll-snap-align"
propertyString scrollSnapStopProp = "scroll-snap-stop"
propertyString scrollSnapTypeProp = "scroll-snap-type"
propertyString scrollPaddingProp = "scroll-padding"
propertyString scrollPaddingBlockProp = "scroll-padding-block"
propertyString scrollPaddingBlockStartProp = "scroll-padding-block-start"
propertyString scrollPaddingBlockEndProp = "scroll-padding-block-end"
propertyString scrollPaddingInlineProp = "scroll-padding-inline"
propertyString scrollPaddingInlineStartProp = "scroll-padding-inline-start"
propertyString scrollPaddingInlineEndProp = "scroll-padding-inline-end"
propertyString scrollPaddingTopProp = "scroll-padding-top"
propertyString scrollPaddingRightProp = "scroll-padding-right"
propertyString scrollPaddingBottomProp = "scroll-padding-bottom"
propertyString scrollPaddingLeftProp = "scroll-padding-left"
propertyString scrollMarginProp = "scroll-margin"
propertyString scrollMarginBlockProp = "scroll-margin-block"
propertyString scrollMarginBlockStartProp = "scroll-margin-block-start"
propertyString scrollMarginBlockEndProp = "scroll-margin-block-end"
propertyString scrollMarginInlineProp = "scroll-margin-inline"
propertyString scrollMarginInlineStartProp = "scroll-margin-inline-start"
propertyString scrollMarginInlineEndProp = "scroll-margin-inline-end"
propertyString scrollMarginTopProp = "scroll-margin-top"
propertyString scrollMarginRightProp = "scroll-margin-right"
propertyString scrollMarginBottomProp = "scroll-margin-bottom"
propertyString scrollMarginLeftProp = "scroll-margin-left"
propertyString scrollTimelineAxisProp = "scroll-timeline-axis"
propertyString scrollTimelineNameProp = "scroll-timeline-name"
propertyString scrollbarColorProp = "scrollbar-color"
propertyString scrollbarWidthProp = "scrollbar-width"
propertyString fontSizeProp = "font-size"
propertyString fontStyleProp = "font-style"
propertyString fontWeightProp = "font-weight"
propertyString fontKerningProp = "font-kerning"
propertyString fontLanguageOverrideProp = "font-language-override"
propertyString fontOpticalSizingProp = "font-optical-sizing"
propertyString fontSynthesisSmallCapsProp = "font-synthesis-small-caps"
propertyString fontSynthesisStyleProp = "font-synthesis-style"
propertyString fontSynthesisWeightProp = "font-synthesis-weight"
propertyString fontVariantCapsProp = "font-variant-caps"
propertyString fontVariantEmojiProp = "font-variant-emoji"
propertyString fontVariantPositionProp = "font-variant-position"
propertyString lineHeightProp = "line-height"
propertyString textAlignProp = "text-align"
propertyString textAlignLastProp = "text-align-last"
propertyString textTransformProp = "text-transform"
propertyString whiteSpaceProp = "white-space"
propertyString whiteSpaceCollapseProp = "white-space-collapse"
propertyString textWrapProp = "text-wrap"
propertyString textWrapModeProp = "text-wrap-mode"
propertyString textWrapStyleProp = "text-wrap-style"
propertyString overflowWrapProp = "overflow-wrap"
propertyString wordBreakProp = "word-break"
propertyString wordWrapProp = "word-wrap"
propertyString hyphensProp = "hyphens"
propertyString lineBreakProp = "line-break"
propertyString textJustifyProp = "text-justify"
propertyString letterSpacingProp = "letter-spacing"
propertyString wordSpacingProp = "word-spacing"
propertyString tabSizeProp = "tab-size"
propertyString hyphenateCharacterProp = "hyphenate-character"
propertyString contentProp = "content"
propertyString quotesProp = "quotes"
propertyString textDecorationColorProp = "text-decoration-color"
propertyString textDecorationLineProp = "text-decoration-line"
propertyString textDecorationSkipInkProp = "text-decoration-skip-ink"
propertyString textDecorationStyleProp = "text-decoration-style"
propertyString textDecorationThicknessProp = "text-decoration-thickness"
propertyString textEmphasisColorProp = "text-emphasis-color"
propertyString textEmphasisPositionProp = "text-emphasis-position"
propertyString textEmphasisStyleProp = "text-emphasis-style"
propertyString textUnderlineOffsetProp = "text-underline-offset"
propertyString textUnderlinePositionProp = "text-underline-position"
propertyString listStylePositionProp = "list-style-position"
propertyString listStyleTypeProp = "list-style-type"
propertyString listStyleImageProp = "list-style-image"
propertyString listStyleProp = "list-style"
propertyString counterResetProp = "counter-reset"
propertyString counterIncrementProp = "counter-increment"
propertyString counterSetProp = "counter-set"
propertyString flexDirectionProp = "flex-direction"
propertyString flexWrapProp = "flex-wrap"
propertyString flexGrowProp = "flex-grow"
propertyString flexShrinkProp = "flex-shrink"
propertyString flexBasisProp = "flex-basis"
propertyString justifyContentProp = "justify-content"
propertyString alignItemsProp = "align-items"
propertyString gapProp = "gap"
propertyString rowGapProp = "row-gap"
propertyString columnGapProp = "column-gap"
propertyString alignContentProp = "align-content"
propertyString alignSelfProp = "align-self"
propertyString justifyItemsProp = "justify-items"
propertyString justifySelfProp = "justify-self"
propertyString flexFlowProp = "flex-flow"
propertyString columnCountProp = "column-count"
propertyString columnFillProp = "column-fill"
propertyString columnRuleColorProp = "column-rule-color"
propertyString columnRuleStyleProp = "column-rule-style"
propertyString columnRuleWidthProp = "column-rule-width"
propertyString columnRuleProp = "column-rule"
propertyString columnSpanProp = "column-span"
propertyString columnWidthProp = "column-width"
propertyString columnHeightProp = "column-height"
propertyString columnWrapProp = "column-wrap"
propertyString columnsProp = "columns"
propertyString gridTemplateProp = "grid-template"
propertyString gridTemplateAreasProp = "grid-template-areas"
propertyString gridTemplateColumnsProp = "grid-template-columns"
propertyString gridTemplateRowsProp = "grid-template-rows"
propertyString gridAutoColumnsProp = "grid-auto-columns"
propertyString gridAutoRowsProp = "grid-auto-rows"
propertyString gridAutoFlowProp = "grid-auto-flow"
propertyString gridColumnProp = "grid-column"
propertyString gridColumnStartProp = "grid-column-start"
propertyString gridColumnEndProp = "grid-column-end"
propertyString gridRowProp = "grid-row"
propertyString gridRowStartProp = "grid-row-start"
propertyString gridRowEndProp = "grid-row-end"
propertyString gridAreaProp = "grid-area"
propertyString imageOrientationProp = "image-orientation"
propertyString imageRenderingProp = "image-rendering"
propertyString objectFitProp = "object-fit"
propertyString objectPositionProp = "object-position"
propertyString containProp = "contain"
propertyString contentVisibilityProp = "content-visibility"
propertyString containerNameProp = "container-name"
propertyString containerTypeProp = "container-type"
propertyString containerProp = "container"
propertyString rubyAlignProp = "ruby-align"
propertyString rubyOverhangProp = "ruby-overhang"
propertyString rubyPositionProp = "ruby-position"
propertyString alignmentBaselineProp = "alignment-baseline"
propertyString baselineShiftProp = "baseline-shift"
propertyString baselineSourceProp = "baseline-source"
propertyString dominantBaselineProp = "dominant-baseline"
propertyString initialLetterProp = "initial-letter"
propertyString textBoxProp = "text-box"
propertyString textBoxEdgeProp = "text-box-edge"
propertyString textBoxTrimProp = "text-box-trim"
propertyString verticalAlignProp = "vertical-align"
propertyString directionProp = "direction"
propertyString writingModeProp = "writing-mode"
propertyString textOrientationProp = "text-orientation"
propertyString unicodeBidiProp = "unicode-bidi"
propertyString textCombineUprightProp = "text-combine-upright"
propertyString blockSizeProp = "block-size"
propertyString inlineSizeProp = "inline-size"
propertyString minBlockSizeProp = "min-block-size"
propertyString minInlineSizeProp = "min-inline-size"
propertyString maxBlockSizeProp = "max-block-size"
propertyString maxInlineSizeProp = "max-inline-size"
propertyString insetBlockProp = "inset-block"
propertyString insetBlockStartProp = "inset-block-start"
propertyString insetBlockEndProp = "inset-block-end"
propertyString insetInlineProp = "inset-inline"
propertyString insetInlineStartProp = "inset-inline-start"
propertyString insetInlineEndProp = "inset-inline-end"
propertyString marginBlockProp = "margin-block"
propertyString marginBlockStartProp = "margin-block-start"
propertyString marginBlockEndProp = "margin-block-end"
propertyString marginInlineProp = "margin-inline"
propertyString marginInlineStartProp = "margin-inline-start"
propertyString marginInlineEndProp = "margin-inline-end"
propertyString paddingBlockProp = "padding-block"
propertyString paddingBlockStartProp = "padding-block-start"
propertyString paddingBlockEndProp = "padding-block-end"
propertyString paddingInlineProp = "padding-inline"
propertyString paddingInlineStartProp = "padding-inline-start"
propertyString paddingInlineEndProp = "padding-inline-end"
propertyString borderBlockColorProp = "border-block-color"
propertyString borderBlockStartColorProp = "border-block-start-color"
propertyString borderBlockEndColorProp = "border-block-end-color"
propertyString borderInlineColorProp = "border-inline-color"
propertyString borderInlineStartColorProp = "border-inline-start-color"
propertyString borderInlineEndColorProp = "border-inline-end-color"
propertyString borderBlockStyleProp = "border-block-style"
propertyString borderBlockStartStyleProp = "border-block-start-style"
propertyString borderBlockEndStyleProp = "border-block-end-style"
propertyString borderInlineStyleProp = "border-inline-style"
propertyString borderInlineStartStyleProp = "border-inline-start-style"
propertyString borderInlineEndStyleProp = "border-inline-end-style"
propertyString borderBlockWidthProp = "border-block-width"
propertyString borderBlockStartWidthProp = "border-block-start-width"
propertyString borderBlockEndWidthProp = "border-block-end-width"
propertyString borderInlineWidthProp = "border-inline-width"
propertyString borderInlineStartWidthProp = "border-inline-start-width"
propertyString borderInlineEndWidthProp = "border-inline-end-width"
propertyString borderStartStartRadiusProp = "border-start-start-radius"
propertyString borderStartEndRadiusProp = "border-start-end-radius"
propertyString borderEndStartRadiusProp = "border-end-start-radius"
propertyString borderEndEndRadiusProp = "border-end-end-radius"
propertyString backfaceVisibilityProp = "backface-visibility"
propertyString perspectiveProp = "perspective"
propertyString perspectiveOriginProp = "perspective-origin"
propertyString rotateProp = "rotate"
propertyString scaleProp = "scale"
propertyString transformProp = "transform"
propertyString transformBoxProp = "transform-box"
propertyString transformOriginProp = "transform-origin"
propertyString transformStyleProp = "transform-style"
propertyString translateProp = "translate"
propertyString animationProp = "animation"
propertyString animationCompositionProp = "animation-composition"
propertyString animationDelayProp = "animation-delay"
propertyString animationDirectionProp = "animation-direction"
propertyString animationDurationProp = "animation-duration"
propertyString animationFillModeProp = "animation-fill-mode"
propertyString animationIterationCountProp = "animation-iteration-count"
propertyString animationNameProp = "animation-name"
propertyString animationPlayStateProp = "animation-play-state"
propertyString animationTimingFunctionProp = "animation-timing-function"
propertyString transitionProp = "transition"
propertyString transitionBehaviorProp = "transition-behavior"
propertyString transitionDelayProp = "transition-delay"
propertyString transitionDurationProp = "transition-duration"
propertyString transitionPropertyProp = "transition-property"
propertyString transitionTimingFunctionProp = "transition-timing-function"
propertyString clipPathProp = "clip-path"
propertyString maskClipProp = "mask-clip"
propertyString maskCompositeProp = "mask-composite"
propertyString maskImageProp = "mask-image"
propertyString maskModeProp = "mask-mode"
propertyString maskOriginProp = "mask-origin"
propertyString maskPositionProp = "mask-position"
propertyString maskRepeatProp = "mask-repeat"
propertyString maskSizeProp = "mask-size"
propertyString maskTypeProp = "mask-type"
propertyString filterProp = "filter"
propertyString backdropFilterProp = "backdrop-filter"
propertyString colorInterpolationFiltersProp = "color-interpolation-filters"
propertyString floodColorProp = "flood-color"
propertyString floodOpacityProp = "flood-opacity"
propertyString lightingColorProp = "lighting-color"
propertyString isolationProp = "isolation"
propertyString mixBlendModeProp = "mix-blend-mode"
propertyString willChangeProp = "will-change"
propertyString viewTransitionClassProp = "view-transition-class"
propertyString viewTransitionNameProp = "view-transition-name"
propertyString overflowAnchorProp = "overflow-anchor"
propertyString (customProp name) = "--" ++ name