All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.olvind.mui.emotionSerialize.mod.scala Maven / Gradle / Ivy

There is a newer version: 5.11.16
Show newest version
package com.olvind.mui.emotionSerialize

import com.olvind.mui.csstype.mod.Property.AccentColor
import com.olvind.mui.csstype.mod.Property.AlignContent
import com.olvind.mui.csstype.mod.Property.AlignItems
import com.olvind.mui.csstype.mod.Property.AlignSelf
import com.olvind.mui.csstype.mod.Property.AlignTracks
import com.olvind.mui.csstype.mod.Property.AlignmentBaseline
import com.olvind.mui.csstype.mod.Property.All
import com.olvind.mui.csstype.mod.Property.Animation
import com.olvind.mui.csstype.mod.Property.AnimationDelay
import com.olvind.mui.csstype.mod.Property.AnimationDirection
import com.olvind.mui.csstype.mod.Property.AnimationDuration
import com.olvind.mui.csstype.mod.Property.AnimationFillMode
import com.olvind.mui.csstype.mod.Property.AnimationIterationCount
import com.olvind.mui.csstype.mod.Property.AnimationName
import com.olvind.mui.csstype.mod.Property.AnimationPlayState
import com.olvind.mui.csstype.mod.Property.AnimationTimingFunction
import com.olvind.mui.csstype.mod.Property.Appearance
import com.olvind.mui.csstype.mod.Property.AspectRatio
import com.olvind.mui.csstype.mod.Property.Azimuth
import com.olvind.mui.csstype.mod.Property.BackdropFilter
import com.olvind.mui.csstype.mod.Property.BackfaceVisibility
import com.olvind.mui.csstype.mod.Property.Background
import com.olvind.mui.csstype.mod.Property.BackgroundAttachment
import com.olvind.mui.csstype.mod.Property.BackgroundBlendMode
import com.olvind.mui.csstype.mod.Property.BackgroundClip
import com.olvind.mui.csstype.mod.Property.BackgroundColor
import com.olvind.mui.csstype.mod.Property.BackgroundImage
import com.olvind.mui.csstype.mod.Property.BackgroundOrigin
import com.olvind.mui.csstype.mod.Property.BackgroundPosition
import com.olvind.mui.csstype.mod.Property.BackgroundPositionX
import com.olvind.mui.csstype.mod.Property.BackgroundPositionY
import com.olvind.mui.csstype.mod.Property.BackgroundRepeat
import com.olvind.mui.csstype.mod.Property.BackgroundSize
import com.olvind.mui.csstype.mod.Property.BaselineShift
import com.olvind.mui.csstype.mod.Property.BlockOverflow
import com.olvind.mui.csstype.mod.Property.BlockSize
import com.olvind.mui.csstype.mod.Property.Border
import com.olvind.mui.csstype.mod.Property.BorderBlock
import com.olvind.mui.csstype.mod.Property.BorderBlockColor
import com.olvind.mui.csstype.mod.Property.BorderBlockEnd
import com.olvind.mui.csstype.mod.Property.BorderBlockEndColor
import com.olvind.mui.csstype.mod.Property.BorderBlockEndStyle
import com.olvind.mui.csstype.mod.Property.BorderBlockEndWidth
import com.olvind.mui.csstype.mod.Property.BorderBlockStart
import com.olvind.mui.csstype.mod.Property.BorderBlockStartColor
import com.olvind.mui.csstype.mod.Property.BorderBlockStartStyle
import com.olvind.mui.csstype.mod.Property.BorderBlockStartWidth
import com.olvind.mui.csstype.mod.Property.BorderBlockStyle
import com.olvind.mui.csstype.mod.Property.BorderBlockWidth
import com.olvind.mui.csstype.mod.Property.BorderBottom
import com.olvind.mui.csstype.mod.Property.BorderBottomColor
import com.olvind.mui.csstype.mod.Property.BorderBottomLeftRadius
import com.olvind.mui.csstype.mod.Property.BorderBottomRightRadius
import com.olvind.mui.csstype.mod.Property.BorderBottomStyle
import com.olvind.mui.csstype.mod.Property.BorderBottomWidth
import com.olvind.mui.csstype.mod.Property.BorderCollapse
import com.olvind.mui.csstype.mod.Property.BorderColor
import com.olvind.mui.csstype.mod.Property.BorderEndEndRadius
import com.olvind.mui.csstype.mod.Property.BorderEndStartRadius
import com.olvind.mui.csstype.mod.Property.BorderImage
import com.olvind.mui.csstype.mod.Property.BorderImageOutset
import com.olvind.mui.csstype.mod.Property.BorderImageRepeat
import com.olvind.mui.csstype.mod.Property.BorderImageSlice
import com.olvind.mui.csstype.mod.Property.BorderImageSource
import com.olvind.mui.csstype.mod.Property.BorderImageWidth
import com.olvind.mui.csstype.mod.Property.BorderInline
import com.olvind.mui.csstype.mod.Property.BorderInlineColor
import com.olvind.mui.csstype.mod.Property.BorderInlineEnd
import com.olvind.mui.csstype.mod.Property.BorderInlineEndColor
import com.olvind.mui.csstype.mod.Property.BorderInlineEndStyle
import com.olvind.mui.csstype.mod.Property.BorderInlineEndWidth
import com.olvind.mui.csstype.mod.Property.BorderInlineStart
import com.olvind.mui.csstype.mod.Property.BorderInlineStartColor
import com.olvind.mui.csstype.mod.Property.BorderInlineStartStyle
import com.olvind.mui.csstype.mod.Property.BorderInlineStartWidth
import com.olvind.mui.csstype.mod.Property.BorderInlineStyle
import com.olvind.mui.csstype.mod.Property.BorderInlineWidth
import com.olvind.mui.csstype.mod.Property.BorderLeft
import com.olvind.mui.csstype.mod.Property.BorderLeftColor
import com.olvind.mui.csstype.mod.Property.BorderLeftStyle
import com.olvind.mui.csstype.mod.Property.BorderLeftWidth
import com.olvind.mui.csstype.mod.Property.BorderRadius
import com.olvind.mui.csstype.mod.Property.BorderRight
import com.olvind.mui.csstype.mod.Property.BorderRightColor
import com.olvind.mui.csstype.mod.Property.BorderRightStyle
import com.olvind.mui.csstype.mod.Property.BorderRightWidth
import com.olvind.mui.csstype.mod.Property.BorderSpacing
import com.olvind.mui.csstype.mod.Property.BorderStartEndRadius
import com.olvind.mui.csstype.mod.Property.BorderStartStartRadius
import com.olvind.mui.csstype.mod.Property.BorderStyle
import com.olvind.mui.csstype.mod.Property.BorderTop
import com.olvind.mui.csstype.mod.Property.BorderTopColor
import com.olvind.mui.csstype.mod.Property.BorderTopLeftRadius
import com.olvind.mui.csstype.mod.Property.BorderTopRightRadius
import com.olvind.mui.csstype.mod.Property.BorderTopStyle
import com.olvind.mui.csstype.mod.Property.BorderTopWidth
import com.olvind.mui.csstype.mod.Property.BorderWidth
import com.olvind.mui.csstype.mod.Property.Bottom
import com.olvind.mui.csstype.mod.Property.BoxAlign
import com.olvind.mui.csstype.mod.Property.BoxDecorationBreak
import com.olvind.mui.csstype.mod.Property.BoxDirection
import com.olvind.mui.csstype.mod.Property.BoxFlex
import com.olvind.mui.csstype.mod.Property.BoxFlexGroup
import com.olvind.mui.csstype.mod.Property.BoxLines
import com.olvind.mui.csstype.mod.Property.BoxOrdinalGroup
import com.olvind.mui.csstype.mod.Property.BoxOrient
import com.olvind.mui.csstype.mod.Property.BoxPack
import com.olvind.mui.csstype.mod.Property.BoxShadow
import com.olvind.mui.csstype.mod.Property.BoxSizing
import com.olvind.mui.csstype.mod.Property.BreakAfter
import com.olvind.mui.csstype.mod.Property.BreakBefore
import com.olvind.mui.csstype.mod.Property.BreakInside
import com.olvind.mui.csstype.mod.Property.CaptionSide
import com.olvind.mui.csstype.mod.Property.CaretColor
import com.olvind.mui.csstype.mod.Property.Clear
import com.olvind.mui.csstype.mod.Property.Clip
import com.olvind.mui.csstype.mod.Property.ClipPath
import com.olvind.mui.csstype.mod.Property.ClipRule
import com.olvind.mui.csstype.mod.Property.Color
import com.olvind.mui.csstype.mod.Property.ColorAdjust
import com.olvind.mui.csstype.mod.Property.ColorInterpolation
import com.olvind.mui.csstype.mod.Property.ColorRendering
import com.olvind.mui.csstype.mod.Property.ColorScheme
import com.olvind.mui.csstype.mod.Property.ColumnCount
import com.olvind.mui.csstype.mod.Property.ColumnFill
import com.olvind.mui.csstype.mod.Property.ColumnGap
import com.olvind.mui.csstype.mod.Property.ColumnRule
import com.olvind.mui.csstype.mod.Property.ColumnRuleColor
import com.olvind.mui.csstype.mod.Property.ColumnRuleStyle
import com.olvind.mui.csstype.mod.Property.ColumnRuleWidth
import com.olvind.mui.csstype.mod.Property.ColumnSpan
import com.olvind.mui.csstype.mod.Property.ColumnWidth
import com.olvind.mui.csstype.mod.Property.Columns
import com.olvind.mui.csstype.mod.Property.Contain
import com.olvind.mui.csstype.mod.Property.Content
import com.olvind.mui.csstype.mod.Property.ContentVisibility
import com.olvind.mui.csstype.mod.Property.CounterIncrement
import com.olvind.mui.csstype.mod.Property.CounterReset
import com.olvind.mui.csstype.mod.Property.CounterSet
import com.olvind.mui.csstype.mod.Property.Cursor
import com.olvind.mui.csstype.mod.Property.Direction
import com.olvind.mui.csstype.mod.Property.Display
import com.olvind.mui.csstype.mod.Property.DominantBaseline
import com.olvind.mui.csstype.mod.Property.EmptyCells
import com.olvind.mui.csstype.mod.Property.Fill
import com.olvind.mui.csstype.mod.Property.FillOpacity
import com.olvind.mui.csstype.mod.Property.FillRule
import com.olvind.mui.csstype.mod.Property.Filter
import com.olvind.mui.csstype.mod.Property.Flex
import com.olvind.mui.csstype.mod.Property.FlexBasis
import com.olvind.mui.csstype.mod.Property.FlexDirection
import com.olvind.mui.csstype.mod.Property.FlexFlow
import com.olvind.mui.csstype.mod.Property.FlexGrow
import com.olvind.mui.csstype.mod.Property.FlexShrink
import com.olvind.mui.csstype.mod.Property.FlexWrap
import com.olvind.mui.csstype.mod.Property.Float
import com.olvind.mui.csstype.mod.Property.FloodColor
import com.olvind.mui.csstype.mod.Property.FloodOpacity
import com.olvind.mui.csstype.mod.Property.Font
import com.olvind.mui.csstype.mod.Property.FontFamily
import com.olvind.mui.csstype.mod.Property.FontFeatureSettings
import com.olvind.mui.csstype.mod.Property.FontKerning
import com.olvind.mui.csstype.mod.Property.FontLanguageOverride
import com.olvind.mui.csstype.mod.Property.FontOpticalSizing
import com.olvind.mui.csstype.mod.Property.FontSize
import com.olvind.mui.csstype.mod.Property.FontSizeAdjust
import com.olvind.mui.csstype.mod.Property.FontSmooth
import com.olvind.mui.csstype.mod.Property.FontStretch
import com.olvind.mui.csstype.mod.Property.FontStyle
import com.olvind.mui.csstype.mod.Property.FontSynthesis
import com.olvind.mui.csstype.mod.Property.FontVariant
import com.olvind.mui.csstype.mod.Property.FontVariantAlternates
import com.olvind.mui.csstype.mod.Property.FontVariantCaps
import com.olvind.mui.csstype.mod.Property.FontVariantEastAsian
import com.olvind.mui.csstype.mod.Property.FontVariantLigatures
import com.olvind.mui.csstype.mod.Property.FontVariantNumeric
import com.olvind.mui.csstype.mod.Property.FontVariantPosition
import com.olvind.mui.csstype.mod.Property.FontVariationSettings
import com.olvind.mui.csstype.mod.Property.FontWeight
import com.olvind.mui.csstype.mod.Property.ForcedColorAdjust
import com.olvind.mui.csstype.mod.Property.Gap
import com.olvind.mui.csstype.mod.Property.GlyphOrientationVertical
import com.olvind.mui.csstype.mod.Property.Grid
import com.olvind.mui.csstype.mod.Property.GridArea
import com.olvind.mui.csstype.mod.Property.GridAutoColumns
import com.olvind.mui.csstype.mod.Property.GridAutoFlow
import com.olvind.mui.csstype.mod.Property.GridAutoRows
import com.olvind.mui.csstype.mod.Property.GridColumn
import com.olvind.mui.csstype.mod.Property.GridColumnEnd
import com.olvind.mui.csstype.mod.Property.GridColumnGap
import com.olvind.mui.csstype.mod.Property.GridColumnStart
import com.olvind.mui.csstype.mod.Property.GridGap
import com.olvind.mui.csstype.mod.Property.GridRow
import com.olvind.mui.csstype.mod.Property.GridRowEnd
import com.olvind.mui.csstype.mod.Property.GridRowGap
import com.olvind.mui.csstype.mod.Property.GridRowStart
import com.olvind.mui.csstype.mod.Property.GridTemplate
import com.olvind.mui.csstype.mod.Property.GridTemplateAreas
import com.olvind.mui.csstype.mod.Property.GridTemplateColumns
import com.olvind.mui.csstype.mod.Property.GridTemplateRows
import com.olvind.mui.csstype.mod.Property.HangingPunctuation
import com.olvind.mui.csstype.mod.Property.Height
import com.olvind.mui.csstype.mod.Property.Hyphens
import com.olvind.mui.csstype.mod.Property.ImageOrientation
import com.olvind.mui.csstype.mod.Property.ImageRendering
import com.olvind.mui.csstype.mod.Property.ImageResolution
import com.olvind.mui.csstype.mod.Property.ImeMode
import com.olvind.mui.csstype.mod.Property.InitialLetter
import com.olvind.mui.csstype.mod.Property.InlineSize
import com.olvind.mui.csstype.mod.Property.Inset
import com.olvind.mui.csstype.mod.Property.InsetBlock
import com.olvind.mui.csstype.mod.Property.InsetBlockEnd
import com.olvind.mui.csstype.mod.Property.InsetBlockStart
import com.olvind.mui.csstype.mod.Property.InsetInline
import com.olvind.mui.csstype.mod.Property.InsetInlineEnd
import com.olvind.mui.csstype.mod.Property.InsetInlineStart
import com.olvind.mui.csstype.mod.Property.Isolation
import com.olvind.mui.csstype.mod.Property.JustifyContent
import com.olvind.mui.csstype.mod.Property.JustifyItems
import com.olvind.mui.csstype.mod.Property.JustifySelf
import com.olvind.mui.csstype.mod.Property.JustifyTracks
import com.olvind.mui.csstype.mod.Property.Left
import com.olvind.mui.csstype.mod.Property.LetterSpacing
import com.olvind.mui.csstype.mod.Property.LightingColor
import com.olvind.mui.csstype.mod.Property.LineBreak
import com.olvind.mui.csstype.mod.Property.LineClamp
import com.olvind.mui.csstype.mod.Property.LineHeight
import com.olvind.mui.csstype.mod.Property.LineHeightStep
import com.olvind.mui.csstype.mod.Property.ListStyle
import com.olvind.mui.csstype.mod.Property.ListStyleImage
import com.olvind.mui.csstype.mod.Property.ListStylePosition
import com.olvind.mui.csstype.mod.Property.ListStyleType
import com.olvind.mui.csstype.mod.Property.Margin
import com.olvind.mui.csstype.mod.Property.MarginBlock
import com.olvind.mui.csstype.mod.Property.MarginBlockEnd
import com.olvind.mui.csstype.mod.Property.MarginBlockStart
import com.olvind.mui.csstype.mod.Property.MarginBottom
import com.olvind.mui.csstype.mod.Property.MarginInline
import com.olvind.mui.csstype.mod.Property.MarginInlineEnd
import com.olvind.mui.csstype.mod.Property.MarginInlineStart
import com.olvind.mui.csstype.mod.Property.MarginLeft
import com.olvind.mui.csstype.mod.Property.MarginRight
import com.olvind.mui.csstype.mod.Property.MarginTop
import com.olvind.mui.csstype.mod.Property.Marker
import com.olvind.mui.csstype.mod.Property.MarkerEnd
import com.olvind.mui.csstype.mod.Property.MarkerMid
import com.olvind.mui.csstype.mod.Property.MarkerStart
import com.olvind.mui.csstype.mod.Property.Mask
import com.olvind.mui.csstype.mod.Property.MaskBorder
import com.olvind.mui.csstype.mod.Property.MaskBorderMode
import com.olvind.mui.csstype.mod.Property.MaskBorderOutset
import com.olvind.mui.csstype.mod.Property.MaskBorderRepeat
import com.olvind.mui.csstype.mod.Property.MaskBorderSlice
import com.olvind.mui.csstype.mod.Property.MaskBorderSource
import com.olvind.mui.csstype.mod.Property.MaskBorderWidth
import com.olvind.mui.csstype.mod.Property.MaskClip
import com.olvind.mui.csstype.mod.Property.MaskComposite
import com.olvind.mui.csstype.mod.Property.MaskImage
import com.olvind.mui.csstype.mod.Property.MaskMode
import com.olvind.mui.csstype.mod.Property.MaskOrigin
import com.olvind.mui.csstype.mod.Property.MaskPosition
import com.olvind.mui.csstype.mod.Property.MaskRepeat
import com.olvind.mui.csstype.mod.Property.MaskSize
import com.olvind.mui.csstype.mod.Property.MaskType
import com.olvind.mui.csstype.mod.Property.MathStyle
import com.olvind.mui.csstype.mod.Property.MaxBlockSize
import com.olvind.mui.csstype.mod.Property.MaxHeight
import com.olvind.mui.csstype.mod.Property.MaxInlineSize
import com.olvind.mui.csstype.mod.Property.MaxLines
import com.olvind.mui.csstype.mod.Property.MaxWidth
import com.olvind.mui.csstype.mod.Property.MinBlockSize
import com.olvind.mui.csstype.mod.Property.MinHeight
import com.olvind.mui.csstype.mod.Property.MinInlineSize
import com.olvind.mui.csstype.mod.Property.MinWidth
import com.olvind.mui.csstype.mod.Property.MixBlendMode
import com.olvind.mui.csstype.mod.Property.MozAppearance
import com.olvind.mui.csstype.mod.Property.MozBinding
import com.olvind.mui.csstype.mod.Property.MozBorderBottomColors
import com.olvind.mui.csstype.mod.Property.MozBorderLeftColors
import com.olvind.mui.csstype.mod.Property.MozBorderRightColors
import com.olvind.mui.csstype.mod.Property.MozBorderTopColors
import com.olvind.mui.csstype.mod.Property.MozContextProperties
import com.olvind.mui.csstype.mod.Property.MozFloatEdge
import com.olvind.mui.csstype.mod.Property.MozForceBrokenImageIcon
import com.olvind.mui.csstype.mod.Property.MozImageRegion
import com.olvind.mui.csstype.mod.Property.MozOrient
import com.olvind.mui.csstype.mod.Property.MozOutlineRadius
import com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomleft
import com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomright
import com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopleft
import com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopright
import com.olvind.mui.csstype.mod.Property.MozStackSizing
import com.olvind.mui.csstype.mod.Property.MozTextBlink
import com.olvind.mui.csstype.mod.Property.MozUserFocus
import com.olvind.mui.csstype.mod.Property.MozUserInput
import com.olvind.mui.csstype.mod.Property.MozUserModify
import com.olvind.mui.csstype.mod.Property.MozWindowDragging
import com.olvind.mui.csstype.mod.Property.MozWindowShadow
import com.olvind.mui.csstype.mod.Property.MsAccelerator
import com.olvind.mui.csstype.mod.Property.MsBlockProgression
import com.olvind.mui.csstype.mod.Property.MsContentZoomChaining
import com.olvind.mui.csstype.mod.Property.MsContentZoomLimit
import com.olvind.mui.csstype.mod.Property.MsContentZoomLimitMax
import com.olvind.mui.csstype.mod.Property.MsContentZoomLimitMin
import com.olvind.mui.csstype.mod.Property.MsContentZoomSnap
import com.olvind.mui.csstype.mod.Property.MsContentZoomSnapPoints
import com.olvind.mui.csstype.mod.Property.MsContentZoomSnapType
import com.olvind.mui.csstype.mod.Property.MsContentZooming
import com.olvind.mui.csstype.mod.Property.MsFilter
import com.olvind.mui.csstype.mod.Property.MsFlowFrom
import com.olvind.mui.csstype.mod.Property.MsFlowInto
import com.olvind.mui.csstype.mod.Property.MsGridColumns
import com.olvind.mui.csstype.mod.Property.MsGridRows
import com.olvind.mui.csstype.mod.Property.MsHighContrastAdjust
import com.olvind.mui.csstype.mod.Property.MsHyphenateLimitChars
import com.olvind.mui.csstype.mod.Property.MsHyphenateLimitLines
import com.olvind.mui.csstype.mod.Property.MsHyphenateLimitZone
import com.olvind.mui.csstype.mod.Property.MsImeAlign
import com.olvind.mui.csstype.mod.Property.MsOverflowStyle
import com.olvind.mui.csstype.mod.Property.MsScrollChaining
import com.olvind.mui.csstype.mod.Property.MsScrollLimit
import com.olvind.mui.csstype.mod.Property.MsScrollLimitXMax
import com.olvind.mui.csstype.mod.Property.MsScrollLimitXMin
import com.olvind.mui.csstype.mod.Property.MsScrollLimitYMax
import com.olvind.mui.csstype.mod.Property.MsScrollLimitYMin
import com.olvind.mui.csstype.mod.Property.MsScrollRails
import com.olvind.mui.csstype.mod.Property.MsScrollSnapPointsX
import com.olvind.mui.csstype.mod.Property.MsScrollSnapPointsY
import com.olvind.mui.csstype.mod.Property.MsScrollSnapType
import com.olvind.mui.csstype.mod.Property.MsScrollSnapX
import com.olvind.mui.csstype.mod.Property.MsScrollSnapY
import com.olvind.mui.csstype.mod.Property.MsScrollTranslation
import com.olvind.mui.csstype.mod.Property.MsScrollbar3dlightColor
import com.olvind.mui.csstype.mod.Property.MsScrollbarArrowColor
import com.olvind.mui.csstype.mod.Property.MsScrollbarBaseColor
import com.olvind.mui.csstype.mod.Property.MsScrollbarDarkshadowColor
import com.olvind.mui.csstype.mod.Property.MsScrollbarFaceColor
import com.olvind.mui.csstype.mod.Property.MsScrollbarHighlightColor
import com.olvind.mui.csstype.mod.Property.MsScrollbarShadowColor
import com.olvind.mui.csstype.mod.Property.MsScrollbarTrackColor
import com.olvind.mui.csstype.mod.Property.MsTextAutospace
import com.olvind.mui.csstype.mod.Property.MsTouchSelect
import com.olvind.mui.csstype.mod.Property.MsUserSelect
import com.olvind.mui.csstype.mod.Property.MsWrapFlow
import com.olvind.mui.csstype.mod.Property.MsWrapMargin
import com.olvind.mui.csstype.mod.Property.MsWrapThrough
import com.olvind.mui.csstype.mod.Property.ObjectFit
import com.olvind.mui.csstype.mod.Property.ObjectPosition
import com.olvind.mui.csstype.mod.Property.Offset
import com.olvind.mui.csstype.mod.Property.OffsetAnchor
import com.olvind.mui.csstype.mod.Property.OffsetDistance
import com.olvind.mui.csstype.mod.Property.OffsetPath
import com.olvind.mui.csstype.mod.Property.OffsetRotate
import com.olvind.mui.csstype.mod.Property.Opacity
import com.olvind.mui.csstype.mod.Property.Order
import com.olvind.mui.csstype.mod.Property.Orphans
import com.olvind.mui.csstype.mod.Property.Outline
import com.olvind.mui.csstype.mod.Property.OutlineColor
import com.olvind.mui.csstype.mod.Property.OutlineOffset
import com.olvind.mui.csstype.mod.Property.OutlineStyle
import com.olvind.mui.csstype.mod.Property.OutlineWidth
import com.olvind.mui.csstype.mod.Property.Overflow
import com.olvind.mui.csstype.mod.Property.OverflowAnchor
import com.olvind.mui.csstype.mod.Property.OverflowBlock
import com.olvind.mui.csstype.mod.Property.OverflowClipBox
import com.olvind.mui.csstype.mod.Property.OverflowClipMargin
import com.olvind.mui.csstype.mod.Property.OverflowInline
import com.olvind.mui.csstype.mod.Property.OverflowWrap
import com.olvind.mui.csstype.mod.Property.OverflowX
import com.olvind.mui.csstype.mod.Property.OverflowY
import com.olvind.mui.csstype.mod.Property.OverscrollBehavior
import com.olvind.mui.csstype.mod.Property.OverscrollBehaviorBlock
import com.olvind.mui.csstype.mod.Property.OverscrollBehaviorInline
import com.olvind.mui.csstype.mod.Property.OverscrollBehaviorX
import com.olvind.mui.csstype.mod.Property.OverscrollBehaviorY
import com.olvind.mui.csstype.mod.Property.Padding
import com.olvind.mui.csstype.mod.Property.PaddingBlock
import com.olvind.mui.csstype.mod.Property.PaddingBlockEnd
import com.olvind.mui.csstype.mod.Property.PaddingBlockStart
import com.olvind.mui.csstype.mod.Property.PaddingBottom
import com.olvind.mui.csstype.mod.Property.PaddingInline
import com.olvind.mui.csstype.mod.Property.PaddingInlineEnd
import com.olvind.mui.csstype.mod.Property.PaddingInlineStart
import com.olvind.mui.csstype.mod.Property.PaddingLeft
import com.olvind.mui.csstype.mod.Property.PaddingRight
import com.olvind.mui.csstype.mod.Property.PaddingTop
import com.olvind.mui.csstype.mod.Property.PageBreakAfter
import com.olvind.mui.csstype.mod.Property.PageBreakBefore
import com.olvind.mui.csstype.mod.Property.PageBreakInside
import com.olvind.mui.csstype.mod.Property.PaintOrder
import com.olvind.mui.csstype.mod.Property.Perspective
import com.olvind.mui.csstype.mod.Property.PerspectiveOrigin
import com.olvind.mui.csstype.mod.Property.PlaceContent
import com.olvind.mui.csstype.mod.Property.PlaceItems
import com.olvind.mui.csstype.mod.Property.PlaceSelf
import com.olvind.mui.csstype.mod.Property.PointerEvents
import com.olvind.mui.csstype.mod.Property.Position
import com.olvind.mui.csstype.mod.Property.Quotes
import com.olvind.mui.csstype.mod.Property.Resize
import com.olvind.mui.csstype.mod.Property.Right
import com.olvind.mui.csstype.mod.Property.Rotate
import com.olvind.mui.csstype.mod.Property.RowGap
import com.olvind.mui.csstype.mod.Property.RubyAlign
import com.olvind.mui.csstype.mod.Property.RubyMerge
import com.olvind.mui.csstype.mod.Property.RubyPosition
import com.olvind.mui.csstype.mod.Property.Scale
import com.olvind.mui.csstype.mod.Property.ScrollBehavior
import com.olvind.mui.csstype.mod.Property.ScrollMargin
import com.olvind.mui.csstype.mod.Property.ScrollMarginBlock
import com.olvind.mui.csstype.mod.Property.ScrollMarginBlockEnd
import com.olvind.mui.csstype.mod.Property.ScrollMarginBlockStart
import com.olvind.mui.csstype.mod.Property.ScrollMarginBottom
import com.olvind.mui.csstype.mod.Property.ScrollMarginInline
import com.olvind.mui.csstype.mod.Property.ScrollMarginInlineEnd
import com.olvind.mui.csstype.mod.Property.ScrollMarginInlineStart
import com.olvind.mui.csstype.mod.Property.ScrollMarginLeft
import com.olvind.mui.csstype.mod.Property.ScrollMarginRight
import com.olvind.mui.csstype.mod.Property.ScrollMarginTop
import com.olvind.mui.csstype.mod.Property.ScrollPadding
import com.olvind.mui.csstype.mod.Property.ScrollPaddingBlock
import com.olvind.mui.csstype.mod.Property.ScrollPaddingBlockEnd
import com.olvind.mui.csstype.mod.Property.ScrollPaddingBlockStart
import com.olvind.mui.csstype.mod.Property.ScrollPaddingBottom
import com.olvind.mui.csstype.mod.Property.ScrollPaddingInline
import com.olvind.mui.csstype.mod.Property.ScrollPaddingInlineEnd
import com.olvind.mui.csstype.mod.Property.ScrollPaddingInlineStart
import com.olvind.mui.csstype.mod.Property.ScrollPaddingLeft
import com.olvind.mui.csstype.mod.Property.ScrollPaddingRight
import com.olvind.mui.csstype.mod.Property.ScrollPaddingTop
import com.olvind.mui.csstype.mod.Property.ScrollSnapAlign
import com.olvind.mui.csstype.mod.Property.ScrollSnapCoordinate
import com.olvind.mui.csstype.mod.Property.ScrollSnapDestination
import com.olvind.mui.csstype.mod.Property.ScrollSnapPointsX
import com.olvind.mui.csstype.mod.Property.ScrollSnapPointsY
import com.olvind.mui.csstype.mod.Property.ScrollSnapStop
import com.olvind.mui.csstype.mod.Property.ScrollSnapType
import com.olvind.mui.csstype.mod.Property.ScrollSnapTypeX
import com.olvind.mui.csstype.mod.Property.ScrollSnapTypeY
import com.olvind.mui.csstype.mod.Property.ScrollbarColor
import com.olvind.mui.csstype.mod.Property.ScrollbarGutter
import com.olvind.mui.csstype.mod.Property.ScrollbarWidth
import com.olvind.mui.csstype.mod.Property.ShapeImageThreshold
import com.olvind.mui.csstype.mod.Property.ShapeMargin
import com.olvind.mui.csstype.mod.Property.ShapeOutside
import com.olvind.mui.csstype.mod.Property.ShapeRendering
import com.olvind.mui.csstype.mod.Property.StopColor
import com.olvind.mui.csstype.mod.Property.StopOpacity
import com.olvind.mui.csstype.mod.Property.Stroke
import com.olvind.mui.csstype.mod.Property.StrokeDasharray
import com.olvind.mui.csstype.mod.Property.StrokeDashoffset
import com.olvind.mui.csstype.mod.Property.StrokeLinecap
import com.olvind.mui.csstype.mod.Property.StrokeLinejoin
import com.olvind.mui.csstype.mod.Property.StrokeMiterlimit
import com.olvind.mui.csstype.mod.Property.StrokeOpacity
import com.olvind.mui.csstype.mod.Property.StrokeWidth
import com.olvind.mui.csstype.mod.Property.TabSize
import com.olvind.mui.csstype.mod.Property.TableLayout
import com.olvind.mui.csstype.mod.Property.TextAlign
import com.olvind.mui.csstype.mod.Property.TextAlignLast
import com.olvind.mui.csstype.mod.Property.TextAnchor
import com.olvind.mui.csstype.mod.Property.TextCombineUpright
import com.olvind.mui.csstype.mod.Property.TextDecoration
import com.olvind.mui.csstype.mod.Property.TextDecorationColor
import com.olvind.mui.csstype.mod.Property.TextDecorationLine
import com.olvind.mui.csstype.mod.Property.TextDecorationSkip
import com.olvind.mui.csstype.mod.Property.TextDecorationSkipInk
import com.olvind.mui.csstype.mod.Property.TextDecorationStyle
import com.olvind.mui.csstype.mod.Property.TextDecorationThickness
import com.olvind.mui.csstype.mod.Property.TextEmphasis
import com.olvind.mui.csstype.mod.Property.TextEmphasisColor
import com.olvind.mui.csstype.mod.Property.TextEmphasisPosition
import com.olvind.mui.csstype.mod.Property.TextEmphasisStyle
import com.olvind.mui.csstype.mod.Property.TextIndent
import com.olvind.mui.csstype.mod.Property.TextJustify
import com.olvind.mui.csstype.mod.Property.TextOrientation
import com.olvind.mui.csstype.mod.Property.TextOverflow
import com.olvind.mui.csstype.mod.Property.TextRendering
import com.olvind.mui.csstype.mod.Property.TextShadow
import com.olvind.mui.csstype.mod.Property.TextSizeAdjust
import com.olvind.mui.csstype.mod.Property.TextTransform
import com.olvind.mui.csstype.mod.Property.TextUnderlineOffset
import com.olvind.mui.csstype.mod.Property.TextUnderlinePosition
import com.olvind.mui.csstype.mod.Property.Top
import com.olvind.mui.csstype.mod.Property.TouchAction
import com.olvind.mui.csstype.mod.Property.Transform
import com.olvind.mui.csstype.mod.Property.TransformBox
import com.olvind.mui.csstype.mod.Property.TransformOrigin
import com.olvind.mui.csstype.mod.Property.TransformStyle
import com.olvind.mui.csstype.mod.Property.Transition
import com.olvind.mui.csstype.mod.Property.TransitionDelay
import com.olvind.mui.csstype.mod.Property.TransitionDuration
import com.olvind.mui.csstype.mod.Property.TransitionProperty
import com.olvind.mui.csstype.mod.Property.TransitionTimingFunction
import com.olvind.mui.csstype.mod.Property.Translate
import com.olvind.mui.csstype.mod.Property.UnicodeBidi
import com.olvind.mui.csstype.mod.Property.UserSelect
import com.olvind.mui.csstype.mod.Property.VectorEffect
import com.olvind.mui.csstype.mod.Property.VerticalAlign
import com.olvind.mui.csstype.mod.Property.Visibility
import com.olvind.mui.csstype.mod.Property.WebkitAppearance
import com.olvind.mui.csstype.mod.Property.WebkitBorderBefore
import com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeColor
import com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeStyle
import com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeWidth
import com.olvind.mui.csstype.mod.Property.WebkitBoxReflect
import com.olvind.mui.csstype.mod.Property.WebkitLineClamp
import com.olvind.mui.csstype.mod.Property.WebkitMask
import com.olvind.mui.csstype.mod.Property.WebkitMaskAttachment
import com.olvind.mui.csstype.mod.Property.WebkitMaskClip
import com.olvind.mui.csstype.mod.Property.WebkitMaskComposite
import com.olvind.mui.csstype.mod.Property.WebkitMaskImage
import com.olvind.mui.csstype.mod.Property.WebkitMaskOrigin
import com.olvind.mui.csstype.mod.Property.WebkitMaskPosition
import com.olvind.mui.csstype.mod.Property.WebkitMaskPositionX
import com.olvind.mui.csstype.mod.Property.WebkitMaskPositionY
import com.olvind.mui.csstype.mod.Property.WebkitMaskRepeat
import com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatX
import com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatY
import com.olvind.mui.csstype.mod.Property.WebkitMaskSize
import com.olvind.mui.csstype.mod.Property.WebkitOverflowScrolling
import com.olvind.mui.csstype.mod.Property.WebkitTapHighlightColor
import com.olvind.mui.csstype.mod.Property.WebkitTextFillColor
import com.olvind.mui.csstype.mod.Property.WebkitTextStroke
import com.olvind.mui.csstype.mod.Property.WebkitTextStrokeColor
import com.olvind.mui.csstype.mod.Property.WebkitTextStrokeWidth
import com.olvind.mui.csstype.mod.Property.WebkitTouchCallout
import com.olvind.mui.csstype.mod.Property.WebkitUserModify
import com.olvind.mui.csstype.mod.Property.WhiteSpace
import com.olvind.mui.csstype.mod.Property.Widows
import com.olvind.mui.csstype.mod.Property.Width
import com.olvind.mui.csstype.mod.Property.WillChange
import com.olvind.mui.csstype.mod.Property.WordBreak
import com.olvind.mui.csstype.mod.Property.WordSpacing
import com.olvind.mui.csstype.mod.Property.WordWrap
import com.olvind.mui.csstype.mod.Property.WritingMode
import com.olvind.mui.csstype.mod.Property.ZIndex
import com.olvind.mui.csstype.mod.Property.Zoom
import com.olvind.mui.emotionUtils.mod.SerializedStyles
import com.olvind.mui.std.Extract
import com.olvind.mui.std.NonNullable
import org.scalablytyped.runtime.StObject
import scala.scalajs.js
import scala.scalajs.js.annotation.{JSGlobalScope, JSGlobal, JSImport, JSName, JSBracketAccess}

object mod {
  
  /** 
  NOTE: Rewritten from type alias:
  {{{
  type CSSInterpolation = @emotion/serialize.@emotion/serialize.InterpolationPrimitive | @emotion/serialize.@emotion/serialize.ArrayCSSInterpolation
  }}}
  to avoid circular code involving: 
  - @emotion/serialize.@emotion/serialize.ArrayCSSInterpolation
  - @emotion/serialize.@emotion/serialize.CSSInterpolation
  */
  type CSSInterpolation = InterpolationPrimitive | Any
  
  /* import warning: transforms.RemoveMultipleInheritance#findNewParents newComments Dropped parents 
  - scala.Any because Inheritance from two classes. Inlined 
  - scala.AnyRef because Inheritance from two classes. Inlined 
  - scala.Any because Inheritance from two classes. Inlined getClass, hashCode, eq, equals, toString, ne, notify, notifyAll, wait, wait, wait, clone, finalize
  - js.Any because Inheritance from two classes. Inlined 
  - scala.AnyRef because Inheritance from two classes. Inlined 
  - js.Object because Inheritance from two classes. Inlined 
  - js.Any because Inheritance from two classes. Inlined 
  - org.scalablytyped.runtime.StObject because Inheritance from two classes. Inlined 
  - js.Object because Inheritance from two classes. Inlined hasOwnProperty, propertyIsEnumerable, valueOf, toLocaleString, isPrototypeOf
  - org.scalablytyped.runtime.StringDictionary because Inheritance from two classes. Inlined 
  - `com.olvind.mui`.emotionSerialize.mod.CSSOthersObject because Inheritance from two classes. Inlined  */ trait CSSObject
    extends StObject
       with CSSPropertiesWithMultiValues
       with CSSPseudos
  object CSSObject {
    
    inline def apply(): CSSObject = {
      val __obj = js.Dynamic.literal()
      __obj.asInstanceOf[CSSObject]
    }
  }
  
  /* Inlined {[ K in keyof @emotion/serialize.@emotion/serialize.CSSProperties ]: @emotion/serialize.@emotion/serialize.CSSProperties[K] | std.Array>} */
  trait CSSPropertiesWithMultiValues extends StObject {
    
    var KhtmlBoxAlign: js.UndefOr[
        BoxAlign | (js.Array[
          (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
        ])
      ] = js.undefined
    
    var KhtmlBoxDirection: js.UndefOr[
        BoxDirection | (js.Array[
          (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
        ])
      ] = js.undefined
    
    var KhtmlBoxFlex: js.UndefOr[
        BoxFlex | (js.Array[
          (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
        ])
      ] = js.undefined
    
    var KhtmlBoxFlexGroup: js.UndefOr[
        BoxFlexGroup | (js.Array[
          (Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]]
        ])
      ] = js.undefined
    
    var KhtmlBoxLines: js.UndefOr[
        BoxLines | (js.Array[
          (Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]]
        ])
      ] = js.undefined
    
    var KhtmlBoxOrdinalGroup: js.UndefOr[
        BoxOrdinalGroup | (js.Array[
          (Extract[
            js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
            String
          ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
        ])
      ] = js.undefined
    
    var KhtmlBoxOrient: js.UndefOr[
        BoxOrient | (js.Array[
          (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
        ])
      ] = js.undefined
    
    var KhtmlBoxPack: js.UndefOr[
        BoxPack | (js.Array[
          (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
        ])
      ] = js.undefined
    
    var KhtmlLineBreak: js.UndefOr[
        LineBreak | (js.Array[
          (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
        ])
      ] = js.undefined
    
    var KhtmlOpacity: js.UndefOr[
        Opacity | (js.Array[
          (Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]]
        ])
      ] = js.undefined
    
    var KhtmlUserSelect: js.UndefOr[
        UserSelect | (js.Array[
          (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
        ])
      ] = js.undefined
    
    var MozAnimation: js.UndefOr[
        Animation[String] | (js.Array[
          (Extract[
            js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Animation[String]]]
        ])
      ] = js.undefined
    
    var MozAnimationDelay: js.UndefOr[
        AnimationDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
        ])
      ] = js.undefined
    
    var MozAnimationDirection: js.UndefOr[
        AnimationDirection | (js.Array[
          (Extract[
            js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDirection]]
        ])
      ] = js.undefined
    
    var MozAnimationDuration: js.UndefOr[
        AnimationDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
        ])
      ] = js.undefined
    
    var MozAnimationFillMode: js.UndefOr[
        AnimationFillMode | (js.Array[
          (Extract[
            js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationFillMode]]
        ])
      ] = js.undefined
    
    var MozAnimationIterationCount: js.UndefOr[
        AnimationIterationCount | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
        ])
      ] = js.undefined
    
    var MozAnimationName: js.UndefOr[
        AnimationName | (js.Array[
          (Extract[
            js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationName]]
        ])
      ] = js.undefined
    
    var MozAnimationPlayState: js.UndefOr[
        AnimationPlayState | (js.Array[
          (Extract[
            js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationPlayState]]
        ])
      ] = js.undefined
    
    var MozAnimationTimingFunction: js.UndefOr[
        AnimationTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
        ])
      ] = js.undefined
    
    var MozAppearance: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozAppearance | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozAppearance | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozAppearance]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozAppearance]]
        ])
      ] = js.undefined
    
    var MozBackfaceVisibility: js.UndefOr[
        BackfaceVisibility | (js.Array[
          (Extract[
            js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackfaceVisibility]]
        ])
      ] = js.undefined
    
    var MozBackgroundClip: js.UndefOr[
        BackgroundClip | (js.Array[
          (Extract[
            js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundClip]]
        ])
      ] = js.undefined
    
    var MozBackgroundInlinePolicy: js.UndefOr[
        BoxDecorationBreak | (js.Array[
          (Extract[
            js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
            String
          ]) | NonNullable[js.UndefOr[BoxDecorationBreak]]
        ])
      ] = js.undefined
    
    var MozBackgroundOrigin: js.UndefOr[
        BackgroundOrigin | (js.Array[
          (Extract[
            js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundOrigin]]
        ])
      ] = js.undefined
    
    var MozBackgroundSize: js.UndefOr[
        (BackgroundSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
        ])
      ] = js.undefined
    
    var MozBinding: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozBinding | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozBinding | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBinding]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBinding]]
        ])
      ] = js.undefined
    
    var MozBorderBottomColors: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozBorderBottomColors | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozBorderBottomColors | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderBottomColors]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderBottomColors]]
        ])
      ] = js.undefined
    
    var MozBorderEndColor: js.UndefOr[
        BorderInlineEndColor | (js.Array[
          (Extract[
            js.UndefOr[BorderInlineEndColor | js.Array[NonNullable[js.UndefOr[BorderInlineEndColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineEndColor]]
        ])
      ] = js.undefined
    
    var MozBorderEndStyle: js.UndefOr[
        BorderInlineEndStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderInlineEndStyle | js.Array[NonNullable[js.UndefOr[BorderInlineEndStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineEndStyle]]
        ])
      ] = js.undefined
    
    var MozBorderEndWidth: js.UndefOr[
        (BorderInlineEndWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderInlineEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var MozBorderImage: js.UndefOr[
        BorderImage | (js.Array[
          (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
        ])
      ] = js.undefined
    
    var MozBorderLeftColors: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozBorderLeftColors | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozBorderLeftColors | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderLeftColors]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderLeftColors]]
        ])
      ] = js.undefined
    
    var MozBorderRadius: js.UndefOr[
        (BorderRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var MozBorderRadiusBottomleft: js.UndefOr[
        (BorderBottomLeftRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var MozBorderRadiusBottomright: js.UndefOr[
        (BorderBottomRightRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var MozBorderRadiusTopleft: js.UndefOr[
        (BorderTopLeftRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var MozBorderRadiusTopright: js.UndefOr[
        (BorderTopRightRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var MozBorderRightColors: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozBorderRightColors | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozBorderRightColors | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderRightColors]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderRightColors]]
        ])
      ] = js.undefined
    
    var MozBorderStartColor: js.UndefOr[
        BorderInlineStartColor | (js.Array[
          (Extract[
            js.UndefOr[
              BorderInlineStartColor | js.Array[NonNullable[js.UndefOr[BorderInlineStartColor]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineStartColor]]
        ])
      ] = js.undefined
    
    var MozBorderStartStyle: js.UndefOr[
        BorderInlineStartStyle | (js.Array[
          (Extract[
            js.UndefOr[
              BorderInlineStartStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStartStyle]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineStartStyle]]
        ])
      ] = js.undefined
    
    var MozBorderTopColors: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozBorderTopColors | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozBorderTopColors | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderTopColors]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozBorderTopColors]]
        ])
      ] = js.undefined
    
    var MozBoxAlign: js.UndefOr[
        BoxAlign | (js.Array[
          (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
        ])
      ] = js.undefined
    
    var MozBoxDirection: js.UndefOr[
        BoxDirection | (js.Array[
          (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
        ])
      ] = js.undefined
    
    var MozBoxFlex: js.UndefOr[
        BoxFlex | (js.Array[
          (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
        ])
      ] = js.undefined
    
    var MozBoxOrdinalGroup: js.UndefOr[
        BoxOrdinalGroup | (js.Array[
          (Extract[
            js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
            String
          ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
        ])
      ] = js.undefined
    
    var MozBoxOrient: js.UndefOr[
        BoxOrient | (js.Array[
          (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
        ])
      ] = js.undefined
    
    var MozBoxPack: js.UndefOr[
        BoxPack | (js.Array[
          (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
        ])
      ] = js.undefined
    
    var MozBoxShadow: js.UndefOr[
        BoxShadow | (js.Array[
          (Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]]
        ])
      ] = js.undefined
    
    var MozBoxSizing: js.UndefOr[
        BoxSizing | (js.Array[
          (Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]]
        ])
      ] = js.undefined
    
    var MozColumnCount: js.UndefOr[
        ColumnCount | (js.Array[
          (Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]]
        ])
      ] = js.undefined
    
    var MozColumnFill: js.UndefOr[
        ColumnFill | (js.Array[
          (Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]]
        ])
      ] = js.undefined
    
    var MozColumnGap: js.UndefOr[
        (ColumnGap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]])
        ])
      ] = js.undefined
    
    var MozColumnRule: js.UndefOr[
        (ColumnRule[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]])
        ])
      ] = js.undefined
    
    var MozColumnRuleColor: js.UndefOr[
        ColumnRuleColor | (js.Array[
          (Extract[
            js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColumnRuleColor]]
        ])
      ] = js.undefined
    
    var MozColumnRuleStyle: js.UndefOr[
        ColumnRuleStyle | (js.Array[
          (Extract[
            js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColumnRuleStyle]]
        ])
      ] = js.undefined
    
    var MozColumnRuleWidth: js.UndefOr[
        (ColumnRuleWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var MozColumnWidth: js.UndefOr[
        (ColumnWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var MozColumns: js.UndefOr[
        (Columns[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Columns[Double | String]]])
        ])
      ] = js.undefined
    
    var MozContextProperties: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozContextProperties | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozContextProperties | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozContextProperties]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozContextProperties]]
        ])
      ] = js.undefined
    
    var MozFloatEdge: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozFloatEdge | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozFloatEdge | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozFloatEdge]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozFloatEdge]]
        ])
      ] = js.undefined
    
    var MozFontFeatureSettings: js.UndefOr[
        FontFeatureSettings | (js.Array[
          (Extract[
            js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontFeatureSettings]]
        ])
      ] = js.undefined
    
    var MozFontLanguageOverride: js.UndefOr[
        FontLanguageOverride | (js.Array[
          (Extract[
            js.UndefOr[FontLanguageOverride | js.Array[NonNullable[js.UndefOr[FontLanguageOverride]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontLanguageOverride]]
        ])
      ] = js.undefined
    
    var MozForceBrokenImageIcon: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozForceBrokenImageIcon | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozForceBrokenImageIcon | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozForceBrokenImageIcon]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozForceBrokenImageIcon]]
        ])
      ] = js.undefined
    
    var MozHyphens: js.UndefOr[
        Hyphens | (js.Array[
          (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
        ])
      ] = js.undefined
    
    var MozImageRegion: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozImageRegion | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozImageRegion | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozImageRegion]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozImageRegion]]
        ])
      ] = js.undefined
    
    var MozMarginEnd: js.UndefOr[
        (MarginInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var MozMarginStart: js.UndefOr[
        (MarginInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var MozOpacity: js.UndefOr[
        Opacity | (js.Array[
          (Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]]
        ])
      ] = js.undefined
    
    var MozOrient: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozOrient | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozOrient | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOrient]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOrient]]
        ])
      ] = js.undefined
    
    var MozOsxFontSmoothing: js.UndefOr[
        (FontSmooth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]])
        ])
      ] = js.undefined
    
    var MozOutline: js.UndefOr[
        (Outline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Outline[Double | String]) | (js.Array[NonNullable[js.UndefOr[Outline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Outline[Double | String]]])
        ])
      ] = js.undefined
    
    var MozOutlineColor: js.UndefOr[
        OutlineColor | (js.Array[
          (Extract[js.UndefOr[OutlineColor | js.Array[NonNullable[js.UndefOr[OutlineColor]]]], String]) | NonNullable[js.UndefOr[OutlineColor]]
        ])
      ] = js.undefined
    
    var MozOutlineRadius: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.MozOutlineRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.MozOutlineRadius[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadius[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadius[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var MozOutlineRadiusBottomleft: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomleft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomleft[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomleft[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomleft[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var MozOutlineRadiusBottomright: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomright[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomright[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomright[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusBottomright[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var MozOutlineRadiusTopleft: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopleft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopleft[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopleft[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopleft[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var MozOutlineRadiusTopright: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopright[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopright[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopright[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.MozOutlineRadiusTopright[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var MozOutlineStyle: js.UndefOr[
        OutlineStyle | (js.Array[
          (Extract[js.UndefOr[OutlineStyle | js.Array[NonNullable[js.UndefOr[OutlineStyle]]]], String]) | NonNullable[js.UndefOr[OutlineStyle]]
        ])
      ] = js.undefined
    
    var MozOutlineWidth: js.UndefOr[
        (OutlineWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (OutlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[OutlineWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var MozPaddingEnd: js.UndefOr[
        (PaddingInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var MozPaddingStart: js.UndefOr[
        (PaddingInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var MozPerspective: js.UndefOr[
        (Perspective[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]])
        ])
      ] = js.undefined
    
    var MozPerspectiveOrigin: js.UndefOr[
        (PerspectiveOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var MozStackSizing: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozStackSizing | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozStackSizing | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozStackSizing]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozStackSizing]]
        ])
      ] = js.undefined
    
    var MozTabSize: js.UndefOr[
        (TabSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]])
        ])
      ] = js.undefined
    
    var MozTextAlignLast: js.UndefOr[
        TextAlignLast | (js.Array[
          (Extract[
            js.UndefOr[TextAlignLast | js.Array[NonNullable[js.UndefOr[TextAlignLast]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextAlignLast]]
        ])
      ] = js.undefined
    
    var MozTextBlink: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozTextBlink | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozTextBlink | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozTextBlink]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozTextBlink]]
        ])
      ] = js.undefined
    
    var MozTextDecorationColor: js.UndefOr[
        TextDecorationColor | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationColor]]
        ])
      ] = js.undefined
    
    var MozTextDecorationLine: js.UndefOr[
        TextDecorationLine | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationLine]]
        ])
      ] = js.undefined
    
    var MozTextDecorationStyle: js.UndefOr[
        TextDecorationStyle | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationStyle]]
        ])
      ] = js.undefined
    
    var MozTextSizeAdjust: js.UndefOr[
        TextSizeAdjust | (js.Array[
          (Extract[
            js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextSizeAdjust]]
        ])
      ] = js.undefined
    
    var MozTransformOrigin: js.UndefOr[
        (TransformOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var MozTransformStyle: js.UndefOr[
        TransformStyle | (js.Array[
          (Extract[
            js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransformStyle]]
        ])
      ] = js.undefined
    
    var MozTransition: js.UndefOr[
        Transition[String] | (js.Array[
          (Extract[
            js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Transition[String]]]
        ])
      ] = js.undefined
    
    var MozTransitionDelay: js.UndefOr[
        TransitionDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
        ])
      ] = js.undefined
    
    var MozTransitionDuration: js.UndefOr[
        TransitionDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
        ])
      ] = js.undefined
    
    var MozTransitionProperty: js.UndefOr[
        TransitionProperty | (js.Array[
          (Extract[
            js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransitionProperty]]
        ])
      ] = js.undefined
    
    var MozTransitionTimingFunction: js.UndefOr[
        TransitionTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
        ])
      ] = js.undefined
    
    var MozUserFocus: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozUserFocus | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozUserFocus | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozUserFocus]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozUserFocus]]
        ])
      ] = js.undefined
    
    var MozUserInput: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozUserInput | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozUserInput | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozUserInput]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozUserInput]]
        ])
      ] = js.undefined
    
    var MozUserModify: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozUserModify | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozUserModify | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozUserModify]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozUserModify]]
        ])
      ] = js.undefined
    
    var MozUserSelect: js.UndefOr[
        UserSelect | (js.Array[
          (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
        ])
      ] = js.undefined
    
    var MozWindowDragging: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozWindowDragging | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozWindowDragging | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozWindowDragging]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozWindowDragging]]
        ])
      ] = js.undefined
    
    var MozWindowShadow: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.MozWindowShadow | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.MozWindowShadow | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozWindowShadow]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.MozWindowShadow]]
        ])
      ] = js.undefined
    
    var OAnimation: js.UndefOr[
        Animation[String] | (js.Array[
          (Extract[
            js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Animation[String]]]
        ])
      ] = js.undefined
    
    var OAnimationDelay: js.UndefOr[
        AnimationDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
        ])
      ] = js.undefined
    
    var OAnimationDirection: js.UndefOr[
        AnimationDirection | (js.Array[
          (Extract[
            js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDirection]]
        ])
      ] = js.undefined
    
    var OAnimationDuration: js.UndefOr[
        AnimationDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
        ])
      ] = js.undefined
    
    var OAnimationFillMode: js.UndefOr[
        AnimationFillMode | (js.Array[
          (Extract[
            js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationFillMode]]
        ])
      ] = js.undefined
    
    var OAnimationIterationCount: js.UndefOr[
        AnimationIterationCount | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
        ])
      ] = js.undefined
    
    var OAnimationName: js.UndefOr[
        AnimationName | (js.Array[
          (Extract[
            js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationName]]
        ])
      ] = js.undefined
    
    var OAnimationPlayState: js.UndefOr[
        AnimationPlayState | (js.Array[
          (Extract[
            js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationPlayState]]
        ])
      ] = js.undefined
    
    var OAnimationTimingFunction: js.UndefOr[
        AnimationTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
        ])
      ] = js.undefined
    
    var OBackgroundSize: js.UndefOr[
        (BackgroundSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
        ])
      ] = js.undefined
    
    var OBorderImage: js.UndefOr[
        BorderImage | (js.Array[
          (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
        ])
      ] = js.undefined
    
    var OObjectFit: js.UndefOr[
        ObjectFit | (js.Array[
          (Extract[js.UndefOr[ObjectFit | js.Array[NonNullable[js.UndefOr[ObjectFit]]]], String]) | NonNullable[js.UndefOr[ObjectFit]]
        ])
      ] = js.undefined
    
    var OObjectPosition: js.UndefOr[
        (ObjectPosition[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ObjectPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[ObjectPosition[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ObjectPosition[Double | String]]])
        ])
      ] = js.undefined
    
    var OTabSize: js.UndefOr[
        (TabSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]])
        ])
      ] = js.undefined
    
    var OTextOverflow: js.UndefOr[
        TextOverflow | (js.Array[
          (Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]]
        ])
      ] = js.undefined
    
    var OTransform: js.UndefOr[
        Transform | (js.Array[
          (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
        ])
      ] = js.undefined
    
    var OTransformOrigin: js.UndefOr[
        (TransformOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var OTransition: js.UndefOr[
        Transition[String] | (js.Array[
          (Extract[
            js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Transition[String]]]
        ])
      ] = js.undefined
    
    var OTransitionDelay: js.UndefOr[
        TransitionDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
        ])
      ] = js.undefined
    
    var OTransitionDuration: js.UndefOr[
        TransitionDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
        ])
      ] = js.undefined
    
    var OTransitionProperty: js.UndefOr[
        TransitionProperty | (js.Array[
          (Extract[
            js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransitionProperty]]
        ])
      ] = js.undefined
    
    var OTransitionTimingFunction: js.UndefOr[
        TransitionTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
        ])
      ] = js.undefined
    
    var WebkitAlignContent: js.UndefOr[
        AlignContent | (js.Array[
          (Extract[js.UndefOr[AlignContent | js.Array[NonNullable[js.UndefOr[AlignContent]]]], String]) | NonNullable[js.UndefOr[AlignContent]]
        ])
      ] = js.undefined
    
    var WebkitAlignItems: js.UndefOr[
        AlignItems | (js.Array[
          (Extract[js.UndefOr[AlignItems | js.Array[NonNullable[js.UndefOr[AlignItems]]]], String]) | NonNullable[js.UndefOr[AlignItems]]
        ])
      ] = js.undefined
    
    var WebkitAlignSelf: js.UndefOr[
        AlignSelf | (js.Array[
          (Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]]
        ])
      ] = js.undefined
    
    var WebkitAnimation: js.UndefOr[
        Animation[String] | (js.Array[
          (Extract[
            js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Animation[String]]]
        ])
      ] = js.undefined
    
    var WebkitAnimationDelay: js.UndefOr[
        AnimationDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
        ])
      ] = js.undefined
    
    var WebkitAnimationDirection: js.UndefOr[
        AnimationDirection | (js.Array[
          (Extract[
            js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDirection]]
        ])
      ] = js.undefined
    
    var WebkitAnimationDuration: js.UndefOr[
        AnimationDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
        ])
      ] = js.undefined
    
    var WebkitAnimationFillMode: js.UndefOr[
        AnimationFillMode | (js.Array[
          (Extract[
            js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationFillMode]]
        ])
      ] = js.undefined
    
    var WebkitAnimationIterationCount: js.UndefOr[
        AnimationIterationCount | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
        ])
      ] = js.undefined
    
    var WebkitAnimationName: js.UndefOr[
        AnimationName | (js.Array[
          (Extract[
            js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationName]]
        ])
      ] = js.undefined
    
    var WebkitAnimationPlayState: js.UndefOr[
        AnimationPlayState | (js.Array[
          (Extract[
            js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationPlayState]]
        ])
      ] = js.undefined
    
    var WebkitAnimationTimingFunction: js.UndefOr[
        AnimationTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
        ])
      ] = js.undefined
    
    var WebkitAppearance: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitAppearance | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitAppearance | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitAppearance]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitAppearance]]
        ])
      ] = js.undefined
    
    var WebkitBackdropFilter: js.UndefOr[
        BackdropFilter | (js.Array[
          (Extract[
            js.UndefOr[BackdropFilter | js.Array[NonNullable[js.UndefOr[BackdropFilter]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackdropFilter]]
        ])
      ] = js.undefined
    
    var WebkitBackfaceVisibility: js.UndefOr[
        BackfaceVisibility | (js.Array[
          (Extract[
            js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackfaceVisibility]]
        ])
      ] = js.undefined
    
    var WebkitBackgroundClip: js.UndefOr[
        BackgroundClip | (js.Array[
          (Extract[
            js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundClip]]
        ])
      ] = js.undefined
    
    var WebkitBackgroundOrigin: js.UndefOr[
        BackgroundOrigin | (js.Array[
          (Extract[
            js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundOrigin]]
        ])
      ] = js.undefined
    
    var WebkitBackgroundSize: js.UndefOr[
        (BackgroundSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitBorderBefore: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitBorderBefore[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitBorderBefore[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBefore[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBefore[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitBorderBeforeColor: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeColor | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeColor | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeColor]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeColor]]
        ])
      ] = js.undefined
    
    var WebkitBorderBeforeStyle: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeStyle | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeStyle | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeStyle]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeStyle]]
        ])
      ] = js.undefined
    
    var WebkitBorderBeforeWidth: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeWidth[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeWidth[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBorderBeforeWidth[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitBorderBottomLeftRadius: js.UndefOr[
        (BorderBottomLeftRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitBorderBottomRightRadius: js.UndefOr[
        (BorderBottomRightRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitBorderImage: js.UndefOr[
        BorderImage | (js.Array[
          (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
        ])
      ] = js.undefined
    
    var WebkitBorderImageSlice: js.UndefOr[
        BorderImageSlice | (js.Array[
          (Extract[
            js.UndefOr[BorderImageSlice | js.Array[NonNullable[js.UndefOr[BorderImageSlice]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderImageSlice]]
        ])
      ] = js.undefined
    
    var WebkitBorderRadius: js.UndefOr[
        (BorderRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitBorderTopLeftRadius: js.UndefOr[
        (BorderTopLeftRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitBorderTopRightRadius: js.UndefOr[
        (BorderTopRightRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitBoxAlign: js.UndefOr[
        BoxAlign | (js.Array[
          (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
        ])
      ] = js.undefined
    
    var WebkitBoxDecorationBreak: js.UndefOr[
        BoxDecorationBreak | (js.Array[
          (Extract[
            js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
            String
          ]) | NonNullable[js.UndefOr[BoxDecorationBreak]]
        ])
      ] = js.undefined
    
    var WebkitBoxDirection: js.UndefOr[
        BoxDirection | (js.Array[
          (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
        ])
      ] = js.undefined
    
    var WebkitBoxFlex: js.UndefOr[
        BoxFlex | (js.Array[
          (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
        ])
      ] = js.undefined
    
    var WebkitBoxFlexGroup: js.UndefOr[
        BoxFlexGroup | (js.Array[
          (Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]]
        ])
      ] = js.undefined
    
    var WebkitBoxLines: js.UndefOr[
        BoxLines | (js.Array[
          (Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]]
        ])
      ] = js.undefined
    
    var WebkitBoxOrdinalGroup: js.UndefOr[
        BoxOrdinalGroup | (js.Array[
          (Extract[
            js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
            String
          ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
        ])
      ] = js.undefined
    
    var WebkitBoxOrient: js.UndefOr[
        BoxOrient | (js.Array[
          (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
        ])
      ] = js.undefined
    
    var WebkitBoxPack: js.UndefOr[
        BoxPack | (js.Array[
          (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
        ])
      ] = js.undefined
    
    var WebkitBoxReflect: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitBoxReflect[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitBoxReflect[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBoxReflect[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitBoxReflect[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitBoxShadow: js.UndefOr[
        BoxShadow | (js.Array[
          (Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]]
        ])
      ] = js.undefined
    
    var WebkitBoxSizing: js.UndefOr[
        BoxSizing | (js.Array[
          (Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]]
        ])
      ] = js.undefined
    
    var WebkitClipPath: js.UndefOr[
        ClipPath | (js.Array[
          (Extract[js.UndefOr[ClipPath | js.Array[NonNullable[js.UndefOr[ClipPath]]]], String]) | NonNullable[js.UndefOr[ClipPath]]
        ])
      ] = js.undefined
    
    var WebkitColumnCount: js.UndefOr[
        ColumnCount | (js.Array[
          (Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]]
        ])
      ] = js.undefined
    
    var WebkitColumnFill: js.UndefOr[
        ColumnFill | (js.Array[
          (Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]]
        ])
      ] = js.undefined
    
    var WebkitColumnGap: js.UndefOr[
        (ColumnGap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitColumnRule: js.UndefOr[
        (ColumnRule[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitColumnRuleColor: js.UndefOr[
        ColumnRuleColor | (js.Array[
          (Extract[
            js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColumnRuleColor]]
        ])
      ] = js.undefined
    
    var WebkitColumnRuleStyle: js.UndefOr[
        ColumnRuleStyle | (js.Array[
          (Extract[
            js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColumnRuleStyle]]
        ])
      ] = js.undefined
    
    var WebkitColumnRuleWidth: js.UndefOr[
        (ColumnRuleWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitColumnSpan: js.UndefOr[
        ColumnSpan | (js.Array[
          (Extract[js.UndefOr[ColumnSpan | js.Array[NonNullable[js.UndefOr[ColumnSpan]]]], String]) | NonNullable[js.UndefOr[ColumnSpan]]
        ])
      ] = js.undefined
    
    var WebkitColumnWidth: js.UndefOr[
        (ColumnWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitColumns: js.UndefOr[
        (Columns[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Columns[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitFilter: js.UndefOr[
        Filter | (js.Array[
          (Extract[js.UndefOr[Filter | js.Array[NonNullable[js.UndefOr[Filter]]]], String]) | NonNullable[js.UndefOr[Filter]]
        ])
      ] = js.undefined
    
    var WebkitFlex: js.UndefOr[
        (Flex[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Flex[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitFlexBasis: js.UndefOr[
        (FlexBasis[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (FlexBasis[Double | String]) | (js.Array[NonNullable[js.UndefOr[FlexBasis[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[FlexBasis[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitFlexDirection: js.UndefOr[
        FlexDirection | (js.Array[
          (Extract[
            js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
            String
          ]) | NonNullable[js.UndefOr[FlexDirection]]
        ])
      ] = js.undefined
    
    var WebkitFlexFlow: js.UndefOr[
        FlexFlow | (js.Array[
          (Extract[js.UndefOr[FlexFlow | js.Array[NonNullable[js.UndefOr[FlexFlow]]]], String]) | NonNullable[js.UndefOr[FlexFlow]]
        ])
      ] = js.undefined
    
    var WebkitFlexGrow: js.UndefOr[
        FlexGrow | (js.Array[
          (Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]]
        ])
      ] = js.undefined
    
    var WebkitFlexShrink: js.UndefOr[
        FlexShrink | (js.Array[
          (Extract[js.UndefOr[FlexShrink | js.Array[NonNullable[js.UndefOr[FlexShrink]]]], String]) | NonNullable[js.UndefOr[FlexShrink]]
        ])
      ] = js.undefined
    
    var WebkitFlexWrap: js.UndefOr[
        FlexWrap | (js.Array[
          (Extract[js.UndefOr[FlexWrap | js.Array[NonNullable[js.UndefOr[FlexWrap]]]], String]) | NonNullable[js.UndefOr[FlexWrap]]
        ])
      ] = js.undefined
    
    var WebkitFontFeatureSettings: js.UndefOr[
        FontFeatureSettings | (js.Array[
          (Extract[
            js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontFeatureSettings]]
        ])
      ] = js.undefined
    
    var WebkitFontKerning: js.UndefOr[
        FontKerning | (js.Array[
          (Extract[js.UndefOr[FontKerning | js.Array[NonNullable[js.UndefOr[FontKerning]]]], String]) | NonNullable[js.UndefOr[FontKerning]]
        ])
      ] = js.undefined
    
    var WebkitFontSmoothing: js.UndefOr[
        (FontSmooth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitFontVariantLigatures: js.UndefOr[
        FontVariantLigatures | (js.Array[
          (Extract[
            js.UndefOr[FontVariantLigatures | js.Array[NonNullable[js.UndefOr[FontVariantLigatures]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariantLigatures]]
        ])
      ] = js.undefined
    
    var WebkitHyphens: js.UndefOr[
        Hyphens | (js.Array[
          (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
        ])
      ] = js.undefined
    
    var WebkitInitialLetter: js.UndefOr[
        InitialLetter | (js.Array[
          (Extract[
            js.UndefOr[InitialLetter | js.Array[NonNullable[js.UndefOr[InitialLetter]]]], 
            String
          ]) | NonNullable[js.UndefOr[InitialLetter]]
        ])
      ] = js.undefined
    
    var WebkitJustifyContent: js.UndefOr[
        JustifyContent | (js.Array[
          (Extract[
            js.UndefOr[JustifyContent | js.Array[NonNullable[js.UndefOr[JustifyContent]]]], 
            String
          ]) | NonNullable[js.UndefOr[JustifyContent]]
        ])
      ] = js.undefined
    
    var WebkitLineBreak: js.UndefOr[
        LineBreak | (js.Array[
          (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
        ])
      ] = js.undefined
    
    var WebkitLineClamp: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitLineClamp | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitLineClamp | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitLineClamp]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitLineClamp]]
        ])
      ] = js.undefined
    
    var WebkitMarginEnd: js.UndefOr[
        (MarginInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitMarginStart: js.UndefOr[
        (MarginInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitMask: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitMask[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitMask[Double | String]) | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMask[Double | String]]]
              ])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMask[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitMaskAttachment: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskAttachment | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskAttachment | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskAttachment]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskAttachment]]
        ])
      ] = js.undefined
    
    var WebkitMaskBoxImage: js.UndefOr[
        MaskBorder | (js.Array[
          (Extract[js.UndefOr[MaskBorder | js.Array[NonNullable[js.UndefOr[MaskBorder]]]], String]) | NonNullable[js.UndefOr[MaskBorder]]
        ])
      ] = js.undefined
    
    var WebkitMaskBoxImageOutset: js.UndefOr[
        (MaskBorderOutset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaskBorderOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitMaskBoxImageRepeat: js.UndefOr[
        MaskBorderRepeat | (js.Array[
          (Extract[
            js.UndefOr[MaskBorderRepeat | js.Array[NonNullable[js.UndefOr[MaskBorderRepeat]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskBorderRepeat]]
        ])
      ] = js.undefined
    
    var WebkitMaskBoxImageSlice: js.UndefOr[
        MaskBorderSlice | (js.Array[
          (Extract[
            js.UndefOr[MaskBorderSlice | js.Array[NonNullable[js.UndefOr[MaskBorderSlice]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskBorderSlice]]
        ])
      ] = js.undefined
    
    var WebkitMaskBoxImageSource: js.UndefOr[
        MaskBorderSource | (js.Array[
          (Extract[
            js.UndefOr[MaskBorderSource | js.Array[NonNullable[js.UndefOr[MaskBorderSource]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskBorderSource]]
        ])
      ] = js.undefined
    
    var WebkitMaskBoxImageWidth: js.UndefOr[
        (MaskBorderWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaskBorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitMaskClip: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskClip | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskClip | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskClip]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskClip]]
        ])
      ] = js.undefined
    
    var WebkitMaskComposite: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskComposite | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskComposite | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskComposite]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskComposite]]
        ])
      ] = js.undefined
    
    var WebkitMaskImage: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskImage | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskImage | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskImage]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskImage]]
        ])
      ] = js.undefined
    
    var WebkitMaskOrigin: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskOrigin | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskOrigin | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskOrigin]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskOrigin]]
        ])
      ] = js.undefined
    
    var WebkitMaskPosition: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitMaskPosition[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitMaskPosition[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskPosition[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskPosition[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitMaskPositionX: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitMaskPositionX[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitMaskPositionX[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskPositionX[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskPositionX[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitMaskPositionY: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitMaskPositionY[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitMaskPositionY[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskPositionY[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskPositionY[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitMaskRepeat: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskRepeat | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskRepeat | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskRepeat]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskRepeat]]
        ])
      ] = js.undefined
    
    var WebkitMaskRepeatX: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatX | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatX | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatX]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatX]]
        ])
      ] = js.undefined
    
    var WebkitMaskRepeatY: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatY | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatY | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatY]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskRepeatY]]
        ])
      ] = js.undefined
    
    var WebkitMaskSize: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitMaskSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitMaskSize[Double | String]) | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskSize[Double | String]]]
              ])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitMaskSize[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitMaxInlineSize: js.UndefOr[
        (MaxInlineSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaxInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaxInlineSize[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitOrder: js.UndefOr[
        Order | (js.Array[
          (Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]]
        ])
      ] = js.undefined
    
    var WebkitOverflowScrolling: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitOverflowScrolling | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitOverflowScrolling | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitOverflowScrolling]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitOverflowScrolling]]
        ])
      ] = js.undefined
    
    var WebkitPaddingEnd: js.UndefOr[
        (PaddingInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitPaddingStart: js.UndefOr[
        (PaddingInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitPerspective: js.UndefOr[
        (Perspective[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitPerspectiveOrigin: js.UndefOr[
        (PerspectiveOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitPrintColorAdjust: js.UndefOr[
        ColorAdjust | (js.Array[
          (Extract[js.UndefOr[ColorAdjust | js.Array[NonNullable[js.UndefOr[ColorAdjust]]]], String]) | NonNullable[js.UndefOr[ColorAdjust]]
        ])
      ] = js.undefined
    
    var WebkitRubyPosition: js.UndefOr[
        RubyPosition | (js.Array[
          (Extract[js.UndefOr[RubyPosition | js.Array[NonNullable[js.UndefOr[RubyPosition]]]], String]) | NonNullable[js.UndefOr[RubyPosition]]
        ])
      ] = js.undefined
    
    var WebkitScrollSnapPointsX: js.UndefOr[
        ScrollSnapPointsX | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsX]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapPointsX]]
        ])
      ] = js.undefined
    
    var WebkitScrollSnapPointsY: js.UndefOr[
        ScrollSnapPointsY | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsY]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapPointsY]]
        ])
      ] = js.undefined
    
    var WebkitScrollSnapType: js.UndefOr[
        ScrollSnapType | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapType | js.Array[NonNullable[js.UndefOr[ScrollSnapType]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapType]]
        ])
      ] = js.undefined
    
    var WebkitShapeMargin: js.UndefOr[
        (ShapeMargin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ShapeMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ShapeMargin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ShapeMargin[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitTapHighlightColor: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitTapHighlightColor | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitTapHighlightColor | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTapHighlightColor]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTapHighlightColor]]
        ])
      ] = js.undefined
    
    var WebkitTextCombine: js.UndefOr[
        TextCombineUpright | (js.Array[
          (Extract[
            js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextCombineUpright]]
        ])
      ] = js.undefined
    
    var WebkitTextDecorationColor: js.UndefOr[
        TextDecorationColor | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationColor]]
        ])
      ] = js.undefined
    
    var WebkitTextDecorationLine: js.UndefOr[
        TextDecorationLine | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationLine]]
        ])
      ] = js.undefined
    
    var WebkitTextDecorationSkip: js.UndefOr[
        TextDecorationSkip | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationSkip | js.Array[NonNullable[js.UndefOr[TextDecorationSkip]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationSkip]]
        ])
      ] = js.undefined
    
    var WebkitTextDecorationStyle: js.UndefOr[
        TextDecorationStyle | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationStyle]]
        ])
      ] = js.undefined
    
    var WebkitTextEmphasis: js.UndefOr[
        TextEmphasis | (js.Array[
          (Extract[js.UndefOr[TextEmphasis | js.Array[NonNullable[js.UndefOr[TextEmphasis]]]], String]) | NonNullable[js.UndefOr[TextEmphasis]]
        ])
      ] = js.undefined
    
    var WebkitTextEmphasisColor: js.UndefOr[
        TextEmphasisColor | (js.Array[
          (Extract[
            js.UndefOr[TextEmphasisColor | js.Array[NonNullable[js.UndefOr[TextEmphasisColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextEmphasisColor]]
        ])
      ] = js.undefined
    
    var WebkitTextEmphasisPosition: js.UndefOr[
        TextEmphasisPosition | (js.Array[
          (Extract[
            js.UndefOr[TextEmphasisPosition | js.Array[NonNullable[js.UndefOr[TextEmphasisPosition]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextEmphasisPosition]]
        ])
      ] = js.undefined
    
    var WebkitTextEmphasisStyle: js.UndefOr[
        TextEmphasisStyle | (js.Array[
          (Extract[
            js.UndefOr[TextEmphasisStyle | js.Array[NonNullable[js.UndefOr[TextEmphasisStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextEmphasisStyle]]
        ])
      ] = js.undefined
    
    var WebkitTextFillColor: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitTextFillColor | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitTextFillColor | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextFillColor]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextFillColor]]
        ])
      ] = js.undefined
    
    var WebkitTextOrientation: js.UndefOr[
        TextOrientation | (js.Array[
          (Extract[
            js.UndefOr[TextOrientation | js.Array[NonNullable[js.UndefOr[TextOrientation]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextOrientation]]
        ])
      ] = js.undefined
    
    var WebkitTextSizeAdjust: js.UndefOr[
        TextSizeAdjust | (js.Array[
          (Extract[
            js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextSizeAdjust]]
        ])
      ] = js.undefined
    
    var WebkitTextStroke: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitTextStroke[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitTextStroke[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextStroke[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextStroke[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitTextStrokeColor: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitTextStrokeColor | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitTextStrokeColor | (js.Array[
                NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextStrokeColor]]
              ])
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextStrokeColor]]
        ])
      ] = js.undefined
    
    var WebkitTextStrokeWidth: js.UndefOr[
        (com.olvind.mui.csstype.mod.Property.WebkitTextStrokeWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (com.olvind.mui.csstype.mod.Property.WebkitTextStrokeWidth[Double | String]) | (js.Array[
                NonNullable[
                  js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextStrokeWidth[Double | String]]
                ]
              ])
            ], 
            String
          ]) | (NonNullable[
            js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTextStrokeWidth[Double | String]]
          ])
        ])
      ] = js.undefined
    
    var WebkitTextUnderlinePosition: js.UndefOr[
        TextUnderlinePosition | (js.Array[
          (Extract[
            js.UndefOr[TextUnderlinePosition | js.Array[NonNullable[js.UndefOr[TextUnderlinePosition]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextUnderlinePosition]]
        ])
      ] = js.undefined
    
    var WebkitTouchCallout: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitTouchCallout | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitTouchCallout | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTouchCallout]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitTouchCallout]]
        ])
      ] = js.undefined
    
    var WebkitTransform: js.UndefOr[
        Transform | (js.Array[
          (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
        ])
      ] = js.undefined
    
    var WebkitTransformOrigin: js.UndefOr[
        (TransformOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var WebkitTransformStyle: js.UndefOr[
        TransformStyle | (js.Array[
          (Extract[
            js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransformStyle]]
        ])
      ] = js.undefined
    
    var WebkitTransition: js.UndefOr[
        Transition[String] | (js.Array[
          (Extract[
            js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Transition[String]]]
        ])
      ] = js.undefined
    
    var WebkitTransitionDelay: js.UndefOr[
        TransitionDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
        ])
      ] = js.undefined
    
    var WebkitTransitionDuration: js.UndefOr[
        TransitionDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
        ])
      ] = js.undefined
    
    var WebkitTransitionProperty: js.UndefOr[
        TransitionProperty | (js.Array[
          (Extract[
            js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransitionProperty]]
        ])
      ] = js.undefined
    
    var WebkitTransitionTimingFunction: js.UndefOr[
        TransitionTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
        ])
      ] = js.undefined
    
    var WebkitUserModify: js.UndefOr[
        com.olvind.mui.csstype.mod.Property.WebkitUserModify | (js.Array[
          (Extract[
            js.UndefOr[
              com.olvind.mui.csstype.mod.Property.WebkitUserModify | js.Array[NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitUserModify]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[com.olvind.mui.csstype.mod.Property.WebkitUserModify]]
        ])
      ] = js.undefined
    
    var WebkitUserSelect: js.UndefOr[
        UserSelect | (js.Array[
          (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
        ])
      ] = js.undefined
    
    var WebkitWritingMode: js.UndefOr[
        WritingMode | (js.Array[
          (Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]]
        ])
      ] = js.undefined
    
    var accentColor: js.UndefOr[
        AccentColor | (js.Array[
          (Extract[js.UndefOr[AccentColor | js.Array[NonNullable[js.UndefOr[AccentColor]]]], String]) | NonNullable[js.UndefOr[AccentColor]]
        ])
      ] = js.undefined
    
    var alignContent: js.UndefOr[
        AlignContent | (js.Array[
          (Extract[js.UndefOr[AlignContent | js.Array[NonNullable[js.UndefOr[AlignContent]]]], String]) | NonNullable[js.UndefOr[AlignContent]]
        ])
      ] = js.undefined
    
    var alignItems: js.UndefOr[
        AlignItems | (js.Array[
          (Extract[js.UndefOr[AlignItems | js.Array[NonNullable[js.UndefOr[AlignItems]]]], String]) | NonNullable[js.UndefOr[AlignItems]]
        ])
      ] = js.undefined
    
    var alignSelf: js.UndefOr[
        AlignSelf | (js.Array[
          (Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]]
        ])
      ] = js.undefined
    
    var alignTracks: js.UndefOr[
        AlignTracks | (js.Array[
          (Extract[js.UndefOr[AlignTracks | js.Array[NonNullable[js.UndefOr[AlignTracks]]]], String]) | NonNullable[js.UndefOr[AlignTracks]]
        ])
      ] = js.undefined
    
    var alignmentBaseline: js.UndefOr[
        AlignmentBaseline | (js.Array[
          (Extract[
            js.UndefOr[AlignmentBaseline | js.Array[NonNullable[js.UndefOr[AlignmentBaseline]]]], 
            String
          ]) | NonNullable[js.UndefOr[AlignmentBaseline]]
        ])
      ] = js.undefined
    
    var all: js.UndefOr[
        All | (js.Array[
          (Extract[js.UndefOr[All | js.Array[NonNullable[js.UndefOr[All]]]], String]) | NonNullable[js.UndefOr[All]]
        ])
      ] = js.undefined
    
    var animation: js.UndefOr[
        Animation[String] | (js.Array[
          (Extract[
            js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Animation[String]]]
        ])
      ] = js.undefined
    
    var animationDelay: js.UndefOr[
        AnimationDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
        ])
      ] = js.undefined
    
    var animationDirection: js.UndefOr[
        AnimationDirection | (js.Array[
          (Extract[
            js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDirection]]
        ])
      ] = js.undefined
    
    var animationDuration: js.UndefOr[
        AnimationDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
        ])
      ] = js.undefined
    
    var animationFillMode: js.UndefOr[
        AnimationFillMode | (js.Array[
          (Extract[
            js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationFillMode]]
        ])
      ] = js.undefined
    
    var animationIterationCount: js.UndefOr[
        AnimationIterationCount | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
        ])
      ] = js.undefined
    
    var animationName: js.UndefOr[
        AnimationName | (js.Array[
          (Extract[
            js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationName]]
        ])
      ] = js.undefined
    
    var animationPlayState: js.UndefOr[
        AnimationPlayState | (js.Array[
          (Extract[
            js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
            String
          ]) | NonNullable[js.UndefOr[AnimationPlayState]]
        ])
      ] = js.undefined
    
    var animationTimingFunction: js.UndefOr[
        AnimationTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
        ])
      ] = js.undefined
    
    var appearance: js.UndefOr[
        Appearance | (js.Array[
          (Extract[js.UndefOr[Appearance | js.Array[NonNullable[js.UndefOr[Appearance]]]], String]) | NonNullable[js.UndefOr[Appearance]]
        ])
      ] = js.undefined
    
    var aspectRatio: js.UndefOr[
        AspectRatio | (js.Array[
          (Extract[js.UndefOr[AspectRatio | js.Array[NonNullable[js.UndefOr[AspectRatio]]]], String]) | NonNullable[js.UndefOr[AspectRatio]]
        ])
      ] = js.undefined
    
    var azimuth: js.UndefOr[
        Azimuth | (js.Array[
          (Extract[js.UndefOr[Azimuth | js.Array[NonNullable[js.UndefOr[Azimuth]]]], String]) | NonNullable[js.UndefOr[Azimuth]]
        ])
      ] = js.undefined
    
    var backdropFilter: js.UndefOr[
        BackdropFilter | (js.Array[
          (Extract[
            js.UndefOr[BackdropFilter | js.Array[NonNullable[js.UndefOr[BackdropFilter]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackdropFilter]]
        ])
      ] = js.undefined
    
    var backfaceVisibility: js.UndefOr[
        BackfaceVisibility | (js.Array[
          (Extract[
            js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackfaceVisibility]]
        ])
      ] = js.undefined
    
    var background: js.UndefOr[
        (Background[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Background[Double | String]) | (js.Array[NonNullable[js.UndefOr[Background[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Background[Double | String]]])
        ])
      ] = js.undefined
    
    var backgroundAttachment: js.UndefOr[
        BackgroundAttachment | (js.Array[
          (Extract[
            js.UndefOr[BackgroundAttachment | js.Array[NonNullable[js.UndefOr[BackgroundAttachment]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundAttachment]]
        ])
      ] = js.undefined
    
    var backgroundBlendMode: js.UndefOr[
        BackgroundBlendMode | (js.Array[
          (Extract[
            js.UndefOr[BackgroundBlendMode | js.Array[NonNullable[js.UndefOr[BackgroundBlendMode]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundBlendMode]]
        ])
      ] = js.undefined
    
    var backgroundClip: js.UndefOr[
        BackgroundClip | (js.Array[
          (Extract[
            js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundClip]]
        ])
      ] = js.undefined
    
    var backgroundColor: js.UndefOr[
        BackgroundColor | (js.Array[
          (Extract[
            js.UndefOr[BackgroundColor | js.Array[NonNullable[js.UndefOr[BackgroundColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundColor]]
        ])
      ] = js.undefined
    
    var backgroundImage: js.UndefOr[
        BackgroundImage | (js.Array[
          (Extract[
            js.UndefOr[BackgroundImage | js.Array[NonNullable[js.UndefOr[BackgroundImage]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundImage]]
        ])
      ] = js.undefined
    
    var backgroundOrigin: js.UndefOr[
        BackgroundOrigin | (js.Array[
          (Extract[
            js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundOrigin]]
        ])
      ] = js.undefined
    
    var backgroundPosition: js.UndefOr[
        (BackgroundPosition[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BackgroundPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPosition[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BackgroundPosition[Double | String]]])
        ])
      ] = js.undefined
    
    var backgroundPositionX: js.UndefOr[
        (BackgroundPositionX[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BackgroundPositionX[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPositionX[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BackgroundPositionX[Double | String]]])
        ])
      ] = js.undefined
    
    var backgroundPositionY: js.UndefOr[
        (BackgroundPositionY[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BackgroundPositionY[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPositionY[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BackgroundPositionY[Double | String]]])
        ])
      ] = js.undefined
    
    var backgroundRepeat: js.UndefOr[
        BackgroundRepeat | (js.Array[
          (Extract[
            js.UndefOr[BackgroundRepeat | js.Array[NonNullable[js.UndefOr[BackgroundRepeat]]]], 
            String
          ]) | NonNullable[js.UndefOr[BackgroundRepeat]]
        ])
      ] = js.undefined
    
    var backgroundSize: js.UndefOr[
        (BackgroundSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
        ])
      ] = js.undefined
    
    var baselineShift: js.UndefOr[
        (BaselineShift[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BaselineShift[Double | String]) | (js.Array[NonNullable[js.UndefOr[BaselineShift[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BaselineShift[Double | String]]])
        ])
      ] = js.undefined
    
    var blockOverflow: js.UndefOr[
        BlockOverflow | (js.Array[
          (Extract[
            js.UndefOr[BlockOverflow | js.Array[NonNullable[js.UndefOr[BlockOverflow]]]], 
            String
          ]) | NonNullable[js.UndefOr[BlockOverflow]]
        ])
      ] = js.undefined
    
    var blockSize: js.UndefOr[
        (BlockSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BlockSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BlockSize[Double | String]]])
        ])
      ] = js.undefined
    
    var border: js.UndefOr[
        (Border[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Border[Double | String]) | (js.Array[NonNullable[js.UndefOr[Border[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Border[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBlock: js.UndefOr[
        (BorderBlock[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlock[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBlock[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBlockColor: js.UndefOr[
        BorderBlockColor | (js.Array[
          (Extract[
            js.UndefOr[BorderBlockColor | js.Array[NonNullable[js.UndefOr[BorderBlockColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBlockColor]]
        ])
      ] = js.undefined
    
    var borderBlockEnd: js.UndefOr[
        (BorderBlockEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBlockEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBlockEndColor: js.UndefOr[
        BorderBlockEndColor | (js.Array[
          (Extract[
            js.UndefOr[BorderBlockEndColor | js.Array[NonNullable[js.UndefOr[BorderBlockEndColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBlockEndColor]]
        ])
      ] = js.undefined
    
    var borderBlockEndStyle: js.UndefOr[
        BorderBlockEndStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderBlockEndStyle | js.Array[NonNullable[js.UndefOr[BorderBlockEndStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBlockEndStyle]]
        ])
      ] = js.undefined
    
    var borderBlockEndWidth: js.UndefOr[
        (BorderBlockEndWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBlockEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockEndWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBlockEndWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBlockStart: js.UndefOr[
        (BorderBlockStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBlockStart[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBlockStartColor: js.UndefOr[
        BorderBlockStartColor | (js.Array[
          (Extract[
            js.UndefOr[BorderBlockStartColor | js.Array[NonNullable[js.UndefOr[BorderBlockStartColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBlockStartColor]]
        ])
      ] = js.undefined
    
    var borderBlockStartStyle: js.UndefOr[
        BorderBlockStartStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderBlockStartStyle | js.Array[NonNullable[js.UndefOr[BorderBlockStartStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBlockStartStyle]]
        ])
      ] = js.undefined
    
    var borderBlockStartWidth: js.UndefOr[
        (BorderBlockStartWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBlockStartWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockStartWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBlockStartWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBlockStyle: js.UndefOr[
        BorderBlockStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderBlockStyle | js.Array[NonNullable[js.UndefOr[BorderBlockStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBlockStyle]]
        ])
      ] = js.undefined
    
    var borderBlockWidth: js.UndefOr[
        (BorderBlockWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBlockWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBlockWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBottom: js.UndefOr[
        (BorderBottom[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottom[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottom[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBottomColor: js.UndefOr[
        BorderBottomColor | (js.Array[
          (Extract[
            js.UndefOr[BorderBottomColor | js.Array[NonNullable[js.UndefOr[BorderBottomColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBottomColor]]
        ])
      ] = js.undefined
    
    var borderBottomLeftRadius: js.UndefOr[
        (BorderBottomLeftRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBottomRightRadius: js.UndefOr[
        (BorderBottomRightRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderBottomStyle: js.UndefOr[
        BorderBottomStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderBottomStyle | js.Array[NonNullable[js.UndefOr[BorderBottomStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderBottomStyle]]
        ])
      ] = js.undefined
    
    var borderBottomWidth: js.UndefOr[
        (BorderBottomWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderBottomWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderBottomWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderCollapse: js.UndefOr[
        BorderCollapse | (js.Array[
          (Extract[
            js.UndefOr[BorderCollapse | js.Array[NonNullable[js.UndefOr[BorderCollapse]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderCollapse]]
        ])
      ] = js.undefined
    
    var borderColor: js.UndefOr[
        BorderColor | (js.Array[
          (Extract[js.UndefOr[BorderColor | js.Array[NonNullable[js.UndefOr[BorderColor]]]], String]) | NonNullable[js.UndefOr[BorderColor]]
        ])
      ] = js.undefined
    
    var borderEndEndRadius: js.UndefOr[
        (BorderEndEndRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderEndEndRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderEndEndRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderEndEndRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderEndStartRadius: js.UndefOr[
        (BorderEndStartRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderEndStartRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderEndStartRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderEndStartRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderImage: js.UndefOr[
        BorderImage | (js.Array[
          (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
        ])
      ] = js.undefined
    
    var borderImageOutset: js.UndefOr[
        (BorderImageOutset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderImageOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderImageOutset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderImageOutset[Double | String]]])
        ])
      ] = js.undefined
    
    var borderImageRepeat: js.UndefOr[
        BorderImageRepeat | (js.Array[
          (Extract[
            js.UndefOr[BorderImageRepeat | js.Array[NonNullable[js.UndefOr[BorderImageRepeat]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderImageRepeat]]
        ])
      ] = js.undefined
    
    var borderImageSlice: js.UndefOr[
        BorderImageSlice | (js.Array[
          (Extract[
            js.UndefOr[BorderImageSlice | js.Array[NonNullable[js.UndefOr[BorderImageSlice]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderImageSlice]]
        ])
      ] = js.undefined
    
    var borderImageSource: js.UndefOr[
        BorderImageSource | (js.Array[
          (Extract[
            js.UndefOr[BorderImageSource | js.Array[NonNullable[js.UndefOr[BorderImageSource]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderImageSource]]
        ])
      ] = js.undefined
    
    var borderImageWidth: js.UndefOr[
        (BorderImageWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderImageWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderImageWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderImageWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderInline: js.UndefOr[
        (BorderInline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderInline[Double | String]]])
        ])
      ] = js.undefined
    
    var borderInlineColor: js.UndefOr[
        BorderInlineColor | (js.Array[
          (Extract[
            js.UndefOr[BorderInlineColor | js.Array[NonNullable[js.UndefOr[BorderInlineColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineColor]]
        ])
      ] = js.undefined
    
    var borderInlineEnd: js.UndefOr[
        (BorderInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var borderInlineEndColor: js.UndefOr[
        BorderInlineEndColor | (js.Array[
          (Extract[
            js.UndefOr[BorderInlineEndColor | js.Array[NonNullable[js.UndefOr[BorderInlineEndColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineEndColor]]
        ])
      ] = js.undefined
    
    var borderInlineEndStyle: js.UndefOr[
        BorderInlineEndStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderInlineEndStyle | js.Array[NonNullable[js.UndefOr[BorderInlineEndStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineEndStyle]]
        ])
      ] = js.undefined
    
    var borderInlineEndWidth: js.UndefOr[
        (BorderInlineEndWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderInlineEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderInlineStart: js.UndefOr[
        (BorderInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var borderInlineStartColor: js.UndefOr[
        BorderInlineStartColor | (js.Array[
          (Extract[
            js.UndefOr[
              BorderInlineStartColor | js.Array[NonNullable[js.UndefOr[BorderInlineStartColor]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineStartColor]]
        ])
      ] = js.undefined
    
    var borderInlineStartStyle: js.UndefOr[
        BorderInlineStartStyle | (js.Array[
          (Extract[
            js.UndefOr[
              BorderInlineStartStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStartStyle]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineStartStyle]]
        ])
      ] = js.undefined
    
    var borderInlineStartWidth: js.UndefOr[
        (BorderInlineStartWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderInlineStartWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineStartWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderInlineStartWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderInlineStyle: js.UndefOr[
        BorderInlineStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderInlineStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderInlineStyle]]
        ])
      ] = js.undefined
    
    var borderInlineWidth: js.UndefOr[
        (BorderInlineWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderInlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderInlineWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderLeft: js.UndefOr[
        (BorderLeft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderLeft[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderLeft[Double | String]]])
        ])
      ] = js.undefined
    
    var borderLeftColor: js.UndefOr[
        BorderLeftColor | (js.Array[
          (Extract[
            js.UndefOr[BorderLeftColor | js.Array[NonNullable[js.UndefOr[BorderLeftColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderLeftColor]]
        ])
      ] = js.undefined
    
    var borderLeftStyle: js.UndefOr[
        BorderLeftStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderLeftStyle | js.Array[NonNullable[js.UndefOr[BorderLeftStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderLeftStyle]]
        ])
      ] = js.undefined
    
    var borderLeftWidth: js.UndefOr[
        (BorderLeftWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderLeftWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderLeftWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderLeftWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderRadius: js.UndefOr[
        (BorderRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderRight: js.UndefOr[
        (BorderRight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderRight[Double | String]]])
        ])
      ] = js.undefined
    
    var borderRightColor: js.UndefOr[
        BorderRightColor | (js.Array[
          (Extract[
            js.UndefOr[BorderRightColor | js.Array[NonNullable[js.UndefOr[BorderRightColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderRightColor]]
        ])
      ] = js.undefined
    
    var borderRightStyle: js.UndefOr[
        BorderRightStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderRightStyle | js.Array[NonNullable[js.UndefOr[BorderRightStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderRightStyle]]
        ])
      ] = js.undefined
    
    var borderRightWidth: js.UndefOr[
        (BorderRightWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderRightWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRightWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderRightWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderSpacing: js.UndefOr[
        (BorderSpacing[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderSpacing[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderSpacing[Double | String]]])
        ])
      ] = js.undefined
    
    var borderStartEndRadius: js.UndefOr[
        (BorderStartEndRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderStartEndRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderStartEndRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderStartEndRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderStartStartRadius: js.UndefOr[
        (BorderStartStartRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderStartStartRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderStartStartRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderStartStartRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderStyle: js.UndefOr[
        BorderStyle | (js.Array[
          (Extract[js.UndefOr[BorderStyle | js.Array[NonNullable[js.UndefOr[BorderStyle]]]], String]) | NonNullable[js.UndefOr[BorderStyle]]
        ])
      ] = js.undefined
    
    var borderTop: js.UndefOr[
        (BorderTop[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTop[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTop[Double | String]]])
        ])
      ] = js.undefined
    
    var borderTopColor: js.UndefOr[
        BorderTopColor | (js.Array[
          (Extract[
            js.UndefOr[BorderTopColor | js.Array[NonNullable[js.UndefOr[BorderTopColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderTopColor]]
        ])
      ] = js.undefined
    
    var borderTopLeftRadius: js.UndefOr[
        (BorderTopLeftRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderTopRightRadius: js.UndefOr[
        (BorderTopRightRadius[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]])
        ])
      ] = js.undefined
    
    var borderTopStyle: js.UndefOr[
        BorderTopStyle | (js.Array[
          (Extract[
            js.UndefOr[BorderTopStyle | js.Array[NonNullable[js.UndefOr[BorderTopStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[BorderTopStyle]]
        ])
      ] = js.undefined
    
    var borderTopWidth: js.UndefOr[
        (BorderTopWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderTopWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderTopWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var borderWidth: js.UndefOr[
        (BorderWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (BorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[BorderWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var bottom: js.UndefOr[
        (Bottom[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Bottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[Bottom[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Bottom[Double | String]]])
        ])
      ] = js.undefined
    
    var boxAlign: js.UndefOr[
        BoxAlign | (js.Array[
          (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
        ])
      ] = js.undefined
    
    var boxDecorationBreak: js.UndefOr[
        BoxDecorationBreak | (js.Array[
          (Extract[
            js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
            String
          ]) | NonNullable[js.UndefOr[BoxDecorationBreak]]
        ])
      ] = js.undefined
    
    var boxDirection: js.UndefOr[
        BoxDirection | (js.Array[
          (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
        ])
      ] = js.undefined
    
    var boxFlex: js.UndefOr[
        BoxFlex | (js.Array[
          (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
        ])
      ] = js.undefined
    
    var boxFlexGroup: js.UndefOr[
        BoxFlexGroup | (js.Array[
          (Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]]
        ])
      ] = js.undefined
    
    var boxLines: js.UndefOr[
        BoxLines | (js.Array[
          (Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]]
        ])
      ] = js.undefined
    
    var boxOrdinalGroup: js.UndefOr[
        BoxOrdinalGroup | (js.Array[
          (Extract[
            js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
            String
          ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
        ])
      ] = js.undefined
    
    var boxOrient: js.UndefOr[
        BoxOrient | (js.Array[
          (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
        ])
      ] = js.undefined
    
    var boxPack: js.UndefOr[
        BoxPack | (js.Array[
          (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
        ])
      ] = js.undefined
    
    var boxShadow: js.UndefOr[
        BoxShadow | (js.Array[
          (Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]]
        ])
      ] = js.undefined
    
    var boxSizing: js.UndefOr[
        BoxSizing | (js.Array[
          (Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]]
        ])
      ] = js.undefined
    
    var breakAfter: js.UndefOr[
        BreakAfter | (js.Array[
          (Extract[js.UndefOr[BreakAfter | js.Array[NonNullable[js.UndefOr[BreakAfter]]]], String]) | NonNullable[js.UndefOr[BreakAfter]]
        ])
      ] = js.undefined
    
    var breakBefore: js.UndefOr[
        BreakBefore | (js.Array[
          (Extract[js.UndefOr[BreakBefore | js.Array[NonNullable[js.UndefOr[BreakBefore]]]], String]) | NonNullable[js.UndefOr[BreakBefore]]
        ])
      ] = js.undefined
    
    var breakInside: js.UndefOr[
        BreakInside | (js.Array[
          (Extract[js.UndefOr[BreakInside | js.Array[NonNullable[js.UndefOr[BreakInside]]]], String]) | NonNullable[js.UndefOr[BreakInside]]
        ])
      ] = js.undefined
    
    var captionSide: js.UndefOr[
        CaptionSide | (js.Array[
          (Extract[js.UndefOr[CaptionSide | js.Array[NonNullable[js.UndefOr[CaptionSide]]]], String]) | NonNullable[js.UndefOr[CaptionSide]]
        ])
      ] = js.undefined
    
    var caretColor: js.UndefOr[
        CaretColor | (js.Array[
          (Extract[js.UndefOr[CaretColor | js.Array[NonNullable[js.UndefOr[CaretColor]]]], String]) | NonNullable[js.UndefOr[CaretColor]]
        ])
      ] = js.undefined
    
    var clear: js.UndefOr[
        Clear | (js.Array[
          (Extract[js.UndefOr[Clear | js.Array[NonNullable[js.UndefOr[Clear]]]], String]) | NonNullable[js.UndefOr[Clear]]
        ])
      ] = js.undefined
    
    var clip: js.UndefOr[
        Clip | (js.Array[
          (Extract[js.UndefOr[Clip | js.Array[NonNullable[js.UndefOr[Clip]]]], String]) | NonNullable[js.UndefOr[Clip]]
        ])
      ] = js.undefined
    
    var clipPath: js.UndefOr[
        ClipPath | (js.Array[
          (Extract[js.UndefOr[ClipPath | js.Array[NonNullable[js.UndefOr[ClipPath]]]], String]) | NonNullable[js.UndefOr[ClipPath]]
        ])
      ] = js.undefined
    
    var clipRule: js.UndefOr[
        ClipRule | (js.Array[
          (Extract[js.UndefOr[ClipRule | js.Array[NonNullable[js.UndefOr[ClipRule]]]], String]) | NonNullable[js.UndefOr[ClipRule]]
        ])
      ] = js.undefined
    
    var color: js.UndefOr[
        Color | (js.Array[
          (Extract[js.UndefOr[Color | js.Array[NonNullable[js.UndefOr[Color]]]], String]) | NonNullable[js.UndefOr[Color]]
        ])
      ] = js.undefined
    
    var colorAdjust: js.UndefOr[
        ColorAdjust | (js.Array[
          (Extract[js.UndefOr[ColorAdjust | js.Array[NonNullable[js.UndefOr[ColorAdjust]]]], String]) | NonNullable[js.UndefOr[ColorAdjust]]
        ])
      ] = js.undefined
    
    var colorInterpolation: js.UndefOr[
        ColorInterpolation | (js.Array[
          (Extract[
            js.UndefOr[ColorInterpolation | js.Array[NonNullable[js.UndefOr[ColorInterpolation]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColorInterpolation]]
        ])
      ] = js.undefined
    
    var colorRendering: js.UndefOr[
        ColorRendering | (js.Array[
          (Extract[
            js.UndefOr[ColorRendering | js.Array[NonNullable[js.UndefOr[ColorRendering]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColorRendering]]
        ])
      ] = js.undefined
    
    var colorScheme: js.UndefOr[
        ColorScheme | (js.Array[
          (Extract[js.UndefOr[ColorScheme | js.Array[NonNullable[js.UndefOr[ColorScheme]]]], String]) | NonNullable[js.UndefOr[ColorScheme]]
        ])
      ] = js.undefined
    
    var columnCount: js.UndefOr[
        ColumnCount | (js.Array[
          (Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]]
        ])
      ] = js.undefined
    
    var columnFill: js.UndefOr[
        ColumnFill | (js.Array[
          (Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]]
        ])
      ] = js.undefined
    
    var columnGap: js.UndefOr[
        (ColumnGap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]])
        ])
      ] = js.undefined
    
    var columnRule: js.UndefOr[
        (ColumnRule[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]])
        ])
      ] = js.undefined
    
    var columnRuleColor: js.UndefOr[
        ColumnRuleColor | (js.Array[
          (Extract[
            js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColumnRuleColor]]
        ])
      ] = js.undefined
    
    var columnRuleStyle: js.UndefOr[
        ColumnRuleStyle | (js.Array[
          (Extract[
            js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[ColumnRuleStyle]]
        ])
      ] = js.undefined
    
    var columnRuleWidth: js.UndefOr[
        (ColumnRuleWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var columnSpan: js.UndefOr[
        ColumnSpan | (js.Array[
          (Extract[js.UndefOr[ColumnSpan | js.Array[NonNullable[js.UndefOr[ColumnSpan]]]], String]) | NonNullable[js.UndefOr[ColumnSpan]]
        ])
      ] = js.undefined
    
    var columnWidth: js.UndefOr[
        (ColumnWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var columns: js.UndefOr[
        (Columns[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Columns[Double | String]]])
        ])
      ] = js.undefined
    
    var contain: js.UndefOr[
        Contain | (js.Array[
          (Extract[js.UndefOr[Contain | js.Array[NonNullable[js.UndefOr[Contain]]]], String]) | NonNullable[js.UndefOr[Contain]]
        ])
      ] = js.undefined
    
    var content: js.UndefOr[
        Content | (js.Array[
          (Extract[js.UndefOr[Content | js.Array[NonNullable[js.UndefOr[Content]]]], String]) | NonNullable[js.UndefOr[Content]]
        ])
      ] = js.undefined
    
    var contentVisibility: js.UndefOr[
        ContentVisibility | (js.Array[
          (Extract[
            js.UndefOr[ContentVisibility | js.Array[NonNullable[js.UndefOr[ContentVisibility]]]], 
            String
          ]) | NonNullable[js.UndefOr[ContentVisibility]]
        ])
      ] = js.undefined
    
    var counterIncrement: js.UndefOr[
        CounterIncrement | (js.Array[
          (Extract[
            js.UndefOr[CounterIncrement | js.Array[NonNullable[js.UndefOr[CounterIncrement]]]], 
            String
          ]) | NonNullable[js.UndefOr[CounterIncrement]]
        ])
      ] = js.undefined
    
    var counterReset: js.UndefOr[
        CounterReset | (js.Array[
          (Extract[js.UndefOr[CounterReset | js.Array[NonNullable[js.UndefOr[CounterReset]]]], String]) | NonNullable[js.UndefOr[CounterReset]]
        ])
      ] = js.undefined
    
    var counterSet: js.UndefOr[
        CounterSet | (js.Array[
          (Extract[js.UndefOr[CounterSet | js.Array[NonNullable[js.UndefOr[CounterSet]]]], String]) | NonNullable[js.UndefOr[CounterSet]]
        ])
      ] = js.undefined
    
    var cursor: js.UndefOr[
        Cursor | (js.Array[
          (Extract[js.UndefOr[Cursor | js.Array[NonNullable[js.UndefOr[Cursor]]]], String]) | NonNullable[js.UndefOr[Cursor]]
        ])
      ] = js.undefined
    
    var direction: js.UndefOr[
        Direction | (js.Array[
          (Extract[js.UndefOr[Direction | js.Array[NonNullable[js.UndefOr[Direction]]]], String]) | NonNullable[js.UndefOr[Direction]]
        ])
      ] = js.undefined
    
    var display: js.UndefOr[
        Display | (js.Array[
          (Extract[js.UndefOr[Display | js.Array[NonNullable[js.UndefOr[Display]]]], String]) | NonNullable[js.UndefOr[Display]]
        ])
      ] = js.undefined
    
    var dominantBaseline: js.UndefOr[
        DominantBaseline | (js.Array[
          (Extract[
            js.UndefOr[DominantBaseline | js.Array[NonNullable[js.UndefOr[DominantBaseline]]]], 
            String
          ]) | NonNullable[js.UndefOr[DominantBaseline]]
        ])
      ] = js.undefined
    
    var emptyCells: js.UndefOr[
        EmptyCells | (js.Array[
          (Extract[js.UndefOr[EmptyCells | js.Array[NonNullable[js.UndefOr[EmptyCells]]]], String]) | NonNullable[js.UndefOr[EmptyCells]]
        ])
      ] = js.undefined
    
    var fill: js.UndefOr[
        Fill | (js.Array[
          (Extract[js.UndefOr[Fill | js.Array[NonNullable[js.UndefOr[Fill]]]], String]) | NonNullable[js.UndefOr[Fill]]
        ])
      ] = js.undefined
    
    var fillOpacity: js.UndefOr[
        FillOpacity | (js.Array[
          (Extract[js.UndefOr[FillOpacity | js.Array[NonNullable[js.UndefOr[FillOpacity]]]], String]) | NonNullable[js.UndefOr[FillOpacity]]
        ])
      ] = js.undefined
    
    var fillRule: js.UndefOr[
        FillRule | (js.Array[
          (Extract[js.UndefOr[FillRule | js.Array[NonNullable[js.UndefOr[FillRule]]]], String]) | NonNullable[js.UndefOr[FillRule]]
        ])
      ] = js.undefined
    
    var filter: js.UndefOr[
        Filter | (js.Array[
          (Extract[js.UndefOr[Filter | js.Array[NonNullable[js.UndefOr[Filter]]]], String]) | NonNullable[js.UndefOr[Filter]]
        ])
      ] = js.undefined
    
    var flex: js.UndefOr[
        (Flex[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Flex[Double | String]]])
        ])
      ] = js.undefined
    
    var flexBasis: js.UndefOr[
        (FlexBasis[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (FlexBasis[Double | String]) | (js.Array[NonNullable[js.UndefOr[FlexBasis[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[FlexBasis[Double | String]]])
        ])
      ] = js.undefined
    
    var flexDirection: js.UndefOr[
        FlexDirection | (js.Array[
          (Extract[
            js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
            String
          ]) | NonNullable[js.UndefOr[FlexDirection]]
        ])
      ] = js.undefined
    
    var flexFlow: js.UndefOr[
        FlexFlow | (js.Array[
          (Extract[js.UndefOr[FlexFlow | js.Array[NonNullable[js.UndefOr[FlexFlow]]]], String]) | NonNullable[js.UndefOr[FlexFlow]]
        ])
      ] = js.undefined
    
    var flexGrow: js.UndefOr[
        FlexGrow | (js.Array[
          (Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]]
        ])
      ] = js.undefined
    
    var flexShrink: js.UndefOr[
        FlexShrink | (js.Array[
          (Extract[js.UndefOr[FlexShrink | js.Array[NonNullable[js.UndefOr[FlexShrink]]]], String]) | NonNullable[js.UndefOr[FlexShrink]]
        ])
      ] = js.undefined
    
    var flexWrap: js.UndefOr[
        FlexWrap | (js.Array[
          (Extract[js.UndefOr[FlexWrap | js.Array[NonNullable[js.UndefOr[FlexWrap]]]], String]) | NonNullable[js.UndefOr[FlexWrap]]
        ])
      ] = js.undefined
    
    var float: js.UndefOr[
        Float | (js.Array[
          (Extract[js.UndefOr[Float | js.Array[NonNullable[js.UndefOr[Float]]]], String]) | NonNullable[js.UndefOr[Float]]
        ])
      ] = js.undefined
    
    var floodColor: js.UndefOr[
        FloodColor | (js.Array[
          (Extract[js.UndefOr[FloodColor | js.Array[NonNullable[js.UndefOr[FloodColor]]]], String]) | NonNullable[js.UndefOr[FloodColor]]
        ])
      ] = js.undefined
    
    var floodOpacity: js.UndefOr[
        FloodOpacity | (js.Array[
          (Extract[js.UndefOr[FloodOpacity | js.Array[NonNullable[js.UndefOr[FloodOpacity]]]], String]) | NonNullable[js.UndefOr[FloodOpacity]]
        ])
      ] = js.undefined
    
    var font: js.UndefOr[
        Font | (js.Array[
          (Extract[js.UndefOr[Font | js.Array[NonNullable[js.UndefOr[Font]]]], String]) | NonNullable[js.UndefOr[Font]]
        ])
      ] = js.undefined
    
    var fontFamily: js.UndefOr[
        FontFamily | (js.Array[
          (Extract[js.UndefOr[FontFamily | js.Array[NonNullable[js.UndefOr[FontFamily]]]], String]) | NonNullable[js.UndefOr[FontFamily]]
        ])
      ] = js.undefined
    
    var fontFeatureSettings: js.UndefOr[
        FontFeatureSettings | (js.Array[
          (Extract[
            js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontFeatureSettings]]
        ])
      ] = js.undefined
    
    var fontKerning: js.UndefOr[
        FontKerning | (js.Array[
          (Extract[js.UndefOr[FontKerning | js.Array[NonNullable[js.UndefOr[FontKerning]]]], String]) | NonNullable[js.UndefOr[FontKerning]]
        ])
      ] = js.undefined
    
    var fontLanguageOverride: js.UndefOr[
        FontLanguageOverride | (js.Array[
          (Extract[
            js.UndefOr[FontLanguageOverride | js.Array[NonNullable[js.UndefOr[FontLanguageOverride]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontLanguageOverride]]
        ])
      ] = js.undefined
    
    var fontOpticalSizing: js.UndefOr[
        FontOpticalSizing | (js.Array[
          (Extract[
            js.UndefOr[FontOpticalSizing | js.Array[NonNullable[js.UndefOr[FontOpticalSizing]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontOpticalSizing]]
        ])
      ] = js.undefined
    
    var fontSize: js.UndefOr[
        (FontSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (FontSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[FontSize[Double | String]]])
        ])
      ] = js.undefined
    
    var fontSizeAdjust: js.UndefOr[
        FontSizeAdjust | (js.Array[
          (Extract[
            js.UndefOr[FontSizeAdjust | js.Array[NonNullable[js.UndefOr[FontSizeAdjust]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontSizeAdjust]]
        ])
      ] = js.undefined
    
    var fontSmooth: js.UndefOr[
        (FontSmooth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]])
        ])
      ] = js.undefined
    
    var fontStretch: js.UndefOr[
        FontStretch | (js.Array[
          (Extract[js.UndefOr[FontStretch | js.Array[NonNullable[js.UndefOr[FontStretch]]]], String]) | NonNullable[js.UndefOr[FontStretch]]
        ])
      ] = js.undefined
    
    var fontStyle: js.UndefOr[
        FontStyle | (js.Array[
          (Extract[js.UndefOr[FontStyle | js.Array[NonNullable[js.UndefOr[FontStyle]]]], String]) | NonNullable[js.UndefOr[FontStyle]]
        ])
      ] = js.undefined
    
    var fontSynthesis: js.UndefOr[
        FontSynthesis | (js.Array[
          (Extract[
            js.UndefOr[FontSynthesis | js.Array[NonNullable[js.UndefOr[FontSynthesis]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontSynthesis]]
        ])
      ] = js.undefined
    
    var fontVariant: js.UndefOr[
        FontVariant | (js.Array[
          (Extract[js.UndefOr[FontVariant | js.Array[NonNullable[js.UndefOr[FontVariant]]]], String]) | NonNullable[js.UndefOr[FontVariant]]
        ])
      ] = js.undefined
    
    var fontVariantAlternates: js.UndefOr[
        FontVariantAlternates | (js.Array[
          (Extract[
            js.UndefOr[FontVariantAlternates | js.Array[NonNullable[js.UndefOr[FontVariantAlternates]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariantAlternates]]
        ])
      ] = js.undefined
    
    var fontVariantCaps: js.UndefOr[
        FontVariantCaps | (js.Array[
          (Extract[
            js.UndefOr[FontVariantCaps | js.Array[NonNullable[js.UndefOr[FontVariantCaps]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariantCaps]]
        ])
      ] = js.undefined
    
    var fontVariantEastAsian: js.UndefOr[
        FontVariantEastAsian | (js.Array[
          (Extract[
            js.UndefOr[FontVariantEastAsian | js.Array[NonNullable[js.UndefOr[FontVariantEastAsian]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariantEastAsian]]
        ])
      ] = js.undefined
    
    var fontVariantLigatures: js.UndefOr[
        FontVariantLigatures | (js.Array[
          (Extract[
            js.UndefOr[FontVariantLigatures | js.Array[NonNullable[js.UndefOr[FontVariantLigatures]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariantLigatures]]
        ])
      ] = js.undefined
    
    var fontVariantNumeric: js.UndefOr[
        FontVariantNumeric | (js.Array[
          (Extract[
            js.UndefOr[FontVariantNumeric | js.Array[NonNullable[js.UndefOr[FontVariantNumeric]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariantNumeric]]
        ])
      ] = js.undefined
    
    var fontVariantPosition: js.UndefOr[
        FontVariantPosition | (js.Array[
          (Extract[
            js.UndefOr[FontVariantPosition | js.Array[NonNullable[js.UndefOr[FontVariantPosition]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariantPosition]]
        ])
      ] = js.undefined
    
    var fontVariationSettings: js.UndefOr[
        FontVariationSettings | (js.Array[
          (Extract[
            js.UndefOr[FontVariationSettings | js.Array[NonNullable[js.UndefOr[FontVariationSettings]]]], 
            String
          ]) | NonNullable[js.UndefOr[FontVariationSettings]]
        ])
      ] = js.undefined
    
    var fontWeight: js.UndefOr[
        FontWeight | (js.Array[
          (Extract[js.UndefOr[FontWeight | js.Array[NonNullable[js.UndefOr[FontWeight]]]], String]) | NonNullable[js.UndefOr[FontWeight]]
        ])
      ] = js.undefined
    
    var forcedColorAdjust: js.UndefOr[
        ForcedColorAdjust | (js.Array[
          (Extract[
            js.UndefOr[ForcedColorAdjust | js.Array[NonNullable[js.UndefOr[ForcedColorAdjust]]]], 
            String
          ]) | NonNullable[js.UndefOr[ForcedColorAdjust]]
        ])
      ] = js.undefined
    
    var gap: js.UndefOr[
        (Gap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Gap[Double | String]) | (js.Array[NonNullable[js.UndefOr[Gap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Gap[Double | String]]])
        ])
      ] = js.undefined
    
    var glyphOrientationVertical: js.UndefOr[
        GlyphOrientationVertical | (js.Array[
          (Extract[
            js.UndefOr[
              GlyphOrientationVertical | js.Array[NonNullable[js.UndefOr[GlyphOrientationVertical]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[GlyphOrientationVertical]]
        ])
      ] = js.undefined
    
    var grid: js.UndefOr[
        Grid | (js.Array[
          (Extract[js.UndefOr[Grid | js.Array[NonNullable[js.UndefOr[Grid]]]], String]) | NonNullable[js.UndefOr[Grid]]
        ])
      ] = js.undefined
    
    var gridArea: js.UndefOr[
        GridArea | (js.Array[
          (Extract[js.UndefOr[GridArea | js.Array[NonNullable[js.UndefOr[GridArea]]]], String]) | NonNullable[js.UndefOr[GridArea]]
        ])
      ] = js.undefined
    
    var gridAutoColumns: js.UndefOr[
        (GridAutoColumns[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (GridAutoColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridAutoColumns[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[GridAutoColumns[Double | String]]])
        ])
      ] = js.undefined
    
    var gridAutoFlow: js.UndefOr[
        GridAutoFlow | (js.Array[
          (Extract[js.UndefOr[GridAutoFlow | js.Array[NonNullable[js.UndefOr[GridAutoFlow]]]], String]) | NonNullable[js.UndefOr[GridAutoFlow]]
        ])
      ] = js.undefined
    
    var gridAutoRows: js.UndefOr[
        (GridAutoRows[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (GridAutoRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridAutoRows[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[GridAutoRows[Double | String]]])
        ])
      ] = js.undefined
    
    var gridColumn: js.UndefOr[
        GridColumn | (js.Array[
          (Extract[js.UndefOr[GridColumn | js.Array[NonNullable[js.UndefOr[GridColumn]]]], String]) | NonNullable[js.UndefOr[GridColumn]]
        ])
      ] = js.undefined
    
    var gridColumnEnd: js.UndefOr[
        GridColumnEnd | (js.Array[
          (Extract[
            js.UndefOr[GridColumnEnd | js.Array[NonNullable[js.UndefOr[GridColumnEnd]]]], 
            String
          ]) | NonNullable[js.UndefOr[GridColumnEnd]]
        ])
      ] = js.undefined
    
    var gridColumnGap: js.UndefOr[
        (GridColumnGap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (GridColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridColumnGap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[GridColumnGap[Double | String]]])
        ])
      ] = js.undefined
    
    var gridColumnStart: js.UndefOr[
        GridColumnStart | (js.Array[
          (Extract[
            js.UndefOr[GridColumnStart | js.Array[NonNullable[js.UndefOr[GridColumnStart]]]], 
            String
          ]) | NonNullable[js.UndefOr[GridColumnStart]]
        ])
      ] = js.undefined
    
    var gridGap: js.UndefOr[
        (GridGap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (GridGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridGap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[GridGap[Double | String]]])
        ])
      ] = js.undefined
    
    var gridRow: js.UndefOr[
        GridRow | (js.Array[
          (Extract[js.UndefOr[GridRow | js.Array[NonNullable[js.UndefOr[GridRow]]]], String]) | NonNullable[js.UndefOr[GridRow]]
        ])
      ] = js.undefined
    
    var gridRowEnd: js.UndefOr[
        GridRowEnd | (js.Array[
          (Extract[js.UndefOr[GridRowEnd | js.Array[NonNullable[js.UndefOr[GridRowEnd]]]], String]) | NonNullable[js.UndefOr[GridRowEnd]]
        ])
      ] = js.undefined
    
    var gridRowGap: js.UndefOr[
        (GridRowGap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (GridRowGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridRowGap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[GridRowGap[Double | String]]])
        ])
      ] = js.undefined
    
    var gridRowStart: js.UndefOr[
        GridRowStart | (js.Array[
          (Extract[js.UndefOr[GridRowStart | js.Array[NonNullable[js.UndefOr[GridRowStart]]]], String]) | NonNullable[js.UndefOr[GridRowStart]]
        ])
      ] = js.undefined
    
    var gridTemplate: js.UndefOr[
        GridTemplate | (js.Array[
          (Extract[js.UndefOr[GridTemplate | js.Array[NonNullable[js.UndefOr[GridTemplate]]]], String]) | NonNullable[js.UndefOr[GridTemplate]]
        ])
      ] = js.undefined
    
    var gridTemplateAreas: js.UndefOr[
        GridTemplateAreas | (js.Array[
          (Extract[
            js.UndefOr[GridTemplateAreas | js.Array[NonNullable[js.UndefOr[GridTemplateAreas]]]], 
            String
          ]) | NonNullable[js.UndefOr[GridTemplateAreas]]
        ])
      ] = js.undefined
    
    var gridTemplateColumns: js.UndefOr[
        (GridTemplateColumns[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (GridTemplateColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridTemplateColumns[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[GridTemplateColumns[Double | String]]])
        ])
      ] = js.undefined
    
    var gridTemplateRows: js.UndefOr[
        (GridTemplateRows[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (GridTemplateRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridTemplateRows[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[GridTemplateRows[Double | String]]])
        ])
      ] = js.undefined
    
    var hangingPunctuation: js.UndefOr[
        HangingPunctuation | (js.Array[
          (Extract[
            js.UndefOr[HangingPunctuation | js.Array[NonNullable[js.UndefOr[HangingPunctuation]]]], 
            String
          ]) | NonNullable[js.UndefOr[HangingPunctuation]]
        ])
      ] = js.undefined
    
    var height: js.UndefOr[
        (Height[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Height[Double | String]) | (js.Array[NonNullable[js.UndefOr[Height[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Height[Double | String]]])
        ])
      ] = js.undefined
    
    var hyphens: js.UndefOr[
        Hyphens | (js.Array[
          (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
        ])
      ] = js.undefined
    
    var imageOrientation: js.UndefOr[
        ImageOrientation | (js.Array[
          (Extract[
            js.UndefOr[ImageOrientation | js.Array[NonNullable[js.UndefOr[ImageOrientation]]]], 
            String
          ]) | NonNullable[js.UndefOr[ImageOrientation]]
        ])
      ] = js.undefined
    
    var imageRendering: js.UndefOr[
        ImageRendering | (js.Array[
          (Extract[
            js.UndefOr[ImageRendering | js.Array[NonNullable[js.UndefOr[ImageRendering]]]], 
            String
          ]) | NonNullable[js.UndefOr[ImageRendering]]
        ])
      ] = js.undefined
    
    var imageResolution: js.UndefOr[
        ImageResolution | (js.Array[
          (Extract[
            js.UndefOr[ImageResolution | js.Array[NonNullable[js.UndefOr[ImageResolution]]]], 
            String
          ]) | NonNullable[js.UndefOr[ImageResolution]]
        ])
      ] = js.undefined
    
    var imeMode: js.UndefOr[
        ImeMode | (js.Array[
          (Extract[js.UndefOr[ImeMode | js.Array[NonNullable[js.UndefOr[ImeMode]]]], String]) | NonNullable[js.UndefOr[ImeMode]]
        ])
      ] = js.undefined
    
    var initialLetter: js.UndefOr[
        InitialLetter | (js.Array[
          (Extract[
            js.UndefOr[InitialLetter | js.Array[NonNullable[js.UndefOr[InitialLetter]]]], 
            String
          ]) | NonNullable[js.UndefOr[InitialLetter]]
        ])
      ] = js.undefined
    
    var inlineSize: js.UndefOr[
        (InlineSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[InlineSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InlineSize[Double | String]]])
        ])
      ] = js.undefined
    
    var inset: js.UndefOr[
        (Inset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Inset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Inset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Inset[Double | String]]])
        ])
      ] = js.undefined
    
    var insetBlock: js.UndefOr[
        (InsetBlock[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlock[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetBlock[Double | String]]])
        ])
      ] = js.undefined
    
    var insetBlockEnd: js.UndefOr[
        (InsetBlockEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var insetBlockStart: js.UndefOr[
        (InsetBlockStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetBlockStart[Double | String]]])
        ])
      ] = js.undefined
    
    var insetInline: js.UndefOr[
        (InsetInline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetInline[Double | String]]])
        ])
      ] = js.undefined
    
    var insetInlineEnd: js.UndefOr[
        (InsetInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var insetInlineStart: js.UndefOr[
        (InsetInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var isolation: js.UndefOr[
        Isolation | (js.Array[
          (Extract[js.UndefOr[Isolation | js.Array[NonNullable[js.UndefOr[Isolation]]]], String]) | NonNullable[js.UndefOr[Isolation]]
        ])
      ] = js.undefined
    
    var justifyContent: js.UndefOr[
        JustifyContent | (js.Array[
          (Extract[
            js.UndefOr[JustifyContent | js.Array[NonNullable[js.UndefOr[JustifyContent]]]], 
            String
          ]) | NonNullable[js.UndefOr[JustifyContent]]
        ])
      ] = js.undefined
    
    var justifyItems: js.UndefOr[
        JustifyItems | (js.Array[
          (Extract[js.UndefOr[JustifyItems | js.Array[NonNullable[js.UndefOr[JustifyItems]]]], String]) | NonNullable[js.UndefOr[JustifyItems]]
        ])
      ] = js.undefined
    
    var justifySelf: js.UndefOr[
        JustifySelf | (js.Array[
          (Extract[js.UndefOr[JustifySelf | js.Array[NonNullable[js.UndefOr[JustifySelf]]]], String]) | NonNullable[js.UndefOr[JustifySelf]]
        ])
      ] = js.undefined
    
    var justifyTracks: js.UndefOr[
        JustifyTracks | (js.Array[
          (Extract[
            js.UndefOr[JustifyTracks | js.Array[NonNullable[js.UndefOr[JustifyTracks]]]], 
            String
          ]) | NonNullable[js.UndefOr[JustifyTracks]]
        ])
      ] = js.undefined
    
    var left: js.UndefOr[
        (Left[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Left[Double | String]) | (js.Array[NonNullable[js.UndefOr[Left[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Left[Double | String]]])
        ])
      ] = js.undefined
    
    var letterSpacing: js.UndefOr[
        (LetterSpacing[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (LetterSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[LetterSpacing[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[LetterSpacing[Double | String]]])
        ])
      ] = js.undefined
    
    var lightingColor: js.UndefOr[
        LightingColor | (js.Array[
          (Extract[
            js.UndefOr[LightingColor | js.Array[NonNullable[js.UndefOr[LightingColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[LightingColor]]
        ])
      ] = js.undefined
    
    var lineBreak: js.UndefOr[
        LineBreak | (js.Array[
          (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
        ])
      ] = js.undefined
    
    var lineClamp: js.UndefOr[
        LineClamp | (js.Array[
          (Extract[js.UndefOr[LineClamp | js.Array[NonNullable[js.UndefOr[LineClamp]]]], String]) | NonNullable[js.UndefOr[LineClamp]]
        ])
      ] = js.undefined
    
    var lineHeight: js.UndefOr[
        (LineHeight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (LineHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[LineHeight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[LineHeight[Double | String]]])
        ])
      ] = js.undefined
    
    var lineHeightStep: js.UndefOr[
        (LineHeightStep[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (LineHeightStep[Double | String]) | (js.Array[NonNullable[js.UndefOr[LineHeightStep[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[LineHeightStep[Double | String]]])
        ])
      ] = js.undefined
    
    var listStyle: js.UndefOr[
        ListStyle | (js.Array[
          (Extract[js.UndefOr[ListStyle | js.Array[NonNullable[js.UndefOr[ListStyle]]]], String]) | NonNullable[js.UndefOr[ListStyle]]
        ])
      ] = js.undefined
    
    var listStyleImage: js.UndefOr[
        ListStyleImage | (js.Array[
          (Extract[
            js.UndefOr[ListStyleImage | js.Array[NonNullable[js.UndefOr[ListStyleImage]]]], 
            String
          ]) | NonNullable[js.UndefOr[ListStyleImage]]
        ])
      ] = js.undefined
    
    var listStylePosition: js.UndefOr[
        ListStylePosition | (js.Array[
          (Extract[
            js.UndefOr[ListStylePosition | js.Array[NonNullable[js.UndefOr[ListStylePosition]]]], 
            String
          ]) | NonNullable[js.UndefOr[ListStylePosition]]
        ])
      ] = js.undefined
    
    var listStyleType: js.UndefOr[
        ListStyleType | (js.Array[
          (Extract[
            js.UndefOr[ListStyleType | js.Array[NonNullable[js.UndefOr[ListStyleType]]]], 
            String
          ]) | NonNullable[js.UndefOr[ListStyleType]]
        ])
      ] = js.undefined
    
    var margin: js.UndefOr[
        (Margin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Margin[Double | String]) | (js.Array[NonNullable[js.UndefOr[Margin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Margin[Double | String]]])
        ])
      ] = js.undefined
    
    var marginBlock: js.UndefOr[
        (MarginBlock[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlock[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginBlock[Double | String]]])
        ])
      ] = js.undefined
    
    var marginBlockEnd: js.UndefOr[
        (MarginBlockEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlockEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginBlockEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var marginBlockStart: js.UndefOr[
        (MarginBlockStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlockStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginBlockStart[Double | String]]])
        ])
      ] = js.undefined
    
    var marginBottom: js.UndefOr[
        (MarginBottom[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBottom[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginBottom[Double | String]]])
        ])
      ] = js.undefined
    
    var marginInline: js.UndefOr[
        (MarginInline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginInline[Double | String]]])
        ])
      ] = js.undefined
    
    var marginInlineEnd: js.UndefOr[
        (MarginInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var marginInlineStart: js.UndefOr[
        (MarginInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var marginLeft: js.UndefOr[
        (MarginLeft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginLeft[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginLeft[Double | String]]])
        ])
      ] = js.undefined
    
    var marginRight: js.UndefOr[
        (MarginRight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginRight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginRight[Double | String]]])
        ])
      ] = js.undefined
    
    var marginTop: js.UndefOr[
        (MarginTop[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginTop[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MarginTop[Double | String]]])
        ])
      ] = js.undefined
    
    var marker: js.UndefOr[
        Marker | (js.Array[
          (Extract[js.UndefOr[Marker | js.Array[NonNullable[js.UndefOr[Marker]]]], String]) | NonNullable[js.UndefOr[Marker]]
        ])
      ] = js.undefined
    
    var markerEnd: js.UndefOr[
        MarkerEnd | (js.Array[
          (Extract[js.UndefOr[MarkerEnd | js.Array[NonNullable[js.UndefOr[MarkerEnd]]]], String]) | NonNullable[js.UndefOr[MarkerEnd]]
        ])
      ] = js.undefined
    
    var markerMid: js.UndefOr[
        MarkerMid | (js.Array[
          (Extract[js.UndefOr[MarkerMid | js.Array[NonNullable[js.UndefOr[MarkerMid]]]], String]) | NonNullable[js.UndefOr[MarkerMid]]
        ])
      ] = js.undefined
    
    var markerStart: js.UndefOr[
        MarkerStart | (js.Array[
          (Extract[js.UndefOr[MarkerStart | js.Array[NonNullable[js.UndefOr[MarkerStart]]]], String]) | NonNullable[js.UndefOr[MarkerStart]]
        ])
      ] = js.undefined
    
    var mask: js.UndefOr[
        (Mask[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Mask[Double | String]) | (js.Array[NonNullable[js.UndefOr[Mask[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Mask[Double | String]]])
        ])
      ] = js.undefined
    
    var maskBorder: js.UndefOr[
        MaskBorder | (js.Array[
          (Extract[js.UndefOr[MaskBorder | js.Array[NonNullable[js.UndefOr[MaskBorder]]]], String]) | NonNullable[js.UndefOr[MaskBorder]]
        ])
      ] = js.undefined
    
    var maskBorderMode: js.UndefOr[
        MaskBorderMode | (js.Array[
          (Extract[
            js.UndefOr[MaskBorderMode | js.Array[NonNullable[js.UndefOr[MaskBorderMode]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskBorderMode]]
        ])
      ] = js.undefined
    
    var maskBorderOutset: js.UndefOr[
        (MaskBorderOutset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaskBorderOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]])
        ])
      ] = js.undefined
    
    var maskBorderRepeat: js.UndefOr[
        MaskBorderRepeat | (js.Array[
          (Extract[
            js.UndefOr[MaskBorderRepeat | js.Array[NonNullable[js.UndefOr[MaskBorderRepeat]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskBorderRepeat]]
        ])
      ] = js.undefined
    
    var maskBorderSlice: js.UndefOr[
        MaskBorderSlice | (js.Array[
          (Extract[
            js.UndefOr[MaskBorderSlice | js.Array[NonNullable[js.UndefOr[MaskBorderSlice]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskBorderSlice]]
        ])
      ] = js.undefined
    
    var maskBorderSource: js.UndefOr[
        MaskBorderSource | (js.Array[
          (Extract[
            js.UndefOr[MaskBorderSource | js.Array[NonNullable[js.UndefOr[MaskBorderSource]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskBorderSource]]
        ])
      ] = js.undefined
    
    var maskBorderWidth: js.UndefOr[
        (MaskBorderWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaskBorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var maskClip: js.UndefOr[
        MaskClip | (js.Array[
          (Extract[js.UndefOr[MaskClip | js.Array[NonNullable[js.UndefOr[MaskClip]]]], String]) | NonNullable[js.UndefOr[MaskClip]]
        ])
      ] = js.undefined
    
    var maskComposite: js.UndefOr[
        MaskComposite | (js.Array[
          (Extract[
            js.UndefOr[MaskComposite | js.Array[NonNullable[js.UndefOr[MaskComposite]]]], 
            String
          ]) | NonNullable[js.UndefOr[MaskComposite]]
        ])
      ] = js.undefined
    
    var maskImage: js.UndefOr[
        MaskImage | (js.Array[
          (Extract[js.UndefOr[MaskImage | js.Array[NonNullable[js.UndefOr[MaskImage]]]], String]) | NonNullable[js.UndefOr[MaskImage]]
        ])
      ] = js.undefined
    
    var maskMode: js.UndefOr[
        MaskMode | (js.Array[
          (Extract[js.UndefOr[MaskMode | js.Array[NonNullable[js.UndefOr[MaskMode]]]], String]) | NonNullable[js.UndefOr[MaskMode]]
        ])
      ] = js.undefined
    
    var maskOrigin: js.UndefOr[
        MaskOrigin | (js.Array[
          (Extract[js.UndefOr[MaskOrigin | js.Array[NonNullable[js.UndefOr[MaskOrigin]]]], String]) | NonNullable[js.UndefOr[MaskOrigin]]
        ])
      ] = js.undefined
    
    var maskPosition: js.UndefOr[
        (MaskPosition[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaskPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskPosition[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaskPosition[Double | String]]])
        ])
      ] = js.undefined
    
    var maskRepeat: js.UndefOr[
        MaskRepeat | (js.Array[
          (Extract[js.UndefOr[MaskRepeat | js.Array[NonNullable[js.UndefOr[MaskRepeat]]]], String]) | NonNullable[js.UndefOr[MaskRepeat]]
        ])
      ] = js.undefined
    
    var maskSize: js.UndefOr[
        (MaskSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaskSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaskSize[Double | String]]])
        ])
      ] = js.undefined
    
    var maskType: js.UndefOr[
        MaskType | (js.Array[
          (Extract[js.UndefOr[MaskType | js.Array[NonNullable[js.UndefOr[MaskType]]]], String]) | NonNullable[js.UndefOr[MaskType]]
        ])
      ] = js.undefined
    
    var mathStyle: js.UndefOr[
        MathStyle | (js.Array[
          (Extract[js.UndefOr[MathStyle | js.Array[NonNullable[js.UndefOr[MathStyle]]]], String]) | NonNullable[js.UndefOr[MathStyle]]
        ])
      ] = js.undefined
    
    var maxBlockSize: js.UndefOr[
        (MaxBlockSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaxBlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxBlockSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaxBlockSize[Double | String]]])
        ])
      ] = js.undefined
    
    var maxHeight: js.UndefOr[
        (MaxHeight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaxHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxHeight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaxHeight[Double | String]]])
        ])
      ] = js.undefined
    
    var maxInlineSize: js.UndefOr[
        (MaxInlineSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaxInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaxInlineSize[Double | String]]])
        ])
      ] = js.undefined
    
    var maxLines: js.UndefOr[
        MaxLines | (js.Array[
          (Extract[js.UndefOr[MaxLines | js.Array[NonNullable[js.UndefOr[MaxLines]]]], String]) | NonNullable[js.UndefOr[MaxLines]]
        ])
      ] = js.undefined
    
    var maxWidth: js.UndefOr[
        (MaxWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MaxWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MaxWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var minBlockSize: js.UndefOr[
        (MinBlockSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MinBlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinBlockSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MinBlockSize[Double | String]]])
        ])
      ] = js.undefined
    
    var minHeight: js.UndefOr[
        (MinHeight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MinHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinHeight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MinHeight[Double | String]]])
        ])
      ] = js.undefined
    
    var minInlineSize: js.UndefOr[
        (MinInlineSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MinInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinInlineSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MinInlineSize[Double | String]]])
        ])
      ] = js.undefined
    
    var minWidth: js.UndefOr[
        (MinWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MinWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MinWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var mixBlendMode: js.UndefOr[
        MixBlendMode | (js.Array[
          (Extract[js.UndefOr[MixBlendMode | js.Array[NonNullable[js.UndefOr[MixBlendMode]]]], String]) | NonNullable[js.UndefOr[MixBlendMode]]
        ])
      ] = js.undefined
    
    var motion: js.UndefOr[
        (Offset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Offset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Offset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Offset[Double | String]]])
        ])
      ] = js.undefined
    
    var motionDistance: js.UndefOr[
        (OffsetDistance[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (OffsetDistance[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetDistance[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[OffsetDistance[Double | String]]])
        ])
      ] = js.undefined
    
    var motionPath: js.UndefOr[
        OffsetPath | (js.Array[
          (Extract[js.UndefOr[OffsetPath | js.Array[NonNullable[js.UndefOr[OffsetPath]]]], String]) | NonNullable[js.UndefOr[OffsetPath]]
        ])
      ] = js.undefined
    
    var motionRotation: js.UndefOr[
        OffsetRotate | (js.Array[
          (Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]]
        ])
      ] = js.undefined
    
    var msAccelerator: js.UndefOr[
        MsAccelerator | (js.Array[
          (Extract[
            js.UndefOr[MsAccelerator | js.Array[NonNullable[js.UndefOr[MsAccelerator]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsAccelerator]]
        ])
      ] = js.undefined
    
    var msAlignSelf: js.UndefOr[
        AlignSelf | (js.Array[
          (Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]]
        ])
      ] = js.undefined
    
    var msBlockProgression: js.UndefOr[
        MsBlockProgression | (js.Array[
          (Extract[
            js.UndefOr[MsBlockProgression | js.Array[NonNullable[js.UndefOr[MsBlockProgression]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsBlockProgression]]
        ])
      ] = js.undefined
    
    var msContentZoomChaining: js.UndefOr[
        MsContentZoomChaining | (js.Array[
          (Extract[
            js.UndefOr[MsContentZoomChaining | js.Array[NonNullable[js.UndefOr[MsContentZoomChaining]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZoomChaining]]
        ])
      ] = js.undefined
    
    var msContentZoomLimit: js.UndefOr[
        MsContentZoomLimit | (js.Array[
          (Extract[
            js.UndefOr[MsContentZoomLimit | js.Array[NonNullable[js.UndefOr[MsContentZoomLimit]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZoomLimit]]
        ])
      ] = js.undefined
    
    var msContentZoomLimitMax: js.UndefOr[
        MsContentZoomLimitMax | (js.Array[
          (Extract[
            js.UndefOr[MsContentZoomLimitMax | js.Array[NonNullable[js.UndefOr[MsContentZoomLimitMax]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZoomLimitMax]]
        ])
      ] = js.undefined
    
    var msContentZoomLimitMin: js.UndefOr[
        MsContentZoomLimitMin | (js.Array[
          (Extract[
            js.UndefOr[MsContentZoomLimitMin | js.Array[NonNullable[js.UndefOr[MsContentZoomLimitMin]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZoomLimitMin]]
        ])
      ] = js.undefined
    
    var msContentZoomSnap: js.UndefOr[
        MsContentZoomSnap | (js.Array[
          (Extract[
            js.UndefOr[MsContentZoomSnap | js.Array[NonNullable[js.UndefOr[MsContentZoomSnap]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZoomSnap]]
        ])
      ] = js.undefined
    
    var msContentZoomSnapPoints: js.UndefOr[
        MsContentZoomSnapPoints | (js.Array[
          (Extract[
            js.UndefOr[
              MsContentZoomSnapPoints | js.Array[NonNullable[js.UndefOr[MsContentZoomSnapPoints]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZoomSnapPoints]]
        ])
      ] = js.undefined
    
    var msContentZoomSnapType: js.UndefOr[
        MsContentZoomSnapType | (js.Array[
          (Extract[
            js.UndefOr[MsContentZoomSnapType | js.Array[NonNullable[js.UndefOr[MsContentZoomSnapType]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZoomSnapType]]
        ])
      ] = js.undefined
    
    var msContentZooming: js.UndefOr[
        MsContentZooming | (js.Array[
          (Extract[
            js.UndefOr[MsContentZooming | js.Array[NonNullable[js.UndefOr[MsContentZooming]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsContentZooming]]
        ])
      ] = js.undefined
    
    var msFilter: js.UndefOr[
        MsFilter | (js.Array[
          (Extract[js.UndefOr[MsFilter | js.Array[NonNullable[js.UndefOr[MsFilter]]]], String]) | NonNullable[js.UndefOr[MsFilter]]
        ])
      ] = js.undefined
    
    var msFlex: js.UndefOr[
        (Flex[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Flex[Double | String]]])
        ])
      ] = js.undefined
    
    var msFlexDirection: js.UndefOr[
        FlexDirection | (js.Array[
          (Extract[
            js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
            String
          ]) | NonNullable[js.UndefOr[FlexDirection]]
        ])
      ] = js.undefined
    
    var msFlexPositive: js.UndefOr[
        FlexGrow | (js.Array[
          (Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]]
        ])
      ] = js.undefined
    
    var msFlowFrom: js.UndefOr[
        MsFlowFrom | (js.Array[
          (Extract[js.UndefOr[MsFlowFrom | js.Array[NonNullable[js.UndefOr[MsFlowFrom]]]], String]) | NonNullable[js.UndefOr[MsFlowFrom]]
        ])
      ] = js.undefined
    
    var msFlowInto: js.UndefOr[
        MsFlowInto | (js.Array[
          (Extract[js.UndefOr[MsFlowInto | js.Array[NonNullable[js.UndefOr[MsFlowInto]]]], String]) | NonNullable[js.UndefOr[MsFlowInto]]
        ])
      ] = js.undefined
    
    var msGridColumns: js.UndefOr[
        (MsGridColumns[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsGridColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsGridColumns[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsGridColumns[Double | String]]])
        ])
      ] = js.undefined
    
    var msGridRows: js.UndefOr[
        (MsGridRows[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsGridRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsGridRows[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsGridRows[Double | String]]])
        ])
      ] = js.undefined
    
    var msHighContrastAdjust: js.UndefOr[
        MsHighContrastAdjust | (js.Array[
          (Extract[
            js.UndefOr[MsHighContrastAdjust | js.Array[NonNullable[js.UndefOr[MsHighContrastAdjust]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsHighContrastAdjust]]
        ])
      ] = js.undefined
    
    var msHyphenateLimitChars: js.UndefOr[
        MsHyphenateLimitChars | (js.Array[
          (Extract[
            js.UndefOr[MsHyphenateLimitChars | js.Array[NonNullable[js.UndefOr[MsHyphenateLimitChars]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsHyphenateLimitChars]]
        ])
      ] = js.undefined
    
    var msHyphenateLimitLines: js.UndefOr[
        MsHyphenateLimitLines | (js.Array[
          (Extract[
            js.UndefOr[MsHyphenateLimitLines | js.Array[NonNullable[js.UndefOr[MsHyphenateLimitLines]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsHyphenateLimitLines]]
        ])
      ] = js.undefined
    
    var msHyphenateLimitZone: js.UndefOr[
        (MsHyphenateLimitZone[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsHyphenateLimitZone[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsHyphenateLimitZone[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsHyphenateLimitZone[Double | String]]])
        ])
      ] = js.undefined
    
    var msHyphens: js.UndefOr[
        Hyphens | (js.Array[
          (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
        ])
      ] = js.undefined
    
    var msImeAlign: js.UndefOr[
        MsImeAlign | (js.Array[
          (Extract[js.UndefOr[MsImeAlign | js.Array[NonNullable[js.UndefOr[MsImeAlign]]]], String]) | NonNullable[js.UndefOr[MsImeAlign]]
        ])
      ] = js.undefined
    
    var msImeMode: js.UndefOr[
        ImeMode | (js.Array[
          (Extract[js.UndefOr[ImeMode | js.Array[NonNullable[js.UndefOr[ImeMode]]]], String]) | NonNullable[js.UndefOr[ImeMode]]
        ])
      ] = js.undefined
    
    var msJustifySelf: js.UndefOr[
        JustifySelf | (js.Array[
          (Extract[js.UndefOr[JustifySelf | js.Array[NonNullable[js.UndefOr[JustifySelf]]]], String]) | NonNullable[js.UndefOr[JustifySelf]]
        ])
      ] = js.undefined
    
    var msLineBreak: js.UndefOr[
        LineBreak | (js.Array[
          (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
        ])
      ] = js.undefined
    
    var msOrder: js.UndefOr[
        Order | (js.Array[
          (Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]]
        ])
      ] = js.undefined
    
    var msOverflowStyle: js.UndefOr[
        MsOverflowStyle | (js.Array[
          (Extract[
            js.UndefOr[MsOverflowStyle | js.Array[NonNullable[js.UndefOr[MsOverflowStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsOverflowStyle]]
        ])
      ] = js.undefined
    
    var msOverflowX: js.UndefOr[
        OverflowX | (js.Array[
          (Extract[js.UndefOr[OverflowX | js.Array[NonNullable[js.UndefOr[OverflowX]]]], String]) | NonNullable[js.UndefOr[OverflowX]]
        ])
      ] = js.undefined
    
    var msOverflowY: js.UndefOr[
        OverflowY | (js.Array[
          (Extract[js.UndefOr[OverflowY | js.Array[NonNullable[js.UndefOr[OverflowY]]]], String]) | NonNullable[js.UndefOr[OverflowY]]
        ])
      ] = js.undefined
    
    var msScrollChaining: js.UndefOr[
        MsScrollChaining | (js.Array[
          (Extract[
            js.UndefOr[MsScrollChaining | js.Array[NonNullable[js.UndefOr[MsScrollChaining]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollChaining]]
        ])
      ] = js.undefined
    
    var msScrollLimit: js.UndefOr[
        MsScrollLimit | (js.Array[
          (Extract[
            js.UndefOr[MsScrollLimit | js.Array[NonNullable[js.UndefOr[MsScrollLimit]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollLimit]]
        ])
      ] = js.undefined
    
    var msScrollLimitXMax: js.UndefOr[
        (MsScrollLimitXMax[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsScrollLimitXMax[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitXMax[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsScrollLimitXMax[Double | String]]])
        ])
      ] = js.undefined
    
    var msScrollLimitXMin: js.UndefOr[
        (MsScrollLimitXMin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsScrollLimitXMin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitXMin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsScrollLimitXMin[Double | String]]])
        ])
      ] = js.undefined
    
    var msScrollLimitYMax: js.UndefOr[
        (MsScrollLimitYMax[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsScrollLimitYMax[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitYMax[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsScrollLimitYMax[Double | String]]])
        ])
      ] = js.undefined
    
    var msScrollLimitYMin: js.UndefOr[
        (MsScrollLimitYMin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsScrollLimitYMin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitYMin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsScrollLimitYMin[Double | String]]])
        ])
      ] = js.undefined
    
    var msScrollRails: js.UndefOr[
        MsScrollRails | (js.Array[
          (Extract[
            js.UndefOr[MsScrollRails | js.Array[NonNullable[js.UndefOr[MsScrollRails]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollRails]]
        ])
      ] = js.undefined
    
    var msScrollSnapPointsX: js.UndefOr[
        MsScrollSnapPointsX | (js.Array[
          (Extract[
            js.UndefOr[MsScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[MsScrollSnapPointsX]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollSnapPointsX]]
        ])
      ] = js.undefined
    
    var msScrollSnapPointsY: js.UndefOr[
        MsScrollSnapPointsY | (js.Array[
          (Extract[
            js.UndefOr[MsScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[MsScrollSnapPointsY]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollSnapPointsY]]
        ])
      ] = js.undefined
    
    var msScrollSnapType: js.UndefOr[
        MsScrollSnapType | (js.Array[
          (Extract[
            js.UndefOr[MsScrollSnapType | js.Array[NonNullable[js.UndefOr[MsScrollSnapType]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollSnapType]]
        ])
      ] = js.undefined
    
    var msScrollSnapX: js.UndefOr[
        MsScrollSnapX | (js.Array[
          (Extract[
            js.UndefOr[MsScrollSnapX | js.Array[NonNullable[js.UndefOr[MsScrollSnapX]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollSnapX]]
        ])
      ] = js.undefined
    
    var msScrollSnapY: js.UndefOr[
        MsScrollSnapY | (js.Array[
          (Extract[
            js.UndefOr[MsScrollSnapY | js.Array[NonNullable[js.UndefOr[MsScrollSnapY]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollSnapY]]
        ])
      ] = js.undefined
    
    var msScrollTranslation: js.UndefOr[
        MsScrollTranslation | (js.Array[
          (Extract[
            js.UndefOr[MsScrollTranslation | js.Array[NonNullable[js.UndefOr[MsScrollTranslation]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollTranslation]]
        ])
      ] = js.undefined
    
    var msScrollbar3dlightColor: js.UndefOr[
        MsScrollbar3dlightColor | (js.Array[
          (Extract[
            js.UndefOr[
              MsScrollbar3dlightColor | js.Array[NonNullable[js.UndefOr[MsScrollbar3dlightColor]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbar3dlightColor]]
        ])
      ] = js.undefined
    
    var msScrollbarArrowColor: js.UndefOr[
        MsScrollbarArrowColor | (js.Array[
          (Extract[
            js.UndefOr[MsScrollbarArrowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarArrowColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarArrowColor]]
        ])
      ] = js.undefined
    
    var msScrollbarBaseColor: js.UndefOr[
        MsScrollbarBaseColor | (js.Array[
          (Extract[
            js.UndefOr[MsScrollbarBaseColor | js.Array[NonNullable[js.UndefOr[MsScrollbarBaseColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarBaseColor]]
        ])
      ] = js.undefined
    
    var msScrollbarDarkshadowColor: js.UndefOr[
        MsScrollbarDarkshadowColor | (js.Array[
          (Extract[
            js.UndefOr[
              MsScrollbarDarkshadowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarDarkshadowColor]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarDarkshadowColor]]
        ])
      ] = js.undefined
    
    var msScrollbarFaceColor: js.UndefOr[
        MsScrollbarFaceColor | (js.Array[
          (Extract[
            js.UndefOr[MsScrollbarFaceColor | js.Array[NonNullable[js.UndefOr[MsScrollbarFaceColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarFaceColor]]
        ])
      ] = js.undefined
    
    var msScrollbarHighlightColor: js.UndefOr[
        MsScrollbarHighlightColor | (js.Array[
          (Extract[
            js.UndefOr[
              MsScrollbarHighlightColor | js.Array[NonNullable[js.UndefOr[MsScrollbarHighlightColor]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarHighlightColor]]
        ])
      ] = js.undefined
    
    var msScrollbarShadowColor: js.UndefOr[
        MsScrollbarShadowColor | (js.Array[
          (Extract[
            js.UndefOr[
              MsScrollbarShadowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarShadowColor]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarShadowColor]]
        ])
      ] = js.undefined
    
    var msScrollbarTrackColor: js.UndefOr[
        MsScrollbarTrackColor | (js.Array[
          (Extract[
            js.UndefOr[MsScrollbarTrackColor | js.Array[NonNullable[js.UndefOr[MsScrollbarTrackColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarTrackColor]]
        ])
      ] = js.undefined
    
    var msTextAutospace: js.UndefOr[
        MsTextAutospace | (js.Array[
          (Extract[
            js.UndefOr[MsTextAutospace | js.Array[NonNullable[js.UndefOr[MsTextAutospace]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsTextAutospace]]
        ])
      ] = js.undefined
    
    var msTextCombineHorizontal: js.UndefOr[
        TextCombineUpright | (js.Array[
          (Extract[
            js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextCombineUpright]]
        ])
      ] = js.undefined
    
    var msTextOverflow: js.UndefOr[
        TextOverflow | (js.Array[
          (Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]]
        ])
      ] = js.undefined
    
    var msTouchAction: js.UndefOr[
        TouchAction | (js.Array[
          (Extract[js.UndefOr[TouchAction | js.Array[NonNullable[js.UndefOr[TouchAction]]]], String]) | NonNullable[js.UndefOr[TouchAction]]
        ])
      ] = js.undefined
    
    var msTouchSelect: js.UndefOr[
        MsTouchSelect | (js.Array[
          (Extract[
            js.UndefOr[MsTouchSelect | js.Array[NonNullable[js.UndefOr[MsTouchSelect]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsTouchSelect]]
        ])
      ] = js.undefined
    
    var msTransform: js.UndefOr[
        Transform | (js.Array[
          (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
        ])
      ] = js.undefined
    
    var msTransformOrigin: js.UndefOr[
        (TransformOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var msTransition: js.UndefOr[
        Transition[String] | (js.Array[
          (Extract[
            js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Transition[String]]]
        ])
      ] = js.undefined
    
    var msTransitionDelay: js.UndefOr[
        TransitionDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
        ])
      ] = js.undefined
    
    var msTransitionDuration: js.UndefOr[
        TransitionDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
        ])
      ] = js.undefined
    
    var msTransitionProperty: js.UndefOr[
        TransitionProperty | (js.Array[
          (Extract[
            js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransitionProperty]]
        ])
      ] = js.undefined
    
    var msTransitionTimingFunction: js.UndefOr[
        TransitionTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
        ])
      ] = js.undefined
    
    var msUserSelect: js.UndefOr[
        MsUserSelect | (js.Array[
          (Extract[js.UndefOr[MsUserSelect | js.Array[NonNullable[js.UndefOr[MsUserSelect]]]], String]) | NonNullable[js.UndefOr[MsUserSelect]]
        ])
      ] = js.undefined
    
    var msWordBreak: js.UndefOr[
        WordBreak | (js.Array[
          (Extract[js.UndefOr[WordBreak | js.Array[NonNullable[js.UndefOr[WordBreak]]]], String]) | NonNullable[js.UndefOr[WordBreak]]
        ])
      ] = js.undefined
    
    var msWrapFlow: js.UndefOr[
        MsWrapFlow | (js.Array[
          (Extract[js.UndefOr[MsWrapFlow | js.Array[NonNullable[js.UndefOr[MsWrapFlow]]]], String]) | NonNullable[js.UndefOr[MsWrapFlow]]
        ])
      ] = js.undefined
    
    var msWrapMargin: js.UndefOr[
        (MsWrapMargin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (MsWrapMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsWrapMargin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[MsWrapMargin[Double | String]]])
        ])
      ] = js.undefined
    
    var msWrapThrough: js.UndefOr[
        MsWrapThrough | (js.Array[
          (Extract[
            js.UndefOr[MsWrapThrough | js.Array[NonNullable[js.UndefOr[MsWrapThrough]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsWrapThrough]]
        ])
      ] = js.undefined
    
    var msWritingMode: js.UndefOr[
        WritingMode | (js.Array[
          (Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]]
        ])
      ] = js.undefined
    
    var objectFit: js.UndefOr[
        ObjectFit | (js.Array[
          (Extract[js.UndefOr[ObjectFit | js.Array[NonNullable[js.UndefOr[ObjectFit]]]], String]) | NonNullable[js.UndefOr[ObjectFit]]
        ])
      ] = js.undefined
    
    var objectPosition: js.UndefOr[
        (ObjectPosition[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ObjectPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[ObjectPosition[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ObjectPosition[Double | String]]])
        ])
      ] = js.undefined
    
    var offset: js.UndefOr[
        (Offset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Offset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Offset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Offset[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetAnchor: js.UndefOr[
        (OffsetAnchor[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (OffsetAnchor[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetAnchor[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[OffsetAnchor[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetBlock: js.UndefOr[
        (InsetBlock[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlock[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetBlock[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetBlockEnd: js.UndefOr[
        (InsetBlockEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetBlockStart: js.UndefOr[
        (InsetBlockStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetBlockStart[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetDistance: js.UndefOr[
        (OffsetDistance[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (OffsetDistance[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetDistance[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[OffsetDistance[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetInline: js.UndefOr[
        (InsetInline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetInline[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetInlineEnd: js.UndefOr[
        (InsetInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetInlineStart: js.UndefOr[
        (InsetInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (InsetInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[InsetInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var offsetPath: js.UndefOr[
        OffsetPath | (js.Array[
          (Extract[js.UndefOr[OffsetPath | js.Array[NonNullable[js.UndefOr[OffsetPath]]]], String]) | NonNullable[js.UndefOr[OffsetPath]]
        ])
      ] = js.undefined
    
    var offsetRotate: js.UndefOr[
        OffsetRotate | (js.Array[
          (Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]]
        ])
      ] = js.undefined
    
    var offsetRotation: js.UndefOr[
        OffsetRotate | (js.Array[
          (Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]]
        ])
      ] = js.undefined
    
    var opacity: js.UndefOr[
        Opacity | (js.Array[
          (Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]]
        ])
      ] = js.undefined
    
    var order: js.UndefOr[
        Order | (js.Array[
          (Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]]
        ])
      ] = js.undefined
    
    var orphans: js.UndefOr[
        Orphans | (js.Array[
          (Extract[js.UndefOr[Orphans | js.Array[NonNullable[js.UndefOr[Orphans]]]], String]) | NonNullable[js.UndefOr[Orphans]]
        ])
      ] = js.undefined
    
    var outline: js.UndefOr[
        (Outline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Outline[Double | String]) | (js.Array[NonNullable[js.UndefOr[Outline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Outline[Double | String]]])
        ])
      ] = js.undefined
    
    var outlineColor: js.UndefOr[
        OutlineColor | (js.Array[
          (Extract[js.UndefOr[OutlineColor | js.Array[NonNullable[js.UndefOr[OutlineColor]]]], String]) | NonNullable[js.UndefOr[OutlineColor]]
        ])
      ] = js.undefined
    
    var outlineOffset: js.UndefOr[
        (OutlineOffset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (OutlineOffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineOffset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[OutlineOffset[Double | String]]])
        ])
      ] = js.undefined
    
    var outlineStyle: js.UndefOr[
        OutlineStyle | (js.Array[
          (Extract[js.UndefOr[OutlineStyle | js.Array[NonNullable[js.UndefOr[OutlineStyle]]]], String]) | NonNullable[js.UndefOr[OutlineStyle]]
        ])
      ] = js.undefined
    
    var outlineWidth: js.UndefOr[
        (OutlineWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (OutlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[OutlineWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var overflow: js.UndefOr[
        Overflow | (js.Array[
          (Extract[js.UndefOr[Overflow | js.Array[NonNullable[js.UndefOr[Overflow]]]], String]) | NonNullable[js.UndefOr[Overflow]]
        ])
      ] = js.undefined
    
    var overflowAnchor: js.UndefOr[
        OverflowAnchor | (js.Array[
          (Extract[
            js.UndefOr[OverflowAnchor | js.Array[NonNullable[js.UndefOr[OverflowAnchor]]]], 
            String
          ]) | NonNullable[js.UndefOr[OverflowAnchor]]
        ])
      ] = js.undefined
    
    var overflowBlock: js.UndefOr[
        OverflowBlock | (js.Array[
          (Extract[
            js.UndefOr[OverflowBlock | js.Array[NonNullable[js.UndefOr[OverflowBlock]]]], 
            String
          ]) | NonNullable[js.UndefOr[OverflowBlock]]
        ])
      ] = js.undefined
    
    var overflowClipBox: js.UndefOr[
        OverflowClipBox | (js.Array[
          (Extract[
            js.UndefOr[OverflowClipBox | js.Array[NonNullable[js.UndefOr[OverflowClipBox]]]], 
            String
          ]) | NonNullable[js.UndefOr[OverflowClipBox]]
        ])
      ] = js.undefined
    
    var overflowClipMargin: js.UndefOr[
        (OverflowClipMargin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (OverflowClipMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[OverflowClipMargin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[OverflowClipMargin[Double | String]]])
        ])
      ] = js.undefined
    
    var overflowInline: js.UndefOr[
        OverflowInline | (js.Array[
          (Extract[
            js.UndefOr[OverflowInline | js.Array[NonNullable[js.UndefOr[OverflowInline]]]], 
            String
          ]) | NonNullable[js.UndefOr[OverflowInline]]
        ])
      ] = js.undefined
    
    var overflowWrap: js.UndefOr[
        OverflowWrap | (js.Array[
          (Extract[js.UndefOr[OverflowWrap | js.Array[NonNullable[js.UndefOr[OverflowWrap]]]], String]) | NonNullable[js.UndefOr[OverflowWrap]]
        ])
      ] = js.undefined
    
    var overflowX: js.UndefOr[
        OverflowX | (js.Array[
          (Extract[js.UndefOr[OverflowX | js.Array[NonNullable[js.UndefOr[OverflowX]]]], String]) | NonNullable[js.UndefOr[OverflowX]]
        ])
      ] = js.undefined
    
    var overflowY: js.UndefOr[
        OverflowY | (js.Array[
          (Extract[js.UndefOr[OverflowY | js.Array[NonNullable[js.UndefOr[OverflowY]]]], String]) | NonNullable[js.UndefOr[OverflowY]]
        ])
      ] = js.undefined
    
    var overscrollBehavior: js.UndefOr[
        OverscrollBehavior | (js.Array[
          (Extract[
            js.UndefOr[OverscrollBehavior | js.Array[NonNullable[js.UndefOr[OverscrollBehavior]]]], 
            String
          ]) | NonNullable[js.UndefOr[OverscrollBehavior]]
        ])
      ] = js.undefined
    
    var overscrollBehaviorBlock: js.UndefOr[
        OverscrollBehaviorBlock | (js.Array[
          (Extract[
            js.UndefOr[
              OverscrollBehaviorBlock | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorBlock]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[OverscrollBehaviorBlock]]
        ])
      ] = js.undefined
    
    var overscrollBehaviorInline: js.UndefOr[
        OverscrollBehaviorInline | (js.Array[
          (Extract[
            js.UndefOr[
              OverscrollBehaviorInline | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorInline]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[OverscrollBehaviorInline]]
        ])
      ] = js.undefined
    
    var overscrollBehaviorX: js.UndefOr[
        OverscrollBehaviorX | (js.Array[
          (Extract[
            js.UndefOr[OverscrollBehaviorX | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorX]]]], 
            String
          ]) | NonNullable[js.UndefOr[OverscrollBehaviorX]]
        ])
      ] = js.undefined
    
    var overscrollBehaviorY: js.UndefOr[
        OverscrollBehaviorY | (js.Array[
          (Extract[
            js.UndefOr[OverscrollBehaviorY | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorY]]]], 
            String
          ]) | NonNullable[js.UndefOr[OverscrollBehaviorY]]
        ])
      ] = js.undefined
    
    var padding: js.UndefOr[
        (Padding[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Padding[Double | String]) | (js.Array[NonNullable[js.UndefOr[Padding[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Padding[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingBlock: js.UndefOr[
        (PaddingBlock[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlock[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingBlock[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingBlockEnd: js.UndefOr[
        (PaddingBlockEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlockEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingBlockEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingBlockStart: js.UndefOr[
        (PaddingBlockStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlockStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingBlockStart[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingBottom: js.UndefOr[
        (PaddingBottom[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBottom[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingBottom[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingInline: js.UndefOr[
        (PaddingInline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingInline[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingInlineEnd: js.UndefOr[
        (PaddingInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingInlineStart: js.UndefOr[
        (PaddingInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingLeft: js.UndefOr[
        (PaddingLeft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingLeft[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingLeft[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingRight: js.UndefOr[
        (PaddingRight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingRight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingRight[Double | String]]])
        ])
      ] = js.undefined
    
    var paddingTop: js.UndefOr[
        (PaddingTop[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PaddingTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingTop[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PaddingTop[Double | String]]])
        ])
      ] = js.undefined
    
    var pageBreakAfter: js.UndefOr[
        PageBreakAfter | (js.Array[
          (Extract[
            js.UndefOr[PageBreakAfter | js.Array[NonNullable[js.UndefOr[PageBreakAfter]]]], 
            String
          ]) | NonNullable[js.UndefOr[PageBreakAfter]]
        ])
      ] = js.undefined
    
    var pageBreakBefore: js.UndefOr[
        PageBreakBefore | (js.Array[
          (Extract[
            js.UndefOr[PageBreakBefore | js.Array[NonNullable[js.UndefOr[PageBreakBefore]]]], 
            String
          ]) | NonNullable[js.UndefOr[PageBreakBefore]]
        ])
      ] = js.undefined
    
    var pageBreakInside: js.UndefOr[
        PageBreakInside | (js.Array[
          (Extract[
            js.UndefOr[PageBreakInside | js.Array[NonNullable[js.UndefOr[PageBreakInside]]]], 
            String
          ]) | NonNullable[js.UndefOr[PageBreakInside]]
        ])
      ] = js.undefined
    
    var paintOrder: js.UndefOr[
        PaintOrder | (js.Array[
          (Extract[js.UndefOr[PaintOrder | js.Array[NonNullable[js.UndefOr[PaintOrder]]]], String]) | NonNullable[js.UndefOr[PaintOrder]]
        ])
      ] = js.undefined
    
    var perspective: js.UndefOr[
        (Perspective[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]])
        ])
      ] = js.undefined
    
    var perspectiveOrigin: js.UndefOr[
        (PerspectiveOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var placeContent: js.UndefOr[
        PlaceContent | (js.Array[
          (Extract[js.UndefOr[PlaceContent | js.Array[NonNullable[js.UndefOr[PlaceContent]]]], String]) | NonNullable[js.UndefOr[PlaceContent]]
        ])
      ] = js.undefined
    
    var placeItems: js.UndefOr[
        PlaceItems | (js.Array[
          (Extract[js.UndefOr[PlaceItems | js.Array[NonNullable[js.UndefOr[PlaceItems]]]], String]) | NonNullable[js.UndefOr[PlaceItems]]
        ])
      ] = js.undefined
    
    var placeSelf: js.UndefOr[
        PlaceSelf | (js.Array[
          (Extract[js.UndefOr[PlaceSelf | js.Array[NonNullable[js.UndefOr[PlaceSelf]]]], String]) | NonNullable[js.UndefOr[PlaceSelf]]
        ])
      ] = js.undefined
    
    var pointerEvents: js.UndefOr[
        PointerEvents | (js.Array[
          (Extract[
            js.UndefOr[PointerEvents | js.Array[NonNullable[js.UndefOr[PointerEvents]]]], 
            String
          ]) | NonNullable[js.UndefOr[PointerEvents]]
        ])
      ] = js.undefined
    
    var position: js.UndefOr[
        Position | (js.Array[
          (Extract[js.UndefOr[Position | js.Array[NonNullable[js.UndefOr[Position]]]], String]) | NonNullable[js.UndefOr[Position]]
        ])
      ] = js.undefined
    
    var quotes: js.UndefOr[
        Quotes | (js.Array[
          (Extract[js.UndefOr[Quotes | js.Array[NonNullable[js.UndefOr[Quotes]]]], String]) | NonNullable[js.UndefOr[Quotes]]
        ])
      ] = js.undefined
    
    var resize: js.UndefOr[
        Resize | (js.Array[
          (Extract[js.UndefOr[Resize | js.Array[NonNullable[js.UndefOr[Resize]]]], String]) | NonNullable[js.UndefOr[Resize]]
        ])
      ] = js.undefined
    
    var right: js.UndefOr[
        (Right[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Right[Double | String]) | (js.Array[NonNullable[js.UndefOr[Right[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Right[Double | String]]])
        ])
      ] = js.undefined
    
    var rotate: js.UndefOr[
        Rotate | (js.Array[
          (Extract[js.UndefOr[Rotate | js.Array[NonNullable[js.UndefOr[Rotate]]]], String]) | NonNullable[js.UndefOr[Rotate]]
        ])
      ] = js.undefined
    
    var rowGap: js.UndefOr[
        (RowGap[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (RowGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[RowGap[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[RowGap[Double | String]]])
        ])
      ] = js.undefined
    
    var rubyAlign: js.UndefOr[
        RubyAlign | (js.Array[
          (Extract[js.UndefOr[RubyAlign | js.Array[NonNullable[js.UndefOr[RubyAlign]]]], String]) | NonNullable[js.UndefOr[RubyAlign]]
        ])
      ] = js.undefined
    
    var rubyMerge: js.UndefOr[
        RubyMerge | (js.Array[
          (Extract[js.UndefOr[RubyMerge | js.Array[NonNullable[js.UndefOr[RubyMerge]]]], String]) | NonNullable[js.UndefOr[RubyMerge]]
        ])
      ] = js.undefined
    
    var rubyPosition: js.UndefOr[
        RubyPosition | (js.Array[
          (Extract[js.UndefOr[RubyPosition | js.Array[NonNullable[js.UndefOr[RubyPosition]]]], String]) | NonNullable[js.UndefOr[RubyPosition]]
        ])
      ] = js.undefined
    
    var scale: js.UndefOr[
        Scale | (js.Array[
          (Extract[js.UndefOr[Scale | js.Array[NonNullable[js.UndefOr[Scale]]]], String]) | NonNullable[js.UndefOr[Scale]]
        ])
      ] = js.undefined
    
    var scrollBehavior: js.UndefOr[
        ScrollBehavior | (js.Array[
          (Extract[
            js.UndefOr[ScrollBehavior | js.Array[NonNullable[js.UndefOr[ScrollBehavior]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollBehavior]]
        ])
      ] = js.undefined
    
    var scrollMargin: js.UndefOr[
        (ScrollMargin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMargin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMargin[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginBlock: js.UndefOr[
        (ScrollMarginBlock[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlock[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginBlock[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginBlockEnd: js.UndefOr[
        (ScrollMarginBlockEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlockEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginBlockEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginBlockStart: js.UndefOr[
        (ScrollMarginBlockStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlockStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginBlockStart[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginBottom: js.UndefOr[
        (ScrollMarginBottom[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginInline: js.UndefOr[
        (ScrollMarginInline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginInline[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginInlineEnd: js.UndefOr[
        (ScrollMarginInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginInlineStart: js.UndefOr[
        (ScrollMarginInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginLeft: js.UndefOr[
        (ScrollMarginLeft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginRight: js.UndefOr[
        (ScrollMarginRight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollMarginTop: js.UndefOr[
        (ScrollMarginTop[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPadding: js.UndefOr[
        (ScrollPadding[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPadding[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPadding[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPadding[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingBlock: js.UndefOr[
        (ScrollPaddingBlock[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlock[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingBlock[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingBlockEnd: js.UndefOr[
        (ScrollPaddingBlockEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlockEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingBlockEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingBlockStart: js.UndefOr[
        (ScrollPaddingBlockStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlockStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingBlockStart[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingBottom: js.UndefOr[
        (ScrollPaddingBottom[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBottom[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingBottom[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingInline: js.UndefOr[
        (ScrollPaddingInline[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInline[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingInline[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingInlineEnd: js.UndefOr[
        (ScrollPaddingInlineEnd[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInlineEnd[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingInlineEnd[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingInlineStart: js.UndefOr[
        (ScrollPaddingInlineStart[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInlineStart[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingInlineStart[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingLeft: js.UndefOr[
        (ScrollPaddingLeft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingLeft[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingLeft[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingRight: js.UndefOr[
        (ScrollPaddingRight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingRight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingRight[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollPaddingTop: js.UndefOr[
        (ScrollPaddingTop[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollPaddingTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingTop[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollPaddingTop[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapAlign: js.UndefOr[
        ScrollSnapAlign | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapAlign | js.Array[NonNullable[js.UndefOr[ScrollSnapAlign]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapAlign]]
        ])
      ] = js.undefined
    
    var scrollSnapCoordinate: js.UndefOr[
        (ScrollSnapCoordinate[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollSnapCoordinate[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollSnapCoordinate[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollSnapCoordinate[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapDestination: js.UndefOr[
        (ScrollSnapDestination[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollSnapDestination[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollSnapDestination[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollSnapDestination[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapMargin: js.UndefOr[
        (ScrollMargin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMargin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMargin[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapMarginBottom: js.UndefOr[
        (ScrollMarginBottom[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapMarginLeft: js.UndefOr[
        (ScrollMarginLeft[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapMarginRight: js.UndefOr[
        (ScrollMarginRight[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapMarginTop: js.UndefOr[
        (ScrollMarginTop[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ScrollMarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]])
        ])
      ] = js.undefined
    
    var scrollSnapPointsX: js.UndefOr[
        ScrollSnapPointsX | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsX]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapPointsX]]
        ])
      ] = js.undefined
    
    var scrollSnapPointsY: js.UndefOr[
        ScrollSnapPointsY | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsY]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapPointsY]]
        ])
      ] = js.undefined
    
    var scrollSnapStop: js.UndefOr[
        ScrollSnapStop | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapStop | js.Array[NonNullable[js.UndefOr[ScrollSnapStop]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapStop]]
        ])
      ] = js.undefined
    
    var scrollSnapType: js.UndefOr[
        ScrollSnapType | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapType | js.Array[NonNullable[js.UndefOr[ScrollSnapType]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapType]]
        ])
      ] = js.undefined
    
    var scrollSnapTypeX: js.UndefOr[
        ScrollSnapTypeX | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapTypeX | js.Array[NonNullable[js.UndefOr[ScrollSnapTypeX]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapTypeX]]
        ])
      ] = js.undefined
    
    var scrollSnapTypeY: js.UndefOr[
        ScrollSnapTypeY | (js.Array[
          (Extract[
            js.UndefOr[ScrollSnapTypeY | js.Array[NonNullable[js.UndefOr[ScrollSnapTypeY]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollSnapTypeY]]
        ])
      ] = js.undefined
    
    var scrollbarColor: js.UndefOr[
        ScrollbarColor | (js.Array[
          (Extract[
            js.UndefOr[ScrollbarColor | js.Array[NonNullable[js.UndefOr[ScrollbarColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollbarColor]]
        ])
      ] = js.undefined
    
    var scrollbarGutter: js.UndefOr[
        ScrollbarGutter | (js.Array[
          (Extract[
            js.UndefOr[ScrollbarGutter | js.Array[NonNullable[js.UndefOr[ScrollbarGutter]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollbarGutter]]
        ])
      ] = js.undefined
    
    var scrollbarTrackColor: js.UndefOr[
        MsScrollbarTrackColor | (js.Array[
          (Extract[
            js.UndefOr[MsScrollbarTrackColor | js.Array[NonNullable[js.UndefOr[MsScrollbarTrackColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[MsScrollbarTrackColor]]
        ])
      ] = js.undefined
    
    var scrollbarWidth: js.UndefOr[
        ScrollbarWidth | (js.Array[
          (Extract[
            js.UndefOr[ScrollbarWidth | js.Array[NonNullable[js.UndefOr[ScrollbarWidth]]]], 
            String
          ]) | NonNullable[js.UndefOr[ScrollbarWidth]]
        ])
      ] = js.undefined
    
    var shapeImageThreshold: js.UndefOr[
        ShapeImageThreshold | (js.Array[
          (Extract[
            js.UndefOr[ShapeImageThreshold | js.Array[NonNullable[js.UndefOr[ShapeImageThreshold]]]], 
            String
          ]) | NonNullable[js.UndefOr[ShapeImageThreshold]]
        ])
      ] = js.undefined
    
    var shapeMargin: js.UndefOr[
        (ShapeMargin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (ShapeMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ShapeMargin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[ShapeMargin[Double | String]]])
        ])
      ] = js.undefined
    
    var shapeOutside: js.UndefOr[
        ShapeOutside | (js.Array[
          (Extract[js.UndefOr[ShapeOutside | js.Array[NonNullable[js.UndefOr[ShapeOutside]]]], String]) | NonNullable[js.UndefOr[ShapeOutside]]
        ])
      ] = js.undefined
    
    var shapeRendering: js.UndefOr[
        ShapeRendering | (js.Array[
          (Extract[
            js.UndefOr[ShapeRendering | js.Array[NonNullable[js.UndefOr[ShapeRendering]]]], 
            String
          ]) | NonNullable[js.UndefOr[ShapeRendering]]
        ])
      ] = js.undefined
    
    var stopColor: js.UndefOr[
        StopColor | (js.Array[
          (Extract[js.UndefOr[StopColor | js.Array[NonNullable[js.UndefOr[StopColor]]]], String]) | NonNullable[js.UndefOr[StopColor]]
        ])
      ] = js.undefined
    
    var stopOpacity: js.UndefOr[
        StopOpacity | (js.Array[
          (Extract[js.UndefOr[StopOpacity | js.Array[NonNullable[js.UndefOr[StopOpacity]]]], String]) | NonNullable[js.UndefOr[StopOpacity]]
        ])
      ] = js.undefined
    
    var stroke: js.UndefOr[
        Stroke | (js.Array[
          (Extract[js.UndefOr[Stroke | js.Array[NonNullable[js.UndefOr[Stroke]]]], String]) | NonNullable[js.UndefOr[Stroke]]
        ])
      ] = js.undefined
    
    var strokeDasharray: js.UndefOr[
        (StrokeDasharray[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (StrokeDasharray[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeDasharray[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[StrokeDasharray[Double | String]]])
        ])
      ] = js.undefined
    
    var strokeDashoffset: js.UndefOr[
        (StrokeDashoffset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (StrokeDashoffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeDashoffset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[StrokeDashoffset[Double | String]]])
        ])
      ] = js.undefined
    
    var strokeLinecap: js.UndefOr[
        StrokeLinecap | (js.Array[
          (Extract[
            js.UndefOr[StrokeLinecap | js.Array[NonNullable[js.UndefOr[StrokeLinecap]]]], 
            String
          ]) | NonNullable[js.UndefOr[StrokeLinecap]]
        ])
      ] = js.undefined
    
    var strokeLinejoin: js.UndefOr[
        StrokeLinejoin | (js.Array[
          (Extract[
            js.UndefOr[StrokeLinejoin | js.Array[NonNullable[js.UndefOr[StrokeLinejoin]]]], 
            String
          ]) | NonNullable[js.UndefOr[StrokeLinejoin]]
        ])
      ] = js.undefined
    
    var strokeMiterlimit: js.UndefOr[
        StrokeMiterlimit | (js.Array[
          (Extract[
            js.UndefOr[StrokeMiterlimit | js.Array[NonNullable[js.UndefOr[StrokeMiterlimit]]]], 
            String
          ]) | NonNullable[js.UndefOr[StrokeMiterlimit]]
        ])
      ] = js.undefined
    
    var strokeOpacity: js.UndefOr[
        StrokeOpacity | (js.Array[
          (Extract[
            js.UndefOr[StrokeOpacity | js.Array[NonNullable[js.UndefOr[StrokeOpacity]]]], 
            String
          ]) | NonNullable[js.UndefOr[StrokeOpacity]]
        ])
      ] = js.undefined
    
    var strokeWidth: js.UndefOr[
        (StrokeWidth[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (StrokeWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeWidth[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[StrokeWidth[Double | String]]])
        ])
      ] = js.undefined
    
    var tabSize: js.UndefOr[
        (TabSize[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]])
        ])
      ] = js.undefined
    
    var tableLayout: js.UndefOr[
        TableLayout | (js.Array[
          (Extract[js.UndefOr[TableLayout | js.Array[NonNullable[js.UndefOr[TableLayout]]]], String]) | NonNullable[js.UndefOr[TableLayout]]
        ])
      ] = js.undefined
    
    var textAlign: js.UndefOr[
        TextAlign | (js.Array[
          (Extract[js.UndefOr[TextAlign | js.Array[NonNullable[js.UndefOr[TextAlign]]]], String]) | NonNullable[js.UndefOr[TextAlign]]
        ])
      ] = js.undefined
    
    var textAlignLast: js.UndefOr[
        TextAlignLast | (js.Array[
          (Extract[
            js.UndefOr[TextAlignLast | js.Array[NonNullable[js.UndefOr[TextAlignLast]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextAlignLast]]
        ])
      ] = js.undefined
    
    var textAnchor: js.UndefOr[
        TextAnchor | (js.Array[
          (Extract[js.UndefOr[TextAnchor | js.Array[NonNullable[js.UndefOr[TextAnchor]]]], String]) | NonNullable[js.UndefOr[TextAnchor]]
        ])
      ] = js.undefined
    
    var textCombineUpright: js.UndefOr[
        TextCombineUpright | (js.Array[
          (Extract[
            js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextCombineUpright]]
        ])
      ] = js.undefined
    
    var textDecoration: js.UndefOr[
        (TextDecoration[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TextDecoration[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecoration[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TextDecoration[Double | String]]])
        ])
      ] = js.undefined
    
    var textDecorationColor: js.UndefOr[
        TextDecorationColor | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationColor]]
        ])
      ] = js.undefined
    
    var textDecorationLine: js.UndefOr[
        TextDecorationLine | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationLine]]
        ])
      ] = js.undefined
    
    var textDecorationSkip: js.UndefOr[
        TextDecorationSkip | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationSkip | js.Array[NonNullable[js.UndefOr[TextDecorationSkip]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationSkip]]
        ])
      ] = js.undefined
    
    var textDecorationSkipInk: js.UndefOr[
        TextDecorationSkipInk | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationSkipInk | js.Array[NonNullable[js.UndefOr[TextDecorationSkipInk]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationSkipInk]]
        ])
      ] = js.undefined
    
    var textDecorationStyle: js.UndefOr[
        TextDecorationStyle | (js.Array[
          (Extract[
            js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextDecorationStyle]]
        ])
      ] = js.undefined
    
    var textDecorationThickness: js.UndefOr[
        (TextDecorationThickness[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TextDecorationThickness[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]])
        ])
      ] = js.undefined
    
    var textDecorationWidth: js.UndefOr[
        (TextDecorationThickness[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TextDecorationThickness[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]])
        ])
      ] = js.undefined
    
    var textEmphasis: js.UndefOr[
        TextEmphasis | (js.Array[
          (Extract[js.UndefOr[TextEmphasis | js.Array[NonNullable[js.UndefOr[TextEmphasis]]]], String]) | NonNullable[js.UndefOr[TextEmphasis]]
        ])
      ] = js.undefined
    
    var textEmphasisColor: js.UndefOr[
        TextEmphasisColor | (js.Array[
          (Extract[
            js.UndefOr[TextEmphasisColor | js.Array[NonNullable[js.UndefOr[TextEmphasisColor]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextEmphasisColor]]
        ])
      ] = js.undefined
    
    var textEmphasisPosition: js.UndefOr[
        TextEmphasisPosition | (js.Array[
          (Extract[
            js.UndefOr[TextEmphasisPosition | js.Array[NonNullable[js.UndefOr[TextEmphasisPosition]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextEmphasisPosition]]
        ])
      ] = js.undefined
    
    var textEmphasisStyle: js.UndefOr[
        TextEmphasisStyle | (js.Array[
          (Extract[
            js.UndefOr[TextEmphasisStyle | js.Array[NonNullable[js.UndefOr[TextEmphasisStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextEmphasisStyle]]
        ])
      ] = js.undefined
    
    var textIndent: js.UndefOr[
        (TextIndent[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TextIndent[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextIndent[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TextIndent[Double | String]]])
        ])
      ] = js.undefined
    
    var textJustify: js.UndefOr[
        TextJustify | (js.Array[
          (Extract[js.UndefOr[TextJustify | js.Array[NonNullable[js.UndefOr[TextJustify]]]], String]) | NonNullable[js.UndefOr[TextJustify]]
        ])
      ] = js.undefined
    
    var textOrientation: js.UndefOr[
        TextOrientation | (js.Array[
          (Extract[
            js.UndefOr[TextOrientation | js.Array[NonNullable[js.UndefOr[TextOrientation]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextOrientation]]
        ])
      ] = js.undefined
    
    var textOverflow: js.UndefOr[
        TextOverflow | (js.Array[
          (Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]]
        ])
      ] = js.undefined
    
    var textRendering: js.UndefOr[
        TextRendering | (js.Array[
          (Extract[
            js.UndefOr[TextRendering | js.Array[NonNullable[js.UndefOr[TextRendering]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextRendering]]
        ])
      ] = js.undefined
    
    var textShadow: js.UndefOr[
        TextShadow | (js.Array[
          (Extract[js.UndefOr[TextShadow | js.Array[NonNullable[js.UndefOr[TextShadow]]]], String]) | NonNullable[js.UndefOr[TextShadow]]
        ])
      ] = js.undefined
    
    var textSizeAdjust: js.UndefOr[
        TextSizeAdjust | (js.Array[
          (Extract[
            js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextSizeAdjust]]
        ])
      ] = js.undefined
    
    var textTransform: js.UndefOr[
        TextTransform | (js.Array[
          (Extract[
            js.UndefOr[TextTransform | js.Array[NonNullable[js.UndefOr[TextTransform]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextTransform]]
        ])
      ] = js.undefined
    
    var textUnderlineOffset: js.UndefOr[
        (TextUnderlineOffset[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TextUnderlineOffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextUnderlineOffset[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TextUnderlineOffset[Double | String]]])
        ])
      ] = js.undefined
    
    var textUnderlinePosition: js.UndefOr[
        TextUnderlinePosition | (js.Array[
          (Extract[
            js.UndefOr[TextUnderlinePosition | js.Array[NonNullable[js.UndefOr[TextUnderlinePosition]]]], 
            String
          ]) | NonNullable[js.UndefOr[TextUnderlinePosition]]
        ])
      ] = js.undefined
    
    var top: js.UndefOr[
        (Top[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Top[Double | String]) | (js.Array[NonNullable[js.UndefOr[Top[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Top[Double | String]]])
        ])
      ] = js.undefined
    
    var touchAction: js.UndefOr[
        TouchAction | (js.Array[
          (Extract[js.UndefOr[TouchAction | js.Array[NonNullable[js.UndefOr[TouchAction]]]], String]) | NonNullable[js.UndefOr[TouchAction]]
        ])
      ] = js.undefined
    
    var transform: js.UndefOr[
        Transform | (js.Array[
          (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
        ])
      ] = js.undefined
    
    var transformBox: js.UndefOr[
        TransformBox | (js.Array[
          (Extract[js.UndefOr[TransformBox | js.Array[NonNullable[js.UndefOr[TransformBox]]]], String]) | NonNullable[js.UndefOr[TransformBox]]
        ])
      ] = js.undefined
    
    var transformOrigin: js.UndefOr[
        (TransformOrigin[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
        ])
      ] = js.undefined
    
    var transformStyle: js.UndefOr[
        TransformStyle | (js.Array[
          (Extract[
            js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransformStyle]]
        ])
      ] = js.undefined
    
    var transition: js.UndefOr[
        Transition[String] | (js.Array[
          (Extract[
            js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
            String
          ]) | NonNullable[js.UndefOr[Transition[String]]]
        ])
      ] = js.undefined
    
    var transitionDelay: js.UndefOr[
        TransitionDelay[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
        ])
      ] = js.undefined
    
    var transitionDuration: js.UndefOr[
        TransitionDuration[String] | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
        ])
      ] = js.undefined
    
    var transitionProperty: js.UndefOr[
        TransitionProperty | (js.Array[
          (Extract[
            js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
            String
          ]) | NonNullable[js.UndefOr[TransitionProperty]]
        ])
      ] = js.undefined
    
    var transitionTimingFunction: js.UndefOr[
        TransitionTimingFunction | (js.Array[
          (Extract[
            js.UndefOr[
              TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
            ], 
            String
          ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
        ])
      ] = js.undefined
    
    var translate: js.UndefOr[
        (Translate[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Translate[Double | String]) | (js.Array[NonNullable[js.UndefOr[Translate[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Translate[Double | String]]])
        ])
      ] = js.undefined
    
    var unicodeBidi: js.UndefOr[
        UnicodeBidi | (js.Array[
          (Extract[js.UndefOr[UnicodeBidi | js.Array[NonNullable[js.UndefOr[UnicodeBidi]]]], String]) | NonNullable[js.UndefOr[UnicodeBidi]]
        ])
      ] = js.undefined
    
    var userSelect: js.UndefOr[
        UserSelect | (js.Array[
          (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
        ])
      ] = js.undefined
    
    var vectorEffect: js.UndefOr[
        VectorEffect | (js.Array[
          (Extract[js.UndefOr[VectorEffect | js.Array[NonNullable[js.UndefOr[VectorEffect]]]], String]) | NonNullable[js.UndefOr[VectorEffect]]
        ])
      ] = js.undefined
    
    var verticalAlign: js.UndefOr[
        (VerticalAlign[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (VerticalAlign[Double | String]) | (js.Array[NonNullable[js.UndefOr[VerticalAlign[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[VerticalAlign[Double | String]]])
        ])
      ] = js.undefined
    
    var visibility: js.UndefOr[
        Visibility | (js.Array[
          (Extract[js.UndefOr[Visibility | js.Array[NonNullable[js.UndefOr[Visibility]]]], String]) | NonNullable[js.UndefOr[Visibility]]
        ])
      ] = js.undefined
    
    var whiteSpace: js.UndefOr[
        WhiteSpace | (js.Array[
          (Extract[js.UndefOr[WhiteSpace | js.Array[NonNullable[js.UndefOr[WhiteSpace]]]], String]) | NonNullable[js.UndefOr[WhiteSpace]]
        ])
      ] = js.undefined
    
    var widows: js.UndefOr[
        Widows | (js.Array[
          (Extract[js.UndefOr[Widows | js.Array[NonNullable[js.UndefOr[Widows]]]], String]) | NonNullable[js.UndefOr[Widows]]
        ])
      ] = js.undefined
    
    var width: js.UndefOr[
        (Width[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (Width[Double | String]) | (js.Array[NonNullable[js.UndefOr[Width[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[Width[Double | String]]])
        ])
      ] = js.undefined
    
    var willChange: js.UndefOr[
        WillChange | (js.Array[
          (Extract[js.UndefOr[WillChange | js.Array[NonNullable[js.UndefOr[WillChange]]]], String]) | NonNullable[js.UndefOr[WillChange]]
        ])
      ] = js.undefined
    
    var wordBreak: js.UndefOr[
        WordBreak | (js.Array[
          (Extract[js.UndefOr[WordBreak | js.Array[NonNullable[js.UndefOr[WordBreak]]]], String]) | NonNullable[js.UndefOr[WordBreak]]
        ])
      ] = js.undefined
    
    var wordSpacing: js.UndefOr[
        (WordSpacing[Double | String]) | (js.Array[
          (Extract[
            js.UndefOr[
              (WordSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[WordSpacing[Double | String]]]])
            ], 
            String
          ]) | (NonNullable[js.UndefOr[WordSpacing[Double | String]]])
        ])
      ] = js.undefined
    
    var wordWrap: js.UndefOr[
        WordWrap | (js.Array[
          (Extract[js.UndefOr[WordWrap | js.Array[NonNullable[js.UndefOr[WordWrap]]]], String]) | NonNullable[js.UndefOr[WordWrap]]
        ])
      ] = js.undefined
    
    var writingMode: js.UndefOr[
        WritingMode | (js.Array[
          (Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]]
        ])
      ] = js.undefined
    
    var zIndex: js.UndefOr[
        ZIndex | (js.Array[
          (Extract[js.UndefOr[ZIndex | js.Array[NonNullable[js.UndefOr[ZIndex]]]], String]) | NonNullable[js.UndefOr[ZIndex]]
        ])
      ] = js.undefined
    
    var zoom: js.UndefOr[
        Zoom | (js.Array[
          (Extract[js.UndefOr[Zoom | js.Array[NonNullable[js.UndefOr[Zoom]]]], String]) | NonNullable[js.UndefOr[Zoom]]
        ])
      ] = js.undefined
  }
  object CSSPropertiesWithMultiValues {
    
    inline def apply(): CSSPropertiesWithMultiValues = {
      val __obj = js.Dynamic.literal()
      __obj.asInstanceOf[CSSPropertiesWithMultiValues]
    }
    
    @scala.inline
    implicit open class MutableBuilder[Self <: CSSPropertiesWithMultiValues] (val x: Self) extends AnyVal {
      
      inline def setAccentColor(
        value: AccentColor | (js.Array[
              (Extract[js.UndefOr[AccentColor | js.Array[NonNullable[js.UndefOr[AccentColor]]]], String]) | NonNullable[js.UndefOr[AccentColor]]
            ])
      ): Self = StObject.set(x, "accentColor", value.asInstanceOf[js.Any])
      
      inline def setAccentColorUndefined: Self = StObject.set(x, "accentColor", js.undefined)
      
      inline def setAccentColorVarargs(
        value: ((Extract[js.UndefOr[AccentColor | js.Array[NonNullable[js.UndefOr[AccentColor]]]], String]) | NonNullable[js.UndefOr[AccentColor]])*
      ): Self = StObject.set(x, "accentColor", js.Array(value*))
      
      inline def setAlignContent(
        value: AlignContent | (js.Array[
              (Extract[js.UndefOr[AlignContent | js.Array[NonNullable[js.UndefOr[AlignContent]]]], String]) | NonNullable[js.UndefOr[AlignContent]]
            ])
      ): Self = StObject.set(x, "alignContent", value.asInstanceOf[js.Any])
      
      inline def setAlignContentUndefined: Self = StObject.set(x, "alignContent", js.undefined)
      
      inline def setAlignContentVarargs(
        value: ((Extract[js.UndefOr[AlignContent | js.Array[NonNullable[js.UndefOr[AlignContent]]]], String]) | NonNullable[js.UndefOr[AlignContent]])*
      ): Self = StObject.set(x, "alignContent", js.Array(value*))
      
      inline def setAlignItems(
        value: AlignItems | (js.Array[
              (Extract[js.UndefOr[AlignItems | js.Array[NonNullable[js.UndefOr[AlignItems]]]], String]) | NonNullable[js.UndefOr[AlignItems]]
            ])
      ): Self = StObject.set(x, "alignItems", value.asInstanceOf[js.Any])
      
      inline def setAlignItemsUndefined: Self = StObject.set(x, "alignItems", js.undefined)
      
      inline def setAlignItemsVarargs(
        value: ((Extract[js.UndefOr[AlignItems | js.Array[NonNullable[js.UndefOr[AlignItems]]]], String]) | NonNullable[js.UndefOr[AlignItems]])*
      ): Self = StObject.set(x, "alignItems", js.Array(value*))
      
      inline def setAlignSelf(
        value: AlignSelf | (js.Array[
              (Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]]
            ])
      ): Self = StObject.set(x, "alignSelf", value.asInstanceOf[js.Any])
      
      inline def setAlignSelfUndefined: Self = StObject.set(x, "alignSelf", js.undefined)
      
      inline def setAlignSelfVarargs(
        value: ((Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]])*
      ): Self = StObject.set(x, "alignSelf", js.Array(value*))
      
      inline def setAlignTracks(
        value: AlignTracks | (js.Array[
              (Extract[js.UndefOr[AlignTracks | js.Array[NonNullable[js.UndefOr[AlignTracks]]]], String]) | NonNullable[js.UndefOr[AlignTracks]]
            ])
      ): Self = StObject.set(x, "alignTracks", value.asInstanceOf[js.Any])
      
      inline def setAlignTracksUndefined: Self = StObject.set(x, "alignTracks", js.undefined)
      
      inline def setAlignTracksVarargs(
        value: ((Extract[js.UndefOr[AlignTracks | js.Array[NonNullable[js.UndefOr[AlignTracks]]]], String]) | NonNullable[js.UndefOr[AlignTracks]])*
      ): Self = StObject.set(x, "alignTracks", js.Array(value*))
      
      inline def setAlignmentBaseline(
        value: AlignmentBaseline | (js.Array[
              (Extract[
                js.UndefOr[AlignmentBaseline | js.Array[NonNullable[js.UndefOr[AlignmentBaseline]]]], 
                String
              ]) | NonNullable[js.UndefOr[AlignmentBaseline]]
            ])
      ): Self = StObject.set(x, "alignmentBaseline", value.asInstanceOf[js.Any])
      
      inline def setAlignmentBaselineUndefined: Self = StObject.set(x, "alignmentBaseline", js.undefined)
      
      inline def setAlignmentBaselineVarargs(
        value: ((Extract[
              js.UndefOr[AlignmentBaseline | js.Array[NonNullable[js.UndefOr[AlignmentBaseline]]]], 
              String
            ]) | NonNullable[js.UndefOr[AlignmentBaseline]])*
      ): Self = StObject.set(x, "alignmentBaseline", js.Array(value*))
      
      inline def setAll(
        value: All | (js.Array[
              (Extract[js.UndefOr[All | js.Array[NonNullable[js.UndefOr[All]]]], String]) | NonNullable[js.UndefOr[All]]
            ])
      ): Self = StObject.set(x, "all", value.asInstanceOf[js.Any])
      
      inline def setAllUndefined: Self = StObject.set(x, "all", js.undefined)
      
      inline def setAllVarargs(
        value: ((Extract[js.UndefOr[All | js.Array[NonNullable[js.UndefOr[All]]]], String]) | NonNullable[js.UndefOr[All]])*
      ): Self = StObject.set(x, "all", js.Array(value*))
      
      inline def setAnimation(
        value: Animation[String] | (js.Array[
              (Extract[
                js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Animation[String]]]
            ])
      ): Self = StObject.set(x, "animation", value.asInstanceOf[js.Any])
      
      inline def setAnimationDelay(
        value: AnimationDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
            ])
      ): Self = StObject.set(x, "animationDelay", value.asInstanceOf[js.Any])
      
      inline def setAnimationDelayUndefined: Self = StObject.set(x, "animationDelay", js.undefined)
      
      inline def setAnimationDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDelay[String]]])*
      ): Self = StObject.set(x, "animationDelay", js.Array(value*))
      
      inline def setAnimationDirection(
        value: AnimationDirection | (js.Array[
              (Extract[
                js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDirection]]
            ])
      ): Self = StObject.set(x, "animationDirection", value.asInstanceOf[js.Any])
      
      inline def setAnimationDirectionUndefined: Self = StObject.set(x, "animationDirection", js.undefined)
      
      inline def setAnimationDirectionVarargs(
        value: ((Extract[
              js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDirection]])*
      ): Self = StObject.set(x, "animationDirection", js.Array(value*))
      
      inline def setAnimationDuration(
        value: AnimationDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
            ])
      ): Self = StObject.set(x, "animationDuration", value.asInstanceOf[js.Any])
      
      inline def setAnimationDurationUndefined: Self = StObject.set(x, "animationDuration", js.undefined)
      
      inline def setAnimationDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDuration[String]]])*
      ): Self = StObject.set(x, "animationDuration", js.Array(value*))
      
      inline def setAnimationFillMode(
        value: AnimationFillMode | (js.Array[
              (Extract[
                js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationFillMode]]
            ])
      ): Self = StObject.set(x, "animationFillMode", value.asInstanceOf[js.Any])
      
      inline def setAnimationFillModeUndefined: Self = StObject.set(x, "animationFillMode", js.undefined)
      
      inline def setAnimationFillModeVarargs(
        value: ((Extract[
              js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationFillMode]])*
      ): Self = StObject.set(x, "animationFillMode", js.Array(value*))
      
      inline def setAnimationIterationCount(
        value: AnimationIterationCount | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
            ])
      ): Self = StObject.set(x, "animationIterationCount", value.asInstanceOf[js.Any])
      
      inline def setAnimationIterationCountUndefined: Self = StObject.set(x, "animationIterationCount", js.undefined)
      
      inline def setAnimationIterationCountVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationIterationCount]])*
      ): Self = StObject.set(x, "animationIterationCount", js.Array(value*))
      
      inline def setAnimationName(
        value: AnimationName | (js.Array[
              (Extract[
                js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationName]]
            ])
      ): Self = StObject.set(x, "animationName", value.asInstanceOf[js.Any])
      
      inline def setAnimationNameUndefined: Self = StObject.set(x, "animationName", js.undefined)
      
      inline def setAnimationNameVarargs(
        value: ((Extract[
              js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationName]])*
      ): Self = StObject.set(x, "animationName", js.Array(value*))
      
      inline def setAnimationPlayState(
        value: AnimationPlayState | (js.Array[
              (Extract[
                js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationPlayState]]
            ])
      ): Self = StObject.set(x, "animationPlayState", value.asInstanceOf[js.Any])
      
      inline def setAnimationPlayStateUndefined: Self = StObject.set(x, "animationPlayState", js.undefined)
      
      inline def setAnimationPlayStateVarargs(
        value: ((Extract[
              js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationPlayState]])*
      ): Self = StObject.set(x, "animationPlayState", js.Array(value*))
      
      inline def setAnimationTimingFunction(
        value: AnimationTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
            ])
      ): Self = StObject.set(x, "animationTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setAnimationTimingFunctionUndefined: Self = StObject.set(x, "animationTimingFunction", js.undefined)
      
      inline def setAnimationTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationTimingFunction]])*
      ): Self = StObject.set(x, "animationTimingFunction", js.Array(value*))
      
      inline def setAnimationUndefined: Self = StObject.set(x, "animation", js.undefined)
      
      inline def setAnimationVarargs(
        value: ((Extract[
              js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Animation[String]]])*
      ): Self = StObject.set(x, "animation", js.Array(value*))
      
      inline def setAppearance(
        value: Appearance | (js.Array[
              (Extract[js.UndefOr[Appearance | js.Array[NonNullable[js.UndefOr[Appearance]]]], String]) | NonNullable[js.UndefOr[Appearance]]
            ])
      ): Self = StObject.set(x, "appearance", value.asInstanceOf[js.Any])
      
      inline def setAppearanceUndefined: Self = StObject.set(x, "appearance", js.undefined)
      
      inline def setAppearanceVarargs(
        value: ((Extract[js.UndefOr[Appearance | js.Array[NonNullable[js.UndefOr[Appearance]]]], String]) | NonNullable[js.UndefOr[Appearance]])*
      ): Self = StObject.set(x, "appearance", js.Array(value*))
      
      inline def setAspectRatio(
        value: AspectRatio | (js.Array[
              (Extract[js.UndefOr[AspectRatio | js.Array[NonNullable[js.UndefOr[AspectRatio]]]], String]) | NonNullable[js.UndefOr[AspectRatio]]
            ])
      ): Self = StObject.set(x, "aspectRatio", value.asInstanceOf[js.Any])
      
      inline def setAspectRatioUndefined: Self = StObject.set(x, "aspectRatio", js.undefined)
      
      inline def setAspectRatioVarargs(
        value: ((Extract[js.UndefOr[AspectRatio | js.Array[NonNullable[js.UndefOr[AspectRatio]]]], String]) | NonNullable[js.UndefOr[AspectRatio]])*
      ): Self = StObject.set(x, "aspectRatio", js.Array(value*))
      
      inline def setAzimuth(
        value: Azimuth | (js.Array[
              (Extract[js.UndefOr[Azimuth | js.Array[NonNullable[js.UndefOr[Azimuth]]]], String]) | NonNullable[js.UndefOr[Azimuth]]
            ])
      ): Self = StObject.set(x, "azimuth", value.asInstanceOf[js.Any])
      
      inline def setAzimuthUndefined: Self = StObject.set(x, "azimuth", js.undefined)
      
      inline def setAzimuthVarargs(
        value: ((Extract[js.UndefOr[Azimuth | js.Array[NonNullable[js.UndefOr[Azimuth]]]], String]) | NonNullable[js.UndefOr[Azimuth]])*
      ): Self = StObject.set(x, "azimuth", js.Array(value*))
      
      inline def setBackdropFilter(
        value: BackdropFilter | (js.Array[
              (Extract[
                js.UndefOr[BackdropFilter | js.Array[NonNullable[js.UndefOr[BackdropFilter]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackdropFilter]]
            ])
      ): Self = StObject.set(x, "backdropFilter", value.asInstanceOf[js.Any])
      
      inline def setBackdropFilterUndefined: Self = StObject.set(x, "backdropFilter", js.undefined)
      
      inline def setBackdropFilterVarargs(
        value: ((Extract[
              js.UndefOr[BackdropFilter | js.Array[NonNullable[js.UndefOr[BackdropFilter]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackdropFilter]])*
      ): Self = StObject.set(x, "backdropFilter", js.Array(value*))
      
      inline def setBackfaceVisibility(
        value: BackfaceVisibility | (js.Array[
              (Extract[
                js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackfaceVisibility]]
            ])
      ): Self = StObject.set(x, "backfaceVisibility", value.asInstanceOf[js.Any])
      
      inline def setBackfaceVisibilityUndefined: Self = StObject.set(x, "backfaceVisibility", js.undefined)
      
      inline def setBackfaceVisibilityVarargs(
        value: ((Extract[
              js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackfaceVisibility]])*
      ): Self = StObject.set(x, "backfaceVisibility", js.Array(value*))
      
      inline def setBackground(
        value: (Background[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Background[Double | String]) | (js.Array[NonNullable[js.UndefOr[Background[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Background[Double | String]]])
            ])
      ): Self = StObject.set(x, "background", value.asInstanceOf[js.Any])
      
      inline def setBackgroundAttachment(
        value: BackgroundAttachment | (js.Array[
              (Extract[
                js.UndefOr[BackgroundAttachment | js.Array[NonNullable[js.UndefOr[BackgroundAttachment]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundAttachment]]
            ])
      ): Self = StObject.set(x, "backgroundAttachment", value.asInstanceOf[js.Any])
      
      inline def setBackgroundAttachmentUndefined: Self = StObject.set(x, "backgroundAttachment", js.undefined)
      
      inline def setBackgroundAttachmentVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundAttachment | js.Array[NonNullable[js.UndefOr[BackgroundAttachment]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundAttachment]])*
      ): Self = StObject.set(x, "backgroundAttachment", js.Array(value*))
      
      inline def setBackgroundBlendMode(
        value: BackgroundBlendMode | (js.Array[
              (Extract[
                js.UndefOr[BackgroundBlendMode | js.Array[NonNullable[js.UndefOr[BackgroundBlendMode]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundBlendMode]]
            ])
      ): Self = StObject.set(x, "backgroundBlendMode", value.asInstanceOf[js.Any])
      
      inline def setBackgroundBlendModeUndefined: Self = StObject.set(x, "backgroundBlendMode", js.undefined)
      
      inline def setBackgroundBlendModeVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundBlendMode | js.Array[NonNullable[js.UndefOr[BackgroundBlendMode]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundBlendMode]])*
      ): Self = StObject.set(x, "backgroundBlendMode", js.Array(value*))
      
      inline def setBackgroundClip(
        value: BackgroundClip | (js.Array[
              (Extract[
                js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundClip]]
            ])
      ): Self = StObject.set(x, "backgroundClip", value.asInstanceOf[js.Any])
      
      inline def setBackgroundClipUndefined: Self = StObject.set(x, "backgroundClip", js.undefined)
      
      inline def setBackgroundClipVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundClip]])*
      ): Self = StObject.set(x, "backgroundClip", js.Array(value*))
      
      inline def setBackgroundColor(
        value: BackgroundColor | (js.Array[
              (Extract[
                js.UndefOr[BackgroundColor | js.Array[NonNullable[js.UndefOr[BackgroundColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundColor]]
            ])
      ): Self = StObject.set(x, "backgroundColor", value.asInstanceOf[js.Any])
      
      inline def setBackgroundColorUndefined: Self = StObject.set(x, "backgroundColor", js.undefined)
      
      inline def setBackgroundColorVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundColor | js.Array[NonNullable[js.UndefOr[BackgroundColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundColor]])*
      ): Self = StObject.set(x, "backgroundColor", js.Array(value*))
      
      inline def setBackgroundImage(
        value: BackgroundImage | (js.Array[
              (Extract[
                js.UndefOr[BackgroundImage | js.Array[NonNullable[js.UndefOr[BackgroundImage]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundImage]]
            ])
      ): Self = StObject.set(x, "backgroundImage", value.asInstanceOf[js.Any])
      
      inline def setBackgroundImageUndefined: Self = StObject.set(x, "backgroundImage", js.undefined)
      
      inline def setBackgroundImageVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundImage | js.Array[NonNullable[js.UndefOr[BackgroundImage]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundImage]])*
      ): Self = StObject.set(x, "backgroundImage", js.Array(value*))
      
      inline def setBackgroundOrigin(
        value: BackgroundOrigin | (js.Array[
              (Extract[
                js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundOrigin]]
            ])
      ): Self = StObject.set(x, "backgroundOrigin", value.asInstanceOf[js.Any])
      
      inline def setBackgroundOriginUndefined: Self = StObject.set(x, "backgroundOrigin", js.undefined)
      
      inline def setBackgroundOriginVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundOrigin]])*
      ): Self = StObject.set(x, "backgroundOrigin", js.Array(value*))
      
      inline def setBackgroundPosition(
        value: (BackgroundPosition[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BackgroundPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPosition[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BackgroundPosition[Double | String]]])
            ])
      ): Self = StObject.set(x, "backgroundPosition", value.asInstanceOf[js.Any])
      
      inline def setBackgroundPositionUndefined: Self = StObject.set(x, "backgroundPosition", js.undefined)
      
      inline def setBackgroundPositionVarargs(
        value: ((Extract[
              js.UndefOr[
                (BackgroundPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPosition[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BackgroundPosition[Double | String]]]))*
      ): Self = StObject.set(x, "backgroundPosition", js.Array(value*))
      
      inline def setBackgroundPositionX(
        value: (BackgroundPositionX[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BackgroundPositionX[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPositionX[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BackgroundPositionX[Double | String]]])
            ])
      ): Self = StObject.set(x, "backgroundPositionX", value.asInstanceOf[js.Any])
      
      inline def setBackgroundPositionXUndefined: Self = StObject.set(x, "backgroundPositionX", js.undefined)
      
      inline def setBackgroundPositionXVarargs(
        value: ((Extract[
              js.UndefOr[
                (BackgroundPositionX[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPositionX[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BackgroundPositionX[Double | String]]]))*
      ): Self = StObject.set(x, "backgroundPositionX", js.Array(value*))
      
      inline def setBackgroundPositionY(
        value: (BackgroundPositionY[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BackgroundPositionY[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPositionY[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BackgroundPositionY[Double | String]]])
            ])
      ): Self = StObject.set(x, "backgroundPositionY", value.asInstanceOf[js.Any])
      
      inline def setBackgroundPositionYUndefined: Self = StObject.set(x, "backgroundPositionY", js.undefined)
      
      inline def setBackgroundPositionYVarargs(
        value: ((Extract[
              js.UndefOr[
                (BackgroundPositionY[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundPositionY[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BackgroundPositionY[Double | String]]]))*
      ): Self = StObject.set(x, "backgroundPositionY", js.Array(value*))
      
      inline def setBackgroundRepeat(
        value: BackgroundRepeat | (js.Array[
              (Extract[
                js.UndefOr[BackgroundRepeat | js.Array[NonNullable[js.UndefOr[BackgroundRepeat]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundRepeat]]
            ])
      ): Self = StObject.set(x, "backgroundRepeat", value.asInstanceOf[js.Any])
      
      inline def setBackgroundRepeatUndefined: Self = StObject.set(x, "backgroundRepeat", js.undefined)
      
      inline def setBackgroundRepeatVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundRepeat | js.Array[NonNullable[js.UndefOr[BackgroundRepeat]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundRepeat]])*
      ): Self = StObject.set(x, "backgroundRepeat", js.Array(value*))
      
      inline def setBackgroundSize(
        value: (BackgroundSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "backgroundSize", value.asInstanceOf[js.Any])
      
      inline def setBackgroundSizeUndefined: Self = StObject.set(x, "backgroundSize", js.undefined)
      
      inline def setBackgroundSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]]))*
      ): Self = StObject.set(x, "backgroundSize", js.Array(value*))
      
      inline def setBackgroundUndefined: Self = StObject.set(x, "background", js.undefined)
      
      inline def setBackgroundVarargs(
        value: ((Extract[
              js.UndefOr[
                (Background[Double | String]) | (js.Array[NonNullable[js.UndefOr[Background[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Background[Double | String]]]))*
      ): Self = StObject.set(x, "background", js.Array(value*))
      
      inline def setBaselineShift(
        value: (BaselineShift[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BaselineShift[Double | String]) | (js.Array[NonNullable[js.UndefOr[BaselineShift[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BaselineShift[Double | String]]])
            ])
      ): Self = StObject.set(x, "baselineShift", value.asInstanceOf[js.Any])
      
      inline def setBaselineShiftUndefined: Self = StObject.set(x, "baselineShift", js.undefined)
      
      inline def setBaselineShiftVarargs(
        value: ((Extract[
              js.UndefOr[
                (BaselineShift[Double | String]) | (js.Array[NonNullable[js.UndefOr[BaselineShift[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BaselineShift[Double | String]]]))*
      ): Self = StObject.set(x, "baselineShift", js.Array(value*))
      
      inline def setBlockOverflow(
        value: BlockOverflow | (js.Array[
              (Extract[
                js.UndefOr[BlockOverflow | js.Array[NonNullable[js.UndefOr[BlockOverflow]]]], 
                String
              ]) | NonNullable[js.UndefOr[BlockOverflow]]
            ])
      ): Self = StObject.set(x, "blockOverflow", value.asInstanceOf[js.Any])
      
      inline def setBlockOverflowUndefined: Self = StObject.set(x, "blockOverflow", js.undefined)
      
      inline def setBlockOverflowVarargs(
        value: ((Extract[
              js.UndefOr[BlockOverflow | js.Array[NonNullable[js.UndefOr[BlockOverflow]]]], 
              String
            ]) | NonNullable[js.UndefOr[BlockOverflow]])*
      ): Self = StObject.set(x, "blockOverflow", js.Array(value*))
      
      inline def setBlockSize(
        value: (BlockSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BlockSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BlockSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "blockSize", value.asInstanceOf[js.Any])
      
      inline def setBlockSizeUndefined: Self = StObject.set(x, "blockSize", js.undefined)
      
      inline def setBlockSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (BlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BlockSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BlockSize[Double | String]]]))*
      ): Self = StObject.set(x, "blockSize", js.Array(value*))
      
      inline def setBorder(
        value: (Border[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Border[Double | String]) | (js.Array[NonNullable[js.UndefOr[Border[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Border[Double | String]]])
            ])
      ): Self = StObject.set(x, "border", value.asInstanceOf[js.Any])
      
      inline def setBorderBlock(
        value: (BorderBlock[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlock[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBlock[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBlock", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockColor(
        value: BorderBlockColor | (js.Array[
              (Extract[
                js.UndefOr[BorderBlockColor | js.Array[NonNullable[js.UndefOr[BorderBlockColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBlockColor]]
            ])
      ): Self = StObject.set(x, "borderBlockColor", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockColorUndefined: Self = StObject.set(x, "borderBlockColor", js.undefined)
      
      inline def setBorderBlockColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderBlockColor | js.Array[NonNullable[js.UndefOr[BorderBlockColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBlockColor]])*
      ): Self = StObject.set(x, "borderBlockColor", js.Array(value*))
      
      inline def setBorderBlockEnd(
        value: (BorderBlockEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBlockEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBlockEnd", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockEndColor(
        value: BorderBlockEndColor | (js.Array[
              (Extract[
                js.UndefOr[BorderBlockEndColor | js.Array[NonNullable[js.UndefOr[BorderBlockEndColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBlockEndColor]]
            ])
      ): Self = StObject.set(x, "borderBlockEndColor", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockEndColorUndefined: Self = StObject.set(x, "borderBlockEndColor", js.undefined)
      
      inline def setBorderBlockEndColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderBlockEndColor | js.Array[NonNullable[js.UndefOr[BorderBlockEndColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBlockEndColor]])*
      ): Self = StObject.set(x, "borderBlockEndColor", js.Array(value*))
      
      inline def setBorderBlockEndStyle(
        value: BorderBlockEndStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderBlockEndStyle | js.Array[NonNullable[js.UndefOr[BorderBlockEndStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBlockEndStyle]]
            ])
      ): Self = StObject.set(x, "borderBlockEndStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockEndStyleUndefined: Self = StObject.set(x, "borderBlockEndStyle", js.undefined)
      
      inline def setBorderBlockEndStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderBlockEndStyle | js.Array[NonNullable[js.UndefOr[BorderBlockEndStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBlockEndStyle]])*
      ): Self = StObject.set(x, "borderBlockEndStyle", js.Array(value*))
      
      inline def setBorderBlockEndUndefined: Self = StObject.set(x, "borderBlockEnd", js.undefined)
      
      inline def setBorderBlockEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBlockEnd[Double | String]]]))*
      ): Self = StObject.set(x, "borderBlockEnd", js.Array(value*))
      
      inline def setBorderBlockEndWidth(
        value: (BorderBlockEndWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBlockEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockEndWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBlockEndWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBlockEndWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockEndWidthUndefined: Self = StObject.set(x, "borderBlockEndWidth", js.undefined)
      
      inline def setBorderBlockEndWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBlockEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockEndWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBlockEndWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderBlockEndWidth", js.Array(value*))
      
      inline def setBorderBlockStart(
        value: (BorderBlockStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBlockStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBlockStart", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockStartColor(
        value: BorderBlockStartColor | (js.Array[
              (Extract[
                js.UndefOr[BorderBlockStartColor | js.Array[NonNullable[js.UndefOr[BorderBlockStartColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBlockStartColor]]
            ])
      ): Self = StObject.set(x, "borderBlockStartColor", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockStartColorUndefined: Self = StObject.set(x, "borderBlockStartColor", js.undefined)
      
      inline def setBorderBlockStartColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderBlockStartColor | js.Array[NonNullable[js.UndefOr[BorderBlockStartColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBlockStartColor]])*
      ): Self = StObject.set(x, "borderBlockStartColor", js.Array(value*))
      
      inline def setBorderBlockStartStyle(
        value: BorderBlockStartStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderBlockStartStyle | js.Array[NonNullable[js.UndefOr[BorderBlockStartStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBlockStartStyle]]
            ])
      ): Self = StObject.set(x, "borderBlockStartStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockStartStyleUndefined: Self = StObject.set(x, "borderBlockStartStyle", js.undefined)
      
      inline def setBorderBlockStartStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderBlockStartStyle | js.Array[NonNullable[js.UndefOr[BorderBlockStartStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBlockStartStyle]])*
      ): Self = StObject.set(x, "borderBlockStartStyle", js.Array(value*))
      
      inline def setBorderBlockStartUndefined: Self = StObject.set(x, "borderBlockStart", js.undefined)
      
      inline def setBorderBlockStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBlockStart[Double | String]]]))*
      ): Self = StObject.set(x, "borderBlockStart", js.Array(value*))
      
      inline def setBorderBlockStartWidth(
        value: (BorderBlockStartWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBlockStartWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockStartWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBlockStartWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBlockStartWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockStartWidthUndefined: Self = StObject.set(x, "borderBlockStartWidth", js.undefined)
      
      inline def setBorderBlockStartWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBlockStartWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockStartWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBlockStartWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderBlockStartWidth", js.Array(value*))
      
      inline def setBorderBlockStyle(
        value: BorderBlockStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderBlockStyle | js.Array[NonNullable[js.UndefOr[BorderBlockStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBlockStyle]]
            ])
      ): Self = StObject.set(x, "borderBlockStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockStyleUndefined: Self = StObject.set(x, "borderBlockStyle", js.undefined)
      
      inline def setBorderBlockStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderBlockStyle | js.Array[NonNullable[js.UndefOr[BorderBlockStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBlockStyle]])*
      ): Self = StObject.set(x, "borderBlockStyle", js.Array(value*))
      
      inline def setBorderBlockUndefined: Self = StObject.set(x, "borderBlock", js.undefined)
      
      inline def setBorderBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlock[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBlock[Double | String]]]))*
      ): Self = StObject.set(x, "borderBlock", js.Array(value*))
      
      inline def setBorderBlockWidth(
        value: (BorderBlockWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBlockWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBlockWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBlockWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderBlockWidthUndefined: Self = StObject.set(x, "borderBlockWidth", js.undefined)
      
      inline def setBorderBlockWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBlockWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBlockWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBlockWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderBlockWidth", js.Array(value*))
      
      inline def setBorderBottom(
        value: (BorderBottom[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottom[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottom[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBottom", value.asInstanceOf[js.Any])
      
      inline def setBorderBottomColor(
        value: BorderBottomColor | (js.Array[
              (Extract[
                js.UndefOr[BorderBottomColor | js.Array[NonNullable[js.UndefOr[BorderBottomColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBottomColor]]
            ])
      ): Self = StObject.set(x, "borderBottomColor", value.asInstanceOf[js.Any])
      
      inline def setBorderBottomColorUndefined: Self = StObject.set(x, "borderBottomColor", js.undefined)
      
      inline def setBorderBottomColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderBottomColor | js.Array[NonNullable[js.UndefOr[BorderBottomColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBottomColor]])*
      ): Self = StObject.set(x, "borderBottomColor", js.Array(value*))
      
      inline def setBorderBottomLeftRadius(
        value: (BorderBottomLeftRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBottomLeftRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderBottomLeftRadiusUndefined: Self = StObject.set(x, "borderBottomLeftRadius", js.undefined)
      
      inline def setBorderBottomLeftRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderBottomLeftRadius", js.Array(value*))
      
      inline def setBorderBottomRightRadius(
        value: (BorderBottomRightRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBottomRightRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderBottomRightRadiusUndefined: Self = StObject.set(x, "borderBottomRightRadius", js.undefined)
      
      inline def setBorderBottomRightRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderBottomRightRadius", js.Array(value*))
      
      inline def setBorderBottomStyle(
        value: BorderBottomStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderBottomStyle | js.Array[NonNullable[js.UndefOr[BorderBottomStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderBottomStyle]]
            ])
      ): Self = StObject.set(x, "borderBottomStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderBottomStyleUndefined: Self = StObject.set(x, "borderBottomStyle", js.undefined)
      
      inline def setBorderBottomStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderBottomStyle | js.Array[NonNullable[js.UndefOr[BorderBottomStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderBottomStyle]])*
      ): Self = StObject.set(x, "borderBottomStyle", js.Array(value*))
      
      inline def setBorderBottomUndefined: Self = StObject.set(x, "borderBottom", js.undefined)
      
      inline def setBorderBottomVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottom[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottom[Double | String]]]))*
      ): Self = StObject.set(x, "borderBottom", js.Array(value*))
      
      inline def setBorderBottomWidth(
        value: (BorderBottomWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottomWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottomWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderBottomWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderBottomWidthUndefined: Self = StObject.set(x, "borderBottomWidth", js.undefined)
      
      inline def setBorderBottomWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottomWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottomWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderBottomWidth", js.Array(value*))
      
      inline def setBorderCollapse(
        value: BorderCollapse | (js.Array[
              (Extract[
                js.UndefOr[BorderCollapse | js.Array[NonNullable[js.UndefOr[BorderCollapse]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderCollapse]]
            ])
      ): Self = StObject.set(x, "borderCollapse", value.asInstanceOf[js.Any])
      
      inline def setBorderCollapseUndefined: Self = StObject.set(x, "borderCollapse", js.undefined)
      
      inline def setBorderCollapseVarargs(
        value: ((Extract[
              js.UndefOr[BorderCollapse | js.Array[NonNullable[js.UndefOr[BorderCollapse]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderCollapse]])*
      ): Self = StObject.set(x, "borderCollapse", js.Array(value*))
      
      inline def setBorderColor(
        value: BorderColor | (js.Array[
              (Extract[js.UndefOr[BorderColor | js.Array[NonNullable[js.UndefOr[BorderColor]]]], String]) | NonNullable[js.UndefOr[BorderColor]]
            ])
      ): Self = StObject.set(x, "borderColor", value.asInstanceOf[js.Any])
      
      inline def setBorderColorUndefined: Self = StObject.set(x, "borderColor", js.undefined)
      
      inline def setBorderColorVarargs(
        value: ((Extract[js.UndefOr[BorderColor | js.Array[NonNullable[js.UndefOr[BorderColor]]]], String]) | NonNullable[js.UndefOr[BorderColor]])*
      ): Self = StObject.set(x, "borderColor", js.Array(value*))
      
      inline def setBorderEndEndRadius(
        value: (BorderEndEndRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderEndEndRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderEndEndRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderEndEndRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderEndEndRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderEndEndRadiusUndefined: Self = StObject.set(x, "borderEndEndRadius", js.undefined)
      
      inline def setBorderEndEndRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderEndEndRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderEndEndRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderEndEndRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderEndEndRadius", js.Array(value*))
      
      inline def setBorderEndStartRadius(
        value: (BorderEndStartRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderEndStartRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderEndStartRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderEndStartRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderEndStartRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderEndStartRadiusUndefined: Self = StObject.set(x, "borderEndStartRadius", js.undefined)
      
      inline def setBorderEndStartRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderEndStartRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderEndStartRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderEndStartRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderEndStartRadius", js.Array(value*))
      
      inline def setBorderImage(
        value: BorderImage | (js.Array[
              (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
            ])
      ): Self = StObject.set(x, "borderImage", value.asInstanceOf[js.Any])
      
      inline def setBorderImageOutset(
        value: (BorderImageOutset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderImageOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderImageOutset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderImageOutset[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderImageOutset", value.asInstanceOf[js.Any])
      
      inline def setBorderImageOutsetUndefined: Self = StObject.set(x, "borderImageOutset", js.undefined)
      
      inline def setBorderImageOutsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderImageOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderImageOutset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderImageOutset[Double | String]]]))*
      ): Self = StObject.set(x, "borderImageOutset", js.Array(value*))
      
      inline def setBorderImageRepeat(
        value: BorderImageRepeat | (js.Array[
              (Extract[
                js.UndefOr[BorderImageRepeat | js.Array[NonNullable[js.UndefOr[BorderImageRepeat]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderImageRepeat]]
            ])
      ): Self = StObject.set(x, "borderImageRepeat", value.asInstanceOf[js.Any])
      
      inline def setBorderImageRepeatUndefined: Self = StObject.set(x, "borderImageRepeat", js.undefined)
      
      inline def setBorderImageRepeatVarargs(
        value: ((Extract[
              js.UndefOr[BorderImageRepeat | js.Array[NonNullable[js.UndefOr[BorderImageRepeat]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderImageRepeat]])*
      ): Self = StObject.set(x, "borderImageRepeat", js.Array(value*))
      
      inline def setBorderImageSlice(
        value: BorderImageSlice | (js.Array[
              (Extract[
                js.UndefOr[BorderImageSlice | js.Array[NonNullable[js.UndefOr[BorderImageSlice]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderImageSlice]]
            ])
      ): Self = StObject.set(x, "borderImageSlice", value.asInstanceOf[js.Any])
      
      inline def setBorderImageSliceUndefined: Self = StObject.set(x, "borderImageSlice", js.undefined)
      
      inline def setBorderImageSliceVarargs(
        value: ((Extract[
              js.UndefOr[BorderImageSlice | js.Array[NonNullable[js.UndefOr[BorderImageSlice]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderImageSlice]])*
      ): Self = StObject.set(x, "borderImageSlice", js.Array(value*))
      
      inline def setBorderImageSource(
        value: BorderImageSource | (js.Array[
              (Extract[
                js.UndefOr[BorderImageSource | js.Array[NonNullable[js.UndefOr[BorderImageSource]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderImageSource]]
            ])
      ): Self = StObject.set(x, "borderImageSource", value.asInstanceOf[js.Any])
      
      inline def setBorderImageSourceUndefined: Self = StObject.set(x, "borderImageSource", js.undefined)
      
      inline def setBorderImageSourceVarargs(
        value: ((Extract[
              js.UndefOr[BorderImageSource | js.Array[NonNullable[js.UndefOr[BorderImageSource]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderImageSource]])*
      ): Self = StObject.set(x, "borderImageSource", js.Array(value*))
      
      inline def setBorderImageUndefined: Self = StObject.set(x, "borderImage", js.undefined)
      
      inline def setBorderImageVarargs(
        value: ((Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]])*
      ): Self = StObject.set(x, "borderImage", js.Array(value*))
      
      inline def setBorderImageWidth(
        value: (BorderImageWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderImageWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderImageWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderImageWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderImageWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderImageWidthUndefined: Self = StObject.set(x, "borderImageWidth", js.undefined)
      
      inline def setBorderImageWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderImageWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderImageWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderImageWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderImageWidth", js.Array(value*))
      
      inline def setBorderInline(
        value: (BorderInline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderInline[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderInline", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineColor(
        value: BorderInlineColor | (js.Array[
              (Extract[
                js.UndefOr[BorderInlineColor | js.Array[NonNullable[js.UndefOr[BorderInlineColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineColor]]
            ])
      ): Self = StObject.set(x, "borderInlineColor", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineColorUndefined: Self = StObject.set(x, "borderInlineColor", js.undefined)
      
      inline def setBorderInlineColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderInlineColor | js.Array[NonNullable[js.UndefOr[BorderInlineColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineColor]])*
      ): Self = StObject.set(x, "borderInlineColor", js.Array(value*))
      
      inline def setBorderInlineEnd(
        value: (BorderInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderInlineEnd", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineEndColor(
        value: BorderInlineEndColor | (js.Array[
              (Extract[
                js.UndefOr[BorderInlineEndColor | js.Array[NonNullable[js.UndefOr[BorderInlineEndColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineEndColor]]
            ])
      ): Self = StObject.set(x, "borderInlineEndColor", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineEndColorUndefined: Self = StObject.set(x, "borderInlineEndColor", js.undefined)
      
      inline def setBorderInlineEndColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderInlineEndColor | js.Array[NonNullable[js.UndefOr[BorderInlineEndColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineEndColor]])*
      ): Self = StObject.set(x, "borderInlineEndColor", js.Array(value*))
      
      inline def setBorderInlineEndStyle(
        value: BorderInlineEndStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderInlineEndStyle | js.Array[NonNullable[js.UndefOr[BorderInlineEndStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineEndStyle]]
            ])
      ): Self = StObject.set(x, "borderInlineEndStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineEndStyleUndefined: Self = StObject.set(x, "borderInlineEndStyle", js.undefined)
      
      inline def setBorderInlineEndStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderInlineEndStyle | js.Array[NonNullable[js.UndefOr[BorderInlineEndStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineEndStyle]])*
      ): Self = StObject.set(x, "borderInlineEndStyle", js.Array(value*))
      
      inline def setBorderInlineEndUndefined: Self = StObject.set(x, "borderInlineEnd", js.undefined)
      
      inline def setBorderInlineEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "borderInlineEnd", js.Array(value*))
      
      inline def setBorderInlineEndWidth(
        value: (BorderInlineEndWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderInlineEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderInlineEndWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineEndWidthUndefined: Self = StObject.set(x, "borderInlineEndWidth", js.undefined)
      
      inline def setBorderInlineEndWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderInlineEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderInlineEndWidth", js.Array(value*))
      
      inline def setBorderInlineStart(
        value: (BorderInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderInlineStart", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineStartColor(
        value: BorderInlineStartColor | (js.Array[
              (Extract[
                js.UndefOr[
                  BorderInlineStartColor | js.Array[NonNullable[js.UndefOr[BorderInlineStartColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineStartColor]]
            ])
      ): Self = StObject.set(x, "borderInlineStartColor", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineStartColorUndefined: Self = StObject.set(x, "borderInlineStartColor", js.undefined)
      
      inline def setBorderInlineStartColorVarargs(
        value: ((Extract[
              js.UndefOr[
                BorderInlineStartColor | js.Array[NonNullable[js.UndefOr[BorderInlineStartColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineStartColor]])*
      ): Self = StObject.set(x, "borderInlineStartColor", js.Array(value*))
      
      inline def setBorderInlineStartStyle(
        value: BorderInlineStartStyle | (js.Array[
              (Extract[
                js.UndefOr[
                  BorderInlineStartStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStartStyle]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineStartStyle]]
            ])
      ): Self = StObject.set(x, "borderInlineStartStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineStartStyleUndefined: Self = StObject.set(x, "borderInlineStartStyle", js.undefined)
      
      inline def setBorderInlineStartStyleVarargs(
        value: ((Extract[
              js.UndefOr[
                BorderInlineStartStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStartStyle]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineStartStyle]])*
      ): Self = StObject.set(x, "borderInlineStartStyle", js.Array(value*))
      
      inline def setBorderInlineStartUndefined: Self = StObject.set(x, "borderInlineStart", js.undefined)
      
      inline def setBorderInlineStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "borderInlineStart", js.Array(value*))
      
      inline def setBorderInlineStartWidth(
        value: (BorderInlineStartWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderInlineStartWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineStartWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderInlineStartWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderInlineStartWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineStartWidthUndefined: Self = StObject.set(x, "borderInlineStartWidth", js.undefined)
      
      inline def setBorderInlineStartWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderInlineStartWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineStartWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderInlineStartWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderInlineStartWidth", js.Array(value*))
      
      inline def setBorderInlineStyle(
        value: BorderInlineStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderInlineStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineStyle]]
            ])
      ): Self = StObject.set(x, "borderInlineStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineStyleUndefined: Self = StObject.set(x, "borderInlineStyle", js.undefined)
      
      inline def setBorderInlineStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderInlineStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineStyle]])*
      ): Self = StObject.set(x, "borderInlineStyle", js.Array(value*))
      
      inline def setBorderInlineUndefined: Self = StObject.set(x, "borderInline", js.undefined)
      
      inline def setBorderInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderInline[Double | String]]]))*
      ): Self = StObject.set(x, "borderInline", js.Array(value*))
      
      inline def setBorderInlineWidth(
        value: (BorderInlineWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderInlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderInlineWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderInlineWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderInlineWidthUndefined: Self = StObject.set(x, "borderInlineWidth", js.undefined)
      
      inline def setBorderInlineWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderInlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderInlineWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderInlineWidth", js.Array(value*))
      
      inline def setBorderLeft(
        value: (BorderLeft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderLeft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderLeft[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderLeft", value.asInstanceOf[js.Any])
      
      inline def setBorderLeftColor(
        value: BorderLeftColor | (js.Array[
              (Extract[
                js.UndefOr[BorderLeftColor | js.Array[NonNullable[js.UndefOr[BorderLeftColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderLeftColor]]
            ])
      ): Self = StObject.set(x, "borderLeftColor", value.asInstanceOf[js.Any])
      
      inline def setBorderLeftColorUndefined: Self = StObject.set(x, "borderLeftColor", js.undefined)
      
      inline def setBorderLeftColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderLeftColor | js.Array[NonNullable[js.UndefOr[BorderLeftColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderLeftColor]])*
      ): Self = StObject.set(x, "borderLeftColor", js.Array(value*))
      
      inline def setBorderLeftStyle(
        value: BorderLeftStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderLeftStyle | js.Array[NonNullable[js.UndefOr[BorderLeftStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderLeftStyle]]
            ])
      ): Self = StObject.set(x, "borderLeftStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderLeftStyleUndefined: Self = StObject.set(x, "borderLeftStyle", js.undefined)
      
      inline def setBorderLeftStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderLeftStyle | js.Array[NonNullable[js.UndefOr[BorderLeftStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderLeftStyle]])*
      ): Self = StObject.set(x, "borderLeftStyle", js.Array(value*))
      
      inline def setBorderLeftUndefined: Self = StObject.set(x, "borderLeft", js.undefined)
      
      inline def setBorderLeftVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderLeft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderLeft[Double | String]]]))*
      ): Self = StObject.set(x, "borderLeft", js.Array(value*))
      
      inline def setBorderLeftWidth(
        value: (BorderLeftWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderLeftWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderLeftWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderLeftWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderLeftWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderLeftWidthUndefined: Self = StObject.set(x, "borderLeftWidth", js.undefined)
      
      inline def setBorderLeftWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderLeftWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderLeftWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderLeftWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderLeftWidth", js.Array(value*))
      
      inline def setBorderRadius(
        value: (BorderRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderRadiusUndefined: Self = StObject.set(x, "borderRadius", js.undefined)
      
      inline def setBorderRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderRadius", js.Array(value*))
      
      inline def setBorderRight(
        value: (BorderRight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderRight[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderRight", value.asInstanceOf[js.Any])
      
      inline def setBorderRightColor(
        value: BorderRightColor | (js.Array[
              (Extract[
                js.UndefOr[BorderRightColor | js.Array[NonNullable[js.UndefOr[BorderRightColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderRightColor]]
            ])
      ): Self = StObject.set(x, "borderRightColor", value.asInstanceOf[js.Any])
      
      inline def setBorderRightColorUndefined: Self = StObject.set(x, "borderRightColor", js.undefined)
      
      inline def setBorderRightColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderRightColor | js.Array[NonNullable[js.UndefOr[BorderRightColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderRightColor]])*
      ): Self = StObject.set(x, "borderRightColor", js.Array(value*))
      
      inline def setBorderRightStyle(
        value: BorderRightStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderRightStyle | js.Array[NonNullable[js.UndefOr[BorderRightStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderRightStyle]]
            ])
      ): Self = StObject.set(x, "borderRightStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderRightStyleUndefined: Self = StObject.set(x, "borderRightStyle", js.undefined)
      
      inline def setBorderRightStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderRightStyle | js.Array[NonNullable[js.UndefOr[BorderRightStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderRightStyle]])*
      ): Self = StObject.set(x, "borderRightStyle", js.Array(value*))
      
      inline def setBorderRightUndefined: Self = StObject.set(x, "borderRight", js.undefined)
      
      inline def setBorderRightVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderRight[Double | String]]]))*
      ): Self = StObject.set(x, "borderRight", js.Array(value*))
      
      inline def setBorderRightWidth(
        value: (BorderRightWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderRightWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRightWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderRightWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderRightWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderRightWidthUndefined: Self = StObject.set(x, "borderRightWidth", js.undefined)
      
      inline def setBorderRightWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderRightWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRightWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderRightWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderRightWidth", js.Array(value*))
      
      inline def setBorderSpacing(
        value: (BorderSpacing[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderSpacing[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderSpacing[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderSpacing", value.asInstanceOf[js.Any])
      
      inline def setBorderSpacingUndefined: Self = StObject.set(x, "borderSpacing", js.undefined)
      
      inline def setBorderSpacingVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderSpacing[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderSpacing[Double | String]]]))*
      ): Self = StObject.set(x, "borderSpacing", js.Array(value*))
      
      inline def setBorderStartEndRadius(
        value: (BorderStartEndRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderStartEndRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderStartEndRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderStartEndRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderStartEndRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderStartEndRadiusUndefined: Self = StObject.set(x, "borderStartEndRadius", js.undefined)
      
      inline def setBorderStartEndRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderStartEndRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderStartEndRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderStartEndRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderStartEndRadius", js.Array(value*))
      
      inline def setBorderStartStartRadius(
        value: (BorderStartStartRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderStartStartRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderStartStartRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderStartStartRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderStartStartRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderStartStartRadiusUndefined: Self = StObject.set(x, "borderStartStartRadius", js.undefined)
      
      inline def setBorderStartStartRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderStartStartRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderStartStartRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderStartStartRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderStartStartRadius", js.Array(value*))
      
      inline def setBorderStyle(
        value: BorderStyle | (js.Array[
              (Extract[js.UndefOr[BorderStyle | js.Array[NonNullable[js.UndefOr[BorderStyle]]]], String]) | NonNullable[js.UndefOr[BorderStyle]]
            ])
      ): Self = StObject.set(x, "borderStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderStyleUndefined: Self = StObject.set(x, "borderStyle", js.undefined)
      
      inline def setBorderStyleVarargs(
        value: ((Extract[js.UndefOr[BorderStyle | js.Array[NonNullable[js.UndefOr[BorderStyle]]]], String]) | NonNullable[js.UndefOr[BorderStyle]])*
      ): Self = StObject.set(x, "borderStyle", js.Array(value*))
      
      inline def setBorderTop(
        value: (BorderTop[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTop[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTop[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderTop", value.asInstanceOf[js.Any])
      
      inline def setBorderTopColor(
        value: BorderTopColor | (js.Array[
              (Extract[
                js.UndefOr[BorderTopColor | js.Array[NonNullable[js.UndefOr[BorderTopColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderTopColor]]
            ])
      ): Self = StObject.set(x, "borderTopColor", value.asInstanceOf[js.Any])
      
      inline def setBorderTopColorUndefined: Self = StObject.set(x, "borderTopColor", js.undefined)
      
      inline def setBorderTopColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderTopColor | js.Array[NonNullable[js.UndefOr[BorderTopColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderTopColor]])*
      ): Self = StObject.set(x, "borderTopColor", js.Array(value*))
      
      inline def setBorderTopLeftRadius(
        value: (BorderTopLeftRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderTopLeftRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderTopLeftRadiusUndefined: Self = StObject.set(x, "borderTopLeftRadius", js.undefined)
      
      inline def setBorderTopLeftRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderTopLeftRadius", js.Array(value*))
      
      inline def setBorderTopRightRadius(
        value: (BorderTopRightRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderTopRightRadius", value.asInstanceOf[js.Any])
      
      inline def setBorderTopRightRadiusUndefined: Self = StObject.set(x, "borderTopRightRadius", js.undefined)
      
      inline def setBorderTopRightRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]))*
      ): Self = StObject.set(x, "borderTopRightRadius", js.Array(value*))
      
      inline def setBorderTopStyle(
        value: BorderTopStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderTopStyle | js.Array[NonNullable[js.UndefOr[BorderTopStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderTopStyle]]
            ])
      ): Self = StObject.set(x, "borderTopStyle", value.asInstanceOf[js.Any])
      
      inline def setBorderTopStyleUndefined: Self = StObject.set(x, "borderTopStyle", js.undefined)
      
      inline def setBorderTopStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderTopStyle | js.Array[NonNullable[js.UndefOr[BorderTopStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderTopStyle]])*
      ): Self = StObject.set(x, "borderTopStyle", js.Array(value*))
      
      inline def setBorderTopUndefined: Self = StObject.set(x, "borderTop", js.undefined)
      
      inline def setBorderTopVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTop[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTop[Double | String]]]))*
      ): Self = StObject.set(x, "borderTop", js.Array(value*))
      
      inline def setBorderTopWidth(
        value: (BorderTopWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTopWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTopWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderTopWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderTopWidthUndefined: Self = StObject.set(x, "borderTopWidth", js.undefined)
      
      inline def setBorderTopWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTopWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTopWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderTopWidth", js.Array(value*))
      
      inline def setBorderUndefined: Self = StObject.set(x, "border", js.undefined)
      
      inline def setBorderVarargs(
        value: ((Extract[
              js.UndefOr[
                (Border[Double | String]) | (js.Array[NonNullable[js.UndefOr[Border[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Border[Double | String]]]))*
      ): Self = StObject.set(x, "border", js.Array(value*))
      
      inline def setBorderWidth(
        value: (BorderWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "borderWidth", value.asInstanceOf[js.Any])
      
      inline def setBorderWidthUndefined: Self = StObject.set(x, "borderWidth", js.undefined)
      
      inline def setBorderWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderWidth[Double | String]]]))*
      ): Self = StObject.set(x, "borderWidth", js.Array(value*))
      
      inline def setBottom(
        value: (Bottom[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Bottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[Bottom[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Bottom[Double | String]]])
            ])
      ): Self = StObject.set(x, "bottom", value.asInstanceOf[js.Any])
      
      inline def setBottomUndefined: Self = StObject.set(x, "bottom", js.undefined)
      
      inline def setBottomVarargs(
        value: ((Extract[
              js.UndefOr[
                (Bottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[Bottom[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Bottom[Double | String]]]))*
      ): Self = StObject.set(x, "bottom", js.Array(value*))
      
      inline def setBoxAlign(
        value: BoxAlign | (js.Array[
              (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
            ])
      ): Self = StObject.set(x, "boxAlign", value.asInstanceOf[js.Any])
      
      inline def setBoxAlignUndefined: Self = StObject.set(x, "boxAlign", js.undefined)
      
      inline def setBoxAlignVarargs(
        value: ((Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]])*
      ): Self = StObject.set(x, "boxAlign", js.Array(value*))
      
      inline def setBoxDecorationBreak(
        value: BoxDecorationBreak | (js.Array[
              (Extract[
                js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
                String
              ]) | NonNullable[js.UndefOr[BoxDecorationBreak]]
            ])
      ): Self = StObject.set(x, "boxDecorationBreak", value.asInstanceOf[js.Any])
      
      inline def setBoxDecorationBreakUndefined: Self = StObject.set(x, "boxDecorationBreak", js.undefined)
      
      inline def setBoxDecorationBreakVarargs(
        value: ((Extract[
              js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
              String
            ]) | NonNullable[js.UndefOr[BoxDecorationBreak]])*
      ): Self = StObject.set(x, "boxDecorationBreak", js.Array(value*))
      
      inline def setBoxDirection(
        value: BoxDirection | (js.Array[
              (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
            ])
      ): Self = StObject.set(x, "boxDirection", value.asInstanceOf[js.Any])
      
      inline def setBoxDirectionUndefined: Self = StObject.set(x, "boxDirection", js.undefined)
      
      inline def setBoxDirectionVarargs(
        value: ((Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]])*
      ): Self = StObject.set(x, "boxDirection", js.Array(value*))
      
      inline def setBoxFlex(
        value: BoxFlex | (js.Array[
              (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
            ])
      ): Self = StObject.set(x, "boxFlex", value.asInstanceOf[js.Any])
      
      inline def setBoxFlexGroup(
        value: BoxFlexGroup | (js.Array[
              (Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]]
            ])
      ): Self = StObject.set(x, "boxFlexGroup", value.asInstanceOf[js.Any])
      
      inline def setBoxFlexGroupUndefined: Self = StObject.set(x, "boxFlexGroup", js.undefined)
      
      inline def setBoxFlexGroupVarargs(
        value: ((Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]])*
      ): Self = StObject.set(x, "boxFlexGroup", js.Array(value*))
      
      inline def setBoxFlexUndefined: Self = StObject.set(x, "boxFlex", js.undefined)
      
      inline def setBoxFlexVarargs(
        value: ((Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]])*
      ): Self = StObject.set(x, "boxFlex", js.Array(value*))
      
      inline def setBoxLines(
        value: BoxLines | (js.Array[
              (Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]]
            ])
      ): Self = StObject.set(x, "boxLines", value.asInstanceOf[js.Any])
      
      inline def setBoxLinesUndefined: Self = StObject.set(x, "boxLines", js.undefined)
      
      inline def setBoxLinesVarargs(
        value: ((Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]])*
      ): Self = StObject.set(x, "boxLines", js.Array(value*))
      
      inline def setBoxOrdinalGroup(
        value: BoxOrdinalGroup | (js.Array[
              (Extract[
                js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
                String
              ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
            ])
      ): Self = StObject.set(x, "boxOrdinalGroup", value.asInstanceOf[js.Any])
      
      inline def setBoxOrdinalGroupUndefined: Self = StObject.set(x, "boxOrdinalGroup", js.undefined)
      
      inline def setBoxOrdinalGroupVarargs(
        value: ((Extract[
              js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
              String
            ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]])*
      ): Self = StObject.set(x, "boxOrdinalGroup", js.Array(value*))
      
      inline def setBoxOrient(
        value: BoxOrient | (js.Array[
              (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
            ])
      ): Self = StObject.set(x, "boxOrient", value.asInstanceOf[js.Any])
      
      inline def setBoxOrientUndefined: Self = StObject.set(x, "boxOrient", js.undefined)
      
      inline def setBoxOrientVarargs(
        value: ((Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]])*
      ): Self = StObject.set(x, "boxOrient", js.Array(value*))
      
      inline def setBoxPack(
        value: BoxPack | (js.Array[
              (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
            ])
      ): Self = StObject.set(x, "boxPack", value.asInstanceOf[js.Any])
      
      inline def setBoxPackUndefined: Self = StObject.set(x, "boxPack", js.undefined)
      
      inline def setBoxPackVarargs(
        value: ((Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]])*
      ): Self = StObject.set(x, "boxPack", js.Array(value*))
      
      inline def setBoxShadow(
        value: BoxShadow | (js.Array[
              (Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]]
            ])
      ): Self = StObject.set(x, "boxShadow", value.asInstanceOf[js.Any])
      
      inline def setBoxShadowUndefined: Self = StObject.set(x, "boxShadow", js.undefined)
      
      inline def setBoxShadowVarargs(
        value: ((Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]])*
      ): Self = StObject.set(x, "boxShadow", js.Array(value*))
      
      inline def setBoxSizing(
        value: BoxSizing | (js.Array[
              (Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]]
            ])
      ): Self = StObject.set(x, "boxSizing", value.asInstanceOf[js.Any])
      
      inline def setBoxSizingUndefined: Self = StObject.set(x, "boxSizing", js.undefined)
      
      inline def setBoxSizingVarargs(
        value: ((Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]])*
      ): Self = StObject.set(x, "boxSizing", js.Array(value*))
      
      inline def setBreakAfter(
        value: BreakAfter | (js.Array[
              (Extract[js.UndefOr[BreakAfter | js.Array[NonNullable[js.UndefOr[BreakAfter]]]], String]) | NonNullable[js.UndefOr[BreakAfter]]
            ])
      ): Self = StObject.set(x, "breakAfter", value.asInstanceOf[js.Any])
      
      inline def setBreakAfterUndefined: Self = StObject.set(x, "breakAfter", js.undefined)
      
      inline def setBreakAfterVarargs(
        value: ((Extract[js.UndefOr[BreakAfter | js.Array[NonNullable[js.UndefOr[BreakAfter]]]], String]) | NonNullable[js.UndefOr[BreakAfter]])*
      ): Self = StObject.set(x, "breakAfter", js.Array(value*))
      
      inline def setBreakBefore(
        value: BreakBefore | (js.Array[
              (Extract[js.UndefOr[BreakBefore | js.Array[NonNullable[js.UndefOr[BreakBefore]]]], String]) | NonNullable[js.UndefOr[BreakBefore]]
            ])
      ): Self = StObject.set(x, "breakBefore", value.asInstanceOf[js.Any])
      
      inline def setBreakBeforeUndefined: Self = StObject.set(x, "breakBefore", js.undefined)
      
      inline def setBreakBeforeVarargs(
        value: ((Extract[js.UndefOr[BreakBefore | js.Array[NonNullable[js.UndefOr[BreakBefore]]]], String]) | NonNullable[js.UndefOr[BreakBefore]])*
      ): Self = StObject.set(x, "breakBefore", js.Array(value*))
      
      inline def setBreakInside(
        value: BreakInside | (js.Array[
              (Extract[js.UndefOr[BreakInside | js.Array[NonNullable[js.UndefOr[BreakInside]]]], String]) | NonNullable[js.UndefOr[BreakInside]]
            ])
      ): Self = StObject.set(x, "breakInside", value.asInstanceOf[js.Any])
      
      inline def setBreakInsideUndefined: Self = StObject.set(x, "breakInside", js.undefined)
      
      inline def setBreakInsideVarargs(
        value: ((Extract[js.UndefOr[BreakInside | js.Array[NonNullable[js.UndefOr[BreakInside]]]], String]) | NonNullable[js.UndefOr[BreakInside]])*
      ): Self = StObject.set(x, "breakInside", js.Array(value*))
      
      inline def setCaptionSide(
        value: CaptionSide | (js.Array[
              (Extract[js.UndefOr[CaptionSide | js.Array[NonNullable[js.UndefOr[CaptionSide]]]], String]) | NonNullable[js.UndefOr[CaptionSide]]
            ])
      ): Self = StObject.set(x, "captionSide", value.asInstanceOf[js.Any])
      
      inline def setCaptionSideUndefined: Self = StObject.set(x, "captionSide", js.undefined)
      
      inline def setCaptionSideVarargs(
        value: ((Extract[js.UndefOr[CaptionSide | js.Array[NonNullable[js.UndefOr[CaptionSide]]]], String]) | NonNullable[js.UndefOr[CaptionSide]])*
      ): Self = StObject.set(x, "captionSide", js.Array(value*))
      
      inline def setCaretColor(
        value: CaretColor | (js.Array[
              (Extract[js.UndefOr[CaretColor | js.Array[NonNullable[js.UndefOr[CaretColor]]]], String]) | NonNullable[js.UndefOr[CaretColor]]
            ])
      ): Self = StObject.set(x, "caretColor", value.asInstanceOf[js.Any])
      
      inline def setCaretColorUndefined: Self = StObject.set(x, "caretColor", js.undefined)
      
      inline def setCaretColorVarargs(
        value: ((Extract[js.UndefOr[CaretColor | js.Array[NonNullable[js.UndefOr[CaretColor]]]], String]) | NonNullable[js.UndefOr[CaretColor]])*
      ): Self = StObject.set(x, "caretColor", js.Array(value*))
      
      inline def setClear(
        value: Clear | (js.Array[
              (Extract[js.UndefOr[Clear | js.Array[NonNullable[js.UndefOr[Clear]]]], String]) | NonNullable[js.UndefOr[Clear]]
            ])
      ): Self = StObject.set(x, "clear", value.asInstanceOf[js.Any])
      
      inline def setClearUndefined: Self = StObject.set(x, "clear", js.undefined)
      
      inline def setClearVarargs(
        value: ((Extract[js.UndefOr[Clear | js.Array[NonNullable[js.UndefOr[Clear]]]], String]) | NonNullable[js.UndefOr[Clear]])*
      ): Self = StObject.set(x, "clear", js.Array(value*))
      
      inline def setClip(
        value: Clip | (js.Array[
              (Extract[js.UndefOr[Clip | js.Array[NonNullable[js.UndefOr[Clip]]]], String]) | NonNullable[js.UndefOr[Clip]]
            ])
      ): Self = StObject.set(x, "clip", value.asInstanceOf[js.Any])
      
      inline def setClipPath(
        value: ClipPath | (js.Array[
              (Extract[js.UndefOr[ClipPath | js.Array[NonNullable[js.UndefOr[ClipPath]]]], String]) | NonNullable[js.UndefOr[ClipPath]]
            ])
      ): Self = StObject.set(x, "clipPath", value.asInstanceOf[js.Any])
      
      inline def setClipPathUndefined: Self = StObject.set(x, "clipPath", js.undefined)
      
      inline def setClipPathVarargs(
        value: ((Extract[js.UndefOr[ClipPath | js.Array[NonNullable[js.UndefOr[ClipPath]]]], String]) | NonNullable[js.UndefOr[ClipPath]])*
      ): Self = StObject.set(x, "clipPath", js.Array(value*))
      
      inline def setClipRule(
        value: ClipRule | (js.Array[
              (Extract[js.UndefOr[ClipRule | js.Array[NonNullable[js.UndefOr[ClipRule]]]], String]) | NonNullable[js.UndefOr[ClipRule]]
            ])
      ): Self = StObject.set(x, "clipRule", value.asInstanceOf[js.Any])
      
      inline def setClipRuleUndefined: Self = StObject.set(x, "clipRule", js.undefined)
      
      inline def setClipRuleVarargs(
        value: ((Extract[js.UndefOr[ClipRule | js.Array[NonNullable[js.UndefOr[ClipRule]]]], String]) | NonNullable[js.UndefOr[ClipRule]])*
      ): Self = StObject.set(x, "clipRule", js.Array(value*))
      
      inline def setClipUndefined: Self = StObject.set(x, "clip", js.undefined)
      
      inline def setClipVarargs(
        value: ((Extract[js.UndefOr[Clip | js.Array[NonNullable[js.UndefOr[Clip]]]], String]) | NonNullable[js.UndefOr[Clip]])*
      ): Self = StObject.set(x, "clip", js.Array(value*))
      
      inline def setColor(
        value: Color | (js.Array[
              (Extract[js.UndefOr[Color | js.Array[NonNullable[js.UndefOr[Color]]]], String]) | NonNullable[js.UndefOr[Color]]
            ])
      ): Self = StObject.set(x, "color", value.asInstanceOf[js.Any])
      
      inline def setColorAdjust(
        value: ColorAdjust | (js.Array[
              (Extract[js.UndefOr[ColorAdjust | js.Array[NonNullable[js.UndefOr[ColorAdjust]]]], String]) | NonNullable[js.UndefOr[ColorAdjust]]
            ])
      ): Self = StObject.set(x, "colorAdjust", value.asInstanceOf[js.Any])
      
      inline def setColorAdjustUndefined: Self = StObject.set(x, "colorAdjust", js.undefined)
      
      inline def setColorAdjustVarargs(
        value: ((Extract[js.UndefOr[ColorAdjust | js.Array[NonNullable[js.UndefOr[ColorAdjust]]]], String]) | NonNullable[js.UndefOr[ColorAdjust]])*
      ): Self = StObject.set(x, "colorAdjust", js.Array(value*))
      
      inline def setColorInterpolation(
        value: ColorInterpolation | (js.Array[
              (Extract[
                js.UndefOr[ColorInterpolation | js.Array[NonNullable[js.UndefOr[ColorInterpolation]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColorInterpolation]]
            ])
      ): Self = StObject.set(x, "colorInterpolation", value.asInstanceOf[js.Any])
      
      inline def setColorInterpolationUndefined: Self = StObject.set(x, "colorInterpolation", js.undefined)
      
      inline def setColorInterpolationVarargs(
        value: ((Extract[
              js.UndefOr[ColorInterpolation | js.Array[NonNullable[js.UndefOr[ColorInterpolation]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColorInterpolation]])*
      ): Self = StObject.set(x, "colorInterpolation", js.Array(value*))
      
      inline def setColorRendering(
        value: ColorRendering | (js.Array[
              (Extract[
                js.UndefOr[ColorRendering | js.Array[NonNullable[js.UndefOr[ColorRendering]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColorRendering]]
            ])
      ): Self = StObject.set(x, "colorRendering", value.asInstanceOf[js.Any])
      
      inline def setColorRenderingUndefined: Self = StObject.set(x, "colorRendering", js.undefined)
      
      inline def setColorRenderingVarargs(
        value: ((Extract[
              js.UndefOr[ColorRendering | js.Array[NonNullable[js.UndefOr[ColorRendering]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColorRendering]])*
      ): Self = StObject.set(x, "colorRendering", js.Array(value*))
      
      inline def setColorScheme(
        value: ColorScheme | (js.Array[
              (Extract[js.UndefOr[ColorScheme | js.Array[NonNullable[js.UndefOr[ColorScheme]]]], String]) | NonNullable[js.UndefOr[ColorScheme]]
            ])
      ): Self = StObject.set(x, "colorScheme", value.asInstanceOf[js.Any])
      
      inline def setColorSchemeUndefined: Self = StObject.set(x, "colorScheme", js.undefined)
      
      inline def setColorSchemeVarargs(
        value: ((Extract[js.UndefOr[ColorScheme | js.Array[NonNullable[js.UndefOr[ColorScheme]]]], String]) | NonNullable[js.UndefOr[ColorScheme]])*
      ): Self = StObject.set(x, "colorScheme", js.Array(value*))
      
      inline def setColorUndefined: Self = StObject.set(x, "color", js.undefined)
      
      inline def setColorVarargs(
        value: ((Extract[js.UndefOr[Color | js.Array[NonNullable[js.UndefOr[Color]]]], String]) | NonNullable[js.UndefOr[Color]])*
      ): Self = StObject.set(x, "color", js.Array(value*))
      
      inline def setColumnCount(
        value: ColumnCount | (js.Array[
              (Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]]
            ])
      ): Self = StObject.set(x, "columnCount", value.asInstanceOf[js.Any])
      
      inline def setColumnCountUndefined: Self = StObject.set(x, "columnCount", js.undefined)
      
      inline def setColumnCountVarargs(
        value: ((Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]])*
      ): Self = StObject.set(x, "columnCount", js.Array(value*))
      
      inline def setColumnFill(
        value: ColumnFill | (js.Array[
              (Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]]
            ])
      ): Self = StObject.set(x, "columnFill", value.asInstanceOf[js.Any])
      
      inline def setColumnFillUndefined: Self = StObject.set(x, "columnFill", js.undefined)
      
      inline def setColumnFillVarargs(
        value: ((Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]])*
      ): Self = StObject.set(x, "columnFill", js.Array(value*))
      
      inline def setColumnGap(
        value: (ColumnGap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]])
            ])
      ): Self = StObject.set(x, "columnGap", value.asInstanceOf[js.Any])
      
      inline def setColumnGapUndefined: Self = StObject.set(x, "columnGap", js.undefined)
      
      inline def setColumnGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]]))*
      ): Self = StObject.set(x, "columnGap", js.Array(value*))
      
      inline def setColumnRule(
        value: (ColumnRule[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]])
            ])
      ): Self = StObject.set(x, "columnRule", value.asInstanceOf[js.Any])
      
      inline def setColumnRuleColor(
        value: ColumnRuleColor | (js.Array[
              (Extract[
                js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColumnRuleColor]]
            ])
      ): Self = StObject.set(x, "columnRuleColor", value.asInstanceOf[js.Any])
      
      inline def setColumnRuleColorUndefined: Self = StObject.set(x, "columnRuleColor", js.undefined)
      
      inline def setColumnRuleColorVarargs(
        value: ((Extract[
              js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColumnRuleColor]])*
      ): Self = StObject.set(x, "columnRuleColor", js.Array(value*))
      
      inline def setColumnRuleStyle(
        value: ColumnRuleStyle | (js.Array[
              (Extract[
                js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColumnRuleStyle]]
            ])
      ): Self = StObject.set(x, "columnRuleStyle", value.asInstanceOf[js.Any])
      
      inline def setColumnRuleStyleUndefined: Self = StObject.set(x, "columnRuleStyle", js.undefined)
      
      inline def setColumnRuleStyleVarargs(
        value: ((Extract[
              js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColumnRuleStyle]])*
      ): Self = StObject.set(x, "columnRuleStyle", js.Array(value*))
      
      inline def setColumnRuleUndefined: Self = StObject.set(x, "columnRule", js.undefined)
      
      inline def setColumnRuleVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]]))*
      ): Self = StObject.set(x, "columnRule", js.Array(value*))
      
      inline def setColumnRuleWidth(
        value: (ColumnRuleWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "columnRuleWidth", value.asInstanceOf[js.Any])
      
      inline def setColumnRuleWidthUndefined: Self = StObject.set(x, "columnRuleWidth", js.undefined)
      
      inline def setColumnRuleWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]))*
      ): Self = StObject.set(x, "columnRuleWidth", js.Array(value*))
      
      inline def setColumnSpan(
        value: ColumnSpan | (js.Array[
              (Extract[js.UndefOr[ColumnSpan | js.Array[NonNullable[js.UndefOr[ColumnSpan]]]], String]) | NonNullable[js.UndefOr[ColumnSpan]]
            ])
      ): Self = StObject.set(x, "columnSpan", value.asInstanceOf[js.Any])
      
      inline def setColumnSpanUndefined: Self = StObject.set(x, "columnSpan", js.undefined)
      
      inline def setColumnSpanVarargs(
        value: ((Extract[js.UndefOr[ColumnSpan | js.Array[NonNullable[js.UndefOr[ColumnSpan]]]], String]) | NonNullable[js.UndefOr[ColumnSpan]])*
      ): Self = StObject.set(x, "columnSpan", js.Array(value*))
      
      inline def setColumnWidth(
        value: (ColumnWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "columnWidth", value.asInstanceOf[js.Any])
      
      inline def setColumnWidthUndefined: Self = StObject.set(x, "columnWidth", js.undefined)
      
      inline def setColumnWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]]))*
      ): Self = StObject.set(x, "columnWidth", js.Array(value*))
      
      inline def setColumns(
        value: (Columns[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Columns[Double | String]]])
            ])
      ): Self = StObject.set(x, "columns", value.asInstanceOf[js.Any])
      
      inline def setColumnsUndefined: Self = StObject.set(x, "columns", js.undefined)
      
      inline def setColumnsVarargs(
        value: ((Extract[
              js.UndefOr[
                (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Columns[Double | String]]]))*
      ): Self = StObject.set(x, "columns", js.Array(value*))
      
      inline def setContain(
        value: Contain | (js.Array[
              (Extract[js.UndefOr[Contain | js.Array[NonNullable[js.UndefOr[Contain]]]], String]) | NonNullable[js.UndefOr[Contain]]
            ])
      ): Self = StObject.set(x, "contain", value.asInstanceOf[js.Any])
      
      inline def setContainUndefined: Self = StObject.set(x, "contain", js.undefined)
      
      inline def setContainVarargs(
        value: ((Extract[js.UndefOr[Contain | js.Array[NonNullable[js.UndefOr[Contain]]]], String]) | NonNullable[js.UndefOr[Contain]])*
      ): Self = StObject.set(x, "contain", js.Array(value*))
      
      inline def setContent(
        value: Content | (js.Array[
              (Extract[js.UndefOr[Content | js.Array[NonNullable[js.UndefOr[Content]]]], String]) | NonNullable[js.UndefOr[Content]]
            ])
      ): Self = StObject.set(x, "content", value.asInstanceOf[js.Any])
      
      inline def setContentUndefined: Self = StObject.set(x, "content", js.undefined)
      
      inline def setContentVarargs(
        value: ((Extract[js.UndefOr[Content | js.Array[NonNullable[js.UndefOr[Content]]]], String]) | NonNullable[js.UndefOr[Content]])*
      ): Self = StObject.set(x, "content", js.Array(value*))
      
      inline def setContentVisibility(
        value: ContentVisibility | (js.Array[
              (Extract[
                js.UndefOr[ContentVisibility | js.Array[NonNullable[js.UndefOr[ContentVisibility]]]], 
                String
              ]) | NonNullable[js.UndefOr[ContentVisibility]]
            ])
      ): Self = StObject.set(x, "contentVisibility", value.asInstanceOf[js.Any])
      
      inline def setContentVisibilityUndefined: Self = StObject.set(x, "contentVisibility", js.undefined)
      
      inline def setContentVisibilityVarargs(
        value: ((Extract[
              js.UndefOr[ContentVisibility | js.Array[NonNullable[js.UndefOr[ContentVisibility]]]], 
              String
            ]) | NonNullable[js.UndefOr[ContentVisibility]])*
      ): Self = StObject.set(x, "contentVisibility", js.Array(value*))
      
      inline def setCounterIncrement(
        value: CounterIncrement | (js.Array[
              (Extract[
                js.UndefOr[CounterIncrement | js.Array[NonNullable[js.UndefOr[CounterIncrement]]]], 
                String
              ]) | NonNullable[js.UndefOr[CounterIncrement]]
            ])
      ): Self = StObject.set(x, "counterIncrement", value.asInstanceOf[js.Any])
      
      inline def setCounterIncrementUndefined: Self = StObject.set(x, "counterIncrement", js.undefined)
      
      inline def setCounterIncrementVarargs(
        value: ((Extract[
              js.UndefOr[CounterIncrement | js.Array[NonNullable[js.UndefOr[CounterIncrement]]]], 
              String
            ]) | NonNullable[js.UndefOr[CounterIncrement]])*
      ): Self = StObject.set(x, "counterIncrement", js.Array(value*))
      
      inline def setCounterReset(
        value: CounterReset | (js.Array[
              (Extract[js.UndefOr[CounterReset | js.Array[NonNullable[js.UndefOr[CounterReset]]]], String]) | NonNullable[js.UndefOr[CounterReset]]
            ])
      ): Self = StObject.set(x, "counterReset", value.asInstanceOf[js.Any])
      
      inline def setCounterResetUndefined: Self = StObject.set(x, "counterReset", js.undefined)
      
      inline def setCounterResetVarargs(
        value: ((Extract[js.UndefOr[CounterReset | js.Array[NonNullable[js.UndefOr[CounterReset]]]], String]) | NonNullable[js.UndefOr[CounterReset]])*
      ): Self = StObject.set(x, "counterReset", js.Array(value*))
      
      inline def setCounterSet(
        value: CounterSet | (js.Array[
              (Extract[js.UndefOr[CounterSet | js.Array[NonNullable[js.UndefOr[CounterSet]]]], String]) | NonNullable[js.UndefOr[CounterSet]]
            ])
      ): Self = StObject.set(x, "counterSet", value.asInstanceOf[js.Any])
      
      inline def setCounterSetUndefined: Self = StObject.set(x, "counterSet", js.undefined)
      
      inline def setCounterSetVarargs(
        value: ((Extract[js.UndefOr[CounterSet | js.Array[NonNullable[js.UndefOr[CounterSet]]]], String]) | NonNullable[js.UndefOr[CounterSet]])*
      ): Self = StObject.set(x, "counterSet", js.Array(value*))
      
      inline def setCursor(
        value: Cursor | (js.Array[
              (Extract[js.UndefOr[Cursor | js.Array[NonNullable[js.UndefOr[Cursor]]]], String]) | NonNullable[js.UndefOr[Cursor]]
            ])
      ): Self = StObject.set(x, "cursor", value.asInstanceOf[js.Any])
      
      inline def setCursorUndefined: Self = StObject.set(x, "cursor", js.undefined)
      
      inline def setCursorVarargs(
        value: ((Extract[js.UndefOr[Cursor | js.Array[NonNullable[js.UndefOr[Cursor]]]], String]) | NonNullable[js.UndefOr[Cursor]])*
      ): Self = StObject.set(x, "cursor", js.Array(value*))
      
      inline def setDirection(
        value: Direction | (js.Array[
              (Extract[js.UndefOr[Direction | js.Array[NonNullable[js.UndefOr[Direction]]]], String]) | NonNullable[js.UndefOr[Direction]]
            ])
      ): Self = StObject.set(x, "direction", value.asInstanceOf[js.Any])
      
      inline def setDirectionUndefined: Self = StObject.set(x, "direction", js.undefined)
      
      inline def setDirectionVarargs(
        value: ((Extract[js.UndefOr[Direction | js.Array[NonNullable[js.UndefOr[Direction]]]], String]) | NonNullable[js.UndefOr[Direction]])*
      ): Self = StObject.set(x, "direction", js.Array(value*))
      
      inline def setDisplay(
        value: Display | (js.Array[
              (Extract[js.UndefOr[Display | js.Array[NonNullable[js.UndefOr[Display]]]], String]) | NonNullable[js.UndefOr[Display]]
            ])
      ): Self = StObject.set(x, "display", value.asInstanceOf[js.Any])
      
      inline def setDisplayUndefined: Self = StObject.set(x, "display", js.undefined)
      
      inline def setDisplayVarargs(
        value: ((Extract[js.UndefOr[Display | js.Array[NonNullable[js.UndefOr[Display]]]], String]) | NonNullable[js.UndefOr[Display]])*
      ): Self = StObject.set(x, "display", js.Array(value*))
      
      inline def setDominantBaseline(
        value: DominantBaseline | (js.Array[
              (Extract[
                js.UndefOr[DominantBaseline | js.Array[NonNullable[js.UndefOr[DominantBaseline]]]], 
                String
              ]) | NonNullable[js.UndefOr[DominantBaseline]]
            ])
      ): Self = StObject.set(x, "dominantBaseline", value.asInstanceOf[js.Any])
      
      inline def setDominantBaselineUndefined: Self = StObject.set(x, "dominantBaseline", js.undefined)
      
      inline def setDominantBaselineVarargs(
        value: ((Extract[
              js.UndefOr[DominantBaseline | js.Array[NonNullable[js.UndefOr[DominantBaseline]]]], 
              String
            ]) | NonNullable[js.UndefOr[DominantBaseline]])*
      ): Self = StObject.set(x, "dominantBaseline", js.Array(value*))
      
      inline def setEmptyCells(
        value: EmptyCells | (js.Array[
              (Extract[js.UndefOr[EmptyCells | js.Array[NonNullable[js.UndefOr[EmptyCells]]]], String]) | NonNullable[js.UndefOr[EmptyCells]]
            ])
      ): Self = StObject.set(x, "emptyCells", value.asInstanceOf[js.Any])
      
      inline def setEmptyCellsUndefined: Self = StObject.set(x, "emptyCells", js.undefined)
      
      inline def setEmptyCellsVarargs(
        value: ((Extract[js.UndefOr[EmptyCells | js.Array[NonNullable[js.UndefOr[EmptyCells]]]], String]) | NonNullable[js.UndefOr[EmptyCells]])*
      ): Self = StObject.set(x, "emptyCells", js.Array(value*))
      
      inline def setFill(
        value: Fill | (js.Array[
              (Extract[js.UndefOr[Fill | js.Array[NonNullable[js.UndefOr[Fill]]]], String]) | NonNullable[js.UndefOr[Fill]]
            ])
      ): Self = StObject.set(x, "fill", value.asInstanceOf[js.Any])
      
      inline def setFillOpacity(
        value: FillOpacity | (js.Array[
              (Extract[js.UndefOr[FillOpacity | js.Array[NonNullable[js.UndefOr[FillOpacity]]]], String]) | NonNullable[js.UndefOr[FillOpacity]]
            ])
      ): Self = StObject.set(x, "fillOpacity", value.asInstanceOf[js.Any])
      
      inline def setFillOpacityUndefined: Self = StObject.set(x, "fillOpacity", js.undefined)
      
      inline def setFillOpacityVarargs(
        value: ((Extract[js.UndefOr[FillOpacity | js.Array[NonNullable[js.UndefOr[FillOpacity]]]], String]) | NonNullable[js.UndefOr[FillOpacity]])*
      ): Self = StObject.set(x, "fillOpacity", js.Array(value*))
      
      inline def setFillRule(
        value: FillRule | (js.Array[
              (Extract[js.UndefOr[FillRule | js.Array[NonNullable[js.UndefOr[FillRule]]]], String]) | NonNullable[js.UndefOr[FillRule]]
            ])
      ): Self = StObject.set(x, "fillRule", value.asInstanceOf[js.Any])
      
      inline def setFillRuleUndefined: Self = StObject.set(x, "fillRule", js.undefined)
      
      inline def setFillRuleVarargs(
        value: ((Extract[js.UndefOr[FillRule | js.Array[NonNullable[js.UndefOr[FillRule]]]], String]) | NonNullable[js.UndefOr[FillRule]])*
      ): Self = StObject.set(x, "fillRule", js.Array(value*))
      
      inline def setFillUndefined: Self = StObject.set(x, "fill", js.undefined)
      
      inline def setFillVarargs(
        value: ((Extract[js.UndefOr[Fill | js.Array[NonNullable[js.UndefOr[Fill]]]], String]) | NonNullable[js.UndefOr[Fill]])*
      ): Self = StObject.set(x, "fill", js.Array(value*))
      
      inline def setFilter(
        value: Filter | (js.Array[
              (Extract[js.UndefOr[Filter | js.Array[NonNullable[js.UndefOr[Filter]]]], String]) | NonNullable[js.UndefOr[Filter]]
            ])
      ): Self = StObject.set(x, "filter", value.asInstanceOf[js.Any])
      
      inline def setFilterUndefined: Self = StObject.set(x, "filter", js.undefined)
      
      inline def setFilterVarargs(
        value: ((Extract[js.UndefOr[Filter | js.Array[NonNullable[js.UndefOr[Filter]]]], String]) | NonNullable[js.UndefOr[Filter]])*
      ): Self = StObject.set(x, "filter", js.Array(value*))
      
      inline def setFlex(
        value: (Flex[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Flex[Double | String]]])
            ])
      ): Self = StObject.set(x, "flex", value.asInstanceOf[js.Any])
      
      inline def setFlexBasis(
        value: (FlexBasis[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (FlexBasis[Double | String]) | (js.Array[NonNullable[js.UndefOr[FlexBasis[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[FlexBasis[Double | String]]])
            ])
      ): Self = StObject.set(x, "flexBasis", value.asInstanceOf[js.Any])
      
      inline def setFlexBasisUndefined: Self = StObject.set(x, "flexBasis", js.undefined)
      
      inline def setFlexBasisVarargs(
        value: ((Extract[
              js.UndefOr[
                (FlexBasis[Double | String]) | (js.Array[NonNullable[js.UndefOr[FlexBasis[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[FlexBasis[Double | String]]]))*
      ): Self = StObject.set(x, "flexBasis", js.Array(value*))
      
      inline def setFlexDirection(
        value: FlexDirection | (js.Array[
              (Extract[
                js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
                String
              ]) | NonNullable[js.UndefOr[FlexDirection]]
            ])
      ): Self = StObject.set(x, "flexDirection", value.asInstanceOf[js.Any])
      
      inline def setFlexDirectionUndefined: Self = StObject.set(x, "flexDirection", js.undefined)
      
      inline def setFlexDirectionVarargs(
        value: ((Extract[
              js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
              String
            ]) | NonNullable[js.UndefOr[FlexDirection]])*
      ): Self = StObject.set(x, "flexDirection", js.Array(value*))
      
      inline def setFlexFlow(
        value: FlexFlow | (js.Array[
              (Extract[js.UndefOr[FlexFlow | js.Array[NonNullable[js.UndefOr[FlexFlow]]]], String]) | NonNullable[js.UndefOr[FlexFlow]]
            ])
      ): Self = StObject.set(x, "flexFlow", value.asInstanceOf[js.Any])
      
      inline def setFlexFlowUndefined: Self = StObject.set(x, "flexFlow", js.undefined)
      
      inline def setFlexFlowVarargs(
        value: ((Extract[js.UndefOr[FlexFlow | js.Array[NonNullable[js.UndefOr[FlexFlow]]]], String]) | NonNullable[js.UndefOr[FlexFlow]])*
      ): Self = StObject.set(x, "flexFlow", js.Array(value*))
      
      inline def setFlexGrow(
        value: FlexGrow | (js.Array[
              (Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]]
            ])
      ): Self = StObject.set(x, "flexGrow", value.asInstanceOf[js.Any])
      
      inline def setFlexGrowUndefined: Self = StObject.set(x, "flexGrow", js.undefined)
      
      inline def setFlexGrowVarargs(
        value: ((Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]])*
      ): Self = StObject.set(x, "flexGrow", js.Array(value*))
      
      inline def setFlexShrink(
        value: FlexShrink | (js.Array[
              (Extract[js.UndefOr[FlexShrink | js.Array[NonNullable[js.UndefOr[FlexShrink]]]], String]) | NonNullable[js.UndefOr[FlexShrink]]
            ])
      ): Self = StObject.set(x, "flexShrink", value.asInstanceOf[js.Any])
      
      inline def setFlexShrinkUndefined: Self = StObject.set(x, "flexShrink", js.undefined)
      
      inline def setFlexShrinkVarargs(
        value: ((Extract[js.UndefOr[FlexShrink | js.Array[NonNullable[js.UndefOr[FlexShrink]]]], String]) | NonNullable[js.UndefOr[FlexShrink]])*
      ): Self = StObject.set(x, "flexShrink", js.Array(value*))
      
      inline def setFlexUndefined: Self = StObject.set(x, "flex", js.undefined)
      
      inline def setFlexVarargs(
        value: ((Extract[
              js.UndefOr[
                (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Flex[Double | String]]]))*
      ): Self = StObject.set(x, "flex", js.Array(value*))
      
      inline def setFlexWrap(
        value: FlexWrap | (js.Array[
              (Extract[js.UndefOr[FlexWrap | js.Array[NonNullable[js.UndefOr[FlexWrap]]]], String]) | NonNullable[js.UndefOr[FlexWrap]]
            ])
      ): Self = StObject.set(x, "flexWrap", value.asInstanceOf[js.Any])
      
      inline def setFlexWrapUndefined: Self = StObject.set(x, "flexWrap", js.undefined)
      
      inline def setFlexWrapVarargs(
        value: ((Extract[js.UndefOr[FlexWrap | js.Array[NonNullable[js.UndefOr[FlexWrap]]]], String]) | NonNullable[js.UndefOr[FlexWrap]])*
      ): Self = StObject.set(x, "flexWrap", js.Array(value*))
      
      inline def setFloat(
        value: Float | (js.Array[
              (Extract[js.UndefOr[Float | js.Array[NonNullable[js.UndefOr[Float]]]], String]) | NonNullable[js.UndefOr[Float]]
            ])
      ): Self = StObject.set(x, "float", value.asInstanceOf[js.Any])
      
      inline def setFloatUndefined: Self = StObject.set(x, "float", js.undefined)
      
      inline def setFloatVarargs(
        value: ((Extract[js.UndefOr[Float | js.Array[NonNullable[js.UndefOr[Float]]]], String]) | NonNullable[js.UndefOr[Float]])*
      ): Self = StObject.set(x, "float", js.Array(value*))
      
      inline def setFloodColor(
        value: FloodColor | (js.Array[
              (Extract[js.UndefOr[FloodColor | js.Array[NonNullable[js.UndefOr[FloodColor]]]], String]) | NonNullable[js.UndefOr[FloodColor]]
            ])
      ): Self = StObject.set(x, "floodColor", value.asInstanceOf[js.Any])
      
      inline def setFloodColorUndefined: Self = StObject.set(x, "floodColor", js.undefined)
      
      inline def setFloodColorVarargs(
        value: ((Extract[js.UndefOr[FloodColor | js.Array[NonNullable[js.UndefOr[FloodColor]]]], String]) | NonNullable[js.UndefOr[FloodColor]])*
      ): Self = StObject.set(x, "floodColor", js.Array(value*))
      
      inline def setFloodOpacity(
        value: FloodOpacity | (js.Array[
              (Extract[js.UndefOr[FloodOpacity | js.Array[NonNullable[js.UndefOr[FloodOpacity]]]], String]) | NonNullable[js.UndefOr[FloodOpacity]]
            ])
      ): Self = StObject.set(x, "floodOpacity", value.asInstanceOf[js.Any])
      
      inline def setFloodOpacityUndefined: Self = StObject.set(x, "floodOpacity", js.undefined)
      
      inline def setFloodOpacityVarargs(
        value: ((Extract[js.UndefOr[FloodOpacity | js.Array[NonNullable[js.UndefOr[FloodOpacity]]]], String]) | NonNullable[js.UndefOr[FloodOpacity]])*
      ): Self = StObject.set(x, "floodOpacity", js.Array(value*))
      
      inline def setFont(
        value: Font | (js.Array[
              (Extract[js.UndefOr[Font | js.Array[NonNullable[js.UndefOr[Font]]]], String]) | NonNullable[js.UndefOr[Font]]
            ])
      ): Self = StObject.set(x, "font", value.asInstanceOf[js.Any])
      
      inline def setFontFamily(
        value: FontFamily | (js.Array[
              (Extract[js.UndefOr[FontFamily | js.Array[NonNullable[js.UndefOr[FontFamily]]]], String]) | NonNullable[js.UndefOr[FontFamily]]
            ])
      ): Self = StObject.set(x, "fontFamily", value.asInstanceOf[js.Any])
      
      inline def setFontFamilyUndefined: Self = StObject.set(x, "fontFamily", js.undefined)
      
      inline def setFontFamilyVarargs(
        value: ((Extract[js.UndefOr[FontFamily | js.Array[NonNullable[js.UndefOr[FontFamily]]]], String]) | NonNullable[js.UndefOr[FontFamily]])*
      ): Self = StObject.set(x, "fontFamily", js.Array(value*))
      
      inline def setFontFeatureSettings(
        value: FontFeatureSettings | (js.Array[
              (Extract[
                js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontFeatureSettings]]
            ])
      ): Self = StObject.set(x, "fontFeatureSettings", value.asInstanceOf[js.Any])
      
      inline def setFontFeatureSettingsUndefined: Self = StObject.set(x, "fontFeatureSettings", js.undefined)
      
      inline def setFontFeatureSettingsVarargs(
        value: ((Extract[
              js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontFeatureSettings]])*
      ): Self = StObject.set(x, "fontFeatureSettings", js.Array(value*))
      
      inline def setFontKerning(
        value: FontKerning | (js.Array[
              (Extract[js.UndefOr[FontKerning | js.Array[NonNullable[js.UndefOr[FontKerning]]]], String]) | NonNullable[js.UndefOr[FontKerning]]
            ])
      ): Self = StObject.set(x, "fontKerning", value.asInstanceOf[js.Any])
      
      inline def setFontKerningUndefined: Self = StObject.set(x, "fontKerning", js.undefined)
      
      inline def setFontKerningVarargs(
        value: ((Extract[js.UndefOr[FontKerning | js.Array[NonNullable[js.UndefOr[FontKerning]]]], String]) | NonNullable[js.UndefOr[FontKerning]])*
      ): Self = StObject.set(x, "fontKerning", js.Array(value*))
      
      inline def setFontLanguageOverride(
        value: FontLanguageOverride | (js.Array[
              (Extract[
                js.UndefOr[FontLanguageOverride | js.Array[NonNullable[js.UndefOr[FontLanguageOverride]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontLanguageOverride]]
            ])
      ): Self = StObject.set(x, "fontLanguageOverride", value.asInstanceOf[js.Any])
      
      inline def setFontLanguageOverrideUndefined: Self = StObject.set(x, "fontLanguageOverride", js.undefined)
      
      inline def setFontLanguageOverrideVarargs(
        value: ((Extract[
              js.UndefOr[FontLanguageOverride | js.Array[NonNullable[js.UndefOr[FontLanguageOverride]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontLanguageOverride]])*
      ): Self = StObject.set(x, "fontLanguageOverride", js.Array(value*))
      
      inline def setFontOpticalSizing(
        value: FontOpticalSizing | (js.Array[
              (Extract[
                js.UndefOr[FontOpticalSizing | js.Array[NonNullable[js.UndefOr[FontOpticalSizing]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontOpticalSizing]]
            ])
      ): Self = StObject.set(x, "fontOpticalSizing", value.asInstanceOf[js.Any])
      
      inline def setFontOpticalSizingUndefined: Self = StObject.set(x, "fontOpticalSizing", js.undefined)
      
      inline def setFontOpticalSizingVarargs(
        value: ((Extract[
              js.UndefOr[FontOpticalSizing | js.Array[NonNullable[js.UndefOr[FontOpticalSizing]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontOpticalSizing]])*
      ): Self = StObject.set(x, "fontOpticalSizing", js.Array(value*))
      
      inline def setFontSize(
        value: (FontSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (FontSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[FontSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "fontSize", value.asInstanceOf[js.Any])
      
      inline def setFontSizeAdjust(
        value: FontSizeAdjust | (js.Array[
              (Extract[
                js.UndefOr[FontSizeAdjust | js.Array[NonNullable[js.UndefOr[FontSizeAdjust]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontSizeAdjust]]
            ])
      ): Self = StObject.set(x, "fontSizeAdjust", value.asInstanceOf[js.Any])
      
      inline def setFontSizeAdjustUndefined: Self = StObject.set(x, "fontSizeAdjust", js.undefined)
      
      inline def setFontSizeAdjustVarargs(
        value: ((Extract[
              js.UndefOr[FontSizeAdjust | js.Array[NonNullable[js.UndefOr[FontSizeAdjust]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontSizeAdjust]])*
      ): Self = StObject.set(x, "fontSizeAdjust", js.Array(value*))
      
      inline def setFontSizeUndefined: Self = StObject.set(x, "fontSize", js.undefined)
      
      inline def setFontSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (FontSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[FontSize[Double | String]]]))*
      ): Self = StObject.set(x, "fontSize", js.Array(value*))
      
      inline def setFontSmooth(
        value: (FontSmooth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]])
            ])
      ): Self = StObject.set(x, "fontSmooth", value.asInstanceOf[js.Any])
      
      inline def setFontSmoothUndefined: Self = StObject.set(x, "fontSmooth", js.undefined)
      
      inline def setFontSmoothVarargs(
        value: ((Extract[
              js.UndefOr[
                (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]]))*
      ): Self = StObject.set(x, "fontSmooth", js.Array(value*))
      
      inline def setFontStretch(
        value: FontStretch | (js.Array[
              (Extract[js.UndefOr[FontStretch | js.Array[NonNullable[js.UndefOr[FontStretch]]]], String]) | NonNullable[js.UndefOr[FontStretch]]
            ])
      ): Self = StObject.set(x, "fontStretch", value.asInstanceOf[js.Any])
      
      inline def setFontStretchUndefined: Self = StObject.set(x, "fontStretch", js.undefined)
      
      inline def setFontStretchVarargs(
        value: ((Extract[js.UndefOr[FontStretch | js.Array[NonNullable[js.UndefOr[FontStretch]]]], String]) | NonNullable[js.UndefOr[FontStretch]])*
      ): Self = StObject.set(x, "fontStretch", js.Array(value*))
      
      inline def setFontStyle(
        value: FontStyle | (js.Array[
              (Extract[js.UndefOr[FontStyle | js.Array[NonNullable[js.UndefOr[FontStyle]]]], String]) | NonNullable[js.UndefOr[FontStyle]]
            ])
      ): Self = StObject.set(x, "fontStyle", value.asInstanceOf[js.Any])
      
      inline def setFontStyleUndefined: Self = StObject.set(x, "fontStyle", js.undefined)
      
      inline def setFontStyleVarargs(
        value: ((Extract[js.UndefOr[FontStyle | js.Array[NonNullable[js.UndefOr[FontStyle]]]], String]) | NonNullable[js.UndefOr[FontStyle]])*
      ): Self = StObject.set(x, "fontStyle", js.Array(value*))
      
      inline def setFontSynthesis(
        value: FontSynthesis | (js.Array[
              (Extract[
                js.UndefOr[FontSynthesis | js.Array[NonNullable[js.UndefOr[FontSynthesis]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontSynthesis]]
            ])
      ): Self = StObject.set(x, "fontSynthesis", value.asInstanceOf[js.Any])
      
      inline def setFontSynthesisUndefined: Self = StObject.set(x, "fontSynthesis", js.undefined)
      
      inline def setFontSynthesisVarargs(
        value: ((Extract[
              js.UndefOr[FontSynthesis | js.Array[NonNullable[js.UndefOr[FontSynthesis]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontSynthesis]])*
      ): Self = StObject.set(x, "fontSynthesis", js.Array(value*))
      
      inline def setFontUndefined: Self = StObject.set(x, "font", js.undefined)
      
      inline def setFontVarargs(
        value: ((Extract[js.UndefOr[Font | js.Array[NonNullable[js.UndefOr[Font]]]], String]) | NonNullable[js.UndefOr[Font]])*
      ): Self = StObject.set(x, "font", js.Array(value*))
      
      inline def setFontVariant(
        value: FontVariant | (js.Array[
              (Extract[js.UndefOr[FontVariant | js.Array[NonNullable[js.UndefOr[FontVariant]]]], String]) | NonNullable[js.UndefOr[FontVariant]]
            ])
      ): Self = StObject.set(x, "fontVariant", value.asInstanceOf[js.Any])
      
      inline def setFontVariantAlternates(
        value: FontVariantAlternates | (js.Array[
              (Extract[
                js.UndefOr[FontVariantAlternates | js.Array[NonNullable[js.UndefOr[FontVariantAlternates]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariantAlternates]]
            ])
      ): Self = StObject.set(x, "fontVariantAlternates", value.asInstanceOf[js.Any])
      
      inline def setFontVariantAlternatesUndefined: Self = StObject.set(x, "fontVariantAlternates", js.undefined)
      
      inline def setFontVariantAlternatesVarargs(
        value: ((Extract[
              js.UndefOr[FontVariantAlternates | js.Array[NonNullable[js.UndefOr[FontVariantAlternates]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariantAlternates]])*
      ): Self = StObject.set(x, "fontVariantAlternates", js.Array(value*))
      
      inline def setFontVariantCaps(
        value: FontVariantCaps | (js.Array[
              (Extract[
                js.UndefOr[FontVariantCaps | js.Array[NonNullable[js.UndefOr[FontVariantCaps]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariantCaps]]
            ])
      ): Self = StObject.set(x, "fontVariantCaps", value.asInstanceOf[js.Any])
      
      inline def setFontVariantCapsUndefined: Self = StObject.set(x, "fontVariantCaps", js.undefined)
      
      inline def setFontVariantCapsVarargs(
        value: ((Extract[
              js.UndefOr[FontVariantCaps | js.Array[NonNullable[js.UndefOr[FontVariantCaps]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariantCaps]])*
      ): Self = StObject.set(x, "fontVariantCaps", js.Array(value*))
      
      inline def setFontVariantEastAsian(
        value: FontVariantEastAsian | (js.Array[
              (Extract[
                js.UndefOr[FontVariantEastAsian | js.Array[NonNullable[js.UndefOr[FontVariantEastAsian]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariantEastAsian]]
            ])
      ): Self = StObject.set(x, "fontVariantEastAsian", value.asInstanceOf[js.Any])
      
      inline def setFontVariantEastAsianUndefined: Self = StObject.set(x, "fontVariantEastAsian", js.undefined)
      
      inline def setFontVariantEastAsianVarargs(
        value: ((Extract[
              js.UndefOr[FontVariantEastAsian | js.Array[NonNullable[js.UndefOr[FontVariantEastAsian]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariantEastAsian]])*
      ): Self = StObject.set(x, "fontVariantEastAsian", js.Array(value*))
      
      inline def setFontVariantLigatures(
        value: FontVariantLigatures | (js.Array[
              (Extract[
                js.UndefOr[FontVariantLigatures | js.Array[NonNullable[js.UndefOr[FontVariantLigatures]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariantLigatures]]
            ])
      ): Self = StObject.set(x, "fontVariantLigatures", value.asInstanceOf[js.Any])
      
      inline def setFontVariantLigaturesUndefined: Self = StObject.set(x, "fontVariantLigatures", js.undefined)
      
      inline def setFontVariantLigaturesVarargs(
        value: ((Extract[
              js.UndefOr[FontVariantLigatures | js.Array[NonNullable[js.UndefOr[FontVariantLigatures]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariantLigatures]])*
      ): Self = StObject.set(x, "fontVariantLigatures", js.Array(value*))
      
      inline def setFontVariantNumeric(
        value: FontVariantNumeric | (js.Array[
              (Extract[
                js.UndefOr[FontVariantNumeric | js.Array[NonNullable[js.UndefOr[FontVariantNumeric]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariantNumeric]]
            ])
      ): Self = StObject.set(x, "fontVariantNumeric", value.asInstanceOf[js.Any])
      
      inline def setFontVariantNumericUndefined: Self = StObject.set(x, "fontVariantNumeric", js.undefined)
      
      inline def setFontVariantNumericVarargs(
        value: ((Extract[
              js.UndefOr[FontVariantNumeric | js.Array[NonNullable[js.UndefOr[FontVariantNumeric]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariantNumeric]])*
      ): Self = StObject.set(x, "fontVariantNumeric", js.Array(value*))
      
      inline def setFontVariantPosition(
        value: FontVariantPosition | (js.Array[
              (Extract[
                js.UndefOr[FontVariantPosition | js.Array[NonNullable[js.UndefOr[FontVariantPosition]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariantPosition]]
            ])
      ): Self = StObject.set(x, "fontVariantPosition", value.asInstanceOf[js.Any])
      
      inline def setFontVariantPositionUndefined: Self = StObject.set(x, "fontVariantPosition", js.undefined)
      
      inline def setFontVariantPositionVarargs(
        value: ((Extract[
              js.UndefOr[FontVariantPosition | js.Array[NonNullable[js.UndefOr[FontVariantPosition]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariantPosition]])*
      ): Self = StObject.set(x, "fontVariantPosition", js.Array(value*))
      
      inline def setFontVariantUndefined: Self = StObject.set(x, "fontVariant", js.undefined)
      
      inline def setFontVariantVarargs(
        value: ((Extract[js.UndefOr[FontVariant | js.Array[NonNullable[js.UndefOr[FontVariant]]]], String]) | NonNullable[js.UndefOr[FontVariant]])*
      ): Self = StObject.set(x, "fontVariant", js.Array(value*))
      
      inline def setFontVariationSettings(
        value: FontVariationSettings | (js.Array[
              (Extract[
                js.UndefOr[FontVariationSettings | js.Array[NonNullable[js.UndefOr[FontVariationSettings]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariationSettings]]
            ])
      ): Self = StObject.set(x, "fontVariationSettings", value.asInstanceOf[js.Any])
      
      inline def setFontVariationSettingsUndefined: Self = StObject.set(x, "fontVariationSettings", js.undefined)
      
      inline def setFontVariationSettingsVarargs(
        value: ((Extract[
              js.UndefOr[FontVariationSettings | js.Array[NonNullable[js.UndefOr[FontVariationSettings]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariationSettings]])*
      ): Self = StObject.set(x, "fontVariationSettings", js.Array(value*))
      
      inline def setFontWeight(
        value: FontWeight | (js.Array[
              (Extract[js.UndefOr[FontWeight | js.Array[NonNullable[js.UndefOr[FontWeight]]]], String]) | NonNullable[js.UndefOr[FontWeight]]
            ])
      ): Self = StObject.set(x, "fontWeight", value.asInstanceOf[js.Any])
      
      inline def setFontWeightUndefined: Self = StObject.set(x, "fontWeight", js.undefined)
      
      inline def setFontWeightVarargs(
        value: ((Extract[js.UndefOr[FontWeight | js.Array[NonNullable[js.UndefOr[FontWeight]]]], String]) | NonNullable[js.UndefOr[FontWeight]])*
      ): Self = StObject.set(x, "fontWeight", js.Array(value*))
      
      inline def setForcedColorAdjust(
        value: ForcedColorAdjust | (js.Array[
              (Extract[
                js.UndefOr[ForcedColorAdjust | js.Array[NonNullable[js.UndefOr[ForcedColorAdjust]]]], 
                String
              ]) | NonNullable[js.UndefOr[ForcedColorAdjust]]
            ])
      ): Self = StObject.set(x, "forcedColorAdjust", value.asInstanceOf[js.Any])
      
      inline def setForcedColorAdjustUndefined: Self = StObject.set(x, "forcedColorAdjust", js.undefined)
      
      inline def setForcedColorAdjustVarargs(
        value: ((Extract[
              js.UndefOr[ForcedColorAdjust | js.Array[NonNullable[js.UndefOr[ForcedColorAdjust]]]], 
              String
            ]) | NonNullable[js.UndefOr[ForcedColorAdjust]])*
      ): Self = StObject.set(x, "forcedColorAdjust", js.Array(value*))
      
      inline def setGap(
        value: (Gap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Gap[Double | String]) | (js.Array[NonNullable[js.UndefOr[Gap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Gap[Double | String]]])
            ])
      ): Self = StObject.set(x, "gap", value.asInstanceOf[js.Any])
      
      inline def setGapUndefined: Self = StObject.set(x, "gap", js.undefined)
      
      inline def setGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (Gap[Double | String]) | (js.Array[NonNullable[js.UndefOr[Gap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Gap[Double | String]]]))*
      ): Self = StObject.set(x, "gap", js.Array(value*))
      
      inline def setGlyphOrientationVertical(
        value: GlyphOrientationVertical | (js.Array[
              (Extract[
                js.UndefOr[
                  GlyphOrientationVertical | js.Array[NonNullable[js.UndefOr[GlyphOrientationVertical]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[GlyphOrientationVertical]]
            ])
      ): Self = StObject.set(x, "glyphOrientationVertical", value.asInstanceOf[js.Any])
      
      inline def setGlyphOrientationVerticalUndefined: Self = StObject.set(x, "glyphOrientationVertical", js.undefined)
      
      inline def setGlyphOrientationVerticalVarargs(
        value: ((Extract[
              js.UndefOr[
                GlyphOrientationVertical | js.Array[NonNullable[js.UndefOr[GlyphOrientationVertical]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[GlyphOrientationVertical]])*
      ): Self = StObject.set(x, "glyphOrientationVertical", js.Array(value*))
      
      inline def setGrid(
        value: Grid | (js.Array[
              (Extract[js.UndefOr[Grid | js.Array[NonNullable[js.UndefOr[Grid]]]], String]) | NonNullable[js.UndefOr[Grid]]
            ])
      ): Self = StObject.set(x, "grid", value.asInstanceOf[js.Any])
      
      inline def setGridArea(
        value: GridArea | (js.Array[
              (Extract[js.UndefOr[GridArea | js.Array[NonNullable[js.UndefOr[GridArea]]]], String]) | NonNullable[js.UndefOr[GridArea]]
            ])
      ): Self = StObject.set(x, "gridArea", value.asInstanceOf[js.Any])
      
      inline def setGridAreaUndefined: Self = StObject.set(x, "gridArea", js.undefined)
      
      inline def setGridAreaVarargs(
        value: ((Extract[js.UndefOr[GridArea | js.Array[NonNullable[js.UndefOr[GridArea]]]], String]) | NonNullable[js.UndefOr[GridArea]])*
      ): Self = StObject.set(x, "gridArea", js.Array(value*))
      
      inline def setGridAutoColumns(
        value: (GridAutoColumns[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (GridAutoColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridAutoColumns[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[GridAutoColumns[Double | String]]])
            ])
      ): Self = StObject.set(x, "gridAutoColumns", value.asInstanceOf[js.Any])
      
      inline def setGridAutoColumnsUndefined: Self = StObject.set(x, "gridAutoColumns", js.undefined)
      
      inline def setGridAutoColumnsVarargs(
        value: ((Extract[
              js.UndefOr[
                (GridAutoColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridAutoColumns[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[GridAutoColumns[Double | String]]]))*
      ): Self = StObject.set(x, "gridAutoColumns", js.Array(value*))
      
      inline def setGridAutoFlow(
        value: GridAutoFlow | (js.Array[
              (Extract[js.UndefOr[GridAutoFlow | js.Array[NonNullable[js.UndefOr[GridAutoFlow]]]], String]) | NonNullable[js.UndefOr[GridAutoFlow]]
            ])
      ): Self = StObject.set(x, "gridAutoFlow", value.asInstanceOf[js.Any])
      
      inline def setGridAutoFlowUndefined: Self = StObject.set(x, "gridAutoFlow", js.undefined)
      
      inline def setGridAutoFlowVarargs(
        value: ((Extract[js.UndefOr[GridAutoFlow | js.Array[NonNullable[js.UndefOr[GridAutoFlow]]]], String]) | NonNullable[js.UndefOr[GridAutoFlow]])*
      ): Self = StObject.set(x, "gridAutoFlow", js.Array(value*))
      
      inline def setGridAutoRows(
        value: (GridAutoRows[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (GridAutoRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridAutoRows[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[GridAutoRows[Double | String]]])
            ])
      ): Self = StObject.set(x, "gridAutoRows", value.asInstanceOf[js.Any])
      
      inline def setGridAutoRowsUndefined: Self = StObject.set(x, "gridAutoRows", js.undefined)
      
      inline def setGridAutoRowsVarargs(
        value: ((Extract[
              js.UndefOr[
                (GridAutoRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridAutoRows[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[GridAutoRows[Double | String]]]))*
      ): Self = StObject.set(x, "gridAutoRows", js.Array(value*))
      
      inline def setGridColumn(
        value: GridColumn | (js.Array[
              (Extract[js.UndefOr[GridColumn | js.Array[NonNullable[js.UndefOr[GridColumn]]]], String]) | NonNullable[js.UndefOr[GridColumn]]
            ])
      ): Self = StObject.set(x, "gridColumn", value.asInstanceOf[js.Any])
      
      inline def setGridColumnEnd(
        value: GridColumnEnd | (js.Array[
              (Extract[
                js.UndefOr[GridColumnEnd | js.Array[NonNullable[js.UndefOr[GridColumnEnd]]]], 
                String
              ]) | NonNullable[js.UndefOr[GridColumnEnd]]
            ])
      ): Self = StObject.set(x, "gridColumnEnd", value.asInstanceOf[js.Any])
      
      inline def setGridColumnEndUndefined: Self = StObject.set(x, "gridColumnEnd", js.undefined)
      
      inline def setGridColumnEndVarargs(
        value: ((Extract[
              js.UndefOr[GridColumnEnd | js.Array[NonNullable[js.UndefOr[GridColumnEnd]]]], 
              String
            ]) | NonNullable[js.UndefOr[GridColumnEnd]])*
      ): Self = StObject.set(x, "gridColumnEnd", js.Array(value*))
      
      inline def setGridColumnGap(
        value: (GridColumnGap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (GridColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridColumnGap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[GridColumnGap[Double | String]]])
            ])
      ): Self = StObject.set(x, "gridColumnGap", value.asInstanceOf[js.Any])
      
      inline def setGridColumnGapUndefined: Self = StObject.set(x, "gridColumnGap", js.undefined)
      
      inline def setGridColumnGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (GridColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridColumnGap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[GridColumnGap[Double | String]]]))*
      ): Self = StObject.set(x, "gridColumnGap", js.Array(value*))
      
      inline def setGridColumnStart(
        value: GridColumnStart | (js.Array[
              (Extract[
                js.UndefOr[GridColumnStart | js.Array[NonNullable[js.UndefOr[GridColumnStart]]]], 
                String
              ]) | NonNullable[js.UndefOr[GridColumnStart]]
            ])
      ): Self = StObject.set(x, "gridColumnStart", value.asInstanceOf[js.Any])
      
      inline def setGridColumnStartUndefined: Self = StObject.set(x, "gridColumnStart", js.undefined)
      
      inline def setGridColumnStartVarargs(
        value: ((Extract[
              js.UndefOr[GridColumnStart | js.Array[NonNullable[js.UndefOr[GridColumnStart]]]], 
              String
            ]) | NonNullable[js.UndefOr[GridColumnStart]])*
      ): Self = StObject.set(x, "gridColumnStart", js.Array(value*))
      
      inline def setGridColumnUndefined: Self = StObject.set(x, "gridColumn", js.undefined)
      
      inline def setGridColumnVarargs(
        value: ((Extract[js.UndefOr[GridColumn | js.Array[NonNullable[js.UndefOr[GridColumn]]]], String]) | NonNullable[js.UndefOr[GridColumn]])*
      ): Self = StObject.set(x, "gridColumn", js.Array(value*))
      
      inline def setGridGap(
        value: (GridGap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (GridGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridGap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[GridGap[Double | String]]])
            ])
      ): Self = StObject.set(x, "gridGap", value.asInstanceOf[js.Any])
      
      inline def setGridGapUndefined: Self = StObject.set(x, "gridGap", js.undefined)
      
      inline def setGridGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (GridGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridGap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[GridGap[Double | String]]]))*
      ): Self = StObject.set(x, "gridGap", js.Array(value*))
      
      inline def setGridRow(
        value: GridRow | (js.Array[
              (Extract[js.UndefOr[GridRow | js.Array[NonNullable[js.UndefOr[GridRow]]]], String]) | NonNullable[js.UndefOr[GridRow]]
            ])
      ): Self = StObject.set(x, "gridRow", value.asInstanceOf[js.Any])
      
      inline def setGridRowEnd(
        value: GridRowEnd | (js.Array[
              (Extract[js.UndefOr[GridRowEnd | js.Array[NonNullable[js.UndefOr[GridRowEnd]]]], String]) | NonNullable[js.UndefOr[GridRowEnd]]
            ])
      ): Self = StObject.set(x, "gridRowEnd", value.asInstanceOf[js.Any])
      
      inline def setGridRowEndUndefined: Self = StObject.set(x, "gridRowEnd", js.undefined)
      
      inline def setGridRowEndVarargs(
        value: ((Extract[js.UndefOr[GridRowEnd | js.Array[NonNullable[js.UndefOr[GridRowEnd]]]], String]) | NonNullable[js.UndefOr[GridRowEnd]])*
      ): Self = StObject.set(x, "gridRowEnd", js.Array(value*))
      
      inline def setGridRowGap(
        value: (GridRowGap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (GridRowGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridRowGap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[GridRowGap[Double | String]]])
            ])
      ): Self = StObject.set(x, "gridRowGap", value.asInstanceOf[js.Any])
      
      inline def setGridRowGapUndefined: Self = StObject.set(x, "gridRowGap", js.undefined)
      
      inline def setGridRowGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (GridRowGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridRowGap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[GridRowGap[Double | String]]]))*
      ): Self = StObject.set(x, "gridRowGap", js.Array(value*))
      
      inline def setGridRowStart(
        value: GridRowStart | (js.Array[
              (Extract[js.UndefOr[GridRowStart | js.Array[NonNullable[js.UndefOr[GridRowStart]]]], String]) | NonNullable[js.UndefOr[GridRowStart]]
            ])
      ): Self = StObject.set(x, "gridRowStart", value.asInstanceOf[js.Any])
      
      inline def setGridRowStartUndefined: Self = StObject.set(x, "gridRowStart", js.undefined)
      
      inline def setGridRowStartVarargs(
        value: ((Extract[js.UndefOr[GridRowStart | js.Array[NonNullable[js.UndefOr[GridRowStart]]]], String]) | NonNullable[js.UndefOr[GridRowStart]])*
      ): Self = StObject.set(x, "gridRowStart", js.Array(value*))
      
      inline def setGridRowUndefined: Self = StObject.set(x, "gridRow", js.undefined)
      
      inline def setGridRowVarargs(
        value: ((Extract[js.UndefOr[GridRow | js.Array[NonNullable[js.UndefOr[GridRow]]]], String]) | NonNullable[js.UndefOr[GridRow]])*
      ): Self = StObject.set(x, "gridRow", js.Array(value*))
      
      inline def setGridTemplate(
        value: GridTemplate | (js.Array[
              (Extract[js.UndefOr[GridTemplate | js.Array[NonNullable[js.UndefOr[GridTemplate]]]], String]) | NonNullable[js.UndefOr[GridTemplate]]
            ])
      ): Self = StObject.set(x, "gridTemplate", value.asInstanceOf[js.Any])
      
      inline def setGridTemplateAreas(
        value: GridTemplateAreas | (js.Array[
              (Extract[
                js.UndefOr[GridTemplateAreas | js.Array[NonNullable[js.UndefOr[GridTemplateAreas]]]], 
                String
              ]) | NonNullable[js.UndefOr[GridTemplateAreas]]
            ])
      ): Self = StObject.set(x, "gridTemplateAreas", value.asInstanceOf[js.Any])
      
      inline def setGridTemplateAreasUndefined: Self = StObject.set(x, "gridTemplateAreas", js.undefined)
      
      inline def setGridTemplateAreasVarargs(
        value: ((Extract[
              js.UndefOr[GridTemplateAreas | js.Array[NonNullable[js.UndefOr[GridTemplateAreas]]]], 
              String
            ]) | NonNullable[js.UndefOr[GridTemplateAreas]])*
      ): Self = StObject.set(x, "gridTemplateAreas", js.Array(value*))
      
      inline def setGridTemplateColumns(
        value: (GridTemplateColumns[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (GridTemplateColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridTemplateColumns[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[GridTemplateColumns[Double | String]]])
            ])
      ): Self = StObject.set(x, "gridTemplateColumns", value.asInstanceOf[js.Any])
      
      inline def setGridTemplateColumnsUndefined: Self = StObject.set(x, "gridTemplateColumns", js.undefined)
      
      inline def setGridTemplateColumnsVarargs(
        value: ((Extract[
              js.UndefOr[
                (GridTemplateColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridTemplateColumns[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[GridTemplateColumns[Double | String]]]))*
      ): Self = StObject.set(x, "gridTemplateColumns", js.Array(value*))
      
      inline def setGridTemplateRows(
        value: (GridTemplateRows[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (GridTemplateRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridTemplateRows[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[GridTemplateRows[Double | String]]])
            ])
      ): Self = StObject.set(x, "gridTemplateRows", value.asInstanceOf[js.Any])
      
      inline def setGridTemplateRowsUndefined: Self = StObject.set(x, "gridTemplateRows", js.undefined)
      
      inline def setGridTemplateRowsVarargs(
        value: ((Extract[
              js.UndefOr[
                (GridTemplateRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[GridTemplateRows[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[GridTemplateRows[Double | String]]]))*
      ): Self = StObject.set(x, "gridTemplateRows", js.Array(value*))
      
      inline def setGridTemplateUndefined: Self = StObject.set(x, "gridTemplate", js.undefined)
      
      inline def setGridTemplateVarargs(
        value: ((Extract[js.UndefOr[GridTemplate | js.Array[NonNullable[js.UndefOr[GridTemplate]]]], String]) | NonNullable[js.UndefOr[GridTemplate]])*
      ): Self = StObject.set(x, "gridTemplate", js.Array(value*))
      
      inline def setGridUndefined: Self = StObject.set(x, "grid", js.undefined)
      
      inline def setGridVarargs(
        value: ((Extract[js.UndefOr[Grid | js.Array[NonNullable[js.UndefOr[Grid]]]], String]) | NonNullable[js.UndefOr[Grid]])*
      ): Self = StObject.set(x, "grid", js.Array(value*))
      
      inline def setHangingPunctuation(
        value: HangingPunctuation | (js.Array[
              (Extract[
                js.UndefOr[HangingPunctuation | js.Array[NonNullable[js.UndefOr[HangingPunctuation]]]], 
                String
              ]) | NonNullable[js.UndefOr[HangingPunctuation]]
            ])
      ): Self = StObject.set(x, "hangingPunctuation", value.asInstanceOf[js.Any])
      
      inline def setHangingPunctuationUndefined: Self = StObject.set(x, "hangingPunctuation", js.undefined)
      
      inline def setHangingPunctuationVarargs(
        value: ((Extract[
              js.UndefOr[HangingPunctuation | js.Array[NonNullable[js.UndefOr[HangingPunctuation]]]], 
              String
            ]) | NonNullable[js.UndefOr[HangingPunctuation]])*
      ): Self = StObject.set(x, "hangingPunctuation", js.Array(value*))
      
      inline def setHeight(
        value: (Height[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Height[Double | String]) | (js.Array[NonNullable[js.UndefOr[Height[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Height[Double | String]]])
            ])
      ): Self = StObject.set(x, "height", value.asInstanceOf[js.Any])
      
      inline def setHeightUndefined: Self = StObject.set(x, "height", js.undefined)
      
      inline def setHeightVarargs(
        value: ((Extract[
              js.UndefOr[
                (Height[Double | String]) | (js.Array[NonNullable[js.UndefOr[Height[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Height[Double | String]]]))*
      ): Self = StObject.set(x, "height", js.Array(value*))
      
      inline def setHyphens(
        value: Hyphens | (js.Array[
              (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
            ])
      ): Self = StObject.set(x, "hyphens", value.asInstanceOf[js.Any])
      
      inline def setHyphensUndefined: Self = StObject.set(x, "hyphens", js.undefined)
      
      inline def setHyphensVarargs(
        value: ((Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]])*
      ): Self = StObject.set(x, "hyphens", js.Array(value*))
      
      inline def setImageOrientation(
        value: ImageOrientation | (js.Array[
              (Extract[
                js.UndefOr[ImageOrientation | js.Array[NonNullable[js.UndefOr[ImageOrientation]]]], 
                String
              ]) | NonNullable[js.UndefOr[ImageOrientation]]
            ])
      ): Self = StObject.set(x, "imageOrientation", value.asInstanceOf[js.Any])
      
      inline def setImageOrientationUndefined: Self = StObject.set(x, "imageOrientation", js.undefined)
      
      inline def setImageOrientationVarargs(
        value: ((Extract[
              js.UndefOr[ImageOrientation | js.Array[NonNullable[js.UndefOr[ImageOrientation]]]], 
              String
            ]) | NonNullable[js.UndefOr[ImageOrientation]])*
      ): Self = StObject.set(x, "imageOrientation", js.Array(value*))
      
      inline def setImageRendering(
        value: ImageRendering | (js.Array[
              (Extract[
                js.UndefOr[ImageRendering | js.Array[NonNullable[js.UndefOr[ImageRendering]]]], 
                String
              ]) | NonNullable[js.UndefOr[ImageRendering]]
            ])
      ): Self = StObject.set(x, "imageRendering", value.asInstanceOf[js.Any])
      
      inline def setImageRenderingUndefined: Self = StObject.set(x, "imageRendering", js.undefined)
      
      inline def setImageRenderingVarargs(
        value: ((Extract[
              js.UndefOr[ImageRendering | js.Array[NonNullable[js.UndefOr[ImageRendering]]]], 
              String
            ]) | NonNullable[js.UndefOr[ImageRendering]])*
      ): Self = StObject.set(x, "imageRendering", js.Array(value*))
      
      inline def setImageResolution(
        value: ImageResolution | (js.Array[
              (Extract[
                js.UndefOr[ImageResolution | js.Array[NonNullable[js.UndefOr[ImageResolution]]]], 
                String
              ]) | NonNullable[js.UndefOr[ImageResolution]]
            ])
      ): Self = StObject.set(x, "imageResolution", value.asInstanceOf[js.Any])
      
      inline def setImageResolutionUndefined: Self = StObject.set(x, "imageResolution", js.undefined)
      
      inline def setImageResolutionVarargs(
        value: ((Extract[
              js.UndefOr[ImageResolution | js.Array[NonNullable[js.UndefOr[ImageResolution]]]], 
              String
            ]) | NonNullable[js.UndefOr[ImageResolution]])*
      ): Self = StObject.set(x, "imageResolution", js.Array(value*))
      
      inline def setImeMode(
        value: ImeMode | (js.Array[
              (Extract[js.UndefOr[ImeMode | js.Array[NonNullable[js.UndefOr[ImeMode]]]], String]) | NonNullable[js.UndefOr[ImeMode]]
            ])
      ): Self = StObject.set(x, "imeMode", value.asInstanceOf[js.Any])
      
      inline def setImeModeUndefined: Self = StObject.set(x, "imeMode", js.undefined)
      
      inline def setImeModeVarargs(
        value: ((Extract[js.UndefOr[ImeMode | js.Array[NonNullable[js.UndefOr[ImeMode]]]], String]) | NonNullable[js.UndefOr[ImeMode]])*
      ): Self = StObject.set(x, "imeMode", js.Array(value*))
      
      inline def setInitialLetter(
        value: InitialLetter | (js.Array[
              (Extract[
                js.UndefOr[InitialLetter | js.Array[NonNullable[js.UndefOr[InitialLetter]]]], 
                String
              ]) | NonNullable[js.UndefOr[InitialLetter]]
            ])
      ): Self = StObject.set(x, "initialLetter", value.asInstanceOf[js.Any])
      
      inline def setInitialLetterUndefined: Self = StObject.set(x, "initialLetter", js.undefined)
      
      inline def setInitialLetterVarargs(
        value: ((Extract[
              js.UndefOr[InitialLetter | js.Array[NonNullable[js.UndefOr[InitialLetter]]]], 
              String
            ]) | NonNullable[js.UndefOr[InitialLetter]])*
      ): Self = StObject.set(x, "initialLetter", js.Array(value*))
      
      inline def setInlineSize(
        value: (InlineSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[InlineSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InlineSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "inlineSize", value.asInstanceOf[js.Any])
      
      inline def setInlineSizeUndefined: Self = StObject.set(x, "inlineSize", js.undefined)
      
      inline def setInlineSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (InlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[InlineSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InlineSize[Double | String]]]))*
      ): Self = StObject.set(x, "inlineSize", js.Array(value*))
      
      inline def setInset(
        value: (Inset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Inset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Inset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Inset[Double | String]]])
            ])
      ): Self = StObject.set(x, "inset", value.asInstanceOf[js.Any])
      
      inline def setInsetBlock(
        value: (InsetBlock[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlock[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetBlock[Double | String]]])
            ])
      ): Self = StObject.set(x, "insetBlock", value.asInstanceOf[js.Any])
      
      inline def setInsetBlockEnd(
        value: (InsetBlockEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "insetBlockEnd", value.asInstanceOf[js.Any])
      
      inline def setInsetBlockEndUndefined: Self = StObject.set(x, "insetBlockEnd", js.undefined)
      
      inline def setInsetBlockEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]))*
      ): Self = StObject.set(x, "insetBlockEnd", js.Array(value*))
      
      inline def setInsetBlockStart(
        value: (InsetBlockStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetBlockStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "insetBlockStart", value.asInstanceOf[js.Any])
      
      inline def setInsetBlockStartUndefined: Self = StObject.set(x, "insetBlockStart", js.undefined)
      
      inline def setInsetBlockStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]))*
      ): Self = StObject.set(x, "insetBlockStart", js.Array(value*))
      
      inline def setInsetBlockUndefined: Self = StObject.set(x, "insetBlock", js.undefined)
      
      inline def setInsetBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlock[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetBlock[Double | String]]]))*
      ): Self = StObject.set(x, "insetBlock", js.Array(value*))
      
      inline def setInsetInline(
        value: (InsetInline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetInline[Double | String]]])
            ])
      ): Self = StObject.set(x, "insetInline", value.asInstanceOf[js.Any])
      
      inline def setInsetInlineEnd(
        value: (InsetInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "insetInlineEnd", value.asInstanceOf[js.Any])
      
      inline def setInsetInlineEndUndefined: Self = StObject.set(x, "insetInlineEnd", js.undefined)
      
      inline def setInsetInlineEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "insetInlineEnd", js.Array(value*))
      
      inline def setInsetInlineStart(
        value: (InsetInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "insetInlineStart", value.asInstanceOf[js.Any])
      
      inline def setInsetInlineStartUndefined: Self = StObject.set(x, "insetInlineStart", js.undefined)
      
      inline def setInsetInlineStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "insetInlineStart", js.Array(value*))
      
      inline def setInsetInlineUndefined: Self = StObject.set(x, "insetInline", js.undefined)
      
      inline def setInsetInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetInline[Double | String]]]))*
      ): Self = StObject.set(x, "insetInline", js.Array(value*))
      
      inline def setInsetUndefined: Self = StObject.set(x, "inset", js.undefined)
      
      inline def setInsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (Inset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Inset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Inset[Double | String]]]))*
      ): Self = StObject.set(x, "inset", js.Array(value*))
      
      inline def setIsolation(
        value: Isolation | (js.Array[
              (Extract[js.UndefOr[Isolation | js.Array[NonNullable[js.UndefOr[Isolation]]]], String]) | NonNullable[js.UndefOr[Isolation]]
            ])
      ): Self = StObject.set(x, "isolation", value.asInstanceOf[js.Any])
      
      inline def setIsolationUndefined: Self = StObject.set(x, "isolation", js.undefined)
      
      inline def setIsolationVarargs(
        value: ((Extract[js.UndefOr[Isolation | js.Array[NonNullable[js.UndefOr[Isolation]]]], String]) | NonNullable[js.UndefOr[Isolation]])*
      ): Self = StObject.set(x, "isolation", js.Array(value*))
      
      inline def setJustifyContent(
        value: JustifyContent | (js.Array[
              (Extract[
                js.UndefOr[JustifyContent | js.Array[NonNullable[js.UndefOr[JustifyContent]]]], 
                String
              ]) | NonNullable[js.UndefOr[JustifyContent]]
            ])
      ): Self = StObject.set(x, "justifyContent", value.asInstanceOf[js.Any])
      
      inline def setJustifyContentUndefined: Self = StObject.set(x, "justifyContent", js.undefined)
      
      inline def setJustifyContentVarargs(
        value: ((Extract[
              js.UndefOr[JustifyContent | js.Array[NonNullable[js.UndefOr[JustifyContent]]]], 
              String
            ]) | NonNullable[js.UndefOr[JustifyContent]])*
      ): Self = StObject.set(x, "justifyContent", js.Array(value*))
      
      inline def setJustifyItems(
        value: JustifyItems | (js.Array[
              (Extract[js.UndefOr[JustifyItems | js.Array[NonNullable[js.UndefOr[JustifyItems]]]], String]) | NonNullable[js.UndefOr[JustifyItems]]
            ])
      ): Self = StObject.set(x, "justifyItems", value.asInstanceOf[js.Any])
      
      inline def setJustifyItemsUndefined: Self = StObject.set(x, "justifyItems", js.undefined)
      
      inline def setJustifyItemsVarargs(
        value: ((Extract[js.UndefOr[JustifyItems | js.Array[NonNullable[js.UndefOr[JustifyItems]]]], String]) | NonNullable[js.UndefOr[JustifyItems]])*
      ): Self = StObject.set(x, "justifyItems", js.Array(value*))
      
      inline def setJustifySelf(
        value: JustifySelf | (js.Array[
              (Extract[js.UndefOr[JustifySelf | js.Array[NonNullable[js.UndefOr[JustifySelf]]]], String]) | NonNullable[js.UndefOr[JustifySelf]]
            ])
      ): Self = StObject.set(x, "justifySelf", value.asInstanceOf[js.Any])
      
      inline def setJustifySelfUndefined: Self = StObject.set(x, "justifySelf", js.undefined)
      
      inline def setJustifySelfVarargs(
        value: ((Extract[js.UndefOr[JustifySelf | js.Array[NonNullable[js.UndefOr[JustifySelf]]]], String]) | NonNullable[js.UndefOr[JustifySelf]])*
      ): Self = StObject.set(x, "justifySelf", js.Array(value*))
      
      inline def setJustifyTracks(
        value: JustifyTracks | (js.Array[
              (Extract[
                js.UndefOr[JustifyTracks | js.Array[NonNullable[js.UndefOr[JustifyTracks]]]], 
                String
              ]) | NonNullable[js.UndefOr[JustifyTracks]]
            ])
      ): Self = StObject.set(x, "justifyTracks", value.asInstanceOf[js.Any])
      
      inline def setJustifyTracksUndefined: Self = StObject.set(x, "justifyTracks", js.undefined)
      
      inline def setJustifyTracksVarargs(
        value: ((Extract[
              js.UndefOr[JustifyTracks | js.Array[NonNullable[js.UndefOr[JustifyTracks]]]], 
              String
            ]) | NonNullable[js.UndefOr[JustifyTracks]])*
      ): Self = StObject.set(x, "justifyTracks", js.Array(value*))
      
      inline def setKhtmlBoxAlign(
        value: BoxAlign | (js.Array[
              (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxAlign", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxAlignUndefined: Self = StObject.set(x, "KhtmlBoxAlign", js.undefined)
      
      inline def setKhtmlBoxAlignVarargs(
        value: ((Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]])*
      ): Self = StObject.set(x, "KhtmlBoxAlign", js.Array(value*))
      
      inline def setKhtmlBoxDirection(
        value: BoxDirection | (js.Array[
              (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxDirection", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxDirectionUndefined: Self = StObject.set(x, "KhtmlBoxDirection", js.undefined)
      
      inline def setKhtmlBoxDirectionVarargs(
        value: ((Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]])*
      ): Self = StObject.set(x, "KhtmlBoxDirection", js.Array(value*))
      
      inline def setKhtmlBoxFlex(
        value: BoxFlex | (js.Array[
              (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxFlex", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxFlexGroup(
        value: BoxFlexGroup | (js.Array[
              (Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxFlexGroup", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxFlexGroupUndefined: Self = StObject.set(x, "KhtmlBoxFlexGroup", js.undefined)
      
      inline def setKhtmlBoxFlexGroupVarargs(
        value: ((Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]])*
      ): Self = StObject.set(x, "KhtmlBoxFlexGroup", js.Array(value*))
      
      inline def setKhtmlBoxFlexUndefined: Self = StObject.set(x, "KhtmlBoxFlex", js.undefined)
      
      inline def setKhtmlBoxFlexVarargs(
        value: ((Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]])*
      ): Self = StObject.set(x, "KhtmlBoxFlex", js.Array(value*))
      
      inline def setKhtmlBoxLines(
        value: BoxLines | (js.Array[
              (Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxLines", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxLinesUndefined: Self = StObject.set(x, "KhtmlBoxLines", js.undefined)
      
      inline def setKhtmlBoxLinesVarargs(
        value: ((Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]])*
      ): Self = StObject.set(x, "KhtmlBoxLines", js.Array(value*))
      
      inline def setKhtmlBoxOrdinalGroup(
        value: BoxOrdinalGroup | (js.Array[
              (Extract[
                js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
                String
              ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxOrdinalGroup", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxOrdinalGroupUndefined: Self = StObject.set(x, "KhtmlBoxOrdinalGroup", js.undefined)
      
      inline def setKhtmlBoxOrdinalGroupVarargs(
        value: ((Extract[
              js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
              String
            ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]])*
      ): Self = StObject.set(x, "KhtmlBoxOrdinalGroup", js.Array(value*))
      
      inline def setKhtmlBoxOrient(
        value: BoxOrient | (js.Array[
              (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxOrient", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxOrientUndefined: Self = StObject.set(x, "KhtmlBoxOrient", js.undefined)
      
      inline def setKhtmlBoxOrientVarargs(
        value: ((Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]])*
      ): Self = StObject.set(x, "KhtmlBoxOrient", js.Array(value*))
      
      inline def setKhtmlBoxPack(
        value: BoxPack | (js.Array[
              (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
            ])
      ): Self = StObject.set(x, "KhtmlBoxPack", value.asInstanceOf[js.Any])
      
      inline def setKhtmlBoxPackUndefined: Self = StObject.set(x, "KhtmlBoxPack", js.undefined)
      
      inline def setKhtmlBoxPackVarargs(
        value: ((Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]])*
      ): Self = StObject.set(x, "KhtmlBoxPack", js.Array(value*))
      
      inline def setKhtmlLineBreak(
        value: LineBreak | (js.Array[
              (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
            ])
      ): Self = StObject.set(x, "KhtmlLineBreak", value.asInstanceOf[js.Any])
      
      inline def setKhtmlLineBreakUndefined: Self = StObject.set(x, "KhtmlLineBreak", js.undefined)
      
      inline def setKhtmlLineBreakVarargs(
        value: ((Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]])*
      ): Self = StObject.set(x, "KhtmlLineBreak", js.Array(value*))
      
      inline def setKhtmlOpacity(
        value: Opacity | (js.Array[
              (Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]]
            ])
      ): Self = StObject.set(x, "KhtmlOpacity", value.asInstanceOf[js.Any])
      
      inline def setKhtmlOpacityUndefined: Self = StObject.set(x, "KhtmlOpacity", js.undefined)
      
      inline def setKhtmlOpacityVarargs(
        value: ((Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]])*
      ): Self = StObject.set(x, "KhtmlOpacity", js.Array(value*))
      
      inline def setKhtmlUserSelect(
        value: UserSelect | (js.Array[
              (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
            ])
      ): Self = StObject.set(x, "KhtmlUserSelect", value.asInstanceOf[js.Any])
      
      inline def setKhtmlUserSelectUndefined: Self = StObject.set(x, "KhtmlUserSelect", js.undefined)
      
      inline def setKhtmlUserSelectVarargs(
        value: ((Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]])*
      ): Self = StObject.set(x, "KhtmlUserSelect", js.Array(value*))
      
      inline def setLeft(
        value: (Left[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Left[Double | String]) | (js.Array[NonNullable[js.UndefOr[Left[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Left[Double | String]]])
            ])
      ): Self = StObject.set(x, "left", value.asInstanceOf[js.Any])
      
      inline def setLeftUndefined: Self = StObject.set(x, "left", js.undefined)
      
      inline def setLeftVarargs(
        value: ((Extract[
              js.UndefOr[
                (Left[Double | String]) | (js.Array[NonNullable[js.UndefOr[Left[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Left[Double | String]]]))*
      ): Self = StObject.set(x, "left", js.Array(value*))
      
      inline def setLetterSpacing(
        value: (LetterSpacing[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (LetterSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[LetterSpacing[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[LetterSpacing[Double | String]]])
            ])
      ): Self = StObject.set(x, "letterSpacing", value.asInstanceOf[js.Any])
      
      inline def setLetterSpacingUndefined: Self = StObject.set(x, "letterSpacing", js.undefined)
      
      inline def setLetterSpacingVarargs(
        value: ((Extract[
              js.UndefOr[
                (LetterSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[LetterSpacing[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[LetterSpacing[Double | String]]]))*
      ): Self = StObject.set(x, "letterSpacing", js.Array(value*))
      
      inline def setLightingColor(
        value: LightingColor | (js.Array[
              (Extract[
                js.UndefOr[LightingColor | js.Array[NonNullable[js.UndefOr[LightingColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[LightingColor]]
            ])
      ): Self = StObject.set(x, "lightingColor", value.asInstanceOf[js.Any])
      
      inline def setLightingColorUndefined: Self = StObject.set(x, "lightingColor", js.undefined)
      
      inline def setLightingColorVarargs(
        value: ((Extract[
              js.UndefOr[LightingColor | js.Array[NonNullable[js.UndefOr[LightingColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[LightingColor]])*
      ): Self = StObject.set(x, "lightingColor", js.Array(value*))
      
      inline def setLineBreak(
        value: LineBreak | (js.Array[
              (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
            ])
      ): Self = StObject.set(x, "lineBreak", value.asInstanceOf[js.Any])
      
      inline def setLineBreakUndefined: Self = StObject.set(x, "lineBreak", js.undefined)
      
      inline def setLineBreakVarargs(
        value: ((Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]])*
      ): Self = StObject.set(x, "lineBreak", js.Array(value*))
      
      inline def setLineClamp(
        value: LineClamp | (js.Array[
              (Extract[js.UndefOr[LineClamp | js.Array[NonNullable[js.UndefOr[LineClamp]]]], String]) | NonNullable[js.UndefOr[LineClamp]]
            ])
      ): Self = StObject.set(x, "lineClamp", value.asInstanceOf[js.Any])
      
      inline def setLineClampUndefined: Self = StObject.set(x, "lineClamp", js.undefined)
      
      inline def setLineClampVarargs(
        value: ((Extract[js.UndefOr[LineClamp | js.Array[NonNullable[js.UndefOr[LineClamp]]]], String]) | NonNullable[js.UndefOr[LineClamp]])*
      ): Self = StObject.set(x, "lineClamp", js.Array(value*))
      
      inline def setLineHeight(
        value: (LineHeight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (LineHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[LineHeight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[LineHeight[Double | String]]])
            ])
      ): Self = StObject.set(x, "lineHeight", value.asInstanceOf[js.Any])
      
      inline def setLineHeightStep(
        value: (LineHeightStep[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (LineHeightStep[Double | String]) | (js.Array[NonNullable[js.UndefOr[LineHeightStep[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[LineHeightStep[Double | String]]])
            ])
      ): Self = StObject.set(x, "lineHeightStep", value.asInstanceOf[js.Any])
      
      inline def setLineHeightStepUndefined: Self = StObject.set(x, "lineHeightStep", js.undefined)
      
      inline def setLineHeightStepVarargs(
        value: ((Extract[
              js.UndefOr[
                (LineHeightStep[Double | String]) | (js.Array[NonNullable[js.UndefOr[LineHeightStep[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[LineHeightStep[Double | String]]]))*
      ): Self = StObject.set(x, "lineHeightStep", js.Array(value*))
      
      inline def setLineHeightUndefined: Self = StObject.set(x, "lineHeight", js.undefined)
      
      inline def setLineHeightVarargs(
        value: ((Extract[
              js.UndefOr[
                (LineHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[LineHeight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[LineHeight[Double | String]]]))*
      ): Self = StObject.set(x, "lineHeight", js.Array(value*))
      
      inline def setListStyle(
        value: ListStyle | (js.Array[
              (Extract[js.UndefOr[ListStyle | js.Array[NonNullable[js.UndefOr[ListStyle]]]], String]) | NonNullable[js.UndefOr[ListStyle]]
            ])
      ): Self = StObject.set(x, "listStyle", value.asInstanceOf[js.Any])
      
      inline def setListStyleImage(
        value: ListStyleImage | (js.Array[
              (Extract[
                js.UndefOr[ListStyleImage | js.Array[NonNullable[js.UndefOr[ListStyleImage]]]], 
                String
              ]) | NonNullable[js.UndefOr[ListStyleImage]]
            ])
      ): Self = StObject.set(x, "listStyleImage", value.asInstanceOf[js.Any])
      
      inline def setListStyleImageUndefined: Self = StObject.set(x, "listStyleImage", js.undefined)
      
      inline def setListStyleImageVarargs(
        value: ((Extract[
              js.UndefOr[ListStyleImage | js.Array[NonNullable[js.UndefOr[ListStyleImage]]]], 
              String
            ]) | NonNullable[js.UndefOr[ListStyleImage]])*
      ): Self = StObject.set(x, "listStyleImage", js.Array(value*))
      
      inline def setListStylePosition(
        value: ListStylePosition | (js.Array[
              (Extract[
                js.UndefOr[ListStylePosition | js.Array[NonNullable[js.UndefOr[ListStylePosition]]]], 
                String
              ]) | NonNullable[js.UndefOr[ListStylePosition]]
            ])
      ): Self = StObject.set(x, "listStylePosition", value.asInstanceOf[js.Any])
      
      inline def setListStylePositionUndefined: Self = StObject.set(x, "listStylePosition", js.undefined)
      
      inline def setListStylePositionVarargs(
        value: ((Extract[
              js.UndefOr[ListStylePosition | js.Array[NonNullable[js.UndefOr[ListStylePosition]]]], 
              String
            ]) | NonNullable[js.UndefOr[ListStylePosition]])*
      ): Self = StObject.set(x, "listStylePosition", js.Array(value*))
      
      inline def setListStyleType(
        value: ListStyleType | (js.Array[
              (Extract[
                js.UndefOr[ListStyleType | js.Array[NonNullable[js.UndefOr[ListStyleType]]]], 
                String
              ]) | NonNullable[js.UndefOr[ListStyleType]]
            ])
      ): Self = StObject.set(x, "listStyleType", value.asInstanceOf[js.Any])
      
      inline def setListStyleTypeUndefined: Self = StObject.set(x, "listStyleType", js.undefined)
      
      inline def setListStyleTypeVarargs(
        value: ((Extract[
              js.UndefOr[ListStyleType | js.Array[NonNullable[js.UndefOr[ListStyleType]]]], 
              String
            ]) | NonNullable[js.UndefOr[ListStyleType]])*
      ): Self = StObject.set(x, "listStyleType", js.Array(value*))
      
      inline def setListStyleUndefined: Self = StObject.set(x, "listStyle", js.undefined)
      
      inline def setListStyleVarargs(
        value: ((Extract[js.UndefOr[ListStyle | js.Array[NonNullable[js.UndefOr[ListStyle]]]], String]) | NonNullable[js.UndefOr[ListStyle]])*
      ): Self = StObject.set(x, "listStyle", js.Array(value*))
      
      inline def setMargin(
        value: (Margin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Margin[Double | String]) | (js.Array[NonNullable[js.UndefOr[Margin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Margin[Double | String]]])
            ])
      ): Self = StObject.set(x, "margin", value.asInstanceOf[js.Any])
      
      inline def setMarginBlock(
        value: (MarginBlock[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlock[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginBlock[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginBlock", value.asInstanceOf[js.Any])
      
      inline def setMarginBlockEnd(
        value: (MarginBlockEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlockEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginBlockEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginBlockEnd", value.asInstanceOf[js.Any])
      
      inline def setMarginBlockEndUndefined: Self = StObject.set(x, "marginBlockEnd", js.undefined)
      
      inline def setMarginBlockEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlockEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginBlockEnd[Double | String]]]))*
      ): Self = StObject.set(x, "marginBlockEnd", js.Array(value*))
      
      inline def setMarginBlockStart(
        value: (MarginBlockStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlockStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginBlockStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginBlockStart", value.asInstanceOf[js.Any])
      
      inline def setMarginBlockStartUndefined: Self = StObject.set(x, "marginBlockStart", js.undefined)
      
      inline def setMarginBlockStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlockStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginBlockStart[Double | String]]]))*
      ): Self = StObject.set(x, "marginBlockStart", js.Array(value*))
      
      inline def setMarginBlockUndefined: Self = StObject.set(x, "marginBlock", js.undefined)
      
      inline def setMarginBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBlock[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginBlock[Double | String]]]))*
      ): Self = StObject.set(x, "marginBlock", js.Array(value*))
      
      inline def setMarginBottom(
        value: (MarginBottom[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBottom[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginBottom[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginBottom", value.asInstanceOf[js.Any])
      
      inline def setMarginBottomUndefined: Self = StObject.set(x, "marginBottom", js.undefined)
      
      inline def setMarginBottomVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginBottom[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginBottom[Double | String]]]))*
      ): Self = StObject.set(x, "marginBottom", js.Array(value*))
      
      inline def setMarginInline(
        value: (MarginInline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginInline[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginInline", value.asInstanceOf[js.Any])
      
      inline def setMarginInlineEnd(
        value: (MarginInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginInlineEnd", value.asInstanceOf[js.Any])
      
      inline def setMarginInlineEndUndefined: Self = StObject.set(x, "marginInlineEnd", js.undefined)
      
      inline def setMarginInlineEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "marginInlineEnd", js.Array(value*))
      
      inline def setMarginInlineStart(
        value: (MarginInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginInlineStart", value.asInstanceOf[js.Any])
      
      inline def setMarginInlineStartUndefined: Self = StObject.set(x, "marginInlineStart", js.undefined)
      
      inline def setMarginInlineStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "marginInlineStart", js.Array(value*))
      
      inline def setMarginInlineUndefined: Self = StObject.set(x, "marginInline", js.undefined)
      
      inline def setMarginInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginInline[Double | String]]]))*
      ): Self = StObject.set(x, "marginInline", js.Array(value*))
      
      inline def setMarginLeft(
        value: (MarginLeft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginLeft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginLeft[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginLeft", value.asInstanceOf[js.Any])
      
      inline def setMarginLeftUndefined: Self = StObject.set(x, "marginLeft", js.undefined)
      
      inline def setMarginLeftVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginLeft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginLeft[Double | String]]]))*
      ): Self = StObject.set(x, "marginLeft", js.Array(value*))
      
      inline def setMarginRight(
        value: (MarginRight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginRight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginRight[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginRight", value.asInstanceOf[js.Any])
      
      inline def setMarginRightUndefined: Self = StObject.set(x, "marginRight", js.undefined)
      
      inline def setMarginRightVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginRight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginRight[Double | String]]]))*
      ): Self = StObject.set(x, "marginRight", js.Array(value*))
      
      inline def setMarginTop(
        value: (MarginTop[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginTop[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginTop[Double | String]]])
            ])
      ): Self = StObject.set(x, "marginTop", value.asInstanceOf[js.Any])
      
      inline def setMarginTopUndefined: Self = StObject.set(x, "marginTop", js.undefined)
      
      inline def setMarginTopVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginTop[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginTop[Double | String]]]))*
      ): Self = StObject.set(x, "marginTop", js.Array(value*))
      
      inline def setMarginUndefined: Self = StObject.set(x, "margin", js.undefined)
      
      inline def setMarginVarargs(
        value: ((Extract[
              js.UndefOr[
                (Margin[Double | String]) | (js.Array[NonNullable[js.UndefOr[Margin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Margin[Double | String]]]))*
      ): Self = StObject.set(x, "margin", js.Array(value*))
      
      inline def setMarker(
        value: Marker | (js.Array[
              (Extract[js.UndefOr[Marker | js.Array[NonNullable[js.UndefOr[Marker]]]], String]) | NonNullable[js.UndefOr[Marker]]
            ])
      ): Self = StObject.set(x, "marker", value.asInstanceOf[js.Any])
      
      inline def setMarkerEnd(
        value: MarkerEnd | (js.Array[
              (Extract[js.UndefOr[MarkerEnd | js.Array[NonNullable[js.UndefOr[MarkerEnd]]]], String]) | NonNullable[js.UndefOr[MarkerEnd]]
            ])
      ): Self = StObject.set(x, "markerEnd", value.asInstanceOf[js.Any])
      
      inline def setMarkerEndUndefined: Self = StObject.set(x, "markerEnd", js.undefined)
      
      inline def setMarkerEndVarargs(
        value: ((Extract[js.UndefOr[MarkerEnd | js.Array[NonNullable[js.UndefOr[MarkerEnd]]]], String]) | NonNullable[js.UndefOr[MarkerEnd]])*
      ): Self = StObject.set(x, "markerEnd", js.Array(value*))
      
      inline def setMarkerMid(
        value: MarkerMid | (js.Array[
              (Extract[js.UndefOr[MarkerMid | js.Array[NonNullable[js.UndefOr[MarkerMid]]]], String]) | NonNullable[js.UndefOr[MarkerMid]]
            ])
      ): Self = StObject.set(x, "markerMid", value.asInstanceOf[js.Any])
      
      inline def setMarkerMidUndefined: Self = StObject.set(x, "markerMid", js.undefined)
      
      inline def setMarkerMidVarargs(
        value: ((Extract[js.UndefOr[MarkerMid | js.Array[NonNullable[js.UndefOr[MarkerMid]]]], String]) | NonNullable[js.UndefOr[MarkerMid]])*
      ): Self = StObject.set(x, "markerMid", js.Array(value*))
      
      inline def setMarkerStart(
        value: MarkerStart | (js.Array[
              (Extract[js.UndefOr[MarkerStart | js.Array[NonNullable[js.UndefOr[MarkerStart]]]], String]) | NonNullable[js.UndefOr[MarkerStart]]
            ])
      ): Self = StObject.set(x, "markerStart", value.asInstanceOf[js.Any])
      
      inline def setMarkerStartUndefined: Self = StObject.set(x, "markerStart", js.undefined)
      
      inline def setMarkerStartVarargs(
        value: ((Extract[js.UndefOr[MarkerStart | js.Array[NonNullable[js.UndefOr[MarkerStart]]]], String]) | NonNullable[js.UndefOr[MarkerStart]])*
      ): Self = StObject.set(x, "markerStart", js.Array(value*))
      
      inline def setMarkerUndefined: Self = StObject.set(x, "marker", js.undefined)
      
      inline def setMarkerVarargs(
        value: ((Extract[js.UndefOr[Marker | js.Array[NonNullable[js.UndefOr[Marker]]]], String]) | NonNullable[js.UndefOr[Marker]])*
      ): Self = StObject.set(x, "marker", js.Array(value*))
      
      inline def setMask(
        value: (Mask[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Mask[Double | String]) | (js.Array[NonNullable[js.UndefOr[Mask[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Mask[Double | String]]])
            ])
      ): Self = StObject.set(x, "mask", value.asInstanceOf[js.Any])
      
      inline def setMaskBorder(
        value: MaskBorder | (js.Array[
              (Extract[js.UndefOr[MaskBorder | js.Array[NonNullable[js.UndefOr[MaskBorder]]]], String]) | NonNullable[js.UndefOr[MaskBorder]]
            ])
      ): Self = StObject.set(x, "maskBorder", value.asInstanceOf[js.Any])
      
      inline def setMaskBorderMode(
        value: MaskBorderMode | (js.Array[
              (Extract[
                js.UndefOr[MaskBorderMode | js.Array[NonNullable[js.UndefOr[MaskBorderMode]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskBorderMode]]
            ])
      ): Self = StObject.set(x, "maskBorderMode", value.asInstanceOf[js.Any])
      
      inline def setMaskBorderModeUndefined: Self = StObject.set(x, "maskBorderMode", js.undefined)
      
      inline def setMaskBorderModeVarargs(
        value: ((Extract[
              js.UndefOr[MaskBorderMode | js.Array[NonNullable[js.UndefOr[MaskBorderMode]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskBorderMode]])*
      ): Self = StObject.set(x, "maskBorderMode", js.Array(value*))
      
      inline def setMaskBorderOutset(
        value: (MaskBorderOutset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaskBorderOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]])
            ])
      ): Self = StObject.set(x, "maskBorderOutset", value.asInstanceOf[js.Any])
      
      inline def setMaskBorderOutsetUndefined: Self = StObject.set(x, "maskBorderOutset", js.undefined)
      
      inline def setMaskBorderOutsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaskBorderOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]))*
      ): Self = StObject.set(x, "maskBorderOutset", js.Array(value*))
      
      inline def setMaskBorderRepeat(
        value: MaskBorderRepeat | (js.Array[
              (Extract[
                js.UndefOr[MaskBorderRepeat | js.Array[NonNullable[js.UndefOr[MaskBorderRepeat]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskBorderRepeat]]
            ])
      ): Self = StObject.set(x, "maskBorderRepeat", value.asInstanceOf[js.Any])
      
      inline def setMaskBorderRepeatUndefined: Self = StObject.set(x, "maskBorderRepeat", js.undefined)
      
      inline def setMaskBorderRepeatVarargs(
        value: ((Extract[
              js.UndefOr[MaskBorderRepeat | js.Array[NonNullable[js.UndefOr[MaskBorderRepeat]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskBorderRepeat]])*
      ): Self = StObject.set(x, "maskBorderRepeat", js.Array(value*))
      
      inline def setMaskBorderSlice(
        value: MaskBorderSlice | (js.Array[
              (Extract[
                js.UndefOr[MaskBorderSlice | js.Array[NonNullable[js.UndefOr[MaskBorderSlice]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskBorderSlice]]
            ])
      ): Self = StObject.set(x, "maskBorderSlice", value.asInstanceOf[js.Any])
      
      inline def setMaskBorderSliceUndefined: Self = StObject.set(x, "maskBorderSlice", js.undefined)
      
      inline def setMaskBorderSliceVarargs(
        value: ((Extract[
              js.UndefOr[MaskBorderSlice | js.Array[NonNullable[js.UndefOr[MaskBorderSlice]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskBorderSlice]])*
      ): Self = StObject.set(x, "maskBorderSlice", js.Array(value*))
      
      inline def setMaskBorderSource(
        value: MaskBorderSource | (js.Array[
              (Extract[
                js.UndefOr[MaskBorderSource | js.Array[NonNullable[js.UndefOr[MaskBorderSource]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskBorderSource]]
            ])
      ): Self = StObject.set(x, "maskBorderSource", value.asInstanceOf[js.Any])
      
      inline def setMaskBorderSourceUndefined: Self = StObject.set(x, "maskBorderSource", js.undefined)
      
      inline def setMaskBorderSourceVarargs(
        value: ((Extract[
              js.UndefOr[MaskBorderSource | js.Array[NonNullable[js.UndefOr[MaskBorderSource]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskBorderSource]])*
      ): Self = StObject.set(x, "maskBorderSource", js.Array(value*))
      
      inline def setMaskBorderUndefined: Self = StObject.set(x, "maskBorder", js.undefined)
      
      inline def setMaskBorderVarargs(
        value: ((Extract[js.UndefOr[MaskBorder | js.Array[NonNullable[js.UndefOr[MaskBorder]]]], String]) | NonNullable[js.UndefOr[MaskBorder]])*
      ): Self = StObject.set(x, "maskBorder", js.Array(value*))
      
      inline def setMaskBorderWidth(
        value: (MaskBorderWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaskBorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "maskBorderWidth", value.asInstanceOf[js.Any])
      
      inline def setMaskBorderWidthUndefined: Self = StObject.set(x, "maskBorderWidth", js.undefined)
      
      inline def setMaskBorderWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaskBorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]))*
      ): Self = StObject.set(x, "maskBorderWidth", js.Array(value*))
      
      inline def setMaskClip(
        value: MaskClip | (js.Array[
              (Extract[js.UndefOr[MaskClip | js.Array[NonNullable[js.UndefOr[MaskClip]]]], String]) | NonNullable[js.UndefOr[MaskClip]]
            ])
      ): Self = StObject.set(x, "maskClip", value.asInstanceOf[js.Any])
      
      inline def setMaskClipUndefined: Self = StObject.set(x, "maskClip", js.undefined)
      
      inline def setMaskClipVarargs(
        value: ((Extract[js.UndefOr[MaskClip | js.Array[NonNullable[js.UndefOr[MaskClip]]]], String]) | NonNullable[js.UndefOr[MaskClip]])*
      ): Self = StObject.set(x, "maskClip", js.Array(value*))
      
      inline def setMaskComposite(
        value: MaskComposite | (js.Array[
              (Extract[
                js.UndefOr[MaskComposite | js.Array[NonNullable[js.UndefOr[MaskComposite]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskComposite]]
            ])
      ): Self = StObject.set(x, "maskComposite", value.asInstanceOf[js.Any])
      
      inline def setMaskCompositeUndefined: Self = StObject.set(x, "maskComposite", js.undefined)
      
      inline def setMaskCompositeVarargs(
        value: ((Extract[
              js.UndefOr[MaskComposite | js.Array[NonNullable[js.UndefOr[MaskComposite]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskComposite]])*
      ): Self = StObject.set(x, "maskComposite", js.Array(value*))
      
      inline def setMaskImage(
        value: MaskImage | (js.Array[
              (Extract[js.UndefOr[MaskImage | js.Array[NonNullable[js.UndefOr[MaskImage]]]], String]) | NonNullable[js.UndefOr[MaskImage]]
            ])
      ): Self = StObject.set(x, "maskImage", value.asInstanceOf[js.Any])
      
      inline def setMaskImageUndefined: Self = StObject.set(x, "maskImage", js.undefined)
      
      inline def setMaskImageVarargs(
        value: ((Extract[js.UndefOr[MaskImage | js.Array[NonNullable[js.UndefOr[MaskImage]]]], String]) | NonNullable[js.UndefOr[MaskImage]])*
      ): Self = StObject.set(x, "maskImage", js.Array(value*))
      
      inline def setMaskMode(
        value: MaskMode | (js.Array[
              (Extract[js.UndefOr[MaskMode | js.Array[NonNullable[js.UndefOr[MaskMode]]]], String]) | NonNullable[js.UndefOr[MaskMode]]
            ])
      ): Self = StObject.set(x, "maskMode", value.asInstanceOf[js.Any])
      
      inline def setMaskModeUndefined: Self = StObject.set(x, "maskMode", js.undefined)
      
      inline def setMaskModeVarargs(
        value: ((Extract[js.UndefOr[MaskMode | js.Array[NonNullable[js.UndefOr[MaskMode]]]], String]) | NonNullable[js.UndefOr[MaskMode]])*
      ): Self = StObject.set(x, "maskMode", js.Array(value*))
      
      inline def setMaskOrigin(
        value: MaskOrigin | (js.Array[
              (Extract[js.UndefOr[MaskOrigin | js.Array[NonNullable[js.UndefOr[MaskOrigin]]]], String]) | NonNullable[js.UndefOr[MaskOrigin]]
            ])
      ): Self = StObject.set(x, "maskOrigin", value.asInstanceOf[js.Any])
      
      inline def setMaskOriginUndefined: Self = StObject.set(x, "maskOrigin", js.undefined)
      
      inline def setMaskOriginVarargs(
        value: ((Extract[js.UndefOr[MaskOrigin | js.Array[NonNullable[js.UndefOr[MaskOrigin]]]], String]) | NonNullable[js.UndefOr[MaskOrigin]])*
      ): Self = StObject.set(x, "maskOrigin", js.Array(value*))
      
      inline def setMaskPosition(
        value: (MaskPosition[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaskPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskPosition[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaskPosition[Double | String]]])
            ])
      ): Self = StObject.set(x, "maskPosition", value.asInstanceOf[js.Any])
      
      inline def setMaskPositionUndefined: Self = StObject.set(x, "maskPosition", js.undefined)
      
      inline def setMaskPositionVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaskPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskPosition[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaskPosition[Double | String]]]))*
      ): Self = StObject.set(x, "maskPosition", js.Array(value*))
      
      inline def setMaskRepeat(
        value: MaskRepeat | (js.Array[
              (Extract[js.UndefOr[MaskRepeat | js.Array[NonNullable[js.UndefOr[MaskRepeat]]]], String]) | NonNullable[js.UndefOr[MaskRepeat]]
            ])
      ): Self = StObject.set(x, "maskRepeat", value.asInstanceOf[js.Any])
      
      inline def setMaskRepeatUndefined: Self = StObject.set(x, "maskRepeat", js.undefined)
      
      inline def setMaskRepeatVarargs(
        value: ((Extract[js.UndefOr[MaskRepeat | js.Array[NonNullable[js.UndefOr[MaskRepeat]]]], String]) | NonNullable[js.UndefOr[MaskRepeat]])*
      ): Self = StObject.set(x, "maskRepeat", js.Array(value*))
      
      inline def setMaskSize(
        value: (MaskSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaskSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaskSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "maskSize", value.asInstanceOf[js.Any])
      
      inline def setMaskSizeUndefined: Self = StObject.set(x, "maskSize", js.undefined)
      
      inline def setMaskSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaskSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaskSize[Double | String]]]))*
      ): Self = StObject.set(x, "maskSize", js.Array(value*))
      
      inline def setMaskType(
        value: MaskType | (js.Array[
              (Extract[js.UndefOr[MaskType | js.Array[NonNullable[js.UndefOr[MaskType]]]], String]) | NonNullable[js.UndefOr[MaskType]]
            ])
      ): Self = StObject.set(x, "maskType", value.asInstanceOf[js.Any])
      
      inline def setMaskTypeUndefined: Self = StObject.set(x, "maskType", js.undefined)
      
      inline def setMaskTypeVarargs(
        value: ((Extract[js.UndefOr[MaskType | js.Array[NonNullable[js.UndefOr[MaskType]]]], String]) | NonNullable[js.UndefOr[MaskType]])*
      ): Self = StObject.set(x, "maskType", js.Array(value*))
      
      inline def setMaskUndefined: Self = StObject.set(x, "mask", js.undefined)
      
      inline def setMaskVarargs(
        value: ((Extract[
              js.UndefOr[
                (Mask[Double | String]) | (js.Array[NonNullable[js.UndefOr[Mask[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Mask[Double | String]]]))*
      ): Self = StObject.set(x, "mask", js.Array(value*))
      
      inline def setMathStyle(
        value: MathStyle | (js.Array[
              (Extract[js.UndefOr[MathStyle | js.Array[NonNullable[js.UndefOr[MathStyle]]]], String]) | NonNullable[js.UndefOr[MathStyle]]
            ])
      ): Self = StObject.set(x, "mathStyle", value.asInstanceOf[js.Any])
      
      inline def setMathStyleUndefined: Self = StObject.set(x, "mathStyle", js.undefined)
      
      inline def setMathStyleVarargs(
        value: ((Extract[js.UndefOr[MathStyle | js.Array[NonNullable[js.UndefOr[MathStyle]]]], String]) | NonNullable[js.UndefOr[MathStyle]])*
      ): Self = StObject.set(x, "mathStyle", js.Array(value*))
      
      inline def setMaxBlockSize(
        value: (MaxBlockSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaxBlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxBlockSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaxBlockSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "maxBlockSize", value.asInstanceOf[js.Any])
      
      inline def setMaxBlockSizeUndefined: Self = StObject.set(x, "maxBlockSize", js.undefined)
      
      inline def setMaxBlockSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaxBlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxBlockSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaxBlockSize[Double | String]]]))*
      ): Self = StObject.set(x, "maxBlockSize", js.Array(value*))
      
      inline def setMaxHeight(
        value: (MaxHeight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaxHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxHeight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaxHeight[Double | String]]])
            ])
      ): Self = StObject.set(x, "maxHeight", value.asInstanceOf[js.Any])
      
      inline def setMaxHeightUndefined: Self = StObject.set(x, "maxHeight", js.undefined)
      
      inline def setMaxHeightVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaxHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxHeight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaxHeight[Double | String]]]))*
      ): Self = StObject.set(x, "maxHeight", js.Array(value*))
      
      inline def setMaxInlineSize(
        value: (MaxInlineSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaxInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaxInlineSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "maxInlineSize", value.asInstanceOf[js.Any])
      
      inline def setMaxInlineSizeUndefined: Self = StObject.set(x, "maxInlineSize", js.undefined)
      
      inline def setMaxInlineSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaxInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]))*
      ): Self = StObject.set(x, "maxInlineSize", js.Array(value*))
      
      inline def setMaxLines(
        value: MaxLines | (js.Array[
              (Extract[js.UndefOr[MaxLines | js.Array[NonNullable[js.UndefOr[MaxLines]]]], String]) | NonNullable[js.UndefOr[MaxLines]]
            ])
      ): Self = StObject.set(x, "maxLines", value.asInstanceOf[js.Any])
      
      inline def setMaxLinesUndefined: Self = StObject.set(x, "maxLines", js.undefined)
      
      inline def setMaxLinesVarargs(
        value: ((Extract[js.UndefOr[MaxLines | js.Array[NonNullable[js.UndefOr[MaxLines]]]], String]) | NonNullable[js.UndefOr[MaxLines]])*
      ): Self = StObject.set(x, "maxLines", js.Array(value*))
      
      inline def setMaxWidth(
        value: (MaxWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaxWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaxWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "maxWidth", value.asInstanceOf[js.Any])
      
      inline def setMaxWidthUndefined: Self = StObject.set(x, "maxWidth", js.undefined)
      
      inline def setMaxWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaxWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaxWidth[Double | String]]]))*
      ): Self = StObject.set(x, "maxWidth", js.Array(value*))
      
      inline def setMinBlockSize(
        value: (MinBlockSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MinBlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinBlockSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MinBlockSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "minBlockSize", value.asInstanceOf[js.Any])
      
      inline def setMinBlockSizeUndefined: Self = StObject.set(x, "minBlockSize", js.undefined)
      
      inline def setMinBlockSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (MinBlockSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinBlockSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MinBlockSize[Double | String]]]))*
      ): Self = StObject.set(x, "minBlockSize", js.Array(value*))
      
      inline def setMinHeight(
        value: (MinHeight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MinHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinHeight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MinHeight[Double | String]]])
            ])
      ): Self = StObject.set(x, "minHeight", value.asInstanceOf[js.Any])
      
      inline def setMinHeightUndefined: Self = StObject.set(x, "minHeight", js.undefined)
      
      inline def setMinHeightVarargs(
        value: ((Extract[
              js.UndefOr[
                (MinHeight[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinHeight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MinHeight[Double | String]]]))*
      ): Self = StObject.set(x, "minHeight", js.Array(value*))
      
      inline def setMinInlineSize(
        value: (MinInlineSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MinInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinInlineSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MinInlineSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "minInlineSize", value.asInstanceOf[js.Any])
      
      inline def setMinInlineSizeUndefined: Self = StObject.set(x, "minInlineSize", js.undefined)
      
      inline def setMinInlineSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (MinInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinInlineSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MinInlineSize[Double | String]]]))*
      ): Self = StObject.set(x, "minInlineSize", js.Array(value*))
      
      inline def setMinWidth(
        value: (MinWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MinWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MinWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "minWidth", value.asInstanceOf[js.Any])
      
      inline def setMinWidthUndefined: Self = StObject.set(x, "minWidth", js.undefined)
      
      inline def setMinWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (MinWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MinWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MinWidth[Double | String]]]))*
      ): Self = StObject.set(x, "minWidth", js.Array(value*))
      
      inline def setMixBlendMode(
        value: MixBlendMode | (js.Array[
              (Extract[js.UndefOr[MixBlendMode | js.Array[NonNullable[js.UndefOr[MixBlendMode]]]], String]) | NonNullable[js.UndefOr[MixBlendMode]]
            ])
      ): Self = StObject.set(x, "mixBlendMode", value.asInstanceOf[js.Any])
      
      inline def setMixBlendModeUndefined: Self = StObject.set(x, "mixBlendMode", js.undefined)
      
      inline def setMixBlendModeVarargs(
        value: ((Extract[js.UndefOr[MixBlendMode | js.Array[NonNullable[js.UndefOr[MixBlendMode]]]], String]) | NonNullable[js.UndefOr[MixBlendMode]])*
      ): Self = StObject.set(x, "mixBlendMode", js.Array(value*))
      
      inline def setMotion(
        value: (Offset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Offset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Offset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Offset[Double | String]]])
            ])
      ): Self = StObject.set(x, "motion", value.asInstanceOf[js.Any])
      
      inline def setMotionDistance(
        value: (OffsetDistance[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (OffsetDistance[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetDistance[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[OffsetDistance[Double | String]]])
            ])
      ): Self = StObject.set(x, "motionDistance", value.asInstanceOf[js.Any])
      
      inline def setMotionDistanceUndefined: Self = StObject.set(x, "motionDistance", js.undefined)
      
      inline def setMotionDistanceVarargs(
        value: ((Extract[
              js.UndefOr[
                (OffsetDistance[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetDistance[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[OffsetDistance[Double | String]]]))*
      ): Self = StObject.set(x, "motionDistance", js.Array(value*))
      
      inline def setMotionPath(
        value: OffsetPath | (js.Array[
              (Extract[js.UndefOr[OffsetPath | js.Array[NonNullable[js.UndefOr[OffsetPath]]]], String]) | NonNullable[js.UndefOr[OffsetPath]]
            ])
      ): Self = StObject.set(x, "motionPath", value.asInstanceOf[js.Any])
      
      inline def setMotionPathUndefined: Self = StObject.set(x, "motionPath", js.undefined)
      
      inline def setMotionPathVarargs(
        value: ((Extract[js.UndefOr[OffsetPath | js.Array[NonNullable[js.UndefOr[OffsetPath]]]], String]) | NonNullable[js.UndefOr[OffsetPath]])*
      ): Self = StObject.set(x, "motionPath", js.Array(value*))
      
      inline def setMotionRotation(
        value: OffsetRotate | (js.Array[
              (Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]]
            ])
      ): Self = StObject.set(x, "motionRotation", value.asInstanceOf[js.Any])
      
      inline def setMotionRotationUndefined: Self = StObject.set(x, "motionRotation", js.undefined)
      
      inline def setMotionRotationVarargs(
        value: ((Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]])*
      ): Self = StObject.set(x, "motionRotation", js.Array(value*))
      
      inline def setMotionUndefined: Self = StObject.set(x, "motion", js.undefined)
      
      inline def setMotionVarargs(
        value: ((Extract[
              js.UndefOr[
                (Offset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Offset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Offset[Double | String]]]))*
      ): Self = StObject.set(x, "motion", js.Array(value*))
      
      inline def setMozAnimation(
        value: Animation[String] | (js.Array[
              (Extract[
                js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Animation[String]]]
            ])
      ): Self = StObject.set(x, "MozAnimation", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationDelay(
        value: AnimationDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
            ])
      ): Self = StObject.set(x, "MozAnimationDelay", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationDelayUndefined: Self = StObject.set(x, "MozAnimationDelay", js.undefined)
      
      inline def setMozAnimationDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDelay[String]]])*
      ): Self = StObject.set(x, "MozAnimationDelay", js.Array(value*))
      
      inline def setMozAnimationDirection(
        value: AnimationDirection | (js.Array[
              (Extract[
                js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDirection]]
            ])
      ): Self = StObject.set(x, "MozAnimationDirection", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationDirectionUndefined: Self = StObject.set(x, "MozAnimationDirection", js.undefined)
      
      inline def setMozAnimationDirectionVarargs(
        value: ((Extract[
              js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDirection]])*
      ): Self = StObject.set(x, "MozAnimationDirection", js.Array(value*))
      
      inline def setMozAnimationDuration(
        value: AnimationDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
            ])
      ): Self = StObject.set(x, "MozAnimationDuration", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationDurationUndefined: Self = StObject.set(x, "MozAnimationDuration", js.undefined)
      
      inline def setMozAnimationDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDuration[String]]])*
      ): Self = StObject.set(x, "MozAnimationDuration", js.Array(value*))
      
      inline def setMozAnimationFillMode(
        value: AnimationFillMode | (js.Array[
              (Extract[
                js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationFillMode]]
            ])
      ): Self = StObject.set(x, "MozAnimationFillMode", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationFillModeUndefined: Self = StObject.set(x, "MozAnimationFillMode", js.undefined)
      
      inline def setMozAnimationFillModeVarargs(
        value: ((Extract[
              js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationFillMode]])*
      ): Self = StObject.set(x, "MozAnimationFillMode", js.Array(value*))
      
      inline def setMozAnimationIterationCount(
        value: AnimationIterationCount | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
            ])
      ): Self = StObject.set(x, "MozAnimationIterationCount", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationIterationCountUndefined: Self = StObject.set(x, "MozAnimationIterationCount", js.undefined)
      
      inline def setMozAnimationIterationCountVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationIterationCount]])*
      ): Self = StObject.set(x, "MozAnimationIterationCount", js.Array(value*))
      
      inline def setMozAnimationName(
        value: AnimationName | (js.Array[
              (Extract[
                js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationName]]
            ])
      ): Self = StObject.set(x, "MozAnimationName", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationNameUndefined: Self = StObject.set(x, "MozAnimationName", js.undefined)
      
      inline def setMozAnimationNameVarargs(
        value: ((Extract[
              js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationName]])*
      ): Self = StObject.set(x, "MozAnimationName", js.Array(value*))
      
      inline def setMozAnimationPlayState(
        value: AnimationPlayState | (js.Array[
              (Extract[
                js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationPlayState]]
            ])
      ): Self = StObject.set(x, "MozAnimationPlayState", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationPlayStateUndefined: Self = StObject.set(x, "MozAnimationPlayState", js.undefined)
      
      inline def setMozAnimationPlayStateVarargs(
        value: ((Extract[
              js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationPlayState]])*
      ): Self = StObject.set(x, "MozAnimationPlayState", js.Array(value*))
      
      inline def setMozAnimationTimingFunction(
        value: AnimationTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
            ])
      ): Self = StObject.set(x, "MozAnimationTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setMozAnimationTimingFunctionUndefined: Self = StObject.set(x, "MozAnimationTimingFunction", js.undefined)
      
      inline def setMozAnimationTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationTimingFunction]])*
      ): Self = StObject.set(x, "MozAnimationTimingFunction", js.Array(value*))
      
      inline def setMozAnimationUndefined: Self = StObject.set(x, "MozAnimation", js.undefined)
      
      inline def setMozAnimationVarargs(
        value: ((Extract[
              js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Animation[String]]])*
      ): Self = StObject.set(x, "MozAnimation", js.Array(value*))
      
      inline def setMozAppearance(
        value: MozAppearance | (js.Array[
              (Extract[
                js.UndefOr[MozAppearance | js.Array[NonNullable[js.UndefOr[MozAppearance]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozAppearance]]
            ])
      ): Self = StObject.set(x, "MozAppearance", value.asInstanceOf[js.Any])
      
      inline def setMozAppearanceUndefined: Self = StObject.set(x, "MozAppearance", js.undefined)
      
      inline def setMozAppearanceVarargs(
        value: ((Extract[
              js.UndefOr[MozAppearance | js.Array[NonNullable[js.UndefOr[MozAppearance]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozAppearance]])*
      ): Self = StObject.set(x, "MozAppearance", js.Array(value*))
      
      inline def setMozBackfaceVisibility(
        value: BackfaceVisibility | (js.Array[
              (Extract[
                js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackfaceVisibility]]
            ])
      ): Self = StObject.set(x, "MozBackfaceVisibility", value.asInstanceOf[js.Any])
      
      inline def setMozBackfaceVisibilityUndefined: Self = StObject.set(x, "MozBackfaceVisibility", js.undefined)
      
      inline def setMozBackfaceVisibilityVarargs(
        value: ((Extract[
              js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackfaceVisibility]])*
      ): Self = StObject.set(x, "MozBackfaceVisibility", js.Array(value*))
      
      inline def setMozBackgroundClip(
        value: BackgroundClip | (js.Array[
              (Extract[
                js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundClip]]
            ])
      ): Self = StObject.set(x, "MozBackgroundClip", value.asInstanceOf[js.Any])
      
      inline def setMozBackgroundClipUndefined: Self = StObject.set(x, "MozBackgroundClip", js.undefined)
      
      inline def setMozBackgroundClipVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundClip]])*
      ): Self = StObject.set(x, "MozBackgroundClip", js.Array(value*))
      
      inline def setMozBackgroundInlinePolicy(
        value: BoxDecorationBreak | (js.Array[
              (Extract[
                js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
                String
              ]) | NonNullable[js.UndefOr[BoxDecorationBreak]]
            ])
      ): Self = StObject.set(x, "MozBackgroundInlinePolicy", value.asInstanceOf[js.Any])
      
      inline def setMozBackgroundInlinePolicyUndefined: Self = StObject.set(x, "MozBackgroundInlinePolicy", js.undefined)
      
      inline def setMozBackgroundInlinePolicyVarargs(
        value: ((Extract[
              js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
              String
            ]) | NonNullable[js.UndefOr[BoxDecorationBreak]])*
      ): Self = StObject.set(x, "MozBackgroundInlinePolicy", js.Array(value*))
      
      inline def setMozBackgroundOrigin(
        value: BackgroundOrigin | (js.Array[
              (Extract[
                js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundOrigin]]
            ])
      ): Self = StObject.set(x, "MozBackgroundOrigin", value.asInstanceOf[js.Any])
      
      inline def setMozBackgroundOriginUndefined: Self = StObject.set(x, "MozBackgroundOrigin", js.undefined)
      
      inline def setMozBackgroundOriginVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundOrigin]])*
      ): Self = StObject.set(x, "MozBackgroundOrigin", js.Array(value*))
      
      inline def setMozBackgroundSize(
        value: (BackgroundSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozBackgroundSize", value.asInstanceOf[js.Any])
      
      inline def setMozBackgroundSizeUndefined: Self = StObject.set(x, "MozBackgroundSize", js.undefined)
      
      inline def setMozBackgroundSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]]))*
      ): Self = StObject.set(x, "MozBackgroundSize", js.Array(value*))
      
      inline def setMozBinding(
        value: MozBinding | (js.Array[
              (Extract[js.UndefOr[MozBinding | js.Array[NonNullable[js.UndefOr[MozBinding]]]], String]) | NonNullable[js.UndefOr[MozBinding]]
            ])
      ): Self = StObject.set(x, "MozBinding", value.asInstanceOf[js.Any])
      
      inline def setMozBindingUndefined: Self = StObject.set(x, "MozBinding", js.undefined)
      
      inline def setMozBindingVarargs(
        value: ((Extract[js.UndefOr[MozBinding | js.Array[NonNullable[js.UndefOr[MozBinding]]]], String]) | NonNullable[js.UndefOr[MozBinding]])*
      ): Self = StObject.set(x, "MozBinding", js.Array(value*))
      
      inline def setMozBorderBottomColors(
        value: MozBorderBottomColors | (js.Array[
              (Extract[
                js.UndefOr[MozBorderBottomColors | js.Array[NonNullable[js.UndefOr[MozBorderBottomColors]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozBorderBottomColors]]
            ])
      ): Self = StObject.set(x, "MozBorderBottomColors", value.asInstanceOf[js.Any])
      
      inline def setMozBorderBottomColorsUndefined: Self = StObject.set(x, "MozBorderBottomColors", js.undefined)
      
      inline def setMozBorderBottomColorsVarargs(
        value: ((Extract[
              js.UndefOr[MozBorderBottomColors | js.Array[NonNullable[js.UndefOr[MozBorderBottomColors]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozBorderBottomColors]])*
      ): Self = StObject.set(x, "MozBorderBottomColors", js.Array(value*))
      
      inline def setMozBorderEndColor(
        value: BorderInlineEndColor | (js.Array[
              (Extract[
                js.UndefOr[BorderInlineEndColor | js.Array[NonNullable[js.UndefOr[BorderInlineEndColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineEndColor]]
            ])
      ): Self = StObject.set(x, "MozBorderEndColor", value.asInstanceOf[js.Any])
      
      inline def setMozBorderEndColorUndefined: Self = StObject.set(x, "MozBorderEndColor", js.undefined)
      
      inline def setMozBorderEndColorVarargs(
        value: ((Extract[
              js.UndefOr[BorderInlineEndColor | js.Array[NonNullable[js.UndefOr[BorderInlineEndColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineEndColor]])*
      ): Self = StObject.set(x, "MozBorderEndColor", js.Array(value*))
      
      inline def setMozBorderEndStyle(
        value: BorderInlineEndStyle | (js.Array[
              (Extract[
                js.UndefOr[BorderInlineEndStyle | js.Array[NonNullable[js.UndefOr[BorderInlineEndStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineEndStyle]]
            ])
      ): Self = StObject.set(x, "MozBorderEndStyle", value.asInstanceOf[js.Any])
      
      inline def setMozBorderEndStyleUndefined: Self = StObject.set(x, "MozBorderEndStyle", js.undefined)
      
      inline def setMozBorderEndStyleVarargs(
        value: ((Extract[
              js.UndefOr[BorderInlineEndStyle | js.Array[NonNullable[js.UndefOr[BorderInlineEndStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineEndStyle]])*
      ): Self = StObject.set(x, "MozBorderEndStyle", js.Array(value*))
      
      inline def setMozBorderEndWidth(
        value: (BorderInlineEndWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderInlineEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozBorderEndWidth", value.asInstanceOf[js.Any])
      
      inline def setMozBorderEndWidthUndefined: Self = StObject.set(x, "MozBorderEndWidth", js.undefined)
      
      inline def setMozBorderEndWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderInlineEndWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderInlineEndWidth[Double | String]]]))*
      ): Self = StObject.set(x, "MozBorderEndWidth", js.Array(value*))
      
      inline def setMozBorderImage(
        value: BorderImage | (js.Array[
              (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
            ])
      ): Self = StObject.set(x, "MozBorderImage", value.asInstanceOf[js.Any])
      
      inline def setMozBorderImageUndefined: Self = StObject.set(x, "MozBorderImage", js.undefined)
      
      inline def setMozBorderImageVarargs(
        value: ((Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]])*
      ): Self = StObject.set(x, "MozBorderImage", js.Array(value*))
      
      inline def setMozBorderLeftColors(
        value: MozBorderLeftColors | (js.Array[
              (Extract[
                js.UndefOr[MozBorderLeftColors | js.Array[NonNullable[js.UndefOr[MozBorderLeftColors]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozBorderLeftColors]]
            ])
      ): Self = StObject.set(x, "MozBorderLeftColors", value.asInstanceOf[js.Any])
      
      inline def setMozBorderLeftColorsUndefined: Self = StObject.set(x, "MozBorderLeftColors", js.undefined)
      
      inline def setMozBorderLeftColorsVarargs(
        value: ((Extract[
              js.UndefOr[MozBorderLeftColors | js.Array[NonNullable[js.UndefOr[MozBorderLeftColors]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozBorderLeftColors]])*
      ): Self = StObject.set(x, "MozBorderLeftColors", js.Array(value*))
      
      inline def setMozBorderRadius(
        value: (BorderRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozBorderRadius", value.asInstanceOf[js.Any])
      
      inline def setMozBorderRadiusBottomleft(
        value: (BorderBottomLeftRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozBorderRadiusBottomleft", value.asInstanceOf[js.Any])
      
      inline def setMozBorderRadiusBottomleftUndefined: Self = StObject.set(x, "MozBorderRadiusBottomleft", js.undefined)
      
      inline def setMozBorderRadiusBottomleftVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]))*
      ): Self = StObject.set(x, "MozBorderRadiusBottomleft", js.Array(value*))
      
      inline def setMozBorderRadiusBottomright(
        value: (BorderBottomRightRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozBorderRadiusBottomright", value.asInstanceOf[js.Any])
      
      inline def setMozBorderRadiusBottomrightUndefined: Self = StObject.set(x, "MozBorderRadiusBottomright", js.undefined)
      
      inline def setMozBorderRadiusBottomrightVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]))*
      ): Self = StObject.set(x, "MozBorderRadiusBottomright", js.Array(value*))
      
      inline def setMozBorderRadiusTopleft(
        value: (BorderTopLeftRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozBorderRadiusTopleft", value.asInstanceOf[js.Any])
      
      inline def setMozBorderRadiusTopleftUndefined: Self = StObject.set(x, "MozBorderRadiusTopleft", js.undefined)
      
      inline def setMozBorderRadiusTopleftVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]))*
      ): Self = StObject.set(x, "MozBorderRadiusTopleft", js.Array(value*))
      
      inline def setMozBorderRadiusTopright(
        value: (BorderTopRightRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozBorderRadiusTopright", value.asInstanceOf[js.Any])
      
      inline def setMozBorderRadiusToprightUndefined: Self = StObject.set(x, "MozBorderRadiusTopright", js.undefined)
      
      inline def setMozBorderRadiusToprightVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]))*
      ): Self = StObject.set(x, "MozBorderRadiusTopright", js.Array(value*))
      
      inline def setMozBorderRadiusUndefined: Self = StObject.set(x, "MozBorderRadius", js.undefined)
      
      inline def setMozBorderRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]]))*
      ): Self = StObject.set(x, "MozBorderRadius", js.Array(value*))
      
      inline def setMozBorderRightColors(
        value: MozBorderRightColors | (js.Array[
              (Extract[
                js.UndefOr[MozBorderRightColors | js.Array[NonNullable[js.UndefOr[MozBorderRightColors]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozBorderRightColors]]
            ])
      ): Self = StObject.set(x, "MozBorderRightColors", value.asInstanceOf[js.Any])
      
      inline def setMozBorderRightColorsUndefined: Self = StObject.set(x, "MozBorderRightColors", js.undefined)
      
      inline def setMozBorderRightColorsVarargs(
        value: ((Extract[
              js.UndefOr[MozBorderRightColors | js.Array[NonNullable[js.UndefOr[MozBorderRightColors]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozBorderRightColors]])*
      ): Self = StObject.set(x, "MozBorderRightColors", js.Array(value*))
      
      inline def setMozBorderStartColor(
        value: BorderInlineStartColor | (js.Array[
              (Extract[
                js.UndefOr[
                  BorderInlineStartColor | js.Array[NonNullable[js.UndefOr[BorderInlineStartColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineStartColor]]
            ])
      ): Self = StObject.set(x, "MozBorderStartColor", value.asInstanceOf[js.Any])
      
      inline def setMozBorderStartColorUndefined: Self = StObject.set(x, "MozBorderStartColor", js.undefined)
      
      inline def setMozBorderStartColorVarargs(
        value: ((Extract[
              js.UndefOr[
                BorderInlineStartColor | js.Array[NonNullable[js.UndefOr[BorderInlineStartColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineStartColor]])*
      ): Self = StObject.set(x, "MozBorderStartColor", js.Array(value*))
      
      inline def setMozBorderStartStyle(
        value: BorderInlineStartStyle | (js.Array[
              (Extract[
                js.UndefOr[
                  BorderInlineStartStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStartStyle]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[BorderInlineStartStyle]]
            ])
      ): Self = StObject.set(x, "MozBorderStartStyle", value.asInstanceOf[js.Any])
      
      inline def setMozBorderStartStyleUndefined: Self = StObject.set(x, "MozBorderStartStyle", js.undefined)
      
      inline def setMozBorderStartStyleVarargs(
        value: ((Extract[
              js.UndefOr[
                BorderInlineStartStyle | js.Array[NonNullable[js.UndefOr[BorderInlineStartStyle]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[BorderInlineStartStyle]])*
      ): Self = StObject.set(x, "MozBorderStartStyle", js.Array(value*))
      
      inline def setMozBorderTopColors(
        value: MozBorderTopColors | (js.Array[
              (Extract[
                js.UndefOr[MozBorderTopColors | js.Array[NonNullable[js.UndefOr[MozBorderTopColors]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozBorderTopColors]]
            ])
      ): Self = StObject.set(x, "MozBorderTopColors", value.asInstanceOf[js.Any])
      
      inline def setMozBorderTopColorsUndefined: Self = StObject.set(x, "MozBorderTopColors", js.undefined)
      
      inline def setMozBorderTopColorsVarargs(
        value: ((Extract[
              js.UndefOr[MozBorderTopColors | js.Array[NonNullable[js.UndefOr[MozBorderTopColors]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozBorderTopColors]])*
      ): Self = StObject.set(x, "MozBorderTopColors", js.Array(value*))
      
      inline def setMozBoxAlign(
        value: BoxAlign | (js.Array[
              (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
            ])
      ): Self = StObject.set(x, "MozBoxAlign", value.asInstanceOf[js.Any])
      
      inline def setMozBoxAlignUndefined: Self = StObject.set(x, "MozBoxAlign", js.undefined)
      
      inline def setMozBoxAlignVarargs(
        value: ((Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]])*
      ): Self = StObject.set(x, "MozBoxAlign", js.Array(value*))
      
      inline def setMozBoxDirection(
        value: BoxDirection | (js.Array[
              (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
            ])
      ): Self = StObject.set(x, "MozBoxDirection", value.asInstanceOf[js.Any])
      
      inline def setMozBoxDirectionUndefined: Self = StObject.set(x, "MozBoxDirection", js.undefined)
      
      inline def setMozBoxDirectionVarargs(
        value: ((Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]])*
      ): Self = StObject.set(x, "MozBoxDirection", js.Array(value*))
      
      inline def setMozBoxFlex(
        value: BoxFlex | (js.Array[
              (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
            ])
      ): Self = StObject.set(x, "MozBoxFlex", value.asInstanceOf[js.Any])
      
      inline def setMozBoxFlexUndefined: Self = StObject.set(x, "MozBoxFlex", js.undefined)
      
      inline def setMozBoxFlexVarargs(
        value: ((Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]])*
      ): Self = StObject.set(x, "MozBoxFlex", js.Array(value*))
      
      inline def setMozBoxOrdinalGroup(
        value: BoxOrdinalGroup | (js.Array[
              (Extract[
                js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
                String
              ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
            ])
      ): Self = StObject.set(x, "MozBoxOrdinalGroup", value.asInstanceOf[js.Any])
      
      inline def setMozBoxOrdinalGroupUndefined: Self = StObject.set(x, "MozBoxOrdinalGroup", js.undefined)
      
      inline def setMozBoxOrdinalGroupVarargs(
        value: ((Extract[
              js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
              String
            ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]])*
      ): Self = StObject.set(x, "MozBoxOrdinalGroup", js.Array(value*))
      
      inline def setMozBoxOrient(
        value: BoxOrient | (js.Array[
              (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
            ])
      ): Self = StObject.set(x, "MozBoxOrient", value.asInstanceOf[js.Any])
      
      inline def setMozBoxOrientUndefined: Self = StObject.set(x, "MozBoxOrient", js.undefined)
      
      inline def setMozBoxOrientVarargs(
        value: ((Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]])*
      ): Self = StObject.set(x, "MozBoxOrient", js.Array(value*))
      
      inline def setMozBoxPack(
        value: BoxPack | (js.Array[
              (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
            ])
      ): Self = StObject.set(x, "MozBoxPack", value.asInstanceOf[js.Any])
      
      inline def setMozBoxPackUndefined: Self = StObject.set(x, "MozBoxPack", js.undefined)
      
      inline def setMozBoxPackVarargs(
        value: ((Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]])*
      ): Self = StObject.set(x, "MozBoxPack", js.Array(value*))
      
      inline def setMozBoxShadow(
        value: BoxShadow | (js.Array[
              (Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]]
            ])
      ): Self = StObject.set(x, "MozBoxShadow", value.asInstanceOf[js.Any])
      
      inline def setMozBoxShadowUndefined: Self = StObject.set(x, "MozBoxShadow", js.undefined)
      
      inline def setMozBoxShadowVarargs(
        value: ((Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]])*
      ): Self = StObject.set(x, "MozBoxShadow", js.Array(value*))
      
      inline def setMozBoxSizing(
        value: BoxSizing | (js.Array[
              (Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]]
            ])
      ): Self = StObject.set(x, "MozBoxSizing", value.asInstanceOf[js.Any])
      
      inline def setMozBoxSizingUndefined: Self = StObject.set(x, "MozBoxSizing", js.undefined)
      
      inline def setMozBoxSizingVarargs(
        value: ((Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]])*
      ): Self = StObject.set(x, "MozBoxSizing", js.Array(value*))
      
      inline def setMozColumnCount(
        value: ColumnCount | (js.Array[
              (Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]]
            ])
      ): Self = StObject.set(x, "MozColumnCount", value.asInstanceOf[js.Any])
      
      inline def setMozColumnCountUndefined: Self = StObject.set(x, "MozColumnCount", js.undefined)
      
      inline def setMozColumnCountVarargs(
        value: ((Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]])*
      ): Self = StObject.set(x, "MozColumnCount", js.Array(value*))
      
      inline def setMozColumnFill(
        value: ColumnFill | (js.Array[
              (Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]]
            ])
      ): Self = StObject.set(x, "MozColumnFill", value.asInstanceOf[js.Any])
      
      inline def setMozColumnFillUndefined: Self = StObject.set(x, "MozColumnFill", js.undefined)
      
      inline def setMozColumnFillVarargs(
        value: ((Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]])*
      ): Self = StObject.set(x, "MozColumnFill", js.Array(value*))
      
      inline def setMozColumnGap(
        value: (ColumnGap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozColumnGap", value.asInstanceOf[js.Any])
      
      inline def setMozColumnGapUndefined: Self = StObject.set(x, "MozColumnGap", js.undefined)
      
      inline def setMozColumnGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]]))*
      ): Self = StObject.set(x, "MozColumnGap", js.Array(value*))
      
      inline def setMozColumnRule(
        value: (ColumnRule[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozColumnRule", value.asInstanceOf[js.Any])
      
      inline def setMozColumnRuleColor(
        value: ColumnRuleColor | (js.Array[
              (Extract[
                js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColumnRuleColor]]
            ])
      ): Self = StObject.set(x, "MozColumnRuleColor", value.asInstanceOf[js.Any])
      
      inline def setMozColumnRuleColorUndefined: Self = StObject.set(x, "MozColumnRuleColor", js.undefined)
      
      inline def setMozColumnRuleColorVarargs(
        value: ((Extract[
              js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColumnRuleColor]])*
      ): Self = StObject.set(x, "MozColumnRuleColor", js.Array(value*))
      
      inline def setMozColumnRuleStyle(
        value: ColumnRuleStyle | (js.Array[
              (Extract[
                js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColumnRuleStyle]]
            ])
      ): Self = StObject.set(x, "MozColumnRuleStyle", value.asInstanceOf[js.Any])
      
      inline def setMozColumnRuleStyleUndefined: Self = StObject.set(x, "MozColumnRuleStyle", js.undefined)
      
      inline def setMozColumnRuleStyleVarargs(
        value: ((Extract[
              js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColumnRuleStyle]])*
      ): Self = StObject.set(x, "MozColumnRuleStyle", js.Array(value*))
      
      inline def setMozColumnRuleUndefined: Self = StObject.set(x, "MozColumnRule", js.undefined)
      
      inline def setMozColumnRuleVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]]))*
      ): Self = StObject.set(x, "MozColumnRule", js.Array(value*))
      
      inline def setMozColumnRuleWidth(
        value: (ColumnRuleWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozColumnRuleWidth", value.asInstanceOf[js.Any])
      
      inline def setMozColumnRuleWidthUndefined: Self = StObject.set(x, "MozColumnRuleWidth", js.undefined)
      
      inline def setMozColumnRuleWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]))*
      ): Self = StObject.set(x, "MozColumnRuleWidth", js.Array(value*))
      
      inline def setMozColumnWidth(
        value: (ColumnWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozColumnWidth", value.asInstanceOf[js.Any])
      
      inline def setMozColumnWidthUndefined: Self = StObject.set(x, "MozColumnWidth", js.undefined)
      
      inline def setMozColumnWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]]))*
      ): Self = StObject.set(x, "MozColumnWidth", js.Array(value*))
      
      inline def setMozColumns(
        value: (Columns[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Columns[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozColumns", value.asInstanceOf[js.Any])
      
      inline def setMozColumnsUndefined: Self = StObject.set(x, "MozColumns", js.undefined)
      
      inline def setMozColumnsVarargs(
        value: ((Extract[
              js.UndefOr[
                (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Columns[Double | String]]]))*
      ): Self = StObject.set(x, "MozColumns", js.Array(value*))
      
      inline def setMozContextProperties(
        value: MozContextProperties | (js.Array[
              (Extract[
                js.UndefOr[MozContextProperties | js.Array[NonNullable[js.UndefOr[MozContextProperties]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozContextProperties]]
            ])
      ): Self = StObject.set(x, "MozContextProperties", value.asInstanceOf[js.Any])
      
      inline def setMozContextPropertiesUndefined: Self = StObject.set(x, "MozContextProperties", js.undefined)
      
      inline def setMozContextPropertiesVarargs(
        value: ((Extract[
              js.UndefOr[MozContextProperties | js.Array[NonNullable[js.UndefOr[MozContextProperties]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozContextProperties]])*
      ): Self = StObject.set(x, "MozContextProperties", js.Array(value*))
      
      inline def setMozFloatEdge(
        value: MozFloatEdge | (js.Array[
              (Extract[js.UndefOr[MozFloatEdge | js.Array[NonNullable[js.UndefOr[MozFloatEdge]]]], String]) | NonNullable[js.UndefOr[MozFloatEdge]]
            ])
      ): Self = StObject.set(x, "MozFloatEdge", value.asInstanceOf[js.Any])
      
      inline def setMozFloatEdgeUndefined: Self = StObject.set(x, "MozFloatEdge", js.undefined)
      
      inline def setMozFloatEdgeVarargs(
        value: ((Extract[js.UndefOr[MozFloatEdge | js.Array[NonNullable[js.UndefOr[MozFloatEdge]]]], String]) | NonNullable[js.UndefOr[MozFloatEdge]])*
      ): Self = StObject.set(x, "MozFloatEdge", js.Array(value*))
      
      inline def setMozFontFeatureSettings(
        value: FontFeatureSettings | (js.Array[
              (Extract[
                js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontFeatureSettings]]
            ])
      ): Self = StObject.set(x, "MozFontFeatureSettings", value.asInstanceOf[js.Any])
      
      inline def setMozFontFeatureSettingsUndefined: Self = StObject.set(x, "MozFontFeatureSettings", js.undefined)
      
      inline def setMozFontFeatureSettingsVarargs(
        value: ((Extract[
              js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontFeatureSettings]])*
      ): Self = StObject.set(x, "MozFontFeatureSettings", js.Array(value*))
      
      inline def setMozFontLanguageOverride(
        value: FontLanguageOverride | (js.Array[
              (Extract[
                js.UndefOr[FontLanguageOverride | js.Array[NonNullable[js.UndefOr[FontLanguageOverride]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontLanguageOverride]]
            ])
      ): Self = StObject.set(x, "MozFontLanguageOverride", value.asInstanceOf[js.Any])
      
      inline def setMozFontLanguageOverrideUndefined: Self = StObject.set(x, "MozFontLanguageOverride", js.undefined)
      
      inline def setMozFontLanguageOverrideVarargs(
        value: ((Extract[
              js.UndefOr[FontLanguageOverride | js.Array[NonNullable[js.UndefOr[FontLanguageOverride]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontLanguageOverride]])*
      ): Self = StObject.set(x, "MozFontLanguageOverride", js.Array(value*))
      
      inline def setMozForceBrokenImageIcon(
        value: MozForceBrokenImageIcon | (js.Array[
              (Extract[
                js.UndefOr[
                  MozForceBrokenImageIcon | js.Array[NonNullable[js.UndefOr[MozForceBrokenImageIcon]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[MozForceBrokenImageIcon]]
            ])
      ): Self = StObject.set(x, "MozForceBrokenImageIcon", value.asInstanceOf[js.Any])
      
      inline def setMozForceBrokenImageIconUndefined: Self = StObject.set(x, "MozForceBrokenImageIcon", js.undefined)
      
      inline def setMozForceBrokenImageIconVarargs(
        value: ((Extract[
              js.UndefOr[
                MozForceBrokenImageIcon | js.Array[NonNullable[js.UndefOr[MozForceBrokenImageIcon]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[MozForceBrokenImageIcon]])*
      ): Self = StObject.set(x, "MozForceBrokenImageIcon", js.Array(value*))
      
      inline def setMozHyphens(
        value: Hyphens | (js.Array[
              (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
            ])
      ): Self = StObject.set(x, "MozHyphens", value.asInstanceOf[js.Any])
      
      inline def setMozHyphensUndefined: Self = StObject.set(x, "MozHyphens", js.undefined)
      
      inline def setMozHyphensVarargs(
        value: ((Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]])*
      ): Self = StObject.set(x, "MozHyphens", js.Array(value*))
      
      inline def setMozImageRegion(
        value: MozImageRegion | (js.Array[
              (Extract[
                js.UndefOr[MozImageRegion | js.Array[NonNullable[js.UndefOr[MozImageRegion]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozImageRegion]]
            ])
      ): Self = StObject.set(x, "MozImageRegion", value.asInstanceOf[js.Any])
      
      inline def setMozImageRegionUndefined: Self = StObject.set(x, "MozImageRegion", js.undefined)
      
      inline def setMozImageRegionVarargs(
        value: ((Extract[
              js.UndefOr[MozImageRegion | js.Array[NonNullable[js.UndefOr[MozImageRegion]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozImageRegion]])*
      ): Self = StObject.set(x, "MozImageRegion", js.Array(value*))
      
      inline def setMozMarginEnd(
        value: (MarginInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozMarginEnd", value.asInstanceOf[js.Any])
      
      inline def setMozMarginEndUndefined: Self = StObject.set(x, "MozMarginEnd", js.undefined)
      
      inline def setMozMarginEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "MozMarginEnd", js.Array(value*))
      
      inline def setMozMarginStart(
        value: (MarginInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozMarginStart", value.asInstanceOf[js.Any])
      
      inline def setMozMarginStartUndefined: Self = StObject.set(x, "MozMarginStart", js.undefined)
      
      inline def setMozMarginStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "MozMarginStart", js.Array(value*))
      
      inline def setMozOpacity(
        value: Opacity | (js.Array[
              (Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]]
            ])
      ): Self = StObject.set(x, "MozOpacity", value.asInstanceOf[js.Any])
      
      inline def setMozOpacityUndefined: Self = StObject.set(x, "MozOpacity", js.undefined)
      
      inline def setMozOpacityVarargs(
        value: ((Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]])*
      ): Self = StObject.set(x, "MozOpacity", js.Array(value*))
      
      inline def setMozOrient(
        value: MozOrient | (js.Array[
              (Extract[js.UndefOr[MozOrient | js.Array[NonNullable[js.UndefOr[MozOrient]]]], String]) | NonNullable[js.UndefOr[MozOrient]]
            ])
      ): Self = StObject.set(x, "MozOrient", value.asInstanceOf[js.Any])
      
      inline def setMozOrientUndefined: Self = StObject.set(x, "MozOrient", js.undefined)
      
      inline def setMozOrientVarargs(
        value: ((Extract[js.UndefOr[MozOrient | js.Array[NonNullable[js.UndefOr[MozOrient]]]], String]) | NonNullable[js.UndefOr[MozOrient]])*
      ): Self = StObject.set(x, "MozOrient", js.Array(value*))
      
      inline def setMozOsxFontSmoothing(
        value: (FontSmooth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOsxFontSmoothing", value.asInstanceOf[js.Any])
      
      inline def setMozOsxFontSmoothingUndefined: Self = StObject.set(x, "MozOsxFontSmoothing", js.undefined)
      
      inline def setMozOsxFontSmoothingVarargs(
        value: ((Extract[
              js.UndefOr[
                (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]]))*
      ): Self = StObject.set(x, "MozOsxFontSmoothing", js.Array(value*))
      
      inline def setMozOutline(
        value: (Outline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Outline[Double | String]) | (js.Array[NonNullable[js.UndefOr[Outline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Outline[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOutline", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineColor(
        value: OutlineColor | (js.Array[
              (Extract[js.UndefOr[OutlineColor | js.Array[NonNullable[js.UndefOr[OutlineColor]]]], String]) | NonNullable[js.UndefOr[OutlineColor]]
            ])
      ): Self = StObject.set(x, "MozOutlineColor", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineColorUndefined: Self = StObject.set(x, "MozOutlineColor", js.undefined)
      
      inline def setMozOutlineColorVarargs(
        value: ((Extract[js.UndefOr[OutlineColor | js.Array[NonNullable[js.UndefOr[OutlineColor]]]], String]) | NonNullable[js.UndefOr[OutlineColor]])*
      ): Self = StObject.set(x, "MozOutlineColor", js.Array(value*))
      
      inline def setMozOutlineRadius(
        value: (MozOutlineRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MozOutlineRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MozOutlineRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOutlineRadius", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineRadiusBottomleft(
        value: (MozOutlineRadiusBottomleft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MozOutlineRadiusBottomleft[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusBottomleft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MozOutlineRadiusBottomleft[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOutlineRadiusBottomleft", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineRadiusBottomleftUndefined: Self = StObject.set(x, "MozOutlineRadiusBottomleft", js.undefined)
      
      inline def setMozOutlineRadiusBottomleftVarargs(
        value: ((Extract[
              js.UndefOr[
                (MozOutlineRadiusBottomleft[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusBottomleft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MozOutlineRadiusBottomleft[Double | String]]]))*
      ): Self = StObject.set(x, "MozOutlineRadiusBottomleft", js.Array(value*))
      
      inline def setMozOutlineRadiusBottomright(
        value: (MozOutlineRadiusBottomright[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MozOutlineRadiusBottomright[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusBottomright[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MozOutlineRadiusBottomright[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOutlineRadiusBottomright", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineRadiusBottomrightUndefined: Self = StObject.set(x, "MozOutlineRadiusBottomright", js.undefined)
      
      inline def setMozOutlineRadiusBottomrightVarargs(
        value: ((Extract[
              js.UndefOr[
                (MozOutlineRadiusBottomright[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusBottomright[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MozOutlineRadiusBottomright[Double | String]]]))*
      ): Self = StObject.set(x, "MozOutlineRadiusBottomright", js.Array(value*))
      
      inline def setMozOutlineRadiusTopleft(
        value: (MozOutlineRadiusTopleft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MozOutlineRadiusTopleft[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusTopleft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MozOutlineRadiusTopleft[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOutlineRadiusTopleft", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineRadiusTopleftUndefined: Self = StObject.set(x, "MozOutlineRadiusTopleft", js.undefined)
      
      inline def setMozOutlineRadiusTopleftVarargs(
        value: ((Extract[
              js.UndefOr[
                (MozOutlineRadiusTopleft[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusTopleft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MozOutlineRadiusTopleft[Double | String]]]))*
      ): Self = StObject.set(x, "MozOutlineRadiusTopleft", js.Array(value*))
      
      inline def setMozOutlineRadiusTopright(
        value: (MozOutlineRadiusTopright[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MozOutlineRadiusTopright[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusTopright[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MozOutlineRadiusTopright[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOutlineRadiusTopright", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineRadiusToprightUndefined: Self = StObject.set(x, "MozOutlineRadiusTopright", js.undefined)
      
      inline def setMozOutlineRadiusToprightVarargs(
        value: ((Extract[
              js.UndefOr[
                (MozOutlineRadiusTopright[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadiusTopright[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MozOutlineRadiusTopright[Double | String]]]))*
      ): Self = StObject.set(x, "MozOutlineRadiusTopright", js.Array(value*))
      
      inline def setMozOutlineRadiusUndefined: Self = StObject.set(x, "MozOutlineRadius", js.undefined)
      
      inline def setMozOutlineRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (MozOutlineRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[MozOutlineRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MozOutlineRadius[Double | String]]]))*
      ): Self = StObject.set(x, "MozOutlineRadius", js.Array(value*))
      
      inline def setMozOutlineStyle(
        value: OutlineStyle | (js.Array[
              (Extract[js.UndefOr[OutlineStyle | js.Array[NonNullable[js.UndefOr[OutlineStyle]]]], String]) | NonNullable[js.UndefOr[OutlineStyle]]
            ])
      ): Self = StObject.set(x, "MozOutlineStyle", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineStyleUndefined: Self = StObject.set(x, "MozOutlineStyle", js.undefined)
      
      inline def setMozOutlineStyleVarargs(
        value: ((Extract[js.UndefOr[OutlineStyle | js.Array[NonNullable[js.UndefOr[OutlineStyle]]]], String]) | NonNullable[js.UndefOr[OutlineStyle]])*
      ): Self = StObject.set(x, "MozOutlineStyle", js.Array(value*))
      
      inline def setMozOutlineUndefined: Self = StObject.set(x, "MozOutline", js.undefined)
      
      inline def setMozOutlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (Outline[Double | String]) | (js.Array[NonNullable[js.UndefOr[Outline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Outline[Double | String]]]))*
      ): Self = StObject.set(x, "MozOutline", js.Array(value*))
      
      inline def setMozOutlineWidth(
        value: (OutlineWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (OutlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[OutlineWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozOutlineWidth", value.asInstanceOf[js.Any])
      
      inline def setMozOutlineWidthUndefined: Self = StObject.set(x, "MozOutlineWidth", js.undefined)
      
      inline def setMozOutlineWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (OutlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[OutlineWidth[Double | String]]]))*
      ): Self = StObject.set(x, "MozOutlineWidth", js.Array(value*))
      
      inline def setMozPaddingEnd(
        value: (PaddingInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozPaddingEnd", value.asInstanceOf[js.Any])
      
      inline def setMozPaddingEndUndefined: Self = StObject.set(x, "MozPaddingEnd", js.undefined)
      
      inline def setMozPaddingEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "MozPaddingEnd", js.Array(value*))
      
      inline def setMozPaddingStart(
        value: (PaddingInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozPaddingStart", value.asInstanceOf[js.Any])
      
      inline def setMozPaddingStartUndefined: Self = StObject.set(x, "MozPaddingStart", js.undefined)
      
      inline def setMozPaddingStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "MozPaddingStart", js.Array(value*))
      
      inline def setMozPerspective(
        value: (Perspective[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozPerspective", value.asInstanceOf[js.Any])
      
      inline def setMozPerspectiveOrigin(
        value: (PerspectiveOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozPerspectiveOrigin", value.asInstanceOf[js.Any])
      
      inline def setMozPerspectiveOriginUndefined: Self = StObject.set(x, "MozPerspectiveOrigin", js.undefined)
      
      inline def setMozPerspectiveOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "MozPerspectiveOrigin", js.Array(value*))
      
      inline def setMozPerspectiveUndefined: Self = StObject.set(x, "MozPerspective", js.undefined)
      
      inline def setMozPerspectiveVarargs(
        value: ((Extract[
              js.UndefOr[
                (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]]))*
      ): Self = StObject.set(x, "MozPerspective", js.Array(value*))
      
      inline def setMozStackSizing(
        value: MozStackSizing | (js.Array[
              (Extract[
                js.UndefOr[MozStackSizing | js.Array[NonNullable[js.UndefOr[MozStackSizing]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozStackSizing]]
            ])
      ): Self = StObject.set(x, "MozStackSizing", value.asInstanceOf[js.Any])
      
      inline def setMozStackSizingUndefined: Self = StObject.set(x, "MozStackSizing", js.undefined)
      
      inline def setMozStackSizingVarargs(
        value: ((Extract[
              js.UndefOr[MozStackSizing | js.Array[NonNullable[js.UndefOr[MozStackSizing]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozStackSizing]])*
      ): Self = StObject.set(x, "MozStackSizing", js.Array(value*))
      
      inline def setMozTabSize(
        value: (TabSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozTabSize", value.asInstanceOf[js.Any])
      
      inline def setMozTabSizeUndefined: Self = StObject.set(x, "MozTabSize", js.undefined)
      
      inline def setMozTabSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]]))*
      ): Self = StObject.set(x, "MozTabSize", js.Array(value*))
      
      inline def setMozTextAlignLast(
        value: TextAlignLast | (js.Array[
              (Extract[
                js.UndefOr[TextAlignLast | js.Array[NonNullable[js.UndefOr[TextAlignLast]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextAlignLast]]
            ])
      ): Self = StObject.set(x, "MozTextAlignLast", value.asInstanceOf[js.Any])
      
      inline def setMozTextAlignLastUndefined: Self = StObject.set(x, "MozTextAlignLast", js.undefined)
      
      inline def setMozTextAlignLastVarargs(
        value: ((Extract[
              js.UndefOr[TextAlignLast | js.Array[NonNullable[js.UndefOr[TextAlignLast]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextAlignLast]])*
      ): Self = StObject.set(x, "MozTextAlignLast", js.Array(value*))
      
      inline def setMozTextBlink(
        value: MozTextBlink | (js.Array[
              (Extract[js.UndefOr[MozTextBlink | js.Array[NonNullable[js.UndefOr[MozTextBlink]]]], String]) | NonNullable[js.UndefOr[MozTextBlink]]
            ])
      ): Self = StObject.set(x, "MozTextBlink", value.asInstanceOf[js.Any])
      
      inline def setMozTextBlinkUndefined: Self = StObject.set(x, "MozTextBlink", js.undefined)
      
      inline def setMozTextBlinkVarargs(
        value: ((Extract[js.UndefOr[MozTextBlink | js.Array[NonNullable[js.UndefOr[MozTextBlink]]]], String]) | NonNullable[js.UndefOr[MozTextBlink]])*
      ): Self = StObject.set(x, "MozTextBlink", js.Array(value*))
      
      inline def setMozTextDecorationColor(
        value: TextDecorationColor | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationColor]]
            ])
      ): Self = StObject.set(x, "MozTextDecorationColor", value.asInstanceOf[js.Any])
      
      inline def setMozTextDecorationColorUndefined: Self = StObject.set(x, "MozTextDecorationColor", js.undefined)
      
      inline def setMozTextDecorationColorVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationColor]])*
      ): Self = StObject.set(x, "MozTextDecorationColor", js.Array(value*))
      
      inline def setMozTextDecorationLine(
        value: TextDecorationLine | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationLine]]
            ])
      ): Self = StObject.set(x, "MozTextDecorationLine", value.asInstanceOf[js.Any])
      
      inline def setMozTextDecorationLineUndefined: Self = StObject.set(x, "MozTextDecorationLine", js.undefined)
      
      inline def setMozTextDecorationLineVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationLine]])*
      ): Self = StObject.set(x, "MozTextDecorationLine", js.Array(value*))
      
      inline def setMozTextDecorationStyle(
        value: TextDecorationStyle | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationStyle]]
            ])
      ): Self = StObject.set(x, "MozTextDecorationStyle", value.asInstanceOf[js.Any])
      
      inline def setMozTextDecorationStyleUndefined: Self = StObject.set(x, "MozTextDecorationStyle", js.undefined)
      
      inline def setMozTextDecorationStyleVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationStyle]])*
      ): Self = StObject.set(x, "MozTextDecorationStyle", js.Array(value*))
      
      inline def setMozTextSizeAdjust(
        value: TextSizeAdjust | (js.Array[
              (Extract[
                js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextSizeAdjust]]
            ])
      ): Self = StObject.set(x, "MozTextSizeAdjust", value.asInstanceOf[js.Any])
      
      inline def setMozTextSizeAdjustUndefined: Self = StObject.set(x, "MozTextSizeAdjust", js.undefined)
      
      inline def setMozTextSizeAdjustVarargs(
        value: ((Extract[
              js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextSizeAdjust]])*
      ): Self = StObject.set(x, "MozTextSizeAdjust", js.Array(value*))
      
      inline def setMozTransformOrigin(
        value: (TransformOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "MozTransformOrigin", value.asInstanceOf[js.Any])
      
      inline def setMozTransformOriginUndefined: Self = StObject.set(x, "MozTransformOrigin", js.undefined)
      
      inline def setMozTransformOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "MozTransformOrigin", js.Array(value*))
      
      inline def setMozTransformStyle(
        value: TransformStyle | (js.Array[
              (Extract[
                js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransformStyle]]
            ])
      ): Self = StObject.set(x, "MozTransformStyle", value.asInstanceOf[js.Any])
      
      inline def setMozTransformStyleUndefined: Self = StObject.set(x, "MozTransformStyle", js.undefined)
      
      inline def setMozTransformStyleVarargs(
        value: ((Extract[
              js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransformStyle]])*
      ): Self = StObject.set(x, "MozTransformStyle", js.Array(value*))
      
      inline def setMozTransition(
        value: Transition[String] | (js.Array[
              (Extract[
                js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Transition[String]]]
            ])
      ): Self = StObject.set(x, "MozTransition", value.asInstanceOf[js.Any])
      
      inline def setMozTransitionDelay(
        value: TransitionDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
            ])
      ): Self = StObject.set(x, "MozTransitionDelay", value.asInstanceOf[js.Any])
      
      inline def setMozTransitionDelayUndefined: Self = StObject.set(x, "MozTransitionDelay", js.undefined)
      
      inline def setMozTransitionDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDelay[String]]])*
      ): Self = StObject.set(x, "MozTransitionDelay", js.Array(value*))
      
      inline def setMozTransitionDuration(
        value: TransitionDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
            ])
      ): Self = StObject.set(x, "MozTransitionDuration", value.asInstanceOf[js.Any])
      
      inline def setMozTransitionDurationUndefined: Self = StObject.set(x, "MozTransitionDuration", js.undefined)
      
      inline def setMozTransitionDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDuration[String]]])*
      ): Self = StObject.set(x, "MozTransitionDuration", js.Array(value*))
      
      inline def setMozTransitionProperty(
        value: TransitionProperty | (js.Array[
              (Extract[
                js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransitionProperty]]
            ])
      ): Self = StObject.set(x, "MozTransitionProperty", value.asInstanceOf[js.Any])
      
      inline def setMozTransitionPropertyUndefined: Self = StObject.set(x, "MozTransitionProperty", js.undefined)
      
      inline def setMozTransitionPropertyVarargs(
        value: ((Extract[
              js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransitionProperty]])*
      ): Self = StObject.set(x, "MozTransitionProperty", js.Array(value*))
      
      inline def setMozTransitionTimingFunction(
        value: TransitionTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
            ])
      ): Self = StObject.set(x, "MozTransitionTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setMozTransitionTimingFunctionUndefined: Self = StObject.set(x, "MozTransitionTimingFunction", js.undefined)
      
      inline def setMozTransitionTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionTimingFunction]])*
      ): Self = StObject.set(x, "MozTransitionTimingFunction", js.Array(value*))
      
      inline def setMozTransitionUndefined: Self = StObject.set(x, "MozTransition", js.undefined)
      
      inline def setMozTransitionVarargs(
        value: ((Extract[
              js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Transition[String]]])*
      ): Self = StObject.set(x, "MozTransition", js.Array(value*))
      
      inline def setMozUserFocus(
        value: MozUserFocus | (js.Array[
              (Extract[js.UndefOr[MozUserFocus | js.Array[NonNullable[js.UndefOr[MozUserFocus]]]], String]) | NonNullable[js.UndefOr[MozUserFocus]]
            ])
      ): Self = StObject.set(x, "MozUserFocus", value.asInstanceOf[js.Any])
      
      inline def setMozUserFocusUndefined: Self = StObject.set(x, "MozUserFocus", js.undefined)
      
      inline def setMozUserFocusVarargs(
        value: ((Extract[js.UndefOr[MozUserFocus | js.Array[NonNullable[js.UndefOr[MozUserFocus]]]], String]) | NonNullable[js.UndefOr[MozUserFocus]])*
      ): Self = StObject.set(x, "MozUserFocus", js.Array(value*))
      
      inline def setMozUserInput(
        value: MozUserInput | (js.Array[
              (Extract[js.UndefOr[MozUserInput | js.Array[NonNullable[js.UndefOr[MozUserInput]]]], String]) | NonNullable[js.UndefOr[MozUserInput]]
            ])
      ): Self = StObject.set(x, "MozUserInput", value.asInstanceOf[js.Any])
      
      inline def setMozUserInputUndefined: Self = StObject.set(x, "MozUserInput", js.undefined)
      
      inline def setMozUserInputVarargs(
        value: ((Extract[js.UndefOr[MozUserInput | js.Array[NonNullable[js.UndefOr[MozUserInput]]]], String]) | NonNullable[js.UndefOr[MozUserInput]])*
      ): Self = StObject.set(x, "MozUserInput", js.Array(value*))
      
      inline def setMozUserModify(
        value: MozUserModify | (js.Array[
              (Extract[
                js.UndefOr[MozUserModify | js.Array[NonNullable[js.UndefOr[MozUserModify]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozUserModify]]
            ])
      ): Self = StObject.set(x, "MozUserModify", value.asInstanceOf[js.Any])
      
      inline def setMozUserModifyUndefined: Self = StObject.set(x, "MozUserModify", js.undefined)
      
      inline def setMozUserModifyVarargs(
        value: ((Extract[
              js.UndefOr[MozUserModify | js.Array[NonNullable[js.UndefOr[MozUserModify]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozUserModify]])*
      ): Self = StObject.set(x, "MozUserModify", js.Array(value*))
      
      inline def setMozUserSelect(
        value: UserSelect | (js.Array[
              (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
            ])
      ): Self = StObject.set(x, "MozUserSelect", value.asInstanceOf[js.Any])
      
      inline def setMozUserSelectUndefined: Self = StObject.set(x, "MozUserSelect", js.undefined)
      
      inline def setMozUserSelectVarargs(
        value: ((Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]])*
      ): Self = StObject.set(x, "MozUserSelect", js.Array(value*))
      
      inline def setMozWindowDragging(
        value: MozWindowDragging | (js.Array[
              (Extract[
                js.UndefOr[MozWindowDragging | js.Array[NonNullable[js.UndefOr[MozWindowDragging]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozWindowDragging]]
            ])
      ): Self = StObject.set(x, "MozWindowDragging", value.asInstanceOf[js.Any])
      
      inline def setMozWindowDraggingUndefined: Self = StObject.set(x, "MozWindowDragging", js.undefined)
      
      inline def setMozWindowDraggingVarargs(
        value: ((Extract[
              js.UndefOr[MozWindowDragging | js.Array[NonNullable[js.UndefOr[MozWindowDragging]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozWindowDragging]])*
      ): Self = StObject.set(x, "MozWindowDragging", js.Array(value*))
      
      inline def setMozWindowShadow(
        value: MozWindowShadow | (js.Array[
              (Extract[
                js.UndefOr[MozWindowShadow | js.Array[NonNullable[js.UndefOr[MozWindowShadow]]]], 
                String
              ]) | NonNullable[js.UndefOr[MozWindowShadow]]
            ])
      ): Self = StObject.set(x, "MozWindowShadow", value.asInstanceOf[js.Any])
      
      inline def setMozWindowShadowUndefined: Self = StObject.set(x, "MozWindowShadow", js.undefined)
      
      inline def setMozWindowShadowVarargs(
        value: ((Extract[
              js.UndefOr[MozWindowShadow | js.Array[NonNullable[js.UndefOr[MozWindowShadow]]]], 
              String
            ]) | NonNullable[js.UndefOr[MozWindowShadow]])*
      ): Self = StObject.set(x, "MozWindowShadow", js.Array(value*))
      
      inline def setMsAccelerator(
        value: MsAccelerator | (js.Array[
              (Extract[
                js.UndefOr[MsAccelerator | js.Array[NonNullable[js.UndefOr[MsAccelerator]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsAccelerator]]
            ])
      ): Self = StObject.set(x, "msAccelerator", value.asInstanceOf[js.Any])
      
      inline def setMsAcceleratorUndefined: Self = StObject.set(x, "msAccelerator", js.undefined)
      
      inline def setMsAcceleratorVarargs(
        value: ((Extract[
              js.UndefOr[MsAccelerator | js.Array[NonNullable[js.UndefOr[MsAccelerator]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsAccelerator]])*
      ): Self = StObject.set(x, "msAccelerator", js.Array(value*))
      
      inline def setMsAlignSelf(
        value: AlignSelf | (js.Array[
              (Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]]
            ])
      ): Self = StObject.set(x, "msAlignSelf", value.asInstanceOf[js.Any])
      
      inline def setMsAlignSelfUndefined: Self = StObject.set(x, "msAlignSelf", js.undefined)
      
      inline def setMsAlignSelfVarargs(
        value: ((Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]])*
      ): Self = StObject.set(x, "msAlignSelf", js.Array(value*))
      
      inline def setMsBlockProgression(
        value: MsBlockProgression | (js.Array[
              (Extract[
                js.UndefOr[MsBlockProgression | js.Array[NonNullable[js.UndefOr[MsBlockProgression]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsBlockProgression]]
            ])
      ): Self = StObject.set(x, "msBlockProgression", value.asInstanceOf[js.Any])
      
      inline def setMsBlockProgressionUndefined: Self = StObject.set(x, "msBlockProgression", js.undefined)
      
      inline def setMsBlockProgressionVarargs(
        value: ((Extract[
              js.UndefOr[MsBlockProgression | js.Array[NonNullable[js.UndefOr[MsBlockProgression]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsBlockProgression]])*
      ): Self = StObject.set(x, "msBlockProgression", js.Array(value*))
      
      inline def setMsContentZoomChaining(
        value: MsContentZoomChaining | (js.Array[
              (Extract[
                js.UndefOr[MsContentZoomChaining | js.Array[NonNullable[js.UndefOr[MsContentZoomChaining]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZoomChaining]]
            ])
      ): Self = StObject.set(x, "msContentZoomChaining", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomChainingUndefined: Self = StObject.set(x, "msContentZoomChaining", js.undefined)
      
      inline def setMsContentZoomChainingVarargs(
        value: ((Extract[
              js.UndefOr[MsContentZoomChaining | js.Array[NonNullable[js.UndefOr[MsContentZoomChaining]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZoomChaining]])*
      ): Self = StObject.set(x, "msContentZoomChaining", js.Array(value*))
      
      inline def setMsContentZoomLimit(
        value: MsContentZoomLimit | (js.Array[
              (Extract[
                js.UndefOr[MsContentZoomLimit | js.Array[NonNullable[js.UndefOr[MsContentZoomLimit]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZoomLimit]]
            ])
      ): Self = StObject.set(x, "msContentZoomLimit", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomLimitMax(
        value: MsContentZoomLimitMax | (js.Array[
              (Extract[
                js.UndefOr[MsContentZoomLimitMax | js.Array[NonNullable[js.UndefOr[MsContentZoomLimitMax]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZoomLimitMax]]
            ])
      ): Self = StObject.set(x, "msContentZoomLimitMax", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomLimitMaxUndefined: Self = StObject.set(x, "msContentZoomLimitMax", js.undefined)
      
      inline def setMsContentZoomLimitMaxVarargs(
        value: ((Extract[
              js.UndefOr[MsContentZoomLimitMax | js.Array[NonNullable[js.UndefOr[MsContentZoomLimitMax]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZoomLimitMax]])*
      ): Self = StObject.set(x, "msContentZoomLimitMax", js.Array(value*))
      
      inline def setMsContentZoomLimitMin(
        value: MsContentZoomLimitMin | (js.Array[
              (Extract[
                js.UndefOr[MsContentZoomLimitMin | js.Array[NonNullable[js.UndefOr[MsContentZoomLimitMin]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZoomLimitMin]]
            ])
      ): Self = StObject.set(x, "msContentZoomLimitMin", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomLimitMinUndefined: Self = StObject.set(x, "msContentZoomLimitMin", js.undefined)
      
      inline def setMsContentZoomLimitMinVarargs(
        value: ((Extract[
              js.UndefOr[MsContentZoomLimitMin | js.Array[NonNullable[js.UndefOr[MsContentZoomLimitMin]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZoomLimitMin]])*
      ): Self = StObject.set(x, "msContentZoomLimitMin", js.Array(value*))
      
      inline def setMsContentZoomLimitUndefined: Self = StObject.set(x, "msContentZoomLimit", js.undefined)
      
      inline def setMsContentZoomLimitVarargs(
        value: ((Extract[
              js.UndefOr[MsContentZoomLimit | js.Array[NonNullable[js.UndefOr[MsContentZoomLimit]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZoomLimit]])*
      ): Self = StObject.set(x, "msContentZoomLimit", js.Array(value*))
      
      inline def setMsContentZoomSnap(
        value: MsContentZoomSnap | (js.Array[
              (Extract[
                js.UndefOr[MsContentZoomSnap | js.Array[NonNullable[js.UndefOr[MsContentZoomSnap]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZoomSnap]]
            ])
      ): Self = StObject.set(x, "msContentZoomSnap", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomSnapPoints(
        value: MsContentZoomSnapPoints | (js.Array[
              (Extract[
                js.UndefOr[
                  MsContentZoomSnapPoints | js.Array[NonNullable[js.UndefOr[MsContentZoomSnapPoints]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZoomSnapPoints]]
            ])
      ): Self = StObject.set(x, "msContentZoomSnapPoints", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomSnapPointsUndefined: Self = StObject.set(x, "msContentZoomSnapPoints", js.undefined)
      
      inline def setMsContentZoomSnapPointsVarargs(
        value: ((Extract[
              js.UndefOr[
                MsContentZoomSnapPoints | js.Array[NonNullable[js.UndefOr[MsContentZoomSnapPoints]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZoomSnapPoints]])*
      ): Self = StObject.set(x, "msContentZoomSnapPoints", js.Array(value*))
      
      inline def setMsContentZoomSnapType(
        value: MsContentZoomSnapType | (js.Array[
              (Extract[
                js.UndefOr[MsContentZoomSnapType | js.Array[NonNullable[js.UndefOr[MsContentZoomSnapType]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZoomSnapType]]
            ])
      ): Self = StObject.set(x, "msContentZoomSnapType", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomSnapTypeUndefined: Self = StObject.set(x, "msContentZoomSnapType", js.undefined)
      
      inline def setMsContentZoomSnapTypeVarargs(
        value: ((Extract[
              js.UndefOr[MsContentZoomSnapType | js.Array[NonNullable[js.UndefOr[MsContentZoomSnapType]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZoomSnapType]])*
      ): Self = StObject.set(x, "msContentZoomSnapType", js.Array(value*))
      
      inline def setMsContentZoomSnapUndefined: Self = StObject.set(x, "msContentZoomSnap", js.undefined)
      
      inline def setMsContentZoomSnapVarargs(
        value: ((Extract[
              js.UndefOr[MsContentZoomSnap | js.Array[NonNullable[js.UndefOr[MsContentZoomSnap]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZoomSnap]])*
      ): Self = StObject.set(x, "msContentZoomSnap", js.Array(value*))
      
      inline def setMsContentZooming(
        value: MsContentZooming | (js.Array[
              (Extract[
                js.UndefOr[MsContentZooming | js.Array[NonNullable[js.UndefOr[MsContentZooming]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsContentZooming]]
            ])
      ): Self = StObject.set(x, "msContentZooming", value.asInstanceOf[js.Any])
      
      inline def setMsContentZoomingUndefined: Self = StObject.set(x, "msContentZooming", js.undefined)
      
      inline def setMsContentZoomingVarargs(
        value: ((Extract[
              js.UndefOr[MsContentZooming | js.Array[NonNullable[js.UndefOr[MsContentZooming]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsContentZooming]])*
      ): Self = StObject.set(x, "msContentZooming", js.Array(value*))
      
      inline def setMsFilter(
        value: MsFilter | (js.Array[
              (Extract[js.UndefOr[MsFilter | js.Array[NonNullable[js.UndefOr[MsFilter]]]], String]) | NonNullable[js.UndefOr[MsFilter]]
            ])
      ): Self = StObject.set(x, "msFilter", value.asInstanceOf[js.Any])
      
      inline def setMsFilterUndefined: Self = StObject.set(x, "msFilter", js.undefined)
      
      inline def setMsFilterVarargs(
        value: ((Extract[js.UndefOr[MsFilter | js.Array[NonNullable[js.UndefOr[MsFilter]]]], String]) | NonNullable[js.UndefOr[MsFilter]])*
      ): Self = StObject.set(x, "msFilter", js.Array(value*))
      
      inline def setMsFlex(
        value: (Flex[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Flex[Double | String]]])
            ])
      ): Self = StObject.set(x, "msFlex", value.asInstanceOf[js.Any])
      
      inline def setMsFlexDirection(
        value: FlexDirection | (js.Array[
              (Extract[
                js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
                String
              ]) | NonNullable[js.UndefOr[FlexDirection]]
            ])
      ): Self = StObject.set(x, "msFlexDirection", value.asInstanceOf[js.Any])
      
      inline def setMsFlexDirectionUndefined: Self = StObject.set(x, "msFlexDirection", js.undefined)
      
      inline def setMsFlexDirectionVarargs(
        value: ((Extract[
              js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
              String
            ]) | NonNullable[js.UndefOr[FlexDirection]])*
      ): Self = StObject.set(x, "msFlexDirection", js.Array(value*))
      
      inline def setMsFlexPositive(
        value: FlexGrow | (js.Array[
              (Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]]
            ])
      ): Self = StObject.set(x, "msFlexPositive", value.asInstanceOf[js.Any])
      
      inline def setMsFlexPositiveUndefined: Self = StObject.set(x, "msFlexPositive", js.undefined)
      
      inline def setMsFlexPositiveVarargs(
        value: ((Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]])*
      ): Self = StObject.set(x, "msFlexPositive", js.Array(value*))
      
      inline def setMsFlexUndefined: Self = StObject.set(x, "msFlex", js.undefined)
      
      inline def setMsFlexVarargs(
        value: ((Extract[
              js.UndefOr[
                (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Flex[Double | String]]]))*
      ): Self = StObject.set(x, "msFlex", js.Array(value*))
      
      inline def setMsFlowFrom(
        value: MsFlowFrom | (js.Array[
              (Extract[js.UndefOr[MsFlowFrom | js.Array[NonNullable[js.UndefOr[MsFlowFrom]]]], String]) | NonNullable[js.UndefOr[MsFlowFrom]]
            ])
      ): Self = StObject.set(x, "msFlowFrom", value.asInstanceOf[js.Any])
      
      inline def setMsFlowFromUndefined: Self = StObject.set(x, "msFlowFrom", js.undefined)
      
      inline def setMsFlowFromVarargs(
        value: ((Extract[js.UndefOr[MsFlowFrom | js.Array[NonNullable[js.UndefOr[MsFlowFrom]]]], String]) | NonNullable[js.UndefOr[MsFlowFrom]])*
      ): Self = StObject.set(x, "msFlowFrom", js.Array(value*))
      
      inline def setMsFlowInto(
        value: MsFlowInto | (js.Array[
              (Extract[js.UndefOr[MsFlowInto | js.Array[NonNullable[js.UndefOr[MsFlowInto]]]], String]) | NonNullable[js.UndefOr[MsFlowInto]]
            ])
      ): Self = StObject.set(x, "msFlowInto", value.asInstanceOf[js.Any])
      
      inline def setMsFlowIntoUndefined: Self = StObject.set(x, "msFlowInto", js.undefined)
      
      inline def setMsFlowIntoVarargs(
        value: ((Extract[js.UndefOr[MsFlowInto | js.Array[NonNullable[js.UndefOr[MsFlowInto]]]], String]) | NonNullable[js.UndefOr[MsFlowInto]])*
      ): Self = StObject.set(x, "msFlowInto", js.Array(value*))
      
      inline def setMsGridColumns(
        value: (MsGridColumns[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsGridColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsGridColumns[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsGridColumns[Double | String]]])
            ])
      ): Self = StObject.set(x, "msGridColumns", value.asInstanceOf[js.Any])
      
      inline def setMsGridColumnsUndefined: Self = StObject.set(x, "msGridColumns", js.undefined)
      
      inline def setMsGridColumnsVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsGridColumns[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsGridColumns[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsGridColumns[Double | String]]]))*
      ): Self = StObject.set(x, "msGridColumns", js.Array(value*))
      
      inline def setMsGridRows(
        value: (MsGridRows[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsGridRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsGridRows[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsGridRows[Double | String]]])
            ])
      ): Self = StObject.set(x, "msGridRows", value.asInstanceOf[js.Any])
      
      inline def setMsGridRowsUndefined: Self = StObject.set(x, "msGridRows", js.undefined)
      
      inline def setMsGridRowsVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsGridRows[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsGridRows[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsGridRows[Double | String]]]))*
      ): Self = StObject.set(x, "msGridRows", js.Array(value*))
      
      inline def setMsHighContrastAdjust(
        value: MsHighContrastAdjust | (js.Array[
              (Extract[
                js.UndefOr[MsHighContrastAdjust | js.Array[NonNullable[js.UndefOr[MsHighContrastAdjust]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsHighContrastAdjust]]
            ])
      ): Self = StObject.set(x, "msHighContrastAdjust", value.asInstanceOf[js.Any])
      
      inline def setMsHighContrastAdjustUndefined: Self = StObject.set(x, "msHighContrastAdjust", js.undefined)
      
      inline def setMsHighContrastAdjustVarargs(
        value: ((Extract[
              js.UndefOr[MsHighContrastAdjust | js.Array[NonNullable[js.UndefOr[MsHighContrastAdjust]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsHighContrastAdjust]])*
      ): Self = StObject.set(x, "msHighContrastAdjust", js.Array(value*))
      
      inline def setMsHyphenateLimitChars(
        value: MsHyphenateLimitChars | (js.Array[
              (Extract[
                js.UndefOr[MsHyphenateLimitChars | js.Array[NonNullable[js.UndefOr[MsHyphenateLimitChars]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsHyphenateLimitChars]]
            ])
      ): Self = StObject.set(x, "msHyphenateLimitChars", value.asInstanceOf[js.Any])
      
      inline def setMsHyphenateLimitCharsUndefined: Self = StObject.set(x, "msHyphenateLimitChars", js.undefined)
      
      inline def setMsHyphenateLimitCharsVarargs(
        value: ((Extract[
              js.UndefOr[MsHyphenateLimitChars | js.Array[NonNullable[js.UndefOr[MsHyphenateLimitChars]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsHyphenateLimitChars]])*
      ): Self = StObject.set(x, "msHyphenateLimitChars", js.Array(value*))
      
      inline def setMsHyphenateLimitLines(
        value: MsHyphenateLimitLines | (js.Array[
              (Extract[
                js.UndefOr[MsHyphenateLimitLines | js.Array[NonNullable[js.UndefOr[MsHyphenateLimitLines]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsHyphenateLimitLines]]
            ])
      ): Self = StObject.set(x, "msHyphenateLimitLines", value.asInstanceOf[js.Any])
      
      inline def setMsHyphenateLimitLinesUndefined: Self = StObject.set(x, "msHyphenateLimitLines", js.undefined)
      
      inline def setMsHyphenateLimitLinesVarargs(
        value: ((Extract[
              js.UndefOr[MsHyphenateLimitLines | js.Array[NonNullable[js.UndefOr[MsHyphenateLimitLines]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsHyphenateLimitLines]])*
      ): Self = StObject.set(x, "msHyphenateLimitLines", js.Array(value*))
      
      inline def setMsHyphenateLimitZone(
        value: (MsHyphenateLimitZone[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsHyphenateLimitZone[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsHyphenateLimitZone[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsHyphenateLimitZone[Double | String]]])
            ])
      ): Self = StObject.set(x, "msHyphenateLimitZone", value.asInstanceOf[js.Any])
      
      inline def setMsHyphenateLimitZoneUndefined: Self = StObject.set(x, "msHyphenateLimitZone", js.undefined)
      
      inline def setMsHyphenateLimitZoneVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsHyphenateLimitZone[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsHyphenateLimitZone[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsHyphenateLimitZone[Double | String]]]))*
      ): Self = StObject.set(x, "msHyphenateLimitZone", js.Array(value*))
      
      inline def setMsHyphens(
        value: Hyphens | (js.Array[
              (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
            ])
      ): Self = StObject.set(x, "msHyphens", value.asInstanceOf[js.Any])
      
      inline def setMsHyphensUndefined: Self = StObject.set(x, "msHyphens", js.undefined)
      
      inline def setMsHyphensVarargs(
        value: ((Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]])*
      ): Self = StObject.set(x, "msHyphens", js.Array(value*))
      
      inline def setMsImeAlign(
        value: MsImeAlign | (js.Array[
              (Extract[js.UndefOr[MsImeAlign | js.Array[NonNullable[js.UndefOr[MsImeAlign]]]], String]) | NonNullable[js.UndefOr[MsImeAlign]]
            ])
      ): Self = StObject.set(x, "msImeAlign", value.asInstanceOf[js.Any])
      
      inline def setMsImeAlignUndefined: Self = StObject.set(x, "msImeAlign", js.undefined)
      
      inline def setMsImeAlignVarargs(
        value: ((Extract[js.UndefOr[MsImeAlign | js.Array[NonNullable[js.UndefOr[MsImeAlign]]]], String]) | NonNullable[js.UndefOr[MsImeAlign]])*
      ): Self = StObject.set(x, "msImeAlign", js.Array(value*))
      
      inline def setMsImeMode(
        value: ImeMode | (js.Array[
              (Extract[js.UndefOr[ImeMode | js.Array[NonNullable[js.UndefOr[ImeMode]]]], String]) | NonNullable[js.UndefOr[ImeMode]]
            ])
      ): Self = StObject.set(x, "msImeMode", value.asInstanceOf[js.Any])
      
      inline def setMsImeModeUndefined: Self = StObject.set(x, "msImeMode", js.undefined)
      
      inline def setMsImeModeVarargs(
        value: ((Extract[js.UndefOr[ImeMode | js.Array[NonNullable[js.UndefOr[ImeMode]]]], String]) | NonNullable[js.UndefOr[ImeMode]])*
      ): Self = StObject.set(x, "msImeMode", js.Array(value*))
      
      inline def setMsJustifySelf(
        value: JustifySelf | (js.Array[
              (Extract[js.UndefOr[JustifySelf | js.Array[NonNullable[js.UndefOr[JustifySelf]]]], String]) | NonNullable[js.UndefOr[JustifySelf]]
            ])
      ): Self = StObject.set(x, "msJustifySelf", value.asInstanceOf[js.Any])
      
      inline def setMsJustifySelfUndefined: Self = StObject.set(x, "msJustifySelf", js.undefined)
      
      inline def setMsJustifySelfVarargs(
        value: ((Extract[js.UndefOr[JustifySelf | js.Array[NonNullable[js.UndefOr[JustifySelf]]]], String]) | NonNullable[js.UndefOr[JustifySelf]])*
      ): Self = StObject.set(x, "msJustifySelf", js.Array(value*))
      
      inline def setMsLineBreak(
        value: LineBreak | (js.Array[
              (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
            ])
      ): Self = StObject.set(x, "msLineBreak", value.asInstanceOf[js.Any])
      
      inline def setMsLineBreakUndefined: Self = StObject.set(x, "msLineBreak", js.undefined)
      
      inline def setMsLineBreakVarargs(
        value: ((Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]])*
      ): Self = StObject.set(x, "msLineBreak", js.Array(value*))
      
      inline def setMsOrder(
        value: Order | (js.Array[
              (Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]]
            ])
      ): Self = StObject.set(x, "msOrder", value.asInstanceOf[js.Any])
      
      inline def setMsOrderUndefined: Self = StObject.set(x, "msOrder", js.undefined)
      
      inline def setMsOrderVarargs(
        value: ((Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]])*
      ): Self = StObject.set(x, "msOrder", js.Array(value*))
      
      inline def setMsOverflowStyle(
        value: MsOverflowStyle | (js.Array[
              (Extract[
                js.UndefOr[MsOverflowStyle | js.Array[NonNullable[js.UndefOr[MsOverflowStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsOverflowStyle]]
            ])
      ): Self = StObject.set(x, "msOverflowStyle", value.asInstanceOf[js.Any])
      
      inline def setMsOverflowStyleUndefined: Self = StObject.set(x, "msOverflowStyle", js.undefined)
      
      inline def setMsOverflowStyleVarargs(
        value: ((Extract[
              js.UndefOr[MsOverflowStyle | js.Array[NonNullable[js.UndefOr[MsOverflowStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsOverflowStyle]])*
      ): Self = StObject.set(x, "msOverflowStyle", js.Array(value*))
      
      inline def setMsOverflowX(
        value: OverflowX | (js.Array[
              (Extract[js.UndefOr[OverflowX | js.Array[NonNullable[js.UndefOr[OverflowX]]]], String]) | NonNullable[js.UndefOr[OverflowX]]
            ])
      ): Self = StObject.set(x, "msOverflowX", value.asInstanceOf[js.Any])
      
      inline def setMsOverflowXUndefined: Self = StObject.set(x, "msOverflowX", js.undefined)
      
      inline def setMsOverflowXVarargs(
        value: ((Extract[js.UndefOr[OverflowX | js.Array[NonNullable[js.UndefOr[OverflowX]]]], String]) | NonNullable[js.UndefOr[OverflowX]])*
      ): Self = StObject.set(x, "msOverflowX", js.Array(value*))
      
      inline def setMsOverflowY(
        value: OverflowY | (js.Array[
              (Extract[js.UndefOr[OverflowY | js.Array[NonNullable[js.UndefOr[OverflowY]]]], String]) | NonNullable[js.UndefOr[OverflowY]]
            ])
      ): Self = StObject.set(x, "msOverflowY", value.asInstanceOf[js.Any])
      
      inline def setMsOverflowYUndefined: Self = StObject.set(x, "msOverflowY", js.undefined)
      
      inline def setMsOverflowYVarargs(
        value: ((Extract[js.UndefOr[OverflowY | js.Array[NonNullable[js.UndefOr[OverflowY]]]], String]) | NonNullable[js.UndefOr[OverflowY]])*
      ): Self = StObject.set(x, "msOverflowY", js.Array(value*))
      
      inline def setMsScrollChaining(
        value: MsScrollChaining | (js.Array[
              (Extract[
                js.UndefOr[MsScrollChaining | js.Array[NonNullable[js.UndefOr[MsScrollChaining]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollChaining]]
            ])
      ): Self = StObject.set(x, "msScrollChaining", value.asInstanceOf[js.Any])
      
      inline def setMsScrollChainingUndefined: Self = StObject.set(x, "msScrollChaining", js.undefined)
      
      inline def setMsScrollChainingVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollChaining | js.Array[NonNullable[js.UndefOr[MsScrollChaining]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollChaining]])*
      ): Self = StObject.set(x, "msScrollChaining", js.Array(value*))
      
      inline def setMsScrollLimit(
        value: MsScrollLimit | (js.Array[
              (Extract[
                js.UndefOr[MsScrollLimit | js.Array[NonNullable[js.UndefOr[MsScrollLimit]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollLimit]]
            ])
      ): Self = StObject.set(x, "msScrollLimit", value.asInstanceOf[js.Any])
      
      inline def setMsScrollLimitUndefined: Self = StObject.set(x, "msScrollLimit", js.undefined)
      
      inline def setMsScrollLimitVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollLimit | js.Array[NonNullable[js.UndefOr[MsScrollLimit]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollLimit]])*
      ): Self = StObject.set(x, "msScrollLimit", js.Array(value*))
      
      inline def setMsScrollLimitXMax(
        value: (MsScrollLimitXMax[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsScrollLimitXMax[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitXMax[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsScrollLimitXMax[Double | String]]])
            ])
      ): Self = StObject.set(x, "msScrollLimitXMax", value.asInstanceOf[js.Any])
      
      inline def setMsScrollLimitXMaxUndefined: Self = StObject.set(x, "msScrollLimitXMax", js.undefined)
      
      inline def setMsScrollLimitXMaxVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsScrollLimitXMax[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitXMax[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsScrollLimitXMax[Double | String]]]))*
      ): Self = StObject.set(x, "msScrollLimitXMax", js.Array(value*))
      
      inline def setMsScrollLimitXMin(
        value: (MsScrollLimitXMin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsScrollLimitXMin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitXMin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsScrollLimitXMin[Double | String]]])
            ])
      ): Self = StObject.set(x, "msScrollLimitXMin", value.asInstanceOf[js.Any])
      
      inline def setMsScrollLimitXMinUndefined: Self = StObject.set(x, "msScrollLimitXMin", js.undefined)
      
      inline def setMsScrollLimitXMinVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsScrollLimitXMin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitXMin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsScrollLimitXMin[Double | String]]]))*
      ): Self = StObject.set(x, "msScrollLimitXMin", js.Array(value*))
      
      inline def setMsScrollLimitYMax(
        value: (MsScrollLimitYMax[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsScrollLimitYMax[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitYMax[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsScrollLimitYMax[Double | String]]])
            ])
      ): Self = StObject.set(x, "msScrollLimitYMax", value.asInstanceOf[js.Any])
      
      inline def setMsScrollLimitYMaxUndefined: Self = StObject.set(x, "msScrollLimitYMax", js.undefined)
      
      inline def setMsScrollLimitYMaxVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsScrollLimitYMax[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitYMax[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsScrollLimitYMax[Double | String]]]))*
      ): Self = StObject.set(x, "msScrollLimitYMax", js.Array(value*))
      
      inline def setMsScrollLimitYMin(
        value: (MsScrollLimitYMin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsScrollLimitYMin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitYMin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsScrollLimitYMin[Double | String]]])
            ])
      ): Self = StObject.set(x, "msScrollLimitYMin", value.asInstanceOf[js.Any])
      
      inline def setMsScrollLimitYMinUndefined: Self = StObject.set(x, "msScrollLimitYMin", js.undefined)
      
      inline def setMsScrollLimitYMinVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsScrollLimitYMin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsScrollLimitYMin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsScrollLimitYMin[Double | String]]]))*
      ): Self = StObject.set(x, "msScrollLimitYMin", js.Array(value*))
      
      inline def setMsScrollRails(
        value: MsScrollRails | (js.Array[
              (Extract[
                js.UndefOr[MsScrollRails | js.Array[NonNullable[js.UndefOr[MsScrollRails]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollRails]]
            ])
      ): Self = StObject.set(x, "msScrollRails", value.asInstanceOf[js.Any])
      
      inline def setMsScrollRailsUndefined: Self = StObject.set(x, "msScrollRails", js.undefined)
      
      inline def setMsScrollRailsVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollRails | js.Array[NonNullable[js.UndefOr[MsScrollRails]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollRails]])*
      ): Self = StObject.set(x, "msScrollRails", js.Array(value*))
      
      inline def setMsScrollSnapPointsX(
        value: MsScrollSnapPointsX | (js.Array[
              (Extract[
                js.UndefOr[MsScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[MsScrollSnapPointsX]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollSnapPointsX]]
            ])
      ): Self = StObject.set(x, "msScrollSnapPointsX", value.asInstanceOf[js.Any])
      
      inline def setMsScrollSnapPointsXUndefined: Self = StObject.set(x, "msScrollSnapPointsX", js.undefined)
      
      inline def setMsScrollSnapPointsXVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[MsScrollSnapPointsX]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollSnapPointsX]])*
      ): Self = StObject.set(x, "msScrollSnapPointsX", js.Array(value*))
      
      inline def setMsScrollSnapPointsY(
        value: MsScrollSnapPointsY | (js.Array[
              (Extract[
                js.UndefOr[MsScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[MsScrollSnapPointsY]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollSnapPointsY]]
            ])
      ): Self = StObject.set(x, "msScrollSnapPointsY", value.asInstanceOf[js.Any])
      
      inline def setMsScrollSnapPointsYUndefined: Self = StObject.set(x, "msScrollSnapPointsY", js.undefined)
      
      inline def setMsScrollSnapPointsYVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[MsScrollSnapPointsY]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollSnapPointsY]])*
      ): Self = StObject.set(x, "msScrollSnapPointsY", js.Array(value*))
      
      inline def setMsScrollSnapType(
        value: MsScrollSnapType | (js.Array[
              (Extract[
                js.UndefOr[MsScrollSnapType | js.Array[NonNullable[js.UndefOr[MsScrollSnapType]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollSnapType]]
            ])
      ): Self = StObject.set(x, "msScrollSnapType", value.asInstanceOf[js.Any])
      
      inline def setMsScrollSnapTypeUndefined: Self = StObject.set(x, "msScrollSnapType", js.undefined)
      
      inline def setMsScrollSnapTypeVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollSnapType | js.Array[NonNullable[js.UndefOr[MsScrollSnapType]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollSnapType]])*
      ): Self = StObject.set(x, "msScrollSnapType", js.Array(value*))
      
      inline def setMsScrollSnapX(
        value: MsScrollSnapX | (js.Array[
              (Extract[
                js.UndefOr[MsScrollSnapX | js.Array[NonNullable[js.UndefOr[MsScrollSnapX]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollSnapX]]
            ])
      ): Self = StObject.set(x, "msScrollSnapX", value.asInstanceOf[js.Any])
      
      inline def setMsScrollSnapXUndefined: Self = StObject.set(x, "msScrollSnapX", js.undefined)
      
      inline def setMsScrollSnapXVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollSnapX | js.Array[NonNullable[js.UndefOr[MsScrollSnapX]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollSnapX]])*
      ): Self = StObject.set(x, "msScrollSnapX", js.Array(value*))
      
      inline def setMsScrollSnapY(
        value: MsScrollSnapY | (js.Array[
              (Extract[
                js.UndefOr[MsScrollSnapY | js.Array[NonNullable[js.UndefOr[MsScrollSnapY]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollSnapY]]
            ])
      ): Self = StObject.set(x, "msScrollSnapY", value.asInstanceOf[js.Any])
      
      inline def setMsScrollSnapYUndefined: Self = StObject.set(x, "msScrollSnapY", js.undefined)
      
      inline def setMsScrollSnapYVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollSnapY | js.Array[NonNullable[js.UndefOr[MsScrollSnapY]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollSnapY]])*
      ): Self = StObject.set(x, "msScrollSnapY", js.Array(value*))
      
      inline def setMsScrollTranslation(
        value: MsScrollTranslation | (js.Array[
              (Extract[
                js.UndefOr[MsScrollTranslation | js.Array[NonNullable[js.UndefOr[MsScrollTranslation]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollTranslation]]
            ])
      ): Self = StObject.set(x, "msScrollTranslation", value.asInstanceOf[js.Any])
      
      inline def setMsScrollTranslationUndefined: Self = StObject.set(x, "msScrollTranslation", js.undefined)
      
      inline def setMsScrollTranslationVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollTranslation | js.Array[NonNullable[js.UndefOr[MsScrollTranslation]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollTranslation]])*
      ): Self = StObject.set(x, "msScrollTranslation", js.Array(value*))
      
      inline def setMsScrollbar3dlightColor(
        value: MsScrollbar3dlightColor | (js.Array[
              (Extract[
                js.UndefOr[
                  MsScrollbar3dlightColor | js.Array[NonNullable[js.UndefOr[MsScrollbar3dlightColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbar3dlightColor]]
            ])
      ): Self = StObject.set(x, "msScrollbar3dlightColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbar3dlightColorUndefined: Self = StObject.set(x, "msScrollbar3dlightColor", js.undefined)
      
      inline def setMsScrollbar3dlightColorVarargs(
        value: ((Extract[
              js.UndefOr[
                MsScrollbar3dlightColor | js.Array[NonNullable[js.UndefOr[MsScrollbar3dlightColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbar3dlightColor]])*
      ): Self = StObject.set(x, "msScrollbar3dlightColor", js.Array(value*))
      
      inline def setMsScrollbarArrowColor(
        value: MsScrollbarArrowColor | (js.Array[
              (Extract[
                js.UndefOr[MsScrollbarArrowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarArrowColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarArrowColor]]
            ])
      ): Self = StObject.set(x, "msScrollbarArrowColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbarArrowColorUndefined: Self = StObject.set(x, "msScrollbarArrowColor", js.undefined)
      
      inline def setMsScrollbarArrowColorVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollbarArrowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarArrowColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarArrowColor]])*
      ): Self = StObject.set(x, "msScrollbarArrowColor", js.Array(value*))
      
      inline def setMsScrollbarBaseColor(
        value: MsScrollbarBaseColor | (js.Array[
              (Extract[
                js.UndefOr[MsScrollbarBaseColor | js.Array[NonNullable[js.UndefOr[MsScrollbarBaseColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarBaseColor]]
            ])
      ): Self = StObject.set(x, "msScrollbarBaseColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbarBaseColorUndefined: Self = StObject.set(x, "msScrollbarBaseColor", js.undefined)
      
      inline def setMsScrollbarBaseColorVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollbarBaseColor | js.Array[NonNullable[js.UndefOr[MsScrollbarBaseColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarBaseColor]])*
      ): Self = StObject.set(x, "msScrollbarBaseColor", js.Array(value*))
      
      inline def setMsScrollbarDarkshadowColor(
        value: MsScrollbarDarkshadowColor | (js.Array[
              (Extract[
                js.UndefOr[
                  MsScrollbarDarkshadowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarDarkshadowColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarDarkshadowColor]]
            ])
      ): Self = StObject.set(x, "msScrollbarDarkshadowColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbarDarkshadowColorUndefined: Self = StObject.set(x, "msScrollbarDarkshadowColor", js.undefined)
      
      inline def setMsScrollbarDarkshadowColorVarargs(
        value: ((Extract[
              js.UndefOr[
                MsScrollbarDarkshadowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarDarkshadowColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarDarkshadowColor]])*
      ): Self = StObject.set(x, "msScrollbarDarkshadowColor", js.Array(value*))
      
      inline def setMsScrollbarFaceColor(
        value: MsScrollbarFaceColor | (js.Array[
              (Extract[
                js.UndefOr[MsScrollbarFaceColor | js.Array[NonNullable[js.UndefOr[MsScrollbarFaceColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarFaceColor]]
            ])
      ): Self = StObject.set(x, "msScrollbarFaceColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbarFaceColorUndefined: Self = StObject.set(x, "msScrollbarFaceColor", js.undefined)
      
      inline def setMsScrollbarFaceColorVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollbarFaceColor | js.Array[NonNullable[js.UndefOr[MsScrollbarFaceColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarFaceColor]])*
      ): Self = StObject.set(x, "msScrollbarFaceColor", js.Array(value*))
      
      inline def setMsScrollbarHighlightColor(
        value: MsScrollbarHighlightColor | (js.Array[
              (Extract[
                js.UndefOr[
                  MsScrollbarHighlightColor | js.Array[NonNullable[js.UndefOr[MsScrollbarHighlightColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarHighlightColor]]
            ])
      ): Self = StObject.set(x, "msScrollbarHighlightColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbarHighlightColorUndefined: Self = StObject.set(x, "msScrollbarHighlightColor", js.undefined)
      
      inline def setMsScrollbarHighlightColorVarargs(
        value: ((Extract[
              js.UndefOr[
                MsScrollbarHighlightColor | js.Array[NonNullable[js.UndefOr[MsScrollbarHighlightColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarHighlightColor]])*
      ): Self = StObject.set(x, "msScrollbarHighlightColor", js.Array(value*))
      
      inline def setMsScrollbarShadowColor(
        value: MsScrollbarShadowColor | (js.Array[
              (Extract[
                js.UndefOr[
                  MsScrollbarShadowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarShadowColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarShadowColor]]
            ])
      ): Self = StObject.set(x, "msScrollbarShadowColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbarShadowColorUndefined: Self = StObject.set(x, "msScrollbarShadowColor", js.undefined)
      
      inline def setMsScrollbarShadowColorVarargs(
        value: ((Extract[
              js.UndefOr[
                MsScrollbarShadowColor | js.Array[NonNullable[js.UndefOr[MsScrollbarShadowColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarShadowColor]])*
      ): Self = StObject.set(x, "msScrollbarShadowColor", js.Array(value*))
      
      inline def setMsScrollbarTrackColor(
        value: MsScrollbarTrackColor | (js.Array[
              (Extract[
                js.UndefOr[MsScrollbarTrackColor | js.Array[NonNullable[js.UndefOr[MsScrollbarTrackColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarTrackColor]]
            ])
      ): Self = StObject.set(x, "msScrollbarTrackColor", value.asInstanceOf[js.Any])
      
      inline def setMsScrollbarTrackColorUndefined: Self = StObject.set(x, "msScrollbarTrackColor", js.undefined)
      
      inline def setMsScrollbarTrackColorVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollbarTrackColor | js.Array[NonNullable[js.UndefOr[MsScrollbarTrackColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarTrackColor]])*
      ): Self = StObject.set(x, "msScrollbarTrackColor", js.Array(value*))
      
      inline def setMsTextAutospace(
        value: MsTextAutospace | (js.Array[
              (Extract[
                js.UndefOr[MsTextAutospace | js.Array[NonNullable[js.UndefOr[MsTextAutospace]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsTextAutospace]]
            ])
      ): Self = StObject.set(x, "msTextAutospace", value.asInstanceOf[js.Any])
      
      inline def setMsTextAutospaceUndefined: Self = StObject.set(x, "msTextAutospace", js.undefined)
      
      inline def setMsTextAutospaceVarargs(
        value: ((Extract[
              js.UndefOr[MsTextAutospace | js.Array[NonNullable[js.UndefOr[MsTextAutospace]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsTextAutospace]])*
      ): Self = StObject.set(x, "msTextAutospace", js.Array(value*))
      
      inline def setMsTextCombineHorizontal(
        value: TextCombineUpright | (js.Array[
              (Extract[
                js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextCombineUpright]]
            ])
      ): Self = StObject.set(x, "msTextCombineHorizontal", value.asInstanceOf[js.Any])
      
      inline def setMsTextCombineHorizontalUndefined: Self = StObject.set(x, "msTextCombineHorizontal", js.undefined)
      
      inline def setMsTextCombineHorizontalVarargs(
        value: ((Extract[
              js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextCombineUpright]])*
      ): Self = StObject.set(x, "msTextCombineHorizontal", js.Array(value*))
      
      inline def setMsTextOverflow(
        value: TextOverflow | (js.Array[
              (Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]]
            ])
      ): Self = StObject.set(x, "msTextOverflow", value.asInstanceOf[js.Any])
      
      inline def setMsTextOverflowUndefined: Self = StObject.set(x, "msTextOverflow", js.undefined)
      
      inline def setMsTextOverflowVarargs(
        value: ((Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]])*
      ): Self = StObject.set(x, "msTextOverflow", js.Array(value*))
      
      inline def setMsTouchAction(
        value: TouchAction | (js.Array[
              (Extract[js.UndefOr[TouchAction | js.Array[NonNullable[js.UndefOr[TouchAction]]]], String]) | NonNullable[js.UndefOr[TouchAction]]
            ])
      ): Self = StObject.set(x, "msTouchAction", value.asInstanceOf[js.Any])
      
      inline def setMsTouchActionUndefined: Self = StObject.set(x, "msTouchAction", js.undefined)
      
      inline def setMsTouchActionVarargs(
        value: ((Extract[js.UndefOr[TouchAction | js.Array[NonNullable[js.UndefOr[TouchAction]]]], String]) | NonNullable[js.UndefOr[TouchAction]])*
      ): Self = StObject.set(x, "msTouchAction", js.Array(value*))
      
      inline def setMsTouchSelect(
        value: MsTouchSelect | (js.Array[
              (Extract[
                js.UndefOr[MsTouchSelect | js.Array[NonNullable[js.UndefOr[MsTouchSelect]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsTouchSelect]]
            ])
      ): Self = StObject.set(x, "msTouchSelect", value.asInstanceOf[js.Any])
      
      inline def setMsTouchSelectUndefined: Self = StObject.set(x, "msTouchSelect", js.undefined)
      
      inline def setMsTouchSelectVarargs(
        value: ((Extract[
              js.UndefOr[MsTouchSelect | js.Array[NonNullable[js.UndefOr[MsTouchSelect]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsTouchSelect]])*
      ): Self = StObject.set(x, "msTouchSelect", js.Array(value*))
      
      inline def setMsTransform(
        value: Transform | (js.Array[
              (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
            ])
      ): Self = StObject.set(x, "msTransform", value.asInstanceOf[js.Any])
      
      inline def setMsTransformOrigin(
        value: (TransformOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "msTransformOrigin", value.asInstanceOf[js.Any])
      
      inline def setMsTransformOriginUndefined: Self = StObject.set(x, "msTransformOrigin", js.undefined)
      
      inline def setMsTransformOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "msTransformOrigin", js.Array(value*))
      
      inline def setMsTransformUndefined: Self = StObject.set(x, "msTransform", js.undefined)
      
      inline def setMsTransformVarargs(
        value: ((Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]])*
      ): Self = StObject.set(x, "msTransform", js.Array(value*))
      
      inline def setMsTransition(
        value: Transition[String] | (js.Array[
              (Extract[
                js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Transition[String]]]
            ])
      ): Self = StObject.set(x, "msTransition", value.asInstanceOf[js.Any])
      
      inline def setMsTransitionDelay(
        value: TransitionDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
            ])
      ): Self = StObject.set(x, "msTransitionDelay", value.asInstanceOf[js.Any])
      
      inline def setMsTransitionDelayUndefined: Self = StObject.set(x, "msTransitionDelay", js.undefined)
      
      inline def setMsTransitionDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDelay[String]]])*
      ): Self = StObject.set(x, "msTransitionDelay", js.Array(value*))
      
      inline def setMsTransitionDuration(
        value: TransitionDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
            ])
      ): Self = StObject.set(x, "msTransitionDuration", value.asInstanceOf[js.Any])
      
      inline def setMsTransitionDurationUndefined: Self = StObject.set(x, "msTransitionDuration", js.undefined)
      
      inline def setMsTransitionDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDuration[String]]])*
      ): Self = StObject.set(x, "msTransitionDuration", js.Array(value*))
      
      inline def setMsTransitionProperty(
        value: TransitionProperty | (js.Array[
              (Extract[
                js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransitionProperty]]
            ])
      ): Self = StObject.set(x, "msTransitionProperty", value.asInstanceOf[js.Any])
      
      inline def setMsTransitionPropertyUndefined: Self = StObject.set(x, "msTransitionProperty", js.undefined)
      
      inline def setMsTransitionPropertyVarargs(
        value: ((Extract[
              js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransitionProperty]])*
      ): Self = StObject.set(x, "msTransitionProperty", js.Array(value*))
      
      inline def setMsTransitionTimingFunction(
        value: TransitionTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
            ])
      ): Self = StObject.set(x, "msTransitionTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setMsTransitionTimingFunctionUndefined: Self = StObject.set(x, "msTransitionTimingFunction", js.undefined)
      
      inline def setMsTransitionTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionTimingFunction]])*
      ): Self = StObject.set(x, "msTransitionTimingFunction", js.Array(value*))
      
      inline def setMsTransitionUndefined: Self = StObject.set(x, "msTransition", js.undefined)
      
      inline def setMsTransitionVarargs(
        value: ((Extract[
              js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Transition[String]]])*
      ): Self = StObject.set(x, "msTransition", js.Array(value*))
      
      inline def setMsUserSelect(
        value: MsUserSelect | (js.Array[
              (Extract[js.UndefOr[MsUserSelect | js.Array[NonNullable[js.UndefOr[MsUserSelect]]]], String]) | NonNullable[js.UndefOr[MsUserSelect]]
            ])
      ): Self = StObject.set(x, "msUserSelect", value.asInstanceOf[js.Any])
      
      inline def setMsUserSelectUndefined: Self = StObject.set(x, "msUserSelect", js.undefined)
      
      inline def setMsUserSelectVarargs(
        value: ((Extract[js.UndefOr[MsUserSelect | js.Array[NonNullable[js.UndefOr[MsUserSelect]]]], String]) | NonNullable[js.UndefOr[MsUserSelect]])*
      ): Self = StObject.set(x, "msUserSelect", js.Array(value*))
      
      inline def setMsWordBreak(
        value: WordBreak | (js.Array[
              (Extract[js.UndefOr[WordBreak | js.Array[NonNullable[js.UndefOr[WordBreak]]]], String]) | NonNullable[js.UndefOr[WordBreak]]
            ])
      ): Self = StObject.set(x, "msWordBreak", value.asInstanceOf[js.Any])
      
      inline def setMsWordBreakUndefined: Self = StObject.set(x, "msWordBreak", js.undefined)
      
      inline def setMsWordBreakVarargs(
        value: ((Extract[js.UndefOr[WordBreak | js.Array[NonNullable[js.UndefOr[WordBreak]]]], String]) | NonNullable[js.UndefOr[WordBreak]])*
      ): Self = StObject.set(x, "msWordBreak", js.Array(value*))
      
      inline def setMsWrapFlow(
        value: MsWrapFlow | (js.Array[
              (Extract[js.UndefOr[MsWrapFlow | js.Array[NonNullable[js.UndefOr[MsWrapFlow]]]], String]) | NonNullable[js.UndefOr[MsWrapFlow]]
            ])
      ): Self = StObject.set(x, "msWrapFlow", value.asInstanceOf[js.Any])
      
      inline def setMsWrapFlowUndefined: Self = StObject.set(x, "msWrapFlow", js.undefined)
      
      inline def setMsWrapFlowVarargs(
        value: ((Extract[js.UndefOr[MsWrapFlow | js.Array[NonNullable[js.UndefOr[MsWrapFlow]]]], String]) | NonNullable[js.UndefOr[MsWrapFlow]])*
      ): Self = StObject.set(x, "msWrapFlow", js.Array(value*))
      
      inline def setMsWrapMargin(
        value: (MsWrapMargin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MsWrapMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsWrapMargin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MsWrapMargin[Double | String]]])
            ])
      ): Self = StObject.set(x, "msWrapMargin", value.asInstanceOf[js.Any])
      
      inline def setMsWrapMarginUndefined: Self = StObject.set(x, "msWrapMargin", js.undefined)
      
      inline def setMsWrapMarginVarargs(
        value: ((Extract[
              js.UndefOr[
                (MsWrapMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[MsWrapMargin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MsWrapMargin[Double | String]]]))*
      ): Self = StObject.set(x, "msWrapMargin", js.Array(value*))
      
      inline def setMsWrapThrough(
        value: MsWrapThrough | (js.Array[
              (Extract[
                js.UndefOr[MsWrapThrough | js.Array[NonNullable[js.UndefOr[MsWrapThrough]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsWrapThrough]]
            ])
      ): Self = StObject.set(x, "msWrapThrough", value.asInstanceOf[js.Any])
      
      inline def setMsWrapThroughUndefined: Self = StObject.set(x, "msWrapThrough", js.undefined)
      
      inline def setMsWrapThroughVarargs(
        value: ((Extract[
              js.UndefOr[MsWrapThrough | js.Array[NonNullable[js.UndefOr[MsWrapThrough]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsWrapThrough]])*
      ): Self = StObject.set(x, "msWrapThrough", js.Array(value*))
      
      inline def setMsWritingMode(
        value: WritingMode | (js.Array[
              (Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]]
            ])
      ): Self = StObject.set(x, "msWritingMode", value.asInstanceOf[js.Any])
      
      inline def setMsWritingModeUndefined: Self = StObject.set(x, "msWritingMode", js.undefined)
      
      inline def setMsWritingModeVarargs(
        value: ((Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]])*
      ): Self = StObject.set(x, "msWritingMode", js.Array(value*))
      
      inline def setOAnimation(
        value: Animation[String] | (js.Array[
              (Extract[
                js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Animation[String]]]
            ])
      ): Self = StObject.set(x, "OAnimation", value.asInstanceOf[js.Any])
      
      inline def setOAnimationDelay(
        value: AnimationDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
            ])
      ): Self = StObject.set(x, "OAnimationDelay", value.asInstanceOf[js.Any])
      
      inline def setOAnimationDelayUndefined: Self = StObject.set(x, "OAnimationDelay", js.undefined)
      
      inline def setOAnimationDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDelay[String]]])*
      ): Self = StObject.set(x, "OAnimationDelay", js.Array(value*))
      
      inline def setOAnimationDirection(
        value: AnimationDirection | (js.Array[
              (Extract[
                js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDirection]]
            ])
      ): Self = StObject.set(x, "OAnimationDirection", value.asInstanceOf[js.Any])
      
      inline def setOAnimationDirectionUndefined: Self = StObject.set(x, "OAnimationDirection", js.undefined)
      
      inline def setOAnimationDirectionVarargs(
        value: ((Extract[
              js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDirection]])*
      ): Self = StObject.set(x, "OAnimationDirection", js.Array(value*))
      
      inline def setOAnimationDuration(
        value: AnimationDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
            ])
      ): Self = StObject.set(x, "OAnimationDuration", value.asInstanceOf[js.Any])
      
      inline def setOAnimationDurationUndefined: Self = StObject.set(x, "OAnimationDuration", js.undefined)
      
      inline def setOAnimationDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDuration[String]]])*
      ): Self = StObject.set(x, "OAnimationDuration", js.Array(value*))
      
      inline def setOAnimationFillMode(
        value: AnimationFillMode | (js.Array[
              (Extract[
                js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationFillMode]]
            ])
      ): Self = StObject.set(x, "OAnimationFillMode", value.asInstanceOf[js.Any])
      
      inline def setOAnimationFillModeUndefined: Self = StObject.set(x, "OAnimationFillMode", js.undefined)
      
      inline def setOAnimationFillModeVarargs(
        value: ((Extract[
              js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationFillMode]])*
      ): Self = StObject.set(x, "OAnimationFillMode", js.Array(value*))
      
      inline def setOAnimationIterationCount(
        value: AnimationIterationCount | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
            ])
      ): Self = StObject.set(x, "OAnimationIterationCount", value.asInstanceOf[js.Any])
      
      inline def setOAnimationIterationCountUndefined: Self = StObject.set(x, "OAnimationIterationCount", js.undefined)
      
      inline def setOAnimationIterationCountVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationIterationCount]])*
      ): Self = StObject.set(x, "OAnimationIterationCount", js.Array(value*))
      
      inline def setOAnimationName(
        value: AnimationName | (js.Array[
              (Extract[
                js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationName]]
            ])
      ): Self = StObject.set(x, "OAnimationName", value.asInstanceOf[js.Any])
      
      inline def setOAnimationNameUndefined: Self = StObject.set(x, "OAnimationName", js.undefined)
      
      inline def setOAnimationNameVarargs(
        value: ((Extract[
              js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationName]])*
      ): Self = StObject.set(x, "OAnimationName", js.Array(value*))
      
      inline def setOAnimationPlayState(
        value: AnimationPlayState | (js.Array[
              (Extract[
                js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationPlayState]]
            ])
      ): Self = StObject.set(x, "OAnimationPlayState", value.asInstanceOf[js.Any])
      
      inline def setOAnimationPlayStateUndefined: Self = StObject.set(x, "OAnimationPlayState", js.undefined)
      
      inline def setOAnimationPlayStateVarargs(
        value: ((Extract[
              js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationPlayState]])*
      ): Self = StObject.set(x, "OAnimationPlayState", js.Array(value*))
      
      inline def setOAnimationTimingFunction(
        value: AnimationTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
            ])
      ): Self = StObject.set(x, "OAnimationTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setOAnimationTimingFunctionUndefined: Self = StObject.set(x, "OAnimationTimingFunction", js.undefined)
      
      inline def setOAnimationTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationTimingFunction]])*
      ): Self = StObject.set(x, "OAnimationTimingFunction", js.Array(value*))
      
      inline def setOAnimationUndefined: Self = StObject.set(x, "OAnimation", js.undefined)
      
      inline def setOAnimationVarargs(
        value: ((Extract[
              js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Animation[String]]])*
      ): Self = StObject.set(x, "OAnimation", js.Array(value*))
      
      inline def setOBackgroundSize(
        value: (BackgroundSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "OBackgroundSize", value.asInstanceOf[js.Any])
      
      inline def setOBackgroundSizeUndefined: Self = StObject.set(x, "OBackgroundSize", js.undefined)
      
      inline def setOBackgroundSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]]))*
      ): Self = StObject.set(x, "OBackgroundSize", js.Array(value*))
      
      inline def setOBorderImage(
        value: BorderImage | (js.Array[
              (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
            ])
      ): Self = StObject.set(x, "OBorderImage", value.asInstanceOf[js.Any])
      
      inline def setOBorderImageUndefined: Self = StObject.set(x, "OBorderImage", js.undefined)
      
      inline def setOBorderImageVarargs(
        value: ((Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]])*
      ): Self = StObject.set(x, "OBorderImage", js.Array(value*))
      
      inline def setOObjectFit(
        value: ObjectFit | (js.Array[
              (Extract[js.UndefOr[ObjectFit | js.Array[NonNullable[js.UndefOr[ObjectFit]]]], String]) | NonNullable[js.UndefOr[ObjectFit]]
            ])
      ): Self = StObject.set(x, "OObjectFit", value.asInstanceOf[js.Any])
      
      inline def setOObjectFitUndefined: Self = StObject.set(x, "OObjectFit", js.undefined)
      
      inline def setOObjectFitVarargs(
        value: ((Extract[js.UndefOr[ObjectFit | js.Array[NonNullable[js.UndefOr[ObjectFit]]]], String]) | NonNullable[js.UndefOr[ObjectFit]])*
      ): Self = StObject.set(x, "OObjectFit", js.Array(value*))
      
      inline def setOObjectPosition(
        value: (ObjectPosition[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ObjectPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[ObjectPosition[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ObjectPosition[Double | String]]])
            ])
      ): Self = StObject.set(x, "OObjectPosition", value.asInstanceOf[js.Any])
      
      inline def setOObjectPositionUndefined: Self = StObject.set(x, "OObjectPosition", js.undefined)
      
      inline def setOObjectPositionVarargs(
        value: ((Extract[
              js.UndefOr[
                (ObjectPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[ObjectPosition[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ObjectPosition[Double | String]]]))*
      ): Self = StObject.set(x, "OObjectPosition", js.Array(value*))
      
      inline def setOTabSize(
        value: (TabSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "OTabSize", value.asInstanceOf[js.Any])
      
      inline def setOTabSizeUndefined: Self = StObject.set(x, "OTabSize", js.undefined)
      
      inline def setOTabSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]]))*
      ): Self = StObject.set(x, "OTabSize", js.Array(value*))
      
      inline def setOTextOverflow(
        value: TextOverflow | (js.Array[
              (Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]]
            ])
      ): Self = StObject.set(x, "OTextOverflow", value.asInstanceOf[js.Any])
      
      inline def setOTextOverflowUndefined: Self = StObject.set(x, "OTextOverflow", js.undefined)
      
      inline def setOTextOverflowVarargs(
        value: ((Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]])*
      ): Self = StObject.set(x, "OTextOverflow", js.Array(value*))
      
      inline def setOTransform(
        value: Transform | (js.Array[
              (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
            ])
      ): Self = StObject.set(x, "OTransform", value.asInstanceOf[js.Any])
      
      inline def setOTransformOrigin(
        value: (TransformOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "OTransformOrigin", value.asInstanceOf[js.Any])
      
      inline def setOTransformOriginUndefined: Self = StObject.set(x, "OTransformOrigin", js.undefined)
      
      inline def setOTransformOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "OTransformOrigin", js.Array(value*))
      
      inline def setOTransformUndefined: Self = StObject.set(x, "OTransform", js.undefined)
      
      inline def setOTransformVarargs(
        value: ((Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]])*
      ): Self = StObject.set(x, "OTransform", js.Array(value*))
      
      inline def setOTransition(
        value: Transition[String] | (js.Array[
              (Extract[
                js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Transition[String]]]
            ])
      ): Self = StObject.set(x, "OTransition", value.asInstanceOf[js.Any])
      
      inline def setOTransitionDelay(
        value: TransitionDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
            ])
      ): Self = StObject.set(x, "OTransitionDelay", value.asInstanceOf[js.Any])
      
      inline def setOTransitionDelayUndefined: Self = StObject.set(x, "OTransitionDelay", js.undefined)
      
      inline def setOTransitionDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDelay[String]]])*
      ): Self = StObject.set(x, "OTransitionDelay", js.Array(value*))
      
      inline def setOTransitionDuration(
        value: TransitionDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
            ])
      ): Self = StObject.set(x, "OTransitionDuration", value.asInstanceOf[js.Any])
      
      inline def setOTransitionDurationUndefined: Self = StObject.set(x, "OTransitionDuration", js.undefined)
      
      inline def setOTransitionDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDuration[String]]])*
      ): Self = StObject.set(x, "OTransitionDuration", js.Array(value*))
      
      inline def setOTransitionProperty(
        value: TransitionProperty | (js.Array[
              (Extract[
                js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransitionProperty]]
            ])
      ): Self = StObject.set(x, "OTransitionProperty", value.asInstanceOf[js.Any])
      
      inline def setOTransitionPropertyUndefined: Self = StObject.set(x, "OTransitionProperty", js.undefined)
      
      inline def setOTransitionPropertyVarargs(
        value: ((Extract[
              js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransitionProperty]])*
      ): Self = StObject.set(x, "OTransitionProperty", js.Array(value*))
      
      inline def setOTransitionTimingFunction(
        value: TransitionTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
            ])
      ): Self = StObject.set(x, "OTransitionTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setOTransitionTimingFunctionUndefined: Self = StObject.set(x, "OTransitionTimingFunction", js.undefined)
      
      inline def setOTransitionTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionTimingFunction]])*
      ): Self = StObject.set(x, "OTransitionTimingFunction", js.Array(value*))
      
      inline def setOTransitionUndefined: Self = StObject.set(x, "OTransition", js.undefined)
      
      inline def setOTransitionVarargs(
        value: ((Extract[
              js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Transition[String]]])*
      ): Self = StObject.set(x, "OTransition", js.Array(value*))
      
      inline def setObjectFit(
        value: ObjectFit | (js.Array[
              (Extract[js.UndefOr[ObjectFit | js.Array[NonNullable[js.UndefOr[ObjectFit]]]], String]) | NonNullable[js.UndefOr[ObjectFit]]
            ])
      ): Self = StObject.set(x, "objectFit", value.asInstanceOf[js.Any])
      
      inline def setObjectFitUndefined: Self = StObject.set(x, "objectFit", js.undefined)
      
      inline def setObjectFitVarargs(
        value: ((Extract[js.UndefOr[ObjectFit | js.Array[NonNullable[js.UndefOr[ObjectFit]]]], String]) | NonNullable[js.UndefOr[ObjectFit]])*
      ): Self = StObject.set(x, "objectFit", js.Array(value*))
      
      inline def setObjectPosition(
        value: (ObjectPosition[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ObjectPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[ObjectPosition[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ObjectPosition[Double | String]]])
            ])
      ): Self = StObject.set(x, "objectPosition", value.asInstanceOf[js.Any])
      
      inline def setObjectPositionUndefined: Self = StObject.set(x, "objectPosition", js.undefined)
      
      inline def setObjectPositionVarargs(
        value: ((Extract[
              js.UndefOr[
                (ObjectPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[ObjectPosition[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ObjectPosition[Double | String]]]))*
      ): Self = StObject.set(x, "objectPosition", js.Array(value*))
      
      inline def setOffset(
        value: (Offset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Offset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Offset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Offset[Double | String]]])
            ])
      ): Self = StObject.set(x, "offset", value.asInstanceOf[js.Any])
      
      inline def setOffsetAnchor(
        value: (OffsetAnchor[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (OffsetAnchor[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetAnchor[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[OffsetAnchor[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetAnchor", value.asInstanceOf[js.Any])
      
      inline def setOffsetAnchorUndefined: Self = StObject.set(x, "offsetAnchor", js.undefined)
      
      inline def setOffsetAnchorVarargs(
        value: ((Extract[
              js.UndefOr[
                (OffsetAnchor[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetAnchor[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[OffsetAnchor[Double | String]]]))*
      ): Self = StObject.set(x, "offsetAnchor", js.Array(value*))
      
      inline def setOffsetBlock(
        value: (InsetBlock[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlock[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetBlock[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetBlock", value.asInstanceOf[js.Any])
      
      inline def setOffsetBlockEnd(
        value: (InsetBlockEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetBlockEnd", value.asInstanceOf[js.Any])
      
      inline def setOffsetBlockEndUndefined: Self = StObject.set(x, "offsetBlockEnd", js.undefined)
      
      inline def setOffsetBlockEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetBlockEnd[Double | String]]]))*
      ): Self = StObject.set(x, "offsetBlockEnd", js.Array(value*))
      
      inline def setOffsetBlockStart(
        value: (InsetBlockStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetBlockStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetBlockStart", value.asInstanceOf[js.Any])
      
      inline def setOffsetBlockStartUndefined: Self = StObject.set(x, "offsetBlockStart", js.undefined)
      
      inline def setOffsetBlockStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetBlockStart[Double | String]]]))*
      ): Self = StObject.set(x, "offsetBlockStart", js.Array(value*))
      
      inline def setOffsetBlockUndefined: Self = StObject.set(x, "offsetBlock", js.undefined)
      
      inline def setOffsetBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetBlock[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetBlock[Double | String]]]))*
      ): Self = StObject.set(x, "offsetBlock", js.Array(value*))
      
      inline def setOffsetDistance(
        value: (OffsetDistance[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (OffsetDistance[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetDistance[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[OffsetDistance[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetDistance", value.asInstanceOf[js.Any])
      
      inline def setOffsetDistanceUndefined: Self = StObject.set(x, "offsetDistance", js.undefined)
      
      inline def setOffsetDistanceVarargs(
        value: ((Extract[
              js.UndefOr[
                (OffsetDistance[Double | String]) | (js.Array[NonNullable[js.UndefOr[OffsetDistance[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[OffsetDistance[Double | String]]]))*
      ): Self = StObject.set(x, "offsetDistance", js.Array(value*))
      
      inline def setOffsetInline(
        value: (InsetInline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetInline[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetInline", value.asInstanceOf[js.Any])
      
      inline def setOffsetInlineEnd(
        value: (InsetInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetInlineEnd", value.asInstanceOf[js.Any])
      
      inline def setOffsetInlineEndUndefined: Self = StObject.set(x, "offsetInlineEnd", js.undefined)
      
      inline def setOffsetInlineEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "offsetInlineEnd", js.Array(value*))
      
      inline def setOffsetInlineStart(
        value: (InsetInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (InsetInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[InsetInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "offsetInlineStart", value.asInstanceOf[js.Any])
      
      inline def setOffsetInlineStartUndefined: Self = StObject.set(x, "offsetInlineStart", js.undefined)
      
      inline def setOffsetInlineStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "offsetInlineStart", js.Array(value*))
      
      inline def setOffsetInlineUndefined: Self = StObject.set(x, "offsetInline", js.undefined)
      
      inline def setOffsetInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (InsetInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[InsetInline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[InsetInline[Double | String]]]))*
      ): Self = StObject.set(x, "offsetInline", js.Array(value*))
      
      inline def setOffsetPath(
        value: OffsetPath | (js.Array[
              (Extract[js.UndefOr[OffsetPath | js.Array[NonNullable[js.UndefOr[OffsetPath]]]], String]) | NonNullable[js.UndefOr[OffsetPath]]
            ])
      ): Self = StObject.set(x, "offsetPath", value.asInstanceOf[js.Any])
      
      inline def setOffsetPathUndefined: Self = StObject.set(x, "offsetPath", js.undefined)
      
      inline def setOffsetPathVarargs(
        value: ((Extract[js.UndefOr[OffsetPath | js.Array[NonNullable[js.UndefOr[OffsetPath]]]], String]) | NonNullable[js.UndefOr[OffsetPath]])*
      ): Self = StObject.set(x, "offsetPath", js.Array(value*))
      
      inline def setOffsetRotate(
        value: OffsetRotate | (js.Array[
              (Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]]
            ])
      ): Self = StObject.set(x, "offsetRotate", value.asInstanceOf[js.Any])
      
      inline def setOffsetRotateUndefined: Self = StObject.set(x, "offsetRotate", js.undefined)
      
      inline def setOffsetRotateVarargs(
        value: ((Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]])*
      ): Self = StObject.set(x, "offsetRotate", js.Array(value*))
      
      inline def setOffsetRotation(
        value: OffsetRotate | (js.Array[
              (Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]]
            ])
      ): Self = StObject.set(x, "offsetRotation", value.asInstanceOf[js.Any])
      
      inline def setOffsetRotationUndefined: Self = StObject.set(x, "offsetRotation", js.undefined)
      
      inline def setOffsetRotationVarargs(
        value: ((Extract[js.UndefOr[OffsetRotate | js.Array[NonNullable[js.UndefOr[OffsetRotate]]]], String]) | NonNullable[js.UndefOr[OffsetRotate]])*
      ): Self = StObject.set(x, "offsetRotation", js.Array(value*))
      
      inline def setOffsetUndefined: Self = StObject.set(x, "offset", js.undefined)
      
      inline def setOffsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (Offset[Double | String]) | (js.Array[NonNullable[js.UndefOr[Offset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Offset[Double | String]]]))*
      ): Self = StObject.set(x, "offset", js.Array(value*))
      
      inline def setOpacity(
        value: Opacity | (js.Array[
              (Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]]
            ])
      ): Self = StObject.set(x, "opacity", value.asInstanceOf[js.Any])
      
      inline def setOpacityUndefined: Self = StObject.set(x, "opacity", js.undefined)
      
      inline def setOpacityVarargs(
        value: ((Extract[js.UndefOr[Opacity | js.Array[NonNullable[js.UndefOr[Opacity]]]], String]) | NonNullable[js.UndefOr[Opacity]])*
      ): Self = StObject.set(x, "opacity", js.Array(value*))
      
      inline def setOrder(
        value: Order | (js.Array[
              (Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]]
            ])
      ): Self = StObject.set(x, "order", value.asInstanceOf[js.Any])
      
      inline def setOrderUndefined: Self = StObject.set(x, "order", js.undefined)
      
      inline def setOrderVarargs(
        value: ((Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]])*
      ): Self = StObject.set(x, "order", js.Array(value*))
      
      inline def setOrphans(
        value: Orphans | (js.Array[
              (Extract[js.UndefOr[Orphans | js.Array[NonNullable[js.UndefOr[Orphans]]]], String]) | NonNullable[js.UndefOr[Orphans]]
            ])
      ): Self = StObject.set(x, "orphans", value.asInstanceOf[js.Any])
      
      inline def setOrphansUndefined: Self = StObject.set(x, "orphans", js.undefined)
      
      inline def setOrphansVarargs(
        value: ((Extract[js.UndefOr[Orphans | js.Array[NonNullable[js.UndefOr[Orphans]]]], String]) | NonNullable[js.UndefOr[Orphans]])*
      ): Self = StObject.set(x, "orphans", js.Array(value*))
      
      inline def setOutline(
        value: (Outline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Outline[Double | String]) | (js.Array[NonNullable[js.UndefOr[Outline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Outline[Double | String]]])
            ])
      ): Self = StObject.set(x, "outline", value.asInstanceOf[js.Any])
      
      inline def setOutlineColor(
        value: OutlineColor | (js.Array[
              (Extract[js.UndefOr[OutlineColor | js.Array[NonNullable[js.UndefOr[OutlineColor]]]], String]) | NonNullable[js.UndefOr[OutlineColor]]
            ])
      ): Self = StObject.set(x, "outlineColor", value.asInstanceOf[js.Any])
      
      inline def setOutlineColorUndefined: Self = StObject.set(x, "outlineColor", js.undefined)
      
      inline def setOutlineColorVarargs(
        value: ((Extract[js.UndefOr[OutlineColor | js.Array[NonNullable[js.UndefOr[OutlineColor]]]], String]) | NonNullable[js.UndefOr[OutlineColor]])*
      ): Self = StObject.set(x, "outlineColor", js.Array(value*))
      
      inline def setOutlineOffset(
        value: (OutlineOffset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (OutlineOffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineOffset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[OutlineOffset[Double | String]]])
            ])
      ): Self = StObject.set(x, "outlineOffset", value.asInstanceOf[js.Any])
      
      inline def setOutlineOffsetUndefined: Self = StObject.set(x, "outlineOffset", js.undefined)
      
      inline def setOutlineOffsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (OutlineOffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineOffset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[OutlineOffset[Double | String]]]))*
      ): Self = StObject.set(x, "outlineOffset", js.Array(value*))
      
      inline def setOutlineStyle(
        value: OutlineStyle | (js.Array[
              (Extract[js.UndefOr[OutlineStyle | js.Array[NonNullable[js.UndefOr[OutlineStyle]]]], String]) | NonNullable[js.UndefOr[OutlineStyle]]
            ])
      ): Self = StObject.set(x, "outlineStyle", value.asInstanceOf[js.Any])
      
      inline def setOutlineStyleUndefined: Self = StObject.set(x, "outlineStyle", js.undefined)
      
      inline def setOutlineStyleVarargs(
        value: ((Extract[js.UndefOr[OutlineStyle | js.Array[NonNullable[js.UndefOr[OutlineStyle]]]], String]) | NonNullable[js.UndefOr[OutlineStyle]])*
      ): Self = StObject.set(x, "outlineStyle", js.Array(value*))
      
      inline def setOutlineUndefined: Self = StObject.set(x, "outline", js.undefined)
      
      inline def setOutlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (Outline[Double | String]) | (js.Array[NonNullable[js.UndefOr[Outline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Outline[Double | String]]]))*
      ): Self = StObject.set(x, "outline", js.Array(value*))
      
      inline def setOutlineWidth(
        value: (OutlineWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (OutlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[OutlineWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "outlineWidth", value.asInstanceOf[js.Any])
      
      inline def setOutlineWidthUndefined: Self = StObject.set(x, "outlineWidth", js.undefined)
      
      inline def setOutlineWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (OutlineWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[OutlineWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[OutlineWidth[Double | String]]]))*
      ): Self = StObject.set(x, "outlineWidth", js.Array(value*))
      
      inline def setOverflow(
        value: Overflow | (js.Array[
              (Extract[js.UndefOr[Overflow | js.Array[NonNullable[js.UndefOr[Overflow]]]], String]) | NonNullable[js.UndefOr[Overflow]]
            ])
      ): Self = StObject.set(x, "overflow", value.asInstanceOf[js.Any])
      
      inline def setOverflowAnchor(
        value: OverflowAnchor | (js.Array[
              (Extract[
                js.UndefOr[OverflowAnchor | js.Array[NonNullable[js.UndefOr[OverflowAnchor]]]], 
                String
              ]) | NonNullable[js.UndefOr[OverflowAnchor]]
            ])
      ): Self = StObject.set(x, "overflowAnchor", value.asInstanceOf[js.Any])
      
      inline def setOverflowAnchorUndefined: Self = StObject.set(x, "overflowAnchor", js.undefined)
      
      inline def setOverflowAnchorVarargs(
        value: ((Extract[
              js.UndefOr[OverflowAnchor | js.Array[NonNullable[js.UndefOr[OverflowAnchor]]]], 
              String
            ]) | NonNullable[js.UndefOr[OverflowAnchor]])*
      ): Self = StObject.set(x, "overflowAnchor", js.Array(value*))
      
      inline def setOverflowBlock(
        value: OverflowBlock | (js.Array[
              (Extract[
                js.UndefOr[OverflowBlock | js.Array[NonNullable[js.UndefOr[OverflowBlock]]]], 
                String
              ]) | NonNullable[js.UndefOr[OverflowBlock]]
            ])
      ): Self = StObject.set(x, "overflowBlock", value.asInstanceOf[js.Any])
      
      inline def setOverflowBlockUndefined: Self = StObject.set(x, "overflowBlock", js.undefined)
      
      inline def setOverflowBlockVarargs(
        value: ((Extract[
              js.UndefOr[OverflowBlock | js.Array[NonNullable[js.UndefOr[OverflowBlock]]]], 
              String
            ]) | NonNullable[js.UndefOr[OverflowBlock]])*
      ): Self = StObject.set(x, "overflowBlock", js.Array(value*))
      
      inline def setOverflowClipBox(
        value: OverflowClipBox | (js.Array[
              (Extract[
                js.UndefOr[OverflowClipBox | js.Array[NonNullable[js.UndefOr[OverflowClipBox]]]], 
                String
              ]) | NonNullable[js.UndefOr[OverflowClipBox]]
            ])
      ): Self = StObject.set(x, "overflowClipBox", value.asInstanceOf[js.Any])
      
      inline def setOverflowClipBoxUndefined: Self = StObject.set(x, "overflowClipBox", js.undefined)
      
      inline def setOverflowClipBoxVarargs(
        value: ((Extract[
              js.UndefOr[OverflowClipBox | js.Array[NonNullable[js.UndefOr[OverflowClipBox]]]], 
              String
            ]) | NonNullable[js.UndefOr[OverflowClipBox]])*
      ): Self = StObject.set(x, "overflowClipBox", js.Array(value*))
      
      inline def setOverflowClipMargin(
        value: (OverflowClipMargin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (OverflowClipMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[OverflowClipMargin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[OverflowClipMargin[Double | String]]])
            ])
      ): Self = StObject.set(x, "overflowClipMargin", value.asInstanceOf[js.Any])
      
      inline def setOverflowClipMarginUndefined: Self = StObject.set(x, "overflowClipMargin", js.undefined)
      
      inline def setOverflowClipMarginVarargs(
        value: ((Extract[
              js.UndefOr[
                (OverflowClipMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[OverflowClipMargin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[OverflowClipMargin[Double | String]]]))*
      ): Self = StObject.set(x, "overflowClipMargin", js.Array(value*))
      
      inline def setOverflowInline(
        value: OverflowInline | (js.Array[
              (Extract[
                js.UndefOr[OverflowInline | js.Array[NonNullable[js.UndefOr[OverflowInline]]]], 
                String
              ]) | NonNullable[js.UndefOr[OverflowInline]]
            ])
      ): Self = StObject.set(x, "overflowInline", value.asInstanceOf[js.Any])
      
      inline def setOverflowInlineUndefined: Self = StObject.set(x, "overflowInline", js.undefined)
      
      inline def setOverflowInlineVarargs(
        value: ((Extract[
              js.UndefOr[OverflowInline | js.Array[NonNullable[js.UndefOr[OverflowInline]]]], 
              String
            ]) | NonNullable[js.UndefOr[OverflowInline]])*
      ): Self = StObject.set(x, "overflowInline", js.Array(value*))
      
      inline def setOverflowUndefined: Self = StObject.set(x, "overflow", js.undefined)
      
      inline def setOverflowVarargs(
        value: ((Extract[js.UndefOr[Overflow | js.Array[NonNullable[js.UndefOr[Overflow]]]], String]) | NonNullable[js.UndefOr[Overflow]])*
      ): Self = StObject.set(x, "overflow", js.Array(value*))
      
      inline def setOverflowWrap(
        value: OverflowWrap | (js.Array[
              (Extract[js.UndefOr[OverflowWrap | js.Array[NonNullable[js.UndefOr[OverflowWrap]]]], String]) | NonNullable[js.UndefOr[OverflowWrap]]
            ])
      ): Self = StObject.set(x, "overflowWrap", value.asInstanceOf[js.Any])
      
      inline def setOverflowWrapUndefined: Self = StObject.set(x, "overflowWrap", js.undefined)
      
      inline def setOverflowWrapVarargs(
        value: ((Extract[js.UndefOr[OverflowWrap | js.Array[NonNullable[js.UndefOr[OverflowWrap]]]], String]) | NonNullable[js.UndefOr[OverflowWrap]])*
      ): Self = StObject.set(x, "overflowWrap", js.Array(value*))
      
      inline def setOverflowX(
        value: OverflowX | (js.Array[
              (Extract[js.UndefOr[OverflowX | js.Array[NonNullable[js.UndefOr[OverflowX]]]], String]) | NonNullable[js.UndefOr[OverflowX]]
            ])
      ): Self = StObject.set(x, "overflowX", value.asInstanceOf[js.Any])
      
      inline def setOverflowXUndefined: Self = StObject.set(x, "overflowX", js.undefined)
      
      inline def setOverflowXVarargs(
        value: ((Extract[js.UndefOr[OverflowX | js.Array[NonNullable[js.UndefOr[OverflowX]]]], String]) | NonNullable[js.UndefOr[OverflowX]])*
      ): Self = StObject.set(x, "overflowX", js.Array(value*))
      
      inline def setOverflowY(
        value: OverflowY | (js.Array[
              (Extract[js.UndefOr[OverflowY | js.Array[NonNullable[js.UndefOr[OverflowY]]]], String]) | NonNullable[js.UndefOr[OverflowY]]
            ])
      ): Self = StObject.set(x, "overflowY", value.asInstanceOf[js.Any])
      
      inline def setOverflowYUndefined: Self = StObject.set(x, "overflowY", js.undefined)
      
      inline def setOverflowYVarargs(
        value: ((Extract[js.UndefOr[OverflowY | js.Array[NonNullable[js.UndefOr[OverflowY]]]], String]) | NonNullable[js.UndefOr[OverflowY]])*
      ): Self = StObject.set(x, "overflowY", js.Array(value*))
      
      inline def setOverscrollBehavior(
        value: OverscrollBehavior | (js.Array[
              (Extract[
                js.UndefOr[OverscrollBehavior | js.Array[NonNullable[js.UndefOr[OverscrollBehavior]]]], 
                String
              ]) | NonNullable[js.UndefOr[OverscrollBehavior]]
            ])
      ): Self = StObject.set(x, "overscrollBehavior", value.asInstanceOf[js.Any])
      
      inline def setOverscrollBehaviorBlock(
        value: OverscrollBehaviorBlock | (js.Array[
              (Extract[
                js.UndefOr[
                  OverscrollBehaviorBlock | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorBlock]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[OverscrollBehaviorBlock]]
            ])
      ): Self = StObject.set(x, "overscrollBehaviorBlock", value.asInstanceOf[js.Any])
      
      inline def setOverscrollBehaviorBlockUndefined: Self = StObject.set(x, "overscrollBehaviorBlock", js.undefined)
      
      inline def setOverscrollBehaviorBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                OverscrollBehaviorBlock | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorBlock]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[OverscrollBehaviorBlock]])*
      ): Self = StObject.set(x, "overscrollBehaviorBlock", js.Array(value*))
      
      inline def setOverscrollBehaviorInline(
        value: OverscrollBehaviorInline | (js.Array[
              (Extract[
                js.UndefOr[
                  OverscrollBehaviorInline | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorInline]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[OverscrollBehaviorInline]]
            ])
      ): Self = StObject.set(x, "overscrollBehaviorInline", value.asInstanceOf[js.Any])
      
      inline def setOverscrollBehaviorInlineUndefined: Self = StObject.set(x, "overscrollBehaviorInline", js.undefined)
      
      inline def setOverscrollBehaviorInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                OverscrollBehaviorInline | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorInline]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[OverscrollBehaviorInline]])*
      ): Self = StObject.set(x, "overscrollBehaviorInline", js.Array(value*))
      
      inline def setOverscrollBehaviorUndefined: Self = StObject.set(x, "overscrollBehavior", js.undefined)
      
      inline def setOverscrollBehaviorVarargs(
        value: ((Extract[
              js.UndefOr[OverscrollBehavior | js.Array[NonNullable[js.UndefOr[OverscrollBehavior]]]], 
              String
            ]) | NonNullable[js.UndefOr[OverscrollBehavior]])*
      ): Self = StObject.set(x, "overscrollBehavior", js.Array(value*))
      
      inline def setOverscrollBehaviorX(
        value: OverscrollBehaviorX | (js.Array[
              (Extract[
                js.UndefOr[OverscrollBehaviorX | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorX]]]], 
                String
              ]) | NonNullable[js.UndefOr[OverscrollBehaviorX]]
            ])
      ): Self = StObject.set(x, "overscrollBehaviorX", value.asInstanceOf[js.Any])
      
      inline def setOverscrollBehaviorXUndefined: Self = StObject.set(x, "overscrollBehaviorX", js.undefined)
      
      inline def setOverscrollBehaviorXVarargs(
        value: ((Extract[
              js.UndefOr[OverscrollBehaviorX | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorX]]]], 
              String
            ]) | NonNullable[js.UndefOr[OverscrollBehaviorX]])*
      ): Self = StObject.set(x, "overscrollBehaviorX", js.Array(value*))
      
      inline def setOverscrollBehaviorY(
        value: OverscrollBehaviorY | (js.Array[
              (Extract[
                js.UndefOr[OverscrollBehaviorY | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorY]]]], 
                String
              ]) | NonNullable[js.UndefOr[OverscrollBehaviorY]]
            ])
      ): Self = StObject.set(x, "overscrollBehaviorY", value.asInstanceOf[js.Any])
      
      inline def setOverscrollBehaviorYUndefined: Self = StObject.set(x, "overscrollBehaviorY", js.undefined)
      
      inline def setOverscrollBehaviorYVarargs(
        value: ((Extract[
              js.UndefOr[OverscrollBehaviorY | js.Array[NonNullable[js.UndefOr[OverscrollBehaviorY]]]], 
              String
            ]) | NonNullable[js.UndefOr[OverscrollBehaviorY]])*
      ): Self = StObject.set(x, "overscrollBehaviorY", js.Array(value*))
      
      inline def setPadding(
        value: (Padding[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Padding[Double | String]) | (js.Array[NonNullable[js.UndefOr[Padding[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Padding[Double | String]]])
            ])
      ): Self = StObject.set(x, "padding", value.asInstanceOf[js.Any])
      
      inline def setPaddingBlock(
        value: (PaddingBlock[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlock[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingBlock[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingBlock", value.asInstanceOf[js.Any])
      
      inline def setPaddingBlockEnd(
        value: (PaddingBlockEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlockEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingBlockEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingBlockEnd", value.asInstanceOf[js.Any])
      
      inline def setPaddingBlockEndUndefined: Self = StObject.set(x, "paddingBlockEnd", js.undefined)
      
      inline def setPaddingBlockEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlockEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingBlockEnd[Double | String]]]))*
      ): Self = StObject.set(x, "paddingBlockEnd", js.Array(value*))
      
      inline def setPaddingBlockStart(
        value: (PaddingBlockStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlockStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingBlockStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingBlockStart", value.asInstanceOf[js.Any])
      
      inline def setPaddingBlockStartUndefined: Self = StObject.set(x, "paddingBlockStart", js.undefined)
      
      inline def setPaddingBlockStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlockStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingBlockStart[Double | String]]]))*
      ): Self = StObject.set(x, "paddingBlockStart", js.Array(value*))
      
      inline def setPaddingBlockUndefined: Self = StObject.set(x, "paddingBlock", js.undefined)
      
      inline def setPaddingBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBlock[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingBlock[Double | String]]]))*
      ): Self = StObject.set(x, "paddingBlock", js.Array(value*))
      
      inline def setPaddingBottom(
        value: (PaddingBottom[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBottom[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingBottom[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingBottom", value.asInstanceOf[js.Any])
      
      inline def setPaddingBottomUndefined: Self = StObject.set(x, "paddingBottom", js.undefined)
      
      inline def setPaddingBottomVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingBottom[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingBottom[Double | String]]]))*
      ): Self = StObject.set(x, "paddingBottom", js.Array(value*))
      
      inline def setPaddingInline(
        value: (PaddingInline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingInline[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingInline", value.asInstanceOf[js.Any])
      
      inline def setPaddingInlineEnd(
        value: (PaddingInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingInlineEnd", value.asInstanceOf[js.Any])
      
      inline def setPaddingInlineEndUndefined: Self = StObject.set(x, "paddingInlineEnd", js.undefined)
      
      inline def setPaddingInlineEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "paddingInlineEnd", js.Array(value*))
      
      inline def setPaddingInlineStart(
        value: (PaddingInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingInlineStart", value.asInstanceOf[js.Any])
      
      inline def setPaddingInlineStartUndefined: Self = StObject.set(x, "paddingInlineStart", js.undefined)
      
      inline def setPaddingInlineStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "paddingInlineStart", js.Array(value*))
      
      inline def setPaddingInlineUndefined: Self = StObject.set(x, "paddingInline", js.undefined)
      
      inline def setPaddingInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingInline[Double | String]]]))*
      ): Self = StObject.set(x, "paddingInline", js.Array(value*))
      
      inline def setPaddingLeft(
        value: (PaddingLeft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingLeft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingLeft[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingLeft", value.asInstanceOf[js.Any])
      
      inline def setPaddingLeftUndefined: Self = StObject.set(x, "paddingLeft", js.undefined)
      
      inline def setPaddingLeftVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingLeft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingLeft[Double | String]]]))*
      ): Self = StObject.set(x, "paddingLeft", js.Array(value*))
      
      inline def setPaddingRight(
        value: (PaddingRight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingRight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingRight[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingRight", value.asInstanceOf[js.Any])
      
      inline def setPaddingRightUndefined: Self = StObject.set(x, "paddingRight", js.undefined)
      
      inline def setPaddingRightVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingRight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingRight[Double | String]]]))*
      ): Self = StObject.set(x, "paddingRight", js.Array(value*))
      
      inline def setPaddingTop(
        value: (PaddingTop[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingTop[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingTop[Double | String]]])
            ])
      ): Self = StObject.set(x, "paddingTop", value.asInstanceOf[js.Any])
      
      inline def setPaddingTopUndefined: Self = StObject.set(x, "paddingTop", js.undefined)
      
      inline def setPaddingTopVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingTop[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingTop[Double | String]]]))*
      ): Self = StObject.set(x, "paddingTop", js.Array(value*))
      
      inline def setPaddingUndefined: Self = StObject.set(x, "padding", js.undefined)
      
      inline def setPaddingVarargs(
        value: ((Extract[
              js.UndefOr[
                (Padding[Double | String]) | (js.Array[NonNullable[js.UndefOr[Padding[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Padding[Double | String]]]))*
      ): Self = StObject.set(x, "padding", js.Array(value*))
      
      inline def setPageBreakAfter(
        value: PageBreakAfter | (js.Array[
              (Extract[
                js.UndefOr[PageBreakAfter | js.Array[NonNullable[js.UndefOr[PageBreakAfter]]]], 
                String
              ]) | NonNullable[js.UndefOr[PageBreakAfter]]
            ])
      ): Self = StObject.set(x, "pageBreakAfter", value.asInstanceOf[js.Any])
      
      inline def setPageBreakAfterUndefined: Self = StObject.set(x, "pageBreakAfter", js.undefined)
      
      inline def setPageBreakAfterVarargs(
        value: ((Extract[
              js.UndefOr[PageBreakAfter | js.Array[NonNullable[js.UndefOr[PageBreakAfter]]]], 
              String
            ]) | NonNullable[js.UndefOr[PageBreakAfter]])*
      ): Self = StObject.set(x, "pageBreakAfter", js.Array(value*))
      
      inline def setPageBreakBefore(
        value: PageBreakBefore | (js.Array[
              (Extract[
                js.UndefOr[PageBreakBefore | js.Array[NonNullable[js.UndefOr[PageBreakBefore]]]], 
                String
              ]) | NonNullable[js.UndefOr[PageBreakBefore]]
            ])
      ): Self = StObject.set(x, "pageBreakBefore", value.asInstanceOf[js.Any])
      
      inline def setPageBreakBeforeUndefined: Self = StObject.set(x, "pageBreakBefore", js.undefined)
      
      inline def setPageBreakBeforeVarargs(
        value: ((Extract[
              js.UndefOr[PageBreakBefore | js.Array[NonNullable[js.UndefOr[PageBreakBefore]]]], 
              String
            ]) | NonNullable[js.UndefOr[PageBreakBefore]])*
      ): Self = StObject.set(x, "pageBreakBefore", js.Array(value*))
      
      inline def setPageBreakInside(
        value: PageBreakInside | (js.Array[
              (Extract[
                js.UndefOr[PageBreakInside | js.Array[NonNullable[js.UndefOr[PageBreakInside]]]], 
                String
              ]) | NonNullable[js.UndefOr[PageBreakInside]]
            ])
      ): Self = StObject.set(x, "pageBreakInside", value.asInstanceOf[js.Any])
      
      inline def setPageBreakInsideUndefined: Self = StObject.set(x, "pageBreakInside", js.undefined)
      
      inline def setPageBreakInsideVarargs(
        value: ((Extract[
              js.UndefOr[PageBreakInside | js.Array[NonNullable[js.UndefOr[PageBreakInside]]]], 
              String
            ]) | NonNullable[js.UndefOr[PageBreakInside]])*
      ): Self = StObject.set(x, "pageBreakInside", js.Array(value*))
      
      inline def setPaintOrder(
        value: PaintOrder | (js.Array[
              (Extract[js.UndefOr[PaintOrder | js.Array[NonNullable[js.UndefOr[PaintOrder]]]], String]) | NonNullable[js.UndefOr[PaintOrder]]
            ])
      ): Self = StObject.set(x, "paintOrder", value.asInstanceOf[js.Any])
      
      inline def setPaintOrderUndefined: Self = StObject.set(x, "paintOrder", js.undefined)
      
      inline def setPaintOrderVarargs(
        value: ((Extract[js.UndefOr[PaintOrder | js.Array[NonNullable[js.UndefOr[PaintOrder]]]], String]) | NonNullable[js.UndefOr[PaintOrder]])*
      ): Self = StObject.set(x, "paintOrder", js.Array(value*))
      
      inline def setPerspective(
        value: (Perspective[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]])
            ])
      ): Self = StObject.set(x, "perspective", value.asInstanceOf[js.Any])
      
      inline def setPerspectiveOrigin(
        value: (PerspectiveOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "perspectiveOrigin", value.asInstanceOf[js.Any])
      
      inline def setPerspectiveOriginUndefined: Self = StObject.set(x, "perspectiveOrigin", js.undefined)
      
      inline def setPerspectiveOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "perspectiveOrigin", js.Array(value*))
      
      inline def setPerspectiveUndefined: Self = StObject.set(x, "perspective", js.undefined)
      
      inline def setPerspectiveVarargs(
        value: ((Extract[
              js.UndefOr[
                (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]]))*
      ): Self = StObject.set(x, "perspective", js.Array(value*))
      
      inline def setPlaceContent(
        value: PlaceContent | (js.Array[
              (Extract[js.UndefOr[PlaceContent | js.Array[NonNullable[js.UndefOr[PlaceContent]]]], String]) | NonNullable[js.UndefOr[PlaceContent]]
            ])
      ): Self = StObject.set(x, "placeContent", value.asInstanceOf[js.Any])
      
      inline def setPlaceContentUndefined: Self = StObject.set(x, "placeContent", js.undefined)
      
      inline def setPlaceContentVarargs(
        value: ((Extract[js.UndefOr[PlaceContent | js.Array[NonNullable[js.UndefOr[PlaceContent]]]], String]) | NonNullable[js.UndefOr[PlaceContent]])*
      ): Self = StObject.set(x, "placeContent", js.Array(value*))
      
      inline def setPlaceItems(
        value: PlaceItems | (js.Array[
              (Extract[js.UndefOr[PlaceItems | js.Array[NonNullable[js.UndefOr[PlaceItems]]]], String]) | NonNullable[js.UndefOr[PlaceItems]]
            ])
      ): Self = StObject.set(x, "placeItems", value.asInstanceOf[js.Any])
      
      inline def setPlaceItemsUndefined: Self = StObject.set(x, "placeItems", js.undefined)
      
      inline def setPlaceItemsVarargs(
        value: ((Extract[js.UndefOr[PlaceItems | js.Array[NonNullable[js.UndefOr[PlaceItems]]]], String]) | NonNullable[js.UndefOr[PlaceItems]])*
      ): Self = StObject.set(x, "placeItems", js.Array(value*))
      
      inline def setPlaceSelf(
        value: PlaceSelf | (js.Array[
              (Extract[js.UndefOr[PlaceSelf | js.Array[NonNullable[js.UndefOr[PlaceSelf]]]], String]) | NonNullable[js.UndefOr[PlaceSelf]]
            ])
      ): Self = StObject.set(x, "placeSelf", value.asInstanceOf[js.Any])
      
      inline def setPlaceSelfUndefined: Self = StObject.set(x, "placeSelf", js.undefined)
      
      inline def setPlaceSelfVarargs(
        value: ((Extract[js.UndefOr[PlaceSelf | js.Array[NonNullable[js.UndefOr[PlaceSelf]]]], String]) | NonNullable[js.UndefOr[PlaceSelf]])*
      ): Self = StObject.set(x, "placeSelf", js.Array(value*))
      
      inline def setPointerEvents(
        value: PointerEvents | (js.Array[
              (Extract[
                js.UndefOr[PointerEvents | js.Array[NonNullable[js.UndefOr[PointerEvents]]]], 
                String
              ]) | NonNullable[js.UndefOr[PointerEvents]]
            ])
      ): Self = StObject.set(x, "pointerEvents", value.asInstanceOf[js.Any])
      
      inline def setPointerEventsUndefined: Self = StObject.set(x, "pointerEvents", js.undefined)
      
      inline def setPointerEventsVarargs(
        value: ((Extract[
              js.UndefOr[PointerEvents | js.Array[NonNullable[js.UndefOr[PointerEvents]]]], 
              String
            ]) | NonNullable[js.UndefOr[PointerEvents]])*
      ): Self = StObject.set(x, "pointerEvents", js.Array(value*))
      
      inline def setPosition(
        value: Position | (js.Array[
              (Extract[js.UndefOr[Position | js.Array[NonNullable[js.UndefOr[Position]]]], String]) | NonNullable[js.UndefOr[Position]]
            ])
      ): Self = StObject.set(x, "position", value.asInstanceOf[js.Any])
      
      inline def setPositionUndefined: Self = StObject.set(x, "position", js.undefined)
      
      inline def setPositionVarargs(
        value: ((Extract[js.UndefOr[Position | js.Array[NonNullable[js.UndefOr[Position]]]], String]) | NonNullable[js.UndefOr[Position]])*
      ): Self = StObject.set(x, "position", js.Array(value*))
      
      inline def setQuotes(
        value: Quotes | (js.Array[
              (Extract[js.UndefOr[Quotes | js.Array[NonNullable[js.UndefOr[Quotes]]]], String]) | NonNullable[js.UndefOr[Quotes]]
            ])
      ): Self = StObject.set(x, "quotes", value.asInstanceOf[js.Any])
      
      inline def setQuotesUndefined: Self = StObject.set(x, "quotes", js.undefined)
      
      inline def setQuotesVarargs(
        value: ((Extract[js.UndefOr[Quotes | js.Array[NonNullable[js.UndefOr[Quotes]]]], String]) | NonNullable[js.UndefOr[Quotes]])*
      ): Self = StObject.set(x, "quotes", js.Array(value*))
      
      inline def setResize(
        value: Resize | (js.Array[
              (Extract[js.UndefOr[Resize | js.Array[NonNullable[js.UndefOr[Resize]]]], String]) | NonNullable[js.UndefOr[Resize]]
            ])
      ): Self = StObject.set(x, "resize", value.asInstanceOf[js.Any])
      
      inline def setResizeUndefined: Self = StObject.set(x, "resize", js.undefined)
      
      inline def setResizeVarargs(
        value: ((Extract[js.UndefOr[Resize | js.Array[NonNullable[js.UndefOr[Resize]]]], String]) | NonNullable[js.UndefOr[Resize]])*
      ): Self = StObject.set(x, "resize", js.Array(value*))
      
      inline def setRight(
        value: (Right[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Right[Double | String]) | (js.Array[NonNullable[js.UndefOr[Right[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Right[Double | String]]])
            ])
      ): Self = StObject.set(x, "right", value.asInstanceOf[js.Any])
      
      inline def setRightUndefined: Self = StObject.set(x, "right", js.undefined)
      
      inline def setRightVarargs(
        value: ((Extract[
              js.UndefOr[
                (Right[Double | String]) | (js.Array[NonNullable[js.UndefOr[Right[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Right[Double | String]]]))*
      ): Self = StObject.set(x, "right", js.Array(value*))
      
      inline def setRotate(
        value: Rotate | (js.Array[
              (Extract[js.UndefOr[Rotate | js.Array[NonNullable[js.UndefOr[Rotate]]]], String]) | NonNullable[js.UndefOr[Rotate]]
            ])
      ): Self = StObject.set(x, "rotate", value.asInstanceOf[js.Any])
      
      inline def setRotateUndefined: Self = StObject.set(x, "rotate", js.undefined)
      
      inline def setRotateVarargs(
        value: ((Extract[js.UndefOr[Rotate | js.Array[NonNullable[js.UndefOr[Rotate]]]], String]) | NonNullable[js.UndefOr[Rotate]])*
      ): Self = StObject.set(x, "rotate", js.Array(value*))
      
      inline def setRowGap(
        value: (RowGap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (RowGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[RowGap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[RowGap[Double | String]]])
            ])
      ): Self = StObject.set(x, "rowGap", value.asInstanceOf[js.Any])
      
      inline def setRowGapUndefined: Self = StObject.set(x, "rowGap", js.undefined)
      
      inline def setRowGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (RowGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[RowGap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[RowGap[Double | String]]]))*
      ): Self = StObject.set(x, "rowGap", js.Array(value*))
      
      inline def setRubyAlign(
        value: RubyAlign | (js.Array[
              (Extract[js.UndefOr[RubyAlign | js.Array[NonNullable[js.UndefOr[RubyAlign]]]], String]) | NonNullable[js.UndefOr[RubyAlign]]
            ])
      ): Self = StObject.set(x, "rubyAlign", value.asInstanceOf[js.Any])
      
      inline def setRubyAlignUndefined: Self = StObject.set(x, "rubyAlign", js.undefined)
      
      inline def setRubyAlignVarargs(
        value: ((Extract[js.UndefOr[RubyAlign | js.Array[NonNullable[js.UndefOr[RubyAlign]]]], String]) | NonNullable[js.UndefOr[RubyAlign]])*
      ): Self = StObject.set(x, "rubyAlign", js.Array(value*))
      
      inline def setRubyMerge(
        value: RubyMerge | (js.Array[
              (Extract[js.UndefOr[RubyMerge | js.Array[NonNullable[js.UndefOr[RubyMerge]]]], String]) | NonNullable[js.UndefOr[RubyMerge]]
            ])
      ): Self = StObject.set(x, "rubyMerge", value.asInstanceOf[js.Any])
      
      inline def setRubyMergeUndefined: Self = StObject.set(x, "rubyMerge", js.undefined)
      
      inline def setRubyMergeVarargs(
        value: ((Extract[js.UndefOr[RubyMerge | js.Array[NonNullable[js.UndefOr[RubyMerge]]]], String]) | NonNullable[js.UndefOr[RubyMerge]])*
      ): Self = StObject.set(x, "rubyMerge", js.Array(value*))
      
      inline def setRubyPosition(
        value: RubyPosition | (js.Array[
              (Extract[js.UndefOr[RubyPosition | js.Array[NonNullable[js.UndefOr[RubyPosition]]]], String]) | NonNullable[js.UndefOr[RubyPosition]]
            ])
      ): Self = StObject.set(x, "rubyPosition", value.asInstanceOf[js.Any])
      
      inline def setRubyPositionUndefined: Self = StObject.set(x, "rubyPosition", js.undefined)
      
      inline def setRubyPositionVarargs(
        value: ((Extract[js.UndefOr[RubyPosition | js.Array[NonNullable[js.UndefOr[RubyPosition]]]], String]) | NonNullable[js.UndefOr[RubyPosition]])*
      ): Self = StObject.set(x, "rubyPosition", js.Array(value*))
      
      inline def setScale(
        value: Scale | (js.Array[
              (Extract[js.UndefOr[Scale | js.Array[NonNullable[js.UndefOr[Scale]]]], String]) | NonNullable[js.UndefOr[Scale]]
            ])
      ): Self = StObject.set(x, "scale", value.asInstanceOf[js.Any])
      
      inline def setScaleUndefined: Self = StObject.set(x, "scale", js.undefined)
      
      inline def setScaleVarargs(
        value: ((Extract[js.UndefOr[Scale | js.Array[NonNullable[js.UndefOr[Scale]]]], String]) | NonNullable[js.UndefOr[Scale]])*
      ): Self = StObject.set(x, "scale", js.Array(value*))
      
      inline def setScrollBehavior(
        value: ScrollBehavior | (js.Array[
              (Extract[
                js.UndefOr[ScrollBehavior | js.Array[NonNullable[js.UndefOr[ScrollBehavior]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollBehavior]]
            ])
      ): Self = StObject.set(x, "scrollBehavior", value.asInstanceOf[js.Any])
      
      inline def setScrollBehaviorUndefined: Self = StObject.set(x, "scrollBehavior", js.undefined)
      
      inline def setScrollBehaviorVarargs(
        value: ((Extract[
              js.UndefOr[ScrollBehavior | js.Array[NonNullable[js.UndefOr[ScrollBehavior]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollBehavior]])*
      ): Self = StObject.set(x, "scrollBehavior", js.Array(value*))
      
      inline def setScrollMargin(
        value: (ScrollMargin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMargin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMargin[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMargin", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginBlock(
        value: (ScrollMarginBlock[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlock[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginBlock[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginBlock", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginBlockEnd(
        value: (ScrollMarginBlockEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlockEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginBlockEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginBlockEnd", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginBlockEndUndefined: Self = StObject.set(x, "scrollMarginBlockEnd", js.undefined)
      
      inline def setScrollMarginBlockEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlockEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginBlockEnd[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginBlockEnd", js.Array(value*))
      
      inline def setScrollMarginBlockStart(
        value: (ScrollMarginBlockStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlockStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginBlockStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginBlockStart", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginBlockStartUndefined: Self = StObject.set(x, "scrollMarginBlockStart", js.undefined)
      
      inline def setScrollMarginBlockStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlockStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginBlockStart[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginBlockStart", js.Array(value*))
      
      inline def setScrollMarginBlockUndefined: Self = StObject.set(x, "scrollMarginBlock", js.undefined)
      
      inline def setScrollMarginBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBlock[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginBlock[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginBlock", js.Array(value*))
      
      inline def setScrollMarginBottom(
        value: (ScrollMarginBottom[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginBottom", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginBottomUndefined: Self = StObject.set(x, "scrollMarginBottom", js.undefined)
      
      inline def setScrollMarginBottomVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginBottom", js.Array(value*))
      
      inline def setScrollMarginInline(
        value: (ScrollMarginInline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginInline[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginInline", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginInlineEnd(
        value: (ScrollMarginInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginInlineEnd", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginInlineEndUndefined: Self = StObject.set(x, "scrollMarginInlineEnd", js.undefined)
      
      inline def setScrollMarginInlineEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginInlineEnd", js.Array(value*))
      
      inline def setScrollMarginInlineStart(
        value: (ScrollMarginInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginInlineStart", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginInlineStartUndefined: Self = StObject.set(x, "scrollMarginInlineStart", js.undefined)
      
      inline def setScrollMarginInlineStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginInlineStart", js.Array(value*))
      
      inline def setScrollMarginInlineUndefined: Self = StObject.set(x, "scrollMarginInline", js.undefined)
      
      inline def setScrollMarginInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginInline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginInline[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginInline", js.Array(value*))
      
      inline def setScrollMarginLeft(
        value: (ScrollMarginLeft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginLeft", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginLeftUndefined: Self = StObject.set(x, "scrollMarginLeft", js.undefined)
      
      inline def setScrollMarginLeftVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginLeft", js.Array(value*))
      
      inline def setScrollMarginRight(
        value: (ScrollMarginRight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginRight", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginRightUndefined: Self = StObject.set(x, "scrollMarginRight", js.undefined)
      
      inline def setScrollMarginRightVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginRight", js.Array(value*))
      
      inline def setScrollMarginTop(
        value: (ScrollMarginTop[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollMarginTop", value.asInstanceOf[js.Any])
      
      inline def setScrollMarginTopUndefined: Self = StObject.set(x, "scrollMarginTop", js.undefined)
      
      inline def setScrollMarginTopVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMarginTop", js.Array(value*))
      
      inline def setScrollMarginUndefined: Self = StObject.set(x, "scrollMargin", js.undefined)
      
      inline def setScrollMarginVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMargin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMargin[Double | String]]]))*
      ): Self = StObject.set(x, "scrollMargin", js.Array(value*))
      
      inline def setScrollPadding(
        value: (ScrollPadding[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPadding[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPadding[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPadding[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPadding", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingBlock(
        value: (ScrollPaddingBlock[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlock[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingBlock[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingBlock", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingBlockEnd(
        value: (ScrollPaddingBlockEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlockEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingBlockEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingBlockEnd", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingBlockEndUndefined: Self = StObject.set(x, "scrollPaddingBlockEnd", js.undefined)
      
      inline def setScrollPaddingBlockEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingBlockEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlockEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingBlockEnd[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingBlockEnd", js.Array(value*))
      
      inline def setScrollPaddingBlockStart(
        value: (ScrollPaddingBlockStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlockStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingBlockStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingBlockStart", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingBlockStartUndefined: Self = StObject.set(x, "scrollPaddingBlockStart", js.undefined)
      
      inline def setScrollPaddingBlockStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingBlockStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlockStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingBlockStart[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingBlockStart", js.Array(value*))
      
      inline def setScrollPaddingBlockUndefined: Self = StObject.set(x, "scrollPaddingBlock", js.undefined)
      
      inline def setScrollPaddingBlockVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingBlock[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBlock[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingBlock[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingBlock", js.Array(value*))
      
      inline def setScrollPaddingBottom(
        value: (ScrollPaddingBottom[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBottom[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingBottom[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingBottom", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingBottomUndefined: Self = StObject.set(x, "scrollPaddingBottom", js.undefined)
      
      inline def setScrollPaddingBottomVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingBottom[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingBottom[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingBottom", js.Array(value*))
      
      inline def setScrollPaddingInline(
        value: (ScrollPaddingInline[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInline[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingInline[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingInline", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingInlineEnd(
        value: (ScrollPaddingInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingInlineEnd", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingInlineEndUndefined: Self = StObject.set(x, "scrollPaddingInlineEnd", js.undefined)
      
      inline def setScrollPaddingInlineEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingInlineEnd", js.Array(value*))
      
      inline def setScrollPaddingInlineStart(
        value: (ScrollPaddingInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingInlineStart", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingInlineStartUndefined: Self = StObject.set(x, "scrollPaddingInlineStart", js.undefined)
      
      inline def setScrollPaddingInlineStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingInlineStart", js.Array(value*))
      
      inline def setScrollPaddingInlineUndefined: Self = StObject.set(x, "scrollPaddingInline", js.undefined)
      
      inline def setScrollPaddingInlineVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingInline[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingInline[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingInline[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingInline", js.Array(value*))
      
      inline def setScrollPaddingLeft(
        value: (ScrollPaddingLeft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingLeft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingLeft[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingLeft", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingLeftUndefined: Self = StObject.set(x, "scrollPaddingLeft", js.undefined)
      
      inline def setScrollPaddingLeftVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingLeft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingLeft[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingLeft", js.Array(value*))
      
      inline def setScrollPaddingRight(
        value: (ScrollPaddingRight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingRight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingRight[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingRight", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingRightUndefined: Self = StObject.set(x, "scrollPaddingRight", js.undefined)
      
      inline def setScrollPaddingRightVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingRight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingRight[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingRight", js.Array(value*))
      
      inline def setScrollPaddingTop(
        value: (ScrollPaddingTop[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollPaddingTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingTop[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollPaddingTop[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollPaddingTop", value.asInstanceOf[js.Any])
      
      inline def setScrollPaddingTopUndefined: Self = StObject.set(x, "scrollPaddingTop", js.undefined)
      
      inline def setScrollPaddingTopVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPaddingTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPaddingTop[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPaddingTop[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPaddingTop", js.Array(value*))
      
      inline def setScrollPaddingUndefined: Self = StObject.set(x, "scrollPadding", js.undefined)
      
      inline def setScrollPaddingVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollPadding[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollPadding[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollPadding[Double | String]]]))*
      ): Self = StObject.set(x, "scrollPadding", js.Array(value*))
      
      inline def setScrollSnapAlign(
        value: ScrollSnapAlign | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapAlign | js.Array[NonNullable[js.UndefOr[ScrollSnapAlign]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapAlign]]
            ])
      ): Self = StObject.set(x, "scrollSnapAlign", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapAlignUndefined: Self = StObject.set(x, "scrollSnapAlign", js.undefined)
      
      inline def setScrollSnapAlignVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapAlign | js.Array[NonNullable[js.UndefOr[ScrollSnapAlign]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapAlign]])*
      ): Self = StObject.set(x, "scrollSnapAlign", js.Array(value*))
      
      inline def setScrollSnapCoordinate(
        value: (ScrollSnapCoordinate[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollSnapCoordinate[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollSnapCoordinate[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollSnapCoordinate[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollSnapCoordinate", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapCoordinateUndefined: Self = StObject.set(x, "scrollSnapCoordinate", js.undefined)
      
      inline def setScrollSnapCoordinateVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollSnapCoordinate[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollSnapCoordinate[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollSnapCoordinate[Double | String]]]))*
      ): Self = StObject.set(x, "scrollSnapCoordinate", js.Array(value*))
      
      inline def setScrollSnapDestination(
        value: (ScrollSnapDestination[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollSnapDestination[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollSnapDestination[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollSnapDestination[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollSnapDestination", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapDestinationUndefined: Self = StObject.set(x, "scrollSnapDestination", js.undefined)
      
      inline def setScrollSnapDestinationVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollSnapDestination[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollSnapDestination[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollSnapDestination[Double | String]]]))*
      ): Self = StObject.set(x, "scrollSnapDestination", js.Array(value*))
      
      inline def setScrollSnapMargin(
        value: (ScrollMargin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMargin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMargin[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollSnapMargin", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapMarginBottom(
        value: (ScrollMarginBottom[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollSnapMarginBottom", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapMarginBottomUndefined: Self = StObject.set(x, "scrollSnapMarginBottom", js.undefined)
      
      inline def setScrollSnapMarginBottomVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginBottom[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginBottom[Double | String]]]))*
      ): Self = StObject.set(x, "scrollSnapMarginBottom", js.Array(value*))
      
      inline def setScrollSnapMarginLeft(
        value: (ScrollMarginLeft[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollSnapMarginLeft", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapMarginLeftUndefined: Self = StObject.set(x, "scrollSnapMarginLeft", js.undefined)
      
      inline def setScrollSnapMarginLeftVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginLeft[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginLeft[Double | String]]]))*
      ): Self = StObject.set(x, "scrollSnapMarginLeft", js.Array(value*))
      
      inline def setScrollSnapMarginRight(
        value: (ScrollMarginRight[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollSnapMarginRight", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapMarginRightUndefined: Self = StObject.set(x, "scrollSnapMarginRight", js.undefined)
      
      inline def setScrollSnapMarginRightVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginRight[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginRight[Double | String]]]))*
      ): Self = StObject.set(x, "scrollSnapMarginRight", js.Array(value*))
      
      inline def setScrollSnapMarginTop(
        value: (ScrollMarginTop[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ScrollMarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]])
            ])
      ): Self = StObject.set(x, "scrollSnapMarginTop", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapMarginTopUndefined: Self = StObject.set(x, "scrollSnapMarginTop", js.undefined)
      
      inline def setScrollSnapMarginTopVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMarginTop[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMarginTop[Double | String]]]))*
      ): Self = StObject.set(x, "scrollSnapMarginTop", js.Array(value*))
      
      inline def setScrollSnapMarginUndefined: Self = StObject.set(x, "scrollSnapMargin", js.undefined)
      
      inline def setScrollSnapMarginVarargs(
        value: ((Extract[
              js.UndefOr[
                (ScrollMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ScrollMargin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ScrollMargin[Double | String]]]))*
      ): Self = StObject.set(x, "scrollSnapMargin", js.Array(value*))
      
      inline def setScrollSnapPointsX(
        value: ScrollSnapPointsX | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsX]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapPointsX]]
            ])
      ): Self = StObject.set(x, "scrollSnapPointsX", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapPointsXUndefined: Self = StObject.set(x, "scrollSnapPointsX", js.undefined)
      
      inline def setScrollSnapPointsXVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsX]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapPointsX]])*
      ): Self = StObject.set(x, "scrollSnapPointsX", js.Array(value*))
      
      inline def setScrollSnapPointsY(
        value: ScrollSnapPointsY | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsY]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapPointsY]]
            ])
      ): Self = StObject.set(x, "scrollSnapPointsY", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapPointsYUndefined: Self = StObject.set(x, "scrollSnapPointsY", js.undefined)
      
      inline def setScrollSnapPointsYVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsY]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapPointsY]])*
      ): Self = StObject.set(x, "scrollSnapPointsY", js.Array(value*))
      
      inline def setScrollSnapStop(
        value: ScrollSnapStop | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapStop | js.Array[NonNullable[js.UndefOr[ScrollSnapStop]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapStop]]
            ])
      ): Self = StObject.set(x, "scrollSnapStop", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapStopUndefined: Self = StObject.set(x, "scrollSnapStop", js.undefined)
      
      inline def setScrollSnapStopVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapStop | js.Array[NonNullable[js.UndefOr[ScrollSnapStop]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapStop]])*
      ): Self = StObject.set(x, "scrollSnapStop", js.Array(value*))
      
      inline def setScrollSnapType(
        value: ScrollSnapType | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapType | js.Array[NonNullable[js.UndefOr[ScrollSnapType]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapType]]
            ])
      ): Self = StObject.set(x, "scrollSnapType", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapTypeUndefined: Self = StObject.set(x, "scrollSnapType", js.undefined)
      
      inline def setScrollSnapTypeVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapType | js.Array[NonNullable[js.UndefOr[ScrollSnapType]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapType]])*
      ): Self = StObject.set(x, "scrollSnapType", js.Array(value*))
      
      inline def setScrollSnapTypeX(
        value: ScrollSnapTypeX | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapTypeX | js.Array[NonNullable[js.UndefOr[ScrollSnapTypeX]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapTypeX]]
            ])
      ): Self = StObject.set(x, "scrollSnapTypeX", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapTypeXUndefined: Self = StObject.set(x, "scrollSnapTypeX", js.undefined)
      
      inline def setScrollSnapTypeXVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapTypeX | js.Array[NonNullable[js.UndefOr[ScrollSnapTypeX]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapTypeX]])*
      ): Self = StObject.set(x, "scrollSnapTypeX", js.Array(value*))
      
      inline def setScrollSnapTypeY(
        value: ScrollSnapTypeY | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapTypeY | js.Array[NonNullable[js.UndefOr[ScrollSnapTypeY]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapTypeY]]
            ])
      ): Self = StObject.set(x, "scrollSnapTypeY", value.asInstanceOf[js.Any])
      
      inline def setScrollSnapTypeYUndefined: Self = StObject.set(x, "scrollSnapTypeY", js.undefined)
      
      inline def setScrollSnapTypeYVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapTypeY | js.Array[NonNullable[js.UndefOr[ScrollSnapTypeY]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapTypeY]])*
      ): Self = StObject.set(x, "scrollSnapTypeY", js.Array(value*))
      
      inline def setScrollbarColor(
        value: ScrollbarColor | (js.Array[
              (Extract[
                js.UndefOr[ScrollbarColor | js.Array[NonNullable[js.UndefOr[ScrollbarColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollbarColor]]
            ])
      ): Self = StObject.set(x, "scrollbarColor", value.asInstanceOf[js.Any])
      
      inline def setScrollbarColorUndefined: Self = StObject.set(x, "scrollbarColor", js.undefined)
      
      inline def setScrollbarColorVarargs(
        value: ((Extract[
              js.UndefOr[ScrollbarColor | js.Array[NonNullable[js.UndefOr[ScrollbarColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollbarColor]])*
      ): Self = StObject.set(x, "scrollbarColor", js.Array(value*))
      
      inline def setScrollbarGutter(
        value: ScrollbarGutter | (js.Array[
              (Extract[
                js.UndefOr[ScrollbarGutter | js.Array[NonNullable[js.UndefOr[ScrollbarGutter]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollbarGutter]]
            ])
      ): Self = StObject.set(x, "scrollbarGutter", value.asInstanceOf[js.Any])
      
      inline def setScrollbarGutterUndefined: Self = StObject.set(x, "scrollbarGutter", js.undefined)
      
      inline def setScrollbarGutterVarargs(
        value: ((Extract[
              js.UndefOr[ScrollbarGutter | js.Array[NonNullable[js.UndefOr[ScrollbarGutter]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollbarGutter]])*
      ): Self = StObject.set(x, "scrollbarGutter", js.Array(value*))
      
      inline def setScrollbarTrackColor(
        value: MsScrollbarTrackColor | (js.Array[
              (Extract[
                js.UndefOr[MsScrollbarTrackColor | js.Array[NonNullable[js.UndefOr[MsScrollbarTrackColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[MsScrollbarTrackColor]]
            ])
      ): Self = StObject.set(x, "scrollbarTrackColor", value.asInstanceOf[js.Any])
      
      inline def setScrollbarTrackColorUndefined: Self = StObject.set(x, "scrollbarTrackColor", js.undefined)
      
      inline def setScrollbarTrackColorVarargs(
        value: ((Extract[
              js.UndefOr[MsScrollbarTrackColor | js.Array[NonNullable[js.UndefOr[MsScrollbarTrackColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[MsScrollbarTrackColor]])*
      ): Self = StObject.set(x, "scrollbarTrackColor", js.Array(value*))
      
      inline def setScrollbarWidth(
        value: ScrollbarWidth | (js.Array[
              (Extract[
                js.UndefOr[ScrollbarWidth | js.Array[NonNullable[js.UndefOr[ScrollbarWidth]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollbarWidth]]
            ])
      ): Self = StObject.set(x, "scrollbarWidth", value.asInstanceOf[js.Any])
      
      inline def setScrollbarWidthUndefined: Self = StObject.set(x, "scrollbarWidth", js.undefined)
      
      inline def setScrollbarWidthVarargs(
        value: ((Extract[
              js.UndefOr[ScrollbarWidth | js.Array[NonNullable[js.UndefOr[ScrollbarWidth]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollbarWidth]])*
      ): Self = StObject.set(x, "scrollbarWidth", js.Array(value*))
      
      inline def setShapeImageThreshold(
        value: ShapeImageThreshold | (js.Array[
              (Extract[
                js.UndefOr[ShapeImageThreshold | js.Array[NonNullable[js.UndefOr[ShapeImageThreshold]]]], 
                String
              ]) | NonNullable[js.UndefOr[ShapeImageThreshold]]
            ])
      ): Self = StObject.set(x, "shapeImageThreshold", value.asInstanceOf[js.Any])
      
      inline def setShapeImageThresholdUndefined: Self = StObject.set(x, "shapeImageThreshold", js.undefined)
      
      inline def setShapeImageThresholdVarargs(
        value: ((Extract[
              js.UndefOr[ShapeImageThreshold | js.Array[NonNullable[js.UndefOr[ShapeImageThreshold]]]], 
              String
            ]) | NonNullable[js.UndefOr[ShapeImageThreshold]])*
      ): Self = StObject.set(x, "shapeImageThreshold", js.Array(value*))
      
      inline def setShapeMargin(
        value: (ShapeMargin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ShapeMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ShapeMargin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ShapeMargin[Double | String]]])
            ])
      ): Self = StObject.set(x, "shapeMargin", value.asInstanceOf[js.Any])
      
      inline def setShapeMarginUndefined: Self = StObject.set(x, "shapeMargin", js.undefined)
      
      inline def setShapeMarginVarargs(
        value: ((Extract[
              js.UndefOr[
                (ShapeMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ShapeMargin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ShapeMargin[Double | String]]]))*
      ): Self = StObject.set(x, "shapeMargin", js.Array(value*))
      
      inline def setShapeOutside(
        value: ShapeOutside | (js.Array[
              (Extract[js.UndefOr[ShapeOutside | js.Array[NonNullable[js.UndefOr[ShapeOutside]]]], String]) | NonNullable[js.UndefOr[ShapeOutside]]
            ])
      ): Self = StObject.set(x, "shapeOutside", value.asInstanceOf[js.Any])
      
      inline def setShapeOutsideUndefined: Self = StObject.set(x, "shapeOutside", js.undefined)
      
      inline def setShapeOutsideVarargs(
        value: ((Extract[js.UndefOr[ShapeOutside | js.Array[NonNullable[js.UndefOr[ShapeOutside]]]], String]) | NonNullable[js.UndefOr[ShapeOutside]])*
      ): Self = StObject.set(x, "shapeOutside", js.Array(value*))
      
      inline def setShapeRendering(
        value: ShapeRendering | (js.Array[
              (Extract[
                js.UndefOr[ShapeRendering | js.Array[NonNullable[js.UndefOr[ShapeRendering]]]], 
                String
              ]) | NonNullable[js.UndefOr[ShapeRendering]]
            ])
      ): Self = StObject.set(x, "shapeRendering", value.asInstanceOf[js.Any])
      
      inline def setShapeRenderingUndefined: Self = StObject.set(x, "shapeRendering", js.undefined)
      
      inline def setShapeRenderingVarargs(
        value: ((Extract[
              js.UndefOr[ShapeRendering | js.Array[NonNullable[js.UndefOr[ShapeRendering]]]], 
              String
            ]) | NonNullable[js.UndefOr[ShapeRendering]])*
      ): Self = StObject.set(x, "shapeRendering", js.Array(value*))
      
      inline def setStopColor(
        value: StopColor | (js.Array[
              (Extract[js.UndefOr[StopColor | js.Array[NonNullable[js.UndefOr[StopColor]]]], String]) | NonNullable[js.UndefOr[StopColor]]
            ])
      ): Self = StObject.set(x, "stopColor", value.asInstanceOf[js.Any])
      
      inline def setStopColorUndefined: Self = StObject.set(x, "stopColor", js.undefined)
      
      inline def setStopColorVarargs(
        value: ((Extract[js.UndefOr[StopColor | js.Array[NonNullable[js.UndefOr[StopColor]]]], String]) | NonNullable[js.UndefOr[StopColor]])*
      ): Self = StObject.set(x, "stopColor", js.Array(value*))
      
      inline def setStopOpacity(
        value: StopOpacity | (js.Array[
              (Extract[js.UndefOr[StopOpacity | js.Array[NonNullable[js.UndefOr[StopOpacity]]]], String]) | NonNullable[js.UndefOr[StopOpacity]]
            ])
      ): Self = StObject.set(x, "stopOpacity", value.asInstanceOf[js.Any])
      
      inline def setStopOpacityUndefined: Self = StObject.set(x, "stopOpacity", js.undefined)
      
      inline def setStopOpacityVarargs(
        value: ((Extract[js.UndefOr[StopOpacity | js.Array[NonNullable[js.UndefOr[StopOpacity]]]], String]) | NonNullable[js.UndefOr[StopOpacity]])*
      ): Self = StObject.set(x, "stopOpacity", js.Array(value*))
      
      inline def setStroke(
        value: Stroke | (js.Array[
              (Extract[js.UndefOr[Stroke | js.Array[NonNullable[js.UndefOr[Stroke]]]], String]) | NonNullable[js.UndefOr[Stroke]]
            ])
      ): Self = StObject.set(x, "stroke", value.asInstanceOf[js.Any])
      
      inline def setStrokeDasharray(
        value: (StrokeDasharray[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (StrokeDasharray[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeDasharray[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[StrokeDasharray[Double | String]]])
            ])
      ): Self = StObject.set(x, "strokeDasharray", value.asInstanceOf[js.Any])
      
      inline def setStrokeDasharrayUndefined: Self = StObject.set(x, "strokeDasharray", js.undefined)
      
      inline def setStrokeDasharrayVarargs(
        value: ((Extract[
              js.UndefOr[
                (StrokeDasharray[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeDasharray[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[StrokeDasharray[Double | String]]]))*
      ): Self = StObject.set(x, "strokeDasharray", js.Array(value*))
      
      inline def setStrokeDashoffset(
        value: (StrokeDashoffset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (StrokeDashoffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeDashoffset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[StrokeDashoffset[Double | String]]])
            ])
      ): Self = StObject.set(x, "strokeDashoffset", value.asInstanceOf[js.Any])
      
      inline def setStrokeDashoffsetUndefined: Self = StObject.set(x, "strokeDashoffset", js.undefined)
      
      inline def setStrokeDashoffsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (StrokeDashoffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeDashoffset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[StrokeDashoffset[Double | String]]]))*
      ): Self = StObject.set(x, "strokeDashoffset", js.Array(value*))
      
      inline def setStrokeLinecap(
        value: StrokeLinecap | (js.Array[
              (Extract[
                js.UndefOr[StrokeLinecap | js.Array[NonNullable[js.UndefOr[StrokeLinecap]]]], 
                String
              ]) | NonNullable[js.UndefOr[StrokeLinecap]]
            ])
      ): Self = StObject.set(x, "strokeLinecap", value.asInstanceOf[js.Any])
      
      inline def setStrokeLinecapUndefined: Self = StObject.set(x, "strokeLinecap", js.undefined)
      
      inline def setStrokeLinecapVarargs(
        value: ((Extract[
              js.UndefOr[StrokeLinecap | js.Array[NonNullable[js.UndefOr[StrokeLinecap]]]], 
              String
            ]) | NonNullable[js.UndefOr[StrokeLinecap]])*
      ): Self = StObject.set(x, "strokeLinecap", js.Array(value*))
      
      inline def setStrokeLinejoin(
        value: StrokeLinejoin | (js.Array[
              (Extract[
                js.UndefOr[StrokeLinejoin | js.Array[NonNullable[js.UndefOr[StrokeLinejoin]]]], 
                String
              ]) | NonNullable[js.UndefOr[StrokeLinejoin]]
            ])
      ): Self = StObject.set(x, "strokeLinejoin", value.asInstanceOf[js.Any])
      
      inline def setStrokeLinejoinUndefined: Self = StObject.set(x, "strokeLinejoin", js.undefined)
      
      inline def setStrokeLinejoinVarargs(
        value: ((Extract[
              js.UndefOr[StrokeLinejoin | js.Array[NonNullable[js.UndefOr[StrokeLinejoin]]]], 
              String
            ]) | NonNullable[js.UndefOr[StrokeLinejoin]])*
      ): Self = StObject.set(x, "strokeLinejoin", js.Array(value*))
      
      inline def setStrokeMiterlimit(
        value: StrokeMiterlimit | (js.Array[
              (Extract[
                js.UndefOr[StrokeMiterlimit | js.Array[NonNullable[js.UndefOr[StrokeMiterlimit]]]], 
                String
              ]) | NonNullable[js.UndefOr[StrokeMiterlimit]]
            ])
      ): Self = StObject.set(x, "strokeMiterlimit", value.asInstanceOf[js.Any])
      
      inline def setStrokeMiterlimitUndefined: Self = StObject.set(x, "strokeMiterlimit", js.undefined)
      
      inline def setStrokeMiterlimitVarargs(
        value: ((Extract[
              js.UndefOr[StrokeMiterlimit | js.Array[NonNullable[js.UndefOr[StrokeMiterlimit]]]], 
              String
            ]) | NonNullable[js.UndefOr[StrokeMiterlimit]])*
      ): Self = StObject.set(x, "strokeMiterlimit", js.Array(value*))
      
      inline def setStrokeOpacity(
        value: StrokeOpacity | (js.Array[
              (Extract[
                js.UndefOr[StrokeOpacity | js.Array[NonNullable[js.UndefOr[StrokeOpacity]]]], 
                String
              ]) | NonNullable[js.UndefOr[StrokeOpacity]]
            ])
      ): Self = StObject.set(x, "strokeOpacity", value.asInstanceOf[js.Any])
      
      inline def setStrokeOpacityUndefined: Self = StObject.set(x, "strokeOpacity", js.undefined)
      
      inline def setStrokeOpacityVarargs(
        value: ((Extract[
              js.UndefOr[StrokeOpacity | js.Array[NonNullable[js.UndefOr[StrokeOpacity]]]], 
              String
            ]) | NonNullable[js.UndefOr[StrokeOpacity]])*
      ): Self = StObject.set(x, "strokeOpacity", js.Array(value*))
      
      inline def setStrokeUndefined: Self = StObject.set(x, "stroke", js.undefined)
      
      inline def setStrokeVarargs(
        value: ((Extract[js.UndefOr[Stroke | js.Array[NonNullable[js.UndefOr[Stroke]]]], String]) | NonNullable[js.UndefOr[Stroke]])*
      ): Self = StObject.set(x, "stroke", js.Array(value*))
      
      inline def setStrokeWidth(
        value: (StrokeWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (StrokeWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[StrokeWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "strokeWidth", value.asInstanceOf[js.Any])
      
      inline def setStrokeWidthUndefined: Self = StObject.set(x, "strokeWidth", js.undefined)
      
      inline def setStrokeWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (StrokeWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[StrokeWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[StrokeWidth[Double | String]]]))*
      ): Self = StObject.set(x, "strokeWidth", js.Array(value*))
      
      inline def setTabSize(
        value: (TabSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "tabSize", value.asInstanceOf[js.Any])
      
      inline def setTabSizeUndefined: Self = StObject.set(x, "tabSize", js.undefined)
      
      inline def setTabSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (TabSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[TabSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TabSize[Double | String]]]))*
      ): Self = StObject.set(x, "tabSize", js.Array(value*))
      
      inline def setTableLayout(
        value: TableLayout | (js.Array[
              (Extract[js.UndefOr[TableLayout | js.Array[NonNullable[js.UndefOr[TableLayout]]]], String]) | NonNullable[js.UndefOr[TableLayout]]
            ])
      ): Self = StObject.set(x, "tableLayout", value.asInstanceOf[js.Any])
      
      inline def setTableLayoutUndefined: Self = StObject.set(x, "tableLayout", js.undefined)
      
      inline def setTableLayoutVarargs(
        value: ((Extract[js.UndefOr[TableLayout | js.Array[NonNullable[js.UndefOr[TableLayout]]]], String]) | NonNullable[js.UndefOr[TableLayout]])*
      ): Self = StObject.set(x, "tableLayout", js.Array(value*))
      
      inline def setTextAlign(
        value: TextAlign | (js.Array[
              (Extract[js.UndefOr[TextAlign | js.Array[NonNullable[js.UndefOr[TextAlign]]]], String]) | NonNullable[js.UndefOr[TextAlign]]
            ])
      ): Self = StObject.set(x, "textAlign", value.asInstanceOf[js.Any])
      
      inline def setTextAlignLast(
        value: TextAlignLast | (js.Array[
              (Extract[
                js.UndefOr[TextAlignLast | js.Array[NonNullable[js.UndefOr[TextAlignLast]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextAlignLast]]
            ])
      ): Self = StObject.set(x, "textAlignLast", value.asInstanceOf[js.Any])
      
      inline def setTextAlignLastUndefined: Self = StObject.set(x, "textAlignLast", js.undefined)
      
      inline def setTextAlignLastVarargs(
        value: ((Extract[
              js.UndefOr[TextAlignLast | js.Array[NonNullable[js.UndefOr[TextAlignLast]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextAlignLast]])*
      ): Self = StObject.set(x, "textAlignLast", js.Array(value*))
      
      inline def setTextAlignUndefined: Self = StObject.set(x, "textAlign", js.undefined)
      
      inline def setTextAlignVarargs(
        value: ((Extract[js.UndefOr[TextAlign | js.Array[NonNullable[js.UndefOr[TextAlign]]]], String]) | NonNullable[js.UndefOr[TextAlign]])*
      ): Self = StObject.set(x, "textAlign", js.Array(value*))
      
      inline def setTextAnchor(
        value: TextAnchor | (js.Array[
              (Extract[js.UndefOr[TextAnchor | js.Array[NonNullable[js.UndefOr[TextAnchor]]]], String]) | NonNullable[js.UndefOr[TextAnchor]]
            ])
      ): Self = StObject.set(x, "textAnchor", value.asInstanceOf[js.Any])
      
      inline def setTextAnchorUndefined: Self = StObject.set(x, "textAnchor", js.undefined)
      
      inline def setTextAnchorVarargs(
        value: ((Extract[js.UndefOr[TextAnchor | js.Array[NonNullable[js.UndefOr[TextAnchor]]]], String]) | NonNullable[js.UndefOr[TextAnchor]])*
      ): Self = StObject.set(x, "textAnchor", js.Array(value*))
      
      inline def setTextCombineUpright(
        value: TextCombineUpright | (js.Array[
              (Extract[
                js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextCombineUpright]]
            ])
      ): Self = StObject.set(x, "textCombineUpright", value.asInstanceOf[js.Any])
      
      inline def setTextCombineUprightUndefined: Self = StObject.set(x, "textCombineUpright", js.undefined)
      
      inline def setTextCombineUprightVarargs(
        value: ((Extract[
              js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextCombineUpright]])*
      ): Self = StObject.set(x, "textCombineUpright", js.Array(value*))
      
      inline def setTextDecoration(
        value: (TextDecoration[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TextDecoration[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecoration[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TextDecoration[Double | String]]])
            ])
      ): Self = StObject.set(x, "textDecoration", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationColor(
        value: TextDecorationColor | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationColor]]
            ])
      ): Self = StObject.set(x, "textDecorationColor", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationColorUndefined: Self = StObject.set(x, "textDecorationColor", js.undefined)
      
      inline def setTextDecorationColorVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationColor]])*
      ): Self = StObject.set(x, "textDecorationColor", js.Array(value*))
      
      inline def setTextDecorationLine(
        value: TextDecorationLine | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationLine]]
            ])
      ): Self = StObject.set(x, "textDecorationLine", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationLineUndefined: Self = StObject.set(x, "textDecorationLine", js.undefined)
      
      inline def setTextDecorationLineVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationLine]])*
      ): Self = StObject.set(x, "textDecorationLine", js.Array(value*))
      
      inline def setTextDecorationSkip(
        value: TextDecorationSkip | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationSkip | js.Array[NonNullable[js.UndefOr[TextDecorationSkip]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationSkip]]
            ])
      ): Self = StObject.set(x, "textDecorationSkip", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationSkipInk(
        value: TextDecorationSkipInk | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationSkipInk | js.Array[NonNullable[js.UndefOr[TextDecorationSkipInk]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationSkipInk]]
            ])
      ): Self = StObject.set(x, "textDecorationSkipInk", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationSkipInkUndefined: Self = StObject.set(x, "textDecorationSkipInk", js.undefined)
      
      inline def setTextDecorationSkipInkVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationSkipInk | js.Array[NonNullable[js.UndefOr[TextDecorationSkipInk]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationSkipInk]])*
      ): Self = StObject.set(x, "textDecorationSkipInk", js.Array(value*))
      
      inline def setTextDecorationSkipUndefined: Self = StObject.set(x, "textDecorationSkip", js.undefined)
      
      inline def setTextDecorationSkipVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationSkip | js.Array[NonNullable[js.UndefOr[TextDecorationSkip]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationSkip]])*
      ): Self = StObject.set(x, "textDecorationSkip", js.Array(value*))
      
      inline def setTextDecorationStyle(
        value: TextDecorationStyle | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationStyle]]
            ])
      ): Self = StObject.set(x, "textDecorationStyle", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationStyleUndefined: Self = StObject.set(x, "textDecorationStyle", js.undefined)
      
      inline def setTextDecorationStyleVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationStyle]])*
      ): Self = StObject.set(x, "textDecorationStyle", js.Array(value*))
      
      inline def setTextDecorationThickness(
        value: (TextDecorationThickness[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TextDecorationThickness[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]])
            ])
      ): Self = StObject.set(x, "textDecorationThickness", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationThicknessUndefined: Self = StObject.set(x, "textDecorationThickness", js.undefined)
      
      inline def setTextDecorationThicknessVarargs(
        value: ((Extract[
              js.UndefOr[
                (TextDecorationThickness[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]))*
      ): Self = StObject.set(x, "textDecorationThickness", js.Array(value*))
      
      inline def setTextDecorationUndefined: Self = StObject.set(x, "textDecoration", js.undefined)
      
      inline def setTextDecorationVarargs(
        value: ((Extract[
              js.UndefOr[
                (TextDecoration[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecoration[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TextDecoration[Double | String]]]))*
      ): Self = StObject.set(x, "textDecoration", js.Array(value*))
      
      inline def setTextDecorationWidth(
        value: (TextDecorationThickness[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TextDecorationThickness[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]])
            ])
      ): Self = StObject.set(x, "textDecorationWidth", value.asInstanceOf[js.Any])
      
      inline def setTextDecorationWidthUndefined: Self = StObject.set(x, "textDecorationWidth", js.undefined)
      
      inline def setTextDecorationWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (TextDecorationThickness[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TextDecorationThickness[Double | String]]]))*
      ): Self = StObject.set(x, "textDecorationWidth", js.Array(value*))
      
      inline def setTextEmphasis(
        value: TextEmphasis | (js.Array[
              (Extract[js.UndefOr[TextEmphasis | js.Array[NonNullable[js.UndefOr[TextEmphasis]]]], String]) | NonNullable[js.UndefOr[TextEmphasis]]
            ])
      ): Self = StObject.set(x, "textEmphasis", value.asInstanceOf[js.Any])
      
      inline def setTextEmphasisColor(
        value: TextEmphasisColor | (js.Array[
              (Extract[
                js.UndefOr[TextEmphasisColor | js.Array[NonNullable[js.UndefOr[TextEmphasisColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextEmphasisColor]]
            ])
      ): Self = StObject.set(x, "textEmphasisColor", value.asInstanceOf[js.Any])
      
      inline def setTextEmphasisColorUndefined: Self = StObject.set(x, "textEmphasisColor", js.undefined)
      
      inline def setTextEmphasisColorVarargs(
        value: ((Extract[
              js.UndefOr[TextEmphasisColor | js.Array[NonNullable[js.UndefOr[TextEmphasisColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextEmphasisColor]])*
      ): Self = StObject.set(x, "textEmphasisColor", js.Array(value*))
      
      inline def setTextEmphasisPosition(
        value: TextEmphasisPosition | (js.Array[
              (Extract[
                js.UndefOr[TextEmphasisPosition | js.Array[NonNullable[js.UndefOr[TextEmphasisPosition]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextEmphasisPosition]]
            ])
      ): Self = StObject.set(x, "textEmphasisPosition", value.asInstanceOf[js.Any])
      
      inline def setTextEmphasisPositionUndefined: Self = StObject.set(x, "textEmphasisPosition", js.undefined)
      
      inline def setTextEmphasisPositionVarargs(
        value: ((Extract[
              js.UndefOr[TextEmphasisPosition | js.Array[NonNullable[js.UndefOr[TextEmphasisPosition]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextEmphasisPosition]])*
      ): Self = StObject.set(x, "textEmphasisPosition", js.Array(value*))
      
      inline def setTextEmphasisStyle(
        value: TextEmphasisStyle | (js.Array[
              (Extract[
                js.UndefOr[TextEmphasisStyle | js.Array[NonNullable[js.UndefOr[TextEmphasisStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextEmphasisStyle]]
            ])
      ): Self = StObject.set(x, "textEmphasisStyle", value.asInstanceOf[js.Any])
      
      inline def setTextEmphasisStyleUndefined: Self = StObject.set(x, "textEmphasisStyle", js.undefined)
      
      inline def setTextEmphasisStyleVarargs(
        value: ((Extract[
              js.UndefOr[TextEmphasisStyle | js.Array[NonNullable[js.UndefOr[TextEmphasisStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextEmphasisStyle]])*
      ): Self = StObject.set(x, "textEmphasisStyle", js.Array(value*))
      
      inline def setTextEmphasisUndefined: Self = StObject.set(x, "textEmphasis", js.undefined)
      
      inline def setTextEmphasisVarargs(
        value: ((Extract[js.UndefOr[TextEmphasis | js.Array[NonNullable[js.UndefOr[TextEmphasis]]]], String]) | NonNullable[js.UndefOr[TextEmphasis]])*
      ): Self = StObject.set(x, "textEmphasis", js.Array(value*))
      
      inline def setTextIndent(
        value: (TextIndent[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TextIndent[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextIndent[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TextIndent[Double | String]]])
            ])
      ): Self = StObject.set(x, "textIndent", value.asInstanceOf[js.Any])
      
      inline def setTextIndentUndefined: Self = StObject.set(x, "textIndent", js.undefined)
      
      inline def setTextIndentVarargs(
        value: ((Extract[
              js.UndefOr[
                (TextIndent[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextIndent[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TextIndent[Double | String]]]))*
      ): Self = StObject.set(x, "textIndent", js.Array(value*))
      
      inline def setTextJustify(
        value: TextJustify | (js.Array[
              (Extract[js.UndefOr[TextJustify | js.Array[NonNullable[js.UndefOr[TextJustify]]]], String]) | NonNullable[js.UndefOr[TextJustify]]
            ])
      ): Self = StObject.set(x, "textJustify", value.asInstanceOf[js.Any])
      
      inline def setTextJustifyUndefined: Self = StObject.set(x, "textJustify", js.undefined)
      
      inline def setTextJustifyVarargs(
        value: ((Extract[js.UndefOr[TextJustify | js.Array[NonNullable[js.UndefOr[TextJustify]]]], String]) | NonNullable[js.UndefOr[TextJustify]])*
      ): Self = StObject.set(x, "textJustify", js.Array(value*))
      
      inline def setTextOrientation(
        value: TextOrientation | (js.Array[
              (Extract[
                js.UndefOr[TextOrientation | js.Array[NonNullable[js.UndefOr[TextOrientation]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextOrientation]]
            ])
      ): Self = StObject.set(x, "textOrientation", value.asInstanceOf[js.Any])
      
      inline def setTextOrientationUndefined: Self = StObject.set(x, "textOrientation", js.undefined)
      
      inline def setTextOrientationVarargs(
        value: ((Extract[
              js.UndefOr[TextOrientation | js.Array[NonNullable[js.UndefOr[TextOrientation]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextOrientation]])*
      ): Self = StObject.set(x, "textOrientation", js.Array(value*))
      
      inline def setTextOverflow(
        value: TextOverflow | (js.Array[
              (Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]]
            ])
      ): Self = StObject.set(x, "textOverflow", value.asInstanceOf[js.Any])
      
      inline def setTextOverflowUndefined: Self = StObject.set(x, "textOverflow", js.undefined)
      
      inline def setTextOverflowVarargs(
        value: ((Extract[js.UndefOr[TextOverflow | js.Array[NonNullable[js.UndefOr[TextOverflow]]]], String]) | NonNullable[js.UndefOr[TextOverflow]])*
      ): Self = StObject.set(x, "textOverflow", js.Array(value*))
      
      inline def setTextRendering(
        value: TextRendering | (js.Array[
              (Extract[
                js.UndefOr[TextRendering | js.Array[NonNullable[js.UndefOr[TextRendering]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextRendering]]
            ])
      ): Self = StObject.set(x, "textRendering", value.asInstanceOf[js.Any])
      
      inline def setTextRenderingUndefined: Self = StObject.set(x, "textRendering", js.undefined)
      
      inline def setTextRenderingVarargs(
        value: ((Extract[
              js.UndefOr[TextRendering | js.Array[NonNullable[js.UndefOr[TextRendering]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextRendering]])*
      ): Self = StObject.set(x, "textRendering", js.Array(value*))
      
      inline def setTextShadow(
        value: TextShadow | (js.Array[
              (Extract[js.UndefOr[TextShadow | js.Array[NonNullable[js.UndefOr[TextShadow]]]], String]) | NonNullable[js.UndefOr[TextShadow]]
            ])
      ): Self = StObject.set(x, "textShadow", value.asInstanceOf[js.Any])
      
      inline def setTextShadowUndefined: Self = StObject.set(x, "textShadow", js.undefined)
      
      inline def setTextShadowVarargs(
        value: ((Extract[js.UndefOr[TextShadow | js.Array[NonNullable[js.UndefOr[TextShadow]]]], String]) | NonNullable[js.UndefOr[TextShadow]])*
      ): Self = StObject.set(x, "textShadow", js.Array(value*))
      
      inline def setTextSizeAdjust(
        value: TextSizeAdjust | (js.Array[
              (Extract[
                js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextSizeAdjust]]
            ])
      ): Self = StObject.set(x, "textSizeAdjust", value.asInstanceOf[js.Any])
      
      inline def setTextSizeAdjustUndefined: Self = StObject.set(x, "textSizeAdjust", js.undefined)
      
      inline def setTextSizeAdjustVarargs(
        value: ((Extract[
              js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextSizeAdjust]])*
      ): Self = StObject.set(x, "textSizeAdjust", js.Array(value*))
      
      inline def setTextTransform(
        value: TextTransform | (js.Array[
              (Extract[
                js.UndefOr[TextTransform | js.Array[NonNullable[js.UndefOr[TextTransform]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextTransform]]
            ])
      ): Self = StObject.set(x, "textTransform", value.asInstanceOf[js.Any])
      
      inline def setTextTransformUndefined: Self = StObject.set(x, "textTransform", js.undefined)
      
      inline def setTextTransformVarargs(
        value: ((Extract[
              js.UndefOr[TextTransform | js.Array[NonNullable[js.UndefOr[TextTransform]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextTransform]])*
      ): Self = StObject.set(x, "textTransform", js.Array(value*))
      
      inline def setTextUnderlineOffset(
        value: (TextUnderlineOffset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TextUnderlineOffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextUnderlineOffset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TextUnderlineOffset[Double | String]]])
            ])
      ): Self = StObject.set(x, "textUnderlineOffset", value.asInstanceOf[js.Any])
      
      inline def setTextUnderlineOffsetUndefined: Self = StObject.set(x, "textUnderlineOffset", js.undefined)
      
      inline def setTextUnderlineOffsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (TextUnderlineOffset[Double | String]) | (js.Array[NonNullable[js.UndefOr[TextUnderlineOffset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TextUnderlineOffset[Double | String]]]))*
      ): Self = StObject.set(x, "textUnderlineOffset", js.Array(value*))
      
      inline def setTextUnderlinePosition(
        value: TextUnderlinePosition | (js.Array[
              (Extract[
                js.UndefOr[TextUnderlinePosition | js.Array[NonNullable[js.UndefOr[TextUnderlinePosition]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextUnderlinePosition]]
            ])
      ): Self = StObject.set(x, "textUnderlinePosition", value.asInstanceOf[js.Any])
      
      inline def setTextUnderlinePositionUndefined: Self = StObject.set(x, "textUnderlinePosition", js.undefined)
      
      inline def setTextUnderlinePositionVarargs(
        value: ((Extract[
              js.UndefOr[TextUnderlinePosition | js.Array[NonNullable[js.UndefOr[TextUnderlinePosition]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextUnderlinePosition]])*
      ): Self = StObject.set(x, "textUnderlinePosition", js.Array(value*))
      
      inline def setTop(
        value: (Top[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Top[Double | String]) | (js.Array[NonNullable[js.UndefOr[Top[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Top[Double | String]]])
            ])
      ): Self = StObject.set(x, "top", value.asInstanceOf[js.Any])
      
      inline def setTopUndefined: Self = StObject.set(x, "top", js.undefined)
      
      inline def setTopVarargs(
        value: ((Extract[
              js.UndefOr[
                (Top[Double | String]) | (js.Array[NonNullable[js.UndefOr[Top[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Top[Double | String]]]))*
      ): Self = StObject.set(x, "top", js.Array(value*))
      
      inline def setTouchAction(
        value: TouchAction | (js.Array[
              (Extract[js.UndefOr[TouchAction | js.Array[NonNullable[js.UndefOr[TouchAction]]]], String]) | NonNullable[js.UndefOr[TouchAction]]
            ])
      ): Self = StObject.set(x, "touchAction", value.asInstanceOf[js.Any])
      
      inline def setTouchActionUndefined: Self = StObject.set(x, "touchAction", js.undefined)
      
      inline def setTouchActionVarargs(
        value: ((Extract[js.UndefOr[TouchAction | js.Array[NonNullable[js.UndefOr[TouchAction]]]], String]) | NonNullable[js.UndefOr[TouchAction]])*
      ): Self = StObject.set(x, "touchAction", js.Array(value*))
      
      inline def setTransform(
        value: Transform | (js.Array[
              (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
            ])
      ): Self = StObject.set(x, "transform", value.asInstanceOf[js.Any])
      
      inline def setTransformBox(
        value: TransformBox | (js.Array[
              (Extract[js.UndefOr[TransformBox | js.Array[NonNullable[js.UndefOr[TransformBox]]]], String]) | NonNullable[js.UndefOr[TransformBox]]
            ])
      ): Self = StObject.set(x, "transformBox", value.asInstanceOf[js.Any])
      
      inline def setTransformBoxUndefined: Self = StObject.set(x, "transformBox", js.undefined)
      
      inline def setTransformBoxVarargs(
        value: ((Extract[js.UndefOr[TransformBox | js.Array[NonNullable[js.UndefOr[TransformBox]]]], String]) | NonNullable[js.UndefOr[TransformBox]])*
      ): Self = StObject.set(x, "transformBox", js.Array(value*))
      
      inline def setTransformOrigin(
        value: (TransformOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "transformOrigin", value.asInstanceOf[js.Any])
      
      inline def setTransformOriginUndefined: Self = StObject.set(x, "transformOrigin", js.undefined)
      
      inline def setTransformOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "transformOrigin", js.Array(value*))
      
      inline def setTransformStyle(
        value: TransformStyle | (js.Array[
              (Extract[
                js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransformStyle]]
            ])
      ): Self = StObject.set(x, "transformStyle", value.asInstanceOf[js.Any])
      
      inline def setTransformStyleUndefined: Self = StObject.set(x, "transformStyle", js.undefined)
      
      inline def setTransformStyleVarargs(
        value: ((Extract[
              js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransformStyle]])*
      ): Self = StObject.set(x, "transformStyle", js.Array(value*))
      
      inline def setTransformUndefined: Self = StObject.set(x, "transform", js.undefined)
      
      inline def setTransformVarargs(
        value: ((Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]])*
      ): Self = StObject.set(x, "transform", js.Array(value*))
      
      inline def setTransition(
        value: Transition[String] | (js.Array[
              (Extract[
                js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Transition[String]]]
            ])
      ): Self = StObject.set(x, "transition", value.asInstanceOf[js.Any])
      
      inline def setTransitionDelay(
        value: TransitionDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
            ])
      ): Self = StObject.set(x, "transitionDelay", value.asInstanceOf[js.Any])
      
      inline def setTransitionDelayUndefined: Self = StObject.set(x, "transitionDelay", js.undefined)
      
      inline def setTransitionDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDelay[String]]])*
      ): Self = StObject.set(x, "transitionDelay", js.Array(value*))
      
      inline def setTransitionDuration(
        value: TransitionDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
            ])
      ): Self = StObject.set(x, "transitionDuration", value.asInstanceOf[js.Any])
      
      inline def setTransitionDurationUndefined: Self = StObject.set(x, "transitionDuration", js.undefined)
      
      inline def setTransitionDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDuration[String]]])*
      ): Self = StObject.set(x, "transitionDuration", js.Array(value*))
      
      inline def setTransitionProperty(
        value: TransitionProperty | (js.Array[
              (Extract[
                js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransitionProperty]]
            ])
      ): Self = StObject.set(x, "transitionProperty", value.asInstanceOf[js.Any])
      
      inline def setTransitionPropertyUndefined: Self = StObject.set(x, "transitionProperty", js.undefined)
      
      inline def setTransitionPropertyVarargs(
        value: ((Extract[
              js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransitionProperty]])*
      ): Self = StObject.set(x, "transitionProperty", js.Array(value*))
      
      inline def setTransitionTimingFunction(
        value: TransitionTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
            ])
      ): Self = StObject.set(x, "transitionTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setTransitionTimingFunctionUndefined: Self = StObject.set(x, "transitionTimingFunction", js.undefined)
      
      inline def setTransitionTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionTimingFunction]])*
      ): Self = StObject.set(x, "transitionTimingFunction", js.Array(value*))
      
      inline def setTransitionUndefined: Self = StObject.set(x, "transition", js.undefined)
      
      inline def setTransitionVarargs(
        value: ((Extract[
              js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Transition[String]]])*
      ): Self = StObject.set(x, "transition", js.Array(value*))
      
      inline def setTranslate(
        value: (Translate[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Translate[Double | String]) | (js.Array[NonNullable[js.UndefOr[Translate[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Translate[Double | String]]])
            ])
      ): Self = StObject.set(x, "translate", value.asInstanceOf[js.Any])
      
      inline def setTranslateUndefined: Self = StObject.set(x, "translate", js.undefined)
      
      inline def setTranslateVarargs(
        value: ((Extract[
              js.UndefOr[
                (Translate[Double | String]) | (js.Array[NonNullable[js.UndefOr[Translate[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Translate[Double | String]]]))*
      ): Self = StObject.set(x, "translate", js.Array(value*))
      
      inline def setUnicodeBidi(
        value: UnicodeBidi | (js.Array[
              (Extract[js.UndefOr[UnicodeBidi | js.Array[NonNullable[js.UndefOr[UnicodeBidi]]]], String]) | NonNullable[js.UndefOr[UnicodeBidi]]
            ])
      ): Self = StObject.set(x, "unicodeBidi", value.asInstanceOf[js.Any])
      
      inline def setUnicodeBidiUndefined: Self = StObject.set(x, "unicodeBidi", js.undefined)
      
      inline def setUnicodeBidiVarargs(
        value: ((Extract[js.UndefOr[UnicodeBidi | js.Array[NonNullable[js.UndefOr[UnicodeBidi]]]], String]) | NonNullable[js.UndefOr[UnicodeBidi]])*
      ): Self = StObject.set(x, "unicodeBidi", js.Array(value*))
      
      inline def setUserSelect(
        value: UserSelect | (js.Array[
              (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
            ])
      ): Self = StObject.set(x, "userSelect", value.asInstanceOf[js.Any])
      
      inline def setUserSelectUndefined: Self = StObject.set(x, "userSelect", js.undefined)
      
      inline def setUserSelectVarargs(
        value: ((Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]])*
      ): Self = StObject.set(x, "userSelect", js.Array(value*))
      
      inline def setVectorEffect(
        value: VectorEffect | (js.Array[
              (Extract[js.UndefOr[VectorEffect | js.Array[NonNullable[js.UndefOr[VectorEffect]]]], String]) | NonNullable[js.UndefOr[VectorEffect]]
            ])
      ): Self = StObject.set(x, "vectorEffect", value.asInstanceOf[js.Any])
      
      inline def setVectorEffectUndefined: Self = StObject.set(x, "vectorEffect", js.undefined)
      
      inline def setVectorEffectVarargs(
        value: ((Extract[js.UndefOr[VectorEffect | js.Array[NonNullable[js.UndefOr[VectorEffect]]]], String]) | NonNullable[js.UndefOr[VectorEffect]])*
      ): Self = StObject.set(x, "vectorEffect", js.Array(value*))
      
      inline def setVerticalAlign(
        value: (VerticalAlign[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (VerticalAlign[Double | String]) | (js.Array[NonNullable[js.UndefOr[VerticalAlign[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[VerticalAlign[Double | String]]])
            ])
      ): Self = StObject.set(x, "verticalAlign", value.asInstanceOf[js.Any])
      
      inline def setVerticalAlignUndefined: Self = StObject.set(x, "verticalAlign", js.undefined)
      
      inline def setVerticalAlignVarargs(
        value: ((Extract[
              js.UndefOr[
                (VerticalAlign[Double | String]) | (js.Array[NonNullable[js.UndefOr[VerticalAlign[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[VerticalAlign[Double | String]]]))*
      ): Self = StObject.set(x, "verticalAlign", js.Array(value*))
      
      inline def setVisibility(
        value: Visibility | (js.Array[
              (Extract[js.UndefOr[Visibility | js.Array[NonNullable[js.UndefOr[Visibility]]]], String]) | NonNullable[js.UndefOr[Visibility]]
            ])
      ): Self = StObject.set(x, "visibility", value.asInstanceOf[js.Any])
      
      inline def setVisibilityUndefined: Self = StObject.set(x, "visibility", js.undefined)
      
      inline def setVisibilityVarargs(
        value: ((Extract[js.UndefOr[Visibility | js.Array[NonNullable[js.UndefOr[Visibility]]]], String]) | NonNullable[js.UndefOr[Visibility]])*
      ): Self = StObject.set(x, "visibility", js.Array(value*))
      
      inline def setWebkitAlignContent(
        value: AlignContent | (js.Array[
              (Extract[js.UndefOr[AlignContent | js.Array[NonNullable[js.UndefOr[AlignContent]]]], String]) | NonNullable[js.UndefOr[AlignContent]]
            ])
      ): Self = StObject.set(x, "WebkitAlignContent", value.asInstanceOf[js.Any])
      
      inline def setWebkitAlignContentUndefined: Self = StObject.set(x, "WebkitAlignContent", js.undefined)
      
      inline def setWebkitAlignContentVarargs(
        value: ((Extract[js.UndefOr[AlignContent | js.Array[NonNullable[js.UndefOr[AlignContent]]]], String]) | NonNullable[js.UndefOr[AlignContent]])*
      ): Self = StObject.set(x, "WebkitAlignContent", js.Array(value*))
      
      inline def setWebkitAlignItems(
        value: AlignItems | (js.Array[
              (Extract[js.UndefOr[AlignItems | js.Array[NonNullable[js.UndefOr[AlignItems]]]], String]) | NonNullable[js.UndefOr[AlignItems]]
            ])
      ): Self = StObject.set(x, "WebkitAlignItems", value.asInstanceOf[js.Any])
      
      inline def setWebkitAlignItemsUndefined: Self = StObject.set(x, "WebkitAlignItems", js.undefined)
      
      inline def setWebkitAlignItemsVarargs(
        value: ((Extract[js.UndefOr[AlignItems | js.Array[NonNullable[js.UndefOr[AlignItems]]]], String]) | NonNullable[js.UndefOr[AlignItems]])*
      ): Self = StObject.set(x, "WebkitAlignItems", js.Array(value*))
      
      inline def setWebkitAlignSelf(
        value: AlignSelf | (js.Array[
              (Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]]
            ])
      ): Self = StObject.set(x, "WebkitAlignSelf", value.asInstanceOf[js.Any])
      
      inline def setWebkitAlignSelfUndefined: Self = StObject.set(x, "WebkitAlignSelf", js.undefined)
      
      inline def setWebkitAlignSelfVarargs(
        value: ((Extract[js.UndefOr[AlignSelf | js.Array[NonNullable[js.UndefOr[AlignSelf]]]], String]) | NonNullable[js.UndefOr[AlignSelf]])*
      ): Self = StObject.set(x, "WebkitAlignSelf", js.Array(value*))
      
      inline def setWebkitAnimation(
        value: Animation[String] | (js.Array[
              (Extract[
                js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Animation[String]]]
            ])
      ): Self = StObject.set(x, "WebkitAnimation", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationDelay(
        value: AnimationDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDelay[String]]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationDelay", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationDelayUndefined: Self = StObject.set(x, "WebkitAnimationDelay", js.undefined)
      
      inline def setWebkitAnimationDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDelay[String] | js.Array[NonNullable[js.UndefOr[AnimationDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDelay[String]]])*
      ): Self = StObject.set(x, "WebkitAnimationDelay", js.Array(value*))
      
      inline def setWebkitAnimationDirection(
        value: AnimationDirection | (js.Array[
              (Extract[
                js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDirection]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationDirection", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationDirectionUndefined: Self = StObject.set(x, "WebkitAnimationDirection", js.undefined)
      
      inline def setWebkitAnimationDirectionVarargs(
        value: ((Extract[
              js.UndefOr[AnimationDirection | js.Array[NonNullable[js.UndefOr[AnimationDirection]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDirection]])*
      ): Self = StObject.set(x, "WebkitAnimationDirection", js.Array(value*))
      
      inline def setWebkitAnimationDuration(
        value: AnimationDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationDuration[String]]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationDuration", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationDurationUndefined: Self = StObject.set(x, "WebkitAnimationDuration", js.undefined)
      
      inline def setWebkitAnimationDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationDuration[String] | js.Array[NonNullable[js.UndefOr[AnimationDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationDuration[String]]])*
      ): Self = StObject.set(x, "WebkitAnimationDuration", js.Array(value*))
      
      inline def setWebkitAnimationFillMode(
        value: AnimationFillMode | (js.Array[
              (Extract[
                js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationFillMode]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationFillMode", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationFillModeUndefined: Self = StObject.set(x, "WebkitAnimationFillMode", js.undefined)
      
      inline def setWebkitAnimationFillModeVarargs(
        value: ((Extract[
              js.UndefOr[AnimationFillMode | js.Array[NonNullable[js.UndefOr[AnimationFillMode]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationFillMode]])*
      ): Self = StObject.set(x, "WebkitAnimationFillMode", js.Array(value*))
      
      inline def setWebkitAnimationIterationCount(
        value: AnimationIterationCount | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationIterationCount]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationIterationCount", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationIterationCountUndefined: Self = StObject.set(x, "WebkitAnimationIterationCount", js.undefined)
      
      inline def setWebkitAnimationIterationCountVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationIterationCount | js.Array[NonNullable[js.UndefOr[AnimationIterationCount]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationIterationCount]])*
      ): Self = StObject.set(x, "WebkitAnimationIterationCount", js.Array(value*))
      
      inline def setWebkitAnimationName(
        value: AnimationName | (js.Array[
              (Extract[
                js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationName]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationName", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationNameUndefined: Self = StObject.set(x, "WebkitAnimationName", js.undefined)
      
      inline def setWebkitAnimationNameVarargs(
        value: ((Extract[
              js.UndefOr[AnimationName | js.Array[NonNullable[js.UndefOr[AnimationName]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationName]])*
      ): Self = StObject.set(x, "WebkitAnimationName", js.Array(value*))
      
      inline def setWebkitAnimationPlayState(
        value: AnimationPlayState | (js.Array[
              (Extract[
                js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
                String
              ]) | NonNullable[js.UndefOr[AnimationPlayState]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationPlayState", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationPlayStateUndefined: Self = StObject.set(x, "WebkitAnimationPlayState", js.undefined)
      
      inline def setWebkitAnimationPlayStateVarargs(
        value: ((Extract[
              js.UndefOr[AnimationPlayState | js.Array[NonNullable[js.UndefOr[AnimationPlayState]]]], 
              String
            ]) | NonNullable[js.UndefOr[AnimationPlayState]])*
      ): Self = StObject.set(x, "WebkitAnimationPlayState", js.Array(value*))
      
      inline def setWebkitAnimationTimingFunction(
        value: AnimationTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[AnimationTimingFunction]]
            ])
      ): Self = StObject.set(x, "WebkitAnimationTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setWebkitAnimationTimingFunctionUndefined: Self = StObject.set(x, "WebkitAnimationTimingFunction", js.undefined)
      
      inline def setWebkitAnimationTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                AnimationTimingFunction | js.Array[NonNullable[js.UndefOr[AnimationTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[AnimationTimingFunction]])*
      ): Self = StObject.set(x, "WebkitAnimationTimingFunction", js.Array(value*))
      
      inline def setWebkitAnimationUndefined: Self = StObject.set(x, "WebkitAnimation", js.undefined)
      
      inline def setWebkitAnimationVarargs(
        value: ((Extract[
              js.UndefOr[Animation[String] | js.Array[NonNullable[js.UndefOr[Animation[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Animation[String]]])*
      ): Self = StObject.set(x, "WebkitAnimation", js.Array(value*))
      
      inline def setWebkitAppearance(
        value: WebkitAppearance | (js.Array[
              (Extract[
                js.UndefOr[WebkitAppearance | js.Array[NonNullable[js.UndefOr[WebkitAppearance]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitAppearance]]
            ])
      ): Self = StObject.set(x, "WebkitAppearance", value.asInstanceOf[js.Any])
      
      inline def setWebkitAppearanceUndefined: Self = StObject.set(x, "WebkitAppearance", js.undefined)
      
      inline def setWebkitAppearanceVarargs(
        value: ((Extract[
              js.UndefOr[WebkitAppearance | js.Array[NonNullable[js.UndefOr[WebkitAppearance]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitAppearance]])*
      ): Self = StObject.set(x, "WebkitAppearance", js.Array(value*))
      
      inline def setWebkitBackdropFilter(
        value: BackdropFilter | (js.Array[
              (Extract[
                js.UndefOr[BackdropFilter | js.Array[NonNullable[js.UndefOr[BackdropFilter]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackdropFilter]]
            ])
      ): Self = StObject.set(x, "WebkitBackdropFilter", value.asInstanceOf[js.Any])
      
      inline def setWebkitBackdropFilterUndefined: Self = StObject.set(x, "WebkitBackdropFilter", js.undefined)
      
      inline def setWebkitBackdropFilterVarargs(
        value: ((Extract[
              js.UndefOr[BackdropFilter | js.Array[NonNullable[js.UndefOr[BackdropFilter]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackdropFilter]])*
      ): Self = StObject.set(x, "WebkitBackdropFilter", js.Array(value*))
      
      inline def setWebkitBackfaceVisibility(
        value: BackfaceVisibility | (js.Array[
              (Extract[
                js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackfaceVisibility]]
            ])
      ): Self = StObject.set(x, "WebkitBackfaceVisibility", value.asInstanceOf[js.Any])
      
      inline def setWebkitBackfaceVisibilityUndefined: Self = StObject.set(x, "WebkitBackfaceVisibility", js.undefined)
      
      inline def setWebkitBackfaceVisibilityVarargs(
        value: ((Extract[
              js.UndefOr[BackfaceVisibility | js.Array[NonNullable[js.UndefOr[BackfaceVisibility]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackfaceVisibility]])*
      ): Self = StObject.set(x, "WebkitBackfaceVisibility", js.Array(value*))
      
      inline def setWebkitBackgroundClip(
        value: BackgroundClip | (js.Array[
              (Extract[
                js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundClip]]
            ])
      ): Self = StObject.set(x, "WebkitBackgroundClip", value.asInstanceOf[js.Any])
      
      inline def setWebkitBackgroundClipUndefined: Self = StObject.set(x, "WebkitBackgroundClip", js.undefined)
      
      inline def setWebkitBackgroundClipVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundClip | js.Array[NonNullable[js.UndefOr[BackgroundClip]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundClip]])*
      ): Self = StObject.set(x, "WebkitBackgroundClip", js.Array(value*))
      
      inline def setWebkitBackgroundOrigin(
        value: BackgroundOrigin | (js.Array[
              (Extract[
                js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
                String
              ]) | NonNullable[js.UndefOr[BackgroundOrigin]]
            ])
      ): Self = StObject.set(x, "WebkitBackgroundOrigin", value.asInstanceOf[js.Any])
      
      inline def setWebkitBackgroundOriginUndefined: Self = StObject.set(x, "WebkitBackgroundOrigin", js.undefined)
      
      inline def setWebkitBackgroundOriginVarargs(
        value: ((Extract[
              js.UndefOr[BackgroundOrigin | js.Array[NonNullable[js.UndefOr[BackgroundOrigin]]]], 
              String
            ]) | NonNullable[js.UndefOr[BackgroundOrigin]])*
      ): Self = StObject.set(x, "WebkitBackgroundOrigin", js.Array(value*))
      
      inline def setWebkitBackgroundSize(
        value: (BackgroundSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBackgroundSize", value.asInstanceOf[js.Any])
      
      inline def setWebkitBackgroundSizeUndefined: Self = StObject.set(x, "WebkitBackgroundSize", js.undefined)
      
      inline def setWebkitBackgroundSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (BackgroundSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[BackgroundSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BackgroundSize[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBackgroundSize", js.Array(value*))
      
      inline def setWebkitBorderBefore(
        value: (WebkitBorderBefore[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitBorderBefore[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitBorderBefore[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitBorderBefore[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBorderBefore", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderBeforeColor(
        value: WebkitBorderBeforeColor | (js.Array[
              (Extract[
                js.UndefOr[
                  WebkitBorderBeforeColor | js.Array[NonNullable[js.UndefOr[WebkitBorderBeforeColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[WebkitBorderBeforeColor]]
            ])
      ): Self = StObject.set(x, "WebkitBorderBeforeColor", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderBeforeColorUndefined: Self = StObject.set(x, "WebkitBorderBeforeColor", js.undefined)
      
      inline def setWebkitBorderBeforeColorVarargs(
        value: ((Extract[
              js.UndefOr[
                WebkitBorderBeforeColor | js.Array[NonNullable[js.UndefOr[WebkitBorderBeforeColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[WebkitBorderBeforeColor]])*
      ): Self = StObject.set(x, "WebkitBorderBeforeColor", js.Array(value*))
      
      inline def setWebkitBorderBeforeStyle(
        value: WebkitBorderBeforeStyle | (js.Array[
              (Extract[
                js.UndefOr[
                  WebkitBorderBeforeStyle | js.Array[NonNullable[js.UndefOr[WebkitBorderBeforeStyle]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[WebkitBorderBeforeStyle]]
            ])
      ): Self = StObject.set(x, "WebkitBorderBeforeStyle", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderBeforeStyleUndefined: Self = StObject.set(x, "WebkitBorderBeforeStyle", js.undefined)
      
      inline def setWebkitBorderBeforeStyleVarargs(
        value: ((Extract[
              js.UndefOr[
                WebkitBorderBeforeStyle | js.Array[NonNullable[js.UndefOr[WebkitBorderBeforeStyle]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[WebkitBorderBeforeStyle]])*
      ): Self = StObject.set(x, "WebkitBorderBeforeStyle", js.Array(value*))
      
      inline def setWebkitBorderBeforeUndefined: Self = StObject.set(x, "WebkitBorderBefore", js.undefined)
      
      inline def setWebkitBorderBeforeVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitBorderBefore[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitBorderBefore[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitBorderBefore[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBorderBefore", js.Array(value*))
      
      inline def setWebkitBorderBeforeWidth(
        value: (WebkitBorderBeforeWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitBorderBeforeWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitBorderBeforeWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitBorderBeforeWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBorderBeforeWidth", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderBeforeWidthUndefined: Self = StObject.set(x, "WebkitBorderBeforeWidth", js.undefined)
      
      inline def setWebkitBorderBeforeWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitBorderBeforeWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitBorderBeforeWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitBorderBeforeWidth[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBorderBeforeWidth", js.Array(value*))
      
      inline def setWebkitBorderBottomLeftRadius(
        value: (BorderBottomLeftRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBorderBottomLeftRadius", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderBottomLeftRadiusUndefined: Self = StObject.set(x, "WebkitBorderBottomLeftRadius", js.undefined)
      
      inline def setWebkitBorderBottomLeftRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottomLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottomLeftRadius[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBorderBottomLeftRadius", js.Array(value*))
      
      inline def setWebkitBorderBottomRightRadius(
        value: (BorderBottomRightRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBorderBottomRightRadius", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderBottomRightRadiusUndefined: Self = StObject.set(x, "WebkitBorderBottomRightRadius", js.undefined)
      
      inline def setWebkitBorderBottomRightRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderBottomRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderBottomRightRadius[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBorderBottomRightRadius", js.Array(value*))
      
      inline def setWebkitBorderImage(
        value: BorderImage | (js.Array[
              (Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]]
            ])
      ): Self = StObject.set(x, "WebkitBorderImage", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderImageSlice(
        value: BorderImageSlice | (js.Array[
              (Extract[
                js.UndefOr[BorderImageSlice | js.Array[NonNullable[js.UndefOr[BorderImageSlice]]]], 
                String
              ]) | NonNullable[js.UndefOr[BorderImageSlice]]
            ])
      ): Self = StObject.set(x, "WebkitBorderImageSlice", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderImageSliceUndefined: Self = StObject.set(x, "WebkitBorderImageSlice", js.undefined)
      
      inline def setWebkitBorderImageSliceVarargs(
        value: ((Extract[
              js.UndefOr[BorderImageSlice | js.Array[NonNullable[js.UndefOr[BorderImageSlice]]]], 
              String
            ]) | NonNullable[js.UndefOr[BorderImageSlice]])*
      ): Self = StObject.set(x, "WebkitBorderImageSlice", js.Array(value*))
      
      inline def setWebkitBorderImageUndefined: Self = StObject.set(x, "WebkitBorderImage", js.undefined)
      
      inline def setWebkitBorderImageVarargs(
        value: ((Extract[js.UndefOr[BorderImage | js.Array[NonNullable[js.UndefOr[BorderImage]]]], String]) | NonNullable[js.UndefOr[BorderImage]])*
      ): Self = StObject.set(x, "WebkitBorderImage", js.Array(value*))
      
      inline def setWebkitBorderRadius(
        value: (BorderRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBorderRadius", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderRadiusUndefined: Self = StObject.set(x, "WebkitBorderRadius", js.undefined)
      
      inline def setWebkitBorderRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderRadius[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBorderRadius", js.Array(value*))
      
      inline def setWebkitBorderTopLeftRadius(
        value: (BorderTopLeftRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBorderTopLeftRadius", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderTopLeftRadiusUndefined: Self = StObject.set(x, "WebkitBorderTopLeftRadius", js.undefined)
      
      inline def setWebkitBorderTopLeftRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTopLeftRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTopLeftRadius[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBorderTopLeftRadius", js.Array(value*))
      
      inline def setWebkitBorderTopRightRadius(
        value: (BorderTopRightRadius[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBorderTopRightRadius", value.asInstanceOf[js.Any])
      
      inline def setWebkitBorderTopRightRadiusUndefined: Self = StObject.set(x, "WebkitBorderTopRightRadius", js.undefined)
      
      inline def setWebkitBorderTopRightRadiusVarargs(
        value: ((Extract[
              js.UndefOr[
                (BorderTopRightRadius[Double | String]) | (js.Array[NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[BorderTopRightRadius[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBorderTopRightRadius", js.Array(value*))
      
      inline def setWebkitBoxAlign(
        value: BoxAlign | (js.Array[
              (Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]]
            ])
      ): Self = StObject.set(x, "WebkitBoxAlign", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxAlignUndefined: Self = StObject.set(x, "WebkitBoxAlign", js.undefined)
      
      inline def setWebkitBoxAlignVarargs(
        value: ((Extract[js.UndefOr[BoxAlign | js.Array[NonNullable[js.UndefOr[BoxAlign]]]], String]) | NonNullable[js.UndefOr[BoxAlign]])*
      ): Self = StObject.set(x, "WebkitBoxAlign", js.Array(value*))
      
      inline def setWebkitBoxDecorationBreak(
        value: BoxDecorationBreak | (js.Array[
              (Extract[
                js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
                String
              ]) | NonNullable[js.UndefOr[BoxDecorationBreak]]
            ])
      ): Self = StObject.set(x, "WebkitBoxDecorationBreak", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxDecorationBreakUndefined: Self = StObject.set(x, "WebkitBoxDecorationBreak", js.undefined)
      
      inline def setWebkitBoxDecorationBreakVarargs(
        value: ((Extract[
              js.UndefOr[BoxDecorationBreak | js.Array[NonNullable[js.UndefOr[BoxDecorationBreak]]]], 
              String
            ]) | NonNullable[js.UndefOr[BoxDecorationBreak]])*
      ): Self = StObject.set(x, "WebkitBoxDecorationBreak", js.Array(value*))
      
      inline def setWebkitBoxDirection(
        value: BoxDirection | (js.Array[
              (Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]]
            ])
      ): Self = StObject.set(x, "WebkitBoxDirection", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxDirectionUndefined: Self = StObject.set(x, "WebkitBoxDirection", js.undefined)
      
      inline def setWebkitBoxDirectionVarargs(
        value: ((Extract[js.UndefOr[BoxDirection | js.Array[NonNullable[js.UndefOr[BoxDirection]]]], String]) | NonNullable[js.UndefOr[BoxDirection]])*
      ): Self = StObject.set(x, "WebkitBoxDirection", js.Array(value*))
      
      inline def setWebkitBoxFlex(
        value: BoxFlex | (js.Array[
              (Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]]
            ])
      ): Self = StObject.set(x, "WebkitBoxFlex", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxFlexGroup(
        value: BoxFlexGroup | (js.Array[
              (Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]]
            ])
      ): Self = StObject.set(x, "WebkitBoxFlexGroup", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxFlexGroupUndefined: Self = StObject.set(x, "WebkitBoxFlexGroup", js.undefined)
      
      inline def setWebkitBoxFlexGroupVarargs(
        value: ((Extract[js.UndefOr[BoxFlexGroup | js.Array[NonNullable[js.UndefOr[BoxFlexGroup]]]], String]) | NonNullable[js.UndefOr[BoxFlexGroup]])*
      ): Self = StObject.set(x, "WebkitBoxFlexGroup", js.Array(value*))
      
      inline def setWebkitBoxFlexUndefined: Self = StObject.set(x, "WebkitBoxFlex", js.undefined)
      
      inline def setWebkitBoxFlexVarargs(
        value: ((Extract[js.UndefOr[BoxFlex | js.Array[NonNullable[js.UndefOr[BoxFlex]]]], String]) | NonNullable[js.UndefOr[BoxFlex]])*
      ): Self = StObject.set(x, "WebkitBoxFlex", js.Array(value*))
      
      inline def setWebkitBoxLines(
        value: BoxLines | (js.Array[
              (Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]]
            ])
      ): Self = StObject.set(x, "WebkitBoxLines", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxLinesUndefined: Self = StObject.set(x, "WebkitBoxLines", js.undefined)
      
      inline def setWebkitBoxLinesVarargs(
        value: ((Extract[js.UndefOr[BoxLines | js.Array[NonNullable[js.UndefOr[BoxLines]]]], String]) | NonNullable[js.UndefOr[BoxLines]])*
      ): Self = StObject.set(x, "WebkitBoxLines", js.Array(value*))
      
      inline def setWebkitBoxOrdinalGroup(
        value: BoxOrdinalGroup | (js.Array[
              (Extract[
                js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
                String
              ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]]
            ])
      ): Self = StObject.set(x, "WebkitBoxOrdinalGroup", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxOrdinalGroupUndefined: Self = StObject.set(x, "WebkitBoxOrdinalGroup", js.undefined)
      
      inline def setWebkitBoxOrdinalGroupVarargs(
        value: ((Extract[
              js.UndefOr[BoxOrdinalGroup | js.Array[NonNullable[js.UndefOr[BoxOrdinalGroup]]]], 
              String
            ]) | NonNullable[js.UndefOr[BoxOrdinalGroup]])*
      ): Self = StObject.set(x, "WebkitBoxOrdinalGroup", js.Array(value*))
      
      inline def setWebkitBoxOrient(
        value: BoxOrient | (js.Array[
              (Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]]
            ])
      ): Self = StObject.set(x, "WebkitBoxOrient", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxOrientUndefined: Self = StObject.set(x, "WebkitBoxOrient", js.undefined)
      
      inline def setWebkitBoxOrientVarargs(
        value: ((Extract[js.UndefOr[BoxOrient | js.Array[NonNullable[js.UndefOr[BoxOrient]]]], String]) | NonNullable[js.UndefOr[BoxOrient]])*
      ): Self = StObject.set(x, "WebkitBoxOrient", js.Array(value*))
      
      inline def setWebkitBoxPack(
        value: BoxPack | (js.Array[
              (Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]]
            ])
      ): Self = StObject.set(x, "WebkitBoxPack", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxPackUndefined: Self = StObject.set(x, "WebkitBoxPack", js.undefined)
      
      inline def setWebkitBoxPackVarargs(
        value: ((Extract[js.UndefOr[BoxPack | js.Array[NonNullable[js.UndefOr[BoxPack]]]], String]) | NonNullable[js.UndefOr[BoxPack]])*
      ): Self = StObject.set(x, "WebkitBoxPack", js.Array(value*))
      
      inline def setWebkitBoxReflect(
        value: (WebkitBoxReflect[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitBoxReflect[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitBoxReflect[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitBoxReflect[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitBoxReflect", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxReflectUndefined: Self = StObject.set(x, "WebkitBoxReflect", js.undefined)
      
      inline def setWebkitBoxReflectVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitBoxReflect[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitBoxReflect[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitBoxReflect[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitBoxReflect", js.Array(value*))
      
      inline def setWebkitBoxShadow(
        value: BoxShadow | (js.Array[
              (Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]]
            ])
      ): Self = StObject.set(x, "WebkitBoxShadow", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxShadowUndefined: Self = StObject.set(x, "WebkitBoxShadow", js.undefined)
      
      inline def setWebkitBoxShadowVarargs(
        value: ((Extract[js.UndefOr[BoxShadow | js.Array[NonNullable[js.UndefOr[BoxShadow]]]], String]) | NonNullable[js.UndefOr[BoxShadow]])*
      ): Self = StObject.set(x, "WebkitBoxShadow", js.Array(value*))
      
      inline def setWebkitBoxSizing(
        value: BoxSizing | (js.Array[
              (Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]]
            ])
      ): Self = StObject.set(x, "WebkitBoxSizing", value.asInstanceOf[js.Any])
      
      inline def setWebkitBoxSizingUndefined: Self = StObject.set(x, "WebkitBoxSizing", js.undefined)
      
      inline def setWebkitBoxSizingVarargs(
        value: ((Extract[js.UndefOr[BoxSizing | js.Array[NonNullable[js.UndefOr[BoxSizing]]]], String]) | NonNullable[js.UndefOr[BoxSizing]])*
      ): Self = StObject.set(x, "WebkitBoxSizing", js.Array(value*))
      
      inline def setWebkitClipPath(
        value: ClipPath | (js.Array[
              (Extract[js.UndefOr[ClipPath | js.Array[NonNullable[js.UndefOr[ClipPath]]]], String]) | NonNullable[js.UndefOr[ClipPath]]
            ])
      ): Self = StObject.set(x, "WebkitClipPath", value.asInstanceOf[js.Any])
      
      inline def setWebkitClipPathUndefined: Self = StObject.set(x, "WebkitClipPath", js.undefined)
      
      inline def setWebkitClipPathVarargs(
        value: ((Extract[js.UndefOr[ClipPath | js.Array[NonNullable[js.UndefOr[ClipPath]]]], String]) | NonNullable[js.UndefOr[ClipPath]])*
      ): Self = StObject.set(x, "WebkitClipPath", js.Array(value*))
      
      inline def setWebkitColumnCount(
        value: ColumnCount | (js.Array[
              (Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]]
            ])
      ): Self = StObject.set(x, "WebkitColumnCount", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnCountUndefined: Self = StObject.set(x, "WebkitColumnCount", js.undefined)
      
      inline def setWebkitColumnCountVarargs(
        value: ((Extract[js.UndefOr[ColumnCount | js.Array[NonNullable[js.UndefOr[ColumnCount]]]], String]) | NonNullable[js.UndefOr[ColumnCount]])*
      ): Self = StObject.set(x, "WebkitColumnCount", js.Array(value*))
      
      inline def setWebkitColumnFill(
        value: ColumnFill | (js.Array[
              (Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]]
            ])
      ): Self = StObject.set(x, "WebkitColumnFill", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnFillUndefined: Self = StObject.set(x, "WebkitColumnFill", js.undefined)
      
      inline def setWebkitColumnFillVarargs(
        value: ((Extract[js.UndefOr[ColumnFill | js.Array[NonNullable[js.UndefOr[ColumnFill]]]], String]) | NonNullable[js.UndefOr[ColumnFill]])*
      ): Self = StObject.set(x, "WebkitColumnFill", js.Array(value*))
      
      inline def setWebkitColumnGap(
        value: (ColumnGap[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitColumnGap", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnGapUndefined: Self = StObject.set(x, "WebkitColumnGap", js.undefined)
      
      inline def setWebkitColumnGapVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnGap[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnGap[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnGap[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitColumnGap", js.Array(value*))
      
      inline def setWebkitColumnRule(
        value: (ColumnRule[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitColumnRule", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnRuleColor(
        value: ColumnRuleColor | (js.Array[
              (Extract[
                js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColumnRuleColor]]
            ])
      ): Self = StObject.set(x, "WebkitColumnRuleColor", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnRuleColorUndefined: Self = StObject.set(x, "WebkitColumnRuleColor", js.undefined)
      
      inline def setWebkitColumnRuleColorVarargs(
        value: ((Extract[
              js.UndefOr[ColumnRuleColor | js.Array[NonNullable[js.UndefOr[ColumnRuleColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColumnRuleColor]])*
      ): Self = StObject.set(x, "WebkitColumnRuleColor", js.Array(value*))
      
      inline def setWebkitColumnRuleStyle(
        value: ColumnRuleStyle | (js.Array[
              (Extract[
                js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[ColumnRuleStyle]]
            ])
      ): Self = StObject.set(x, "WebkitColumnRuleStyle", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnRuleStyleUndefined: Self = StObject.set(x, "WebkitColumnRuleStyle", js.undefined)
      
      inline def setWebkitColumnRuleStyleVarargs(
        value: ((Extract[
              js.UndefOr[ColumnRuleStyle | js.Array[NonNullable[js.UndefOr[ColumnRuleStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[ColumnRuleStyle]])*
      ): Self = StObject.set(x, "WebkitColumnRuleStyle", js.Array(value*))
      
      inline def setWebkitColumnRuleUndefined: Self = StObject.set(x, "WebkitColumnRule", js.undefined)
      
      inline def setWebkitColumnRuleVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnRule[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRule[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnRule[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitColumnRule", js.Array(value*))
      
      inline def setWebkitColumnRuleWidth(
        value: (ColumnRuleWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitColumnRuleWidth", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnRuleWidthUndefined: Self = StObject.set(x, "WebkitColumnRuleWidth", js.undefined)
      
      inline def setWebkitColumnRuleWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnRuleWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnRuleWidth[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitColumnRuleWidth", js.Array(value*))
      
      inline def setWebkitColumnSpan(
        value: ColumnSpan | (js.Array[
              (Extract[js.UndefOr[ColumnSpan | js.Array[NonNullable[js.UndefOr[ColumnSpan]]]], String]) | NonNullable[js.UndefOr[ColumnSpan]]
            ])
      ): Self = StObject.set(x, "WebkitColumnSpan", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnSpanUndefined: Self = StObject.set(x, "WebkitColumnSpan", js.undefined)
      
      inline def setWebkitColumnSpanVarargs(
        value: ((Extract[js.UndefOr[ColumnSpan | js.Array[NonNullable[js.UndefOr[ColumnSpan]]]], String]) | NonNullable[js.UndefOr[ColumnSpan]])*
      ): Self = StObject.set(x, "WebkitColumnSpan", js.Array(value*))
      
      inline def setWebkitColumnWidth(
        value: (ColumnWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitColumnWidth", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnWidthUndefined: Self = StObject.set(x, "WebkitColumnWidth", js.undefined)
      
      inline def setWebkitColumnWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (ColumnWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[ColumnWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ColumnWidth[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitColumnWidth", js.Array(value*))
      
      inline def setWebkitColumns(
        value: (Columns[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Columns[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitColumns", value.asInstanceOf[js.Any])
      
      inline def setWebkitColumnsUndefined: Self = StObject.set(x, "WebkitColumns", js.undefined)
      
      inline def setWebkitColumnsVarargs(
        value: ((Extract[
              js.UndefOr[
                (Columns[Double | String]) | (js.Array[NonNullable[js.UndefOr[Columns[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Columns[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitColumns", js.Array(value*))
      
      inline def setWebkitFilter(
        value: Filter | (js.Array[
              (Extract[js.UndefOr[Filter | js.Array[NonNullable[js.UndefOr[Filter]]]], String]) | NonNullable[js.UndefOr[Filter]]
            ])
      ): Self = StObject.set(x, "WebkitFilter", value.asInstanceOf[js.Any])
      
      inline def setWebkitFilterUndefined: Self = StObject.set(x, "WebkitFilter", js.undefined)
      
      inline def setWebkitFilterVarargs(
        value: ((Extract[js.UndefOr[Filter | js.Array[NonNullable[js.UndefOr[Filter]]]], String]) | NonNullable[js.UndefOr[Filter]])*
      ): Self = StObject.set(x, "WebkitFilter", js.Array(value*))
      
      inline def setWebkitFlex(
        value: (Flex[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Flex[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitFlex", value.asInstanceOf[js.Any])
      
      inline def setWebkitFlexBasis(
        value: (FlexBasis[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (FlexBasis[Double | String]) | (js.Array[NonNullable[js.UndefOr[FlexBasis[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[FlexBasis[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitFlexBasis", value.asInstanceOf[js.Any])
      
      inline def setWebkitFlexBasisUndefined: Self = StObject.set(x, "WebkitFlexBasis", js.undefined)
      
      inline def setWebkitFlexBasisVarargs(
        value: ((Extract[
              js.UndefOr[
                (FlexBasis[Double | String]) | (js.Array[NonNullable[js.UndefOr[FlexBasis[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[FlexBasis[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitFlexBasis", js.Array(value*))
      
      inline def setWebkitFlexDirection(
        value: FlexDirection | (js.Array[
              (Extract[
                js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
                String
              ]) | NonNullable[js.UndefOr[FlexDirection]]
            ])
      ): Self = StObject.set(x, "WebkitFlexDirection", value.asInstanceOf[js.Any])
      
      inline def setWebkitFlexDirectionUndefined: Self = StObject.set(x, "WebkitFlexDirection", js.undefined)
      
      inline def setWebkitFlexDirectionVarargs(
        value: ((Extract[
              js.UndefOr[FlexDirection | js.Array[NonNullable[js.UndefOr[FlexDirection]]]], 
              String
            ]) | NonNullable[js.UndefOr[FlexDirection]])*
      ): Self = StObject.set(x, "WebkitFlexDirection", js.Array(value*))
      
      inline def setWebkitFlexFlow(
        value: FlexFlow | (js.Array[
              (Extract[js.UndefOr[FlexFlow | js.Array[NonNullable[js.UndefOr[FlexFlow]]]], String]) | NonNullable[js.UndefOr[FlexFlow]]
            ])
      ): Self = StObject.set(x, "WebkitFlexFlow", value.asInstanceOf[js.Any])
      
      inline def setWebkitFlexFlowUndefined: Self = StObject.set(x, "WebkitFlexFlow", js.undefined)
      
      inline def setWebkitFlexFlowVarargs(
        value: ((Extract[js.UndefOr[FlexFlow | js.Array[NonNullable[js.UndefOr[FlexFlow]]]], String]) | NonNullable[js.UndefOr[FlexFlow]])*
      ): Self = StObject.set(x, "WebkitFlexFlow", js.Array(value*))
      
      inline def setWebkitFlexGrow(
        value: FlexGrow | (js.Array[
              (Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]]
            ])
      ): Self = StObject.set(x, "WebkitFlexGrow", value.asInstanceOf[js.Any])
      
      inline def setWebkitFlexGrowUndefined: Self = StObject.set(x, "WebkitFlexGrow", js.undefined)
      
      inline def setWebkitFlexGrowVarargs(
        value: ((Extract[js.UndefOr[FlexGrow | js.Array[NonNullable[js.UndefOr[FlexGrow]]]], String]) | NonNullable[js.UndefOr[FlexGrow]])*
      ): Self = StObject.set(x, "WebkitFlexGrow", js.Array(value*))
      
      inline def setWebkitFlexShrink(
        value: FlexShrink | (js.Array[
              (Extract[js.UndefOr[FlexShrink | js.Array[NonNullable[js.UndefOr[FlexShrink]]]], String]) | NonNullable[js.UndefOr[FlexShrink]]
            ])
      ): Self = StObject.set(x, "WebkitFlexShrink", value.asInstanceOf[js.Any])
      
      inline def setWebkitFlexShrinkUndefined: Self = StObject.set(x, "WebkitFlexShrink", js.undefined)
      
      inline def setWebkitFlexShrinkVarargs(
        value: ((Extract[js.UndefOr[FlexShrink | js.Array[NonNullable[js.UndefOr[FlexShrink]]]], String]) | NonNullable[js.UndefOr[FlexShrink]])*
      ): Self = StObject.set(x, "WebkitFlexShrink", js.Array(value*))
      
      inline def setWebkitFlexUndefined: Self = StObject.set(x, "WebkitFlex", js.undefined)
      
      inline def setWebkitFlexVarargs(
        value: ((Extract[
              js.UndefOr[
                (Flex[Double | String]) | (js.Array[NonNullable[js.UndefOr[Flex[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Flex[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitFlex", js.Array(value*))
      
      inline def setWebkitFlexWrap(
        value: FlexWrap | (js.Array[
              (Extract[js.UndefOr[FlexWrap | js.Array[NonNullable[js.UndefOr[FlexWrap]]]], String]) | NonNullable[js.UndefOr[FlexWrap]]
            ])
      ): Self = StObject.set(x, "WebkitFlexWrap", value.asInstanceOf[js.Any])
      
      inline def setWebkitFlexWrapUndefined: Self = StObject.set(x, "WebkitFlexWrap", js.undefined)
      
      inline def setWebkitFlexWrapVarargs(
        value: ((Extract[js.UndefOr[FlexWrap | js.Array[NonNullable[js.UndefOr[FlexWrap]]]], String]) | NonNullable[js.UndefOr[FlexWrap]])*
      ): Self = StObject.set(x, "WebkitFlexWrap", js.Array(value*))
      
      inline def setWebkitFontFeatureSettings(
        value: FontFeatureSettings | (js.Array[
              (Extract[
                js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontFeatureSettings]]
            ])
      ): Self = StObject.set(x, "WebkitFontFeatureSettings", value.asInstanceOf[js.Any])
      
      inline def setWebkitFontFeatureSettingsUndefined: Self = StObject.set(x, "WebkitFontFeatureSettings", js.undefined)
      
      inline def setWebkitFontFeatureSettingsVarargs(
        value: ((Extract[
              js.UndefOr[FontFeatureSettings | js.Array[NonNullable[js.UndefOr[FontFeatureSettings]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontFeatureSettings]])*
      ): Self = StObject.set(x, "WebkitFontFeatureSettings", js.Array(value*))
      
      inline def setWebkitFontKerning(
        value: FontKerning | (js.Array[
              (Extract[js.UndefOr[FontKerning | js.Array[NonNullable[js.UndefOr[FontKerning]]]], String]) | NonNullable[js.UndefOr[FontKerning]]
            ])
      ): Self = StObject.set(x, "WebkitFontKerning", value.asInstanceOf[js.Any])
      
      inline def setWebkitFontKerningUndefined: Self = StObject.set(x, "WebkitFontKerning", js.undefined)
      
      inline def setWebkitFontKerningVarargs(
        value: ((Extract[js.UndefOr[FontKerning | js.Array[NonNullable[js.UndefOr[FontKerning]]]], String]) | NonNullable[js.UndefOr[FontKerning]])*
      ): Self = StObject.set(x, "WebkitFontKerning", js.Array(value*))
      
      inline def setWebkitFontSmoothing(
        value: (FontSmooth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitFontSmoothing", value.asInstanceOf[js.Any])
      
      inline def setWebkitFontSmoothingUndefined: Self = StObject.set(x, "WebkitFontSmoothing", js.undefined)
      
      inline def setWebkitFontSmoothingVarargs(
        value: ((Extract[
              js.UndefOr[
                (FontSmooth[Double | String]) | (js.Array[NonNullable[js.UndefOr[FontSmooth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[FontSmooth[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitFontSmoothing", js.Array(value*))
      
      inline def setWebkitFontVariantLigatures(
        value: FontVariantLigatures | (js.Array[
              (Extract[
                js.UndefOr[FontVariantLigatures | js.Array[NonNullable[js.UndefOr[FontVariantLigatures]]]], 
                String
              ]) | NonNullable[js.UndefOr[FontVariantLigatures]]
            ])
      ): Self = StObject.set(x, "WebkitFontVariantLigatures", value.asInstanceOf[js.Any])
      
      inline def setWebkitFontVariantLigaturesUndefined: Self = StObject.set(x, "WebkitFontVariantLigatures", js.undefined)
      
      inline def setWebkitFontVariantLigaturesVarargs(
        value: ((Extract[
              js.UndefOr[FontVariantLigatures | js.Array[NonNullable[js.UndefOr[FontVariantLigatures]]]], 
              String
            ]) | NonNullable[js.UndefOr[FontVariantLigatures]])*
      ): Self = StObject.set(x, "WebkitFontVariantLigatures", js.Array(value*))
      
      inline def setWebkitHyphens(
        value: Hyphens | (js.Array[
              (Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]]
            ])
      ): Self = StObject.set(x, "WebkitHyphens", value.asInstanceOf[js.Any])
      
      inline def setWebkitHyphensUndefined: Self = StObject.set(x, "WebkitHyphens", js.undefined)
      
      inline def setWebkitHyphensVarargs(
        value: ((Extract[js.UndefOr[Hyphens | js.Array[NonNullable[js.UndefOr[Hyphens]]]], String]) | NonNullable[js.UndefOr[Hyphens]])*
      ): Self = StObject.set(x, "WebkitHyphens", js.Array(value*))
      
      inline def setWebkitInitialLetter(
        value: InitialLetter | (js.Array[
              (Extract[
                js.UndefOr[InitialLetter | js.Array[NonNullable[js.UndefOr[InitialLetter]]]], 
                String
              ]) | NonNullable[js.UndefOr[InitialLetter]]
            ])
      ): Self = StObject.set(x, "WebkitInitialLetter", value.asInstanceOf[js.Any])
      
      inline def setWebkitInitialLetterUndefined: Self = StObject.set(x, "WebkitInitialLetter", js.undefined)
      
      inline def setWebkitInitialLetterVarargs(
        value: ((Extract[
              js.UndefOr[InitialLetter | js.Array[NonNullable[js.UndefOr[InitialLetter]]]], 
              String
            ]) | NonNullable[js.UndefOr[InitialLetter]])*
      ): Self = StObject.set(x, "WebkitInitialLetter", js.Array(value*))
      
      inline def setWebkitJustifyContent(
        value: JustifyContent | (js.Array[
              (Extract[
                js.UndefOr[JustifyContent | js.Array[NonNullable[js.UndefOr[JustifyContent]]]], 
                String
              ]) | NonNullable[js.UndefOr[JustifyContent]]
            ])
      ): Self = StObject.set(x, "WebkitJustifyContent", value.asInstanceOf[js.Any])
      
      inline def setWebkitJustifyContentUndefined: Self = StObject.set(x, "WebkitJustifyContent", js.undefined)
      
      inline def setWebkitJustifyContentVarargs(
        value: ((Extract[
              js.UndefOr[JustifyContent | js.Array[NonNullable[js.UndefOr[JustifyContent]]]], 
              String
            ]) | NonNullable[js.UndefOr[JustifyContent]])*
      ): Self = StObject.set(x, "WebkitJustifyContent", js.Array(value*))
      
      inline def setWebkitLineBreak(
        value: LineBreak | (js.Array[
              (Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]]
            ])
      ): Self = StObject.set(x, "WebkitLineBreak", value.asInstanceOf[js.Any])
      
      inline def setWebkitLineBreakUndefined: Self = StObject.set(x, "WebkitLineBreak", js.undefined)
      
      inline def setWebkitLineBreakVarargs(
        value: ((Extract[js.UndefOr[LineBreak | js.Array[NonNullable[js.UndefOr[LineBreak]]]], String]) | NonNullable[js.UndefOr[LineBreak]])*
      ): Self = StObject.set(x, "WebkitLineBreak", js.Array(value*))
      
      inline def setWebkitLineClamp(
        value: WebkitLineClamp | (js.Array[
              (Extract[
                js.UndefOr[WebkitLineClamp | js.Array[NonNullable[js.UndefOr[WebkitLineClamp]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitLineClamp]]
            ])
      ): Self = StObject.set(x, "WebkitLineClamp", value.asInstanceOf[js.Any])
      
      inline def setWebkitLineClampUndefined: Self = StObject.set(x, "WebkitLineClamp", js.undefined)
      
      inline def setWebkitLineClampVarargs(
        value: ((Extract[
              js.UndefOr[WebkitLineClamp | js.Array[NonNullable[js.UndefOr[WebkitLineClamp]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitLineClamp]])*
      ): Self = StObject.set(x, "WebkitLineClamp", js.Array(value*))
      
      inline def setWebkitMarginEnd(
        value: (MarginInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMarginEnd", value.asInstanceOf[js.Any])
      
      inline def setWebkitMarginEndUndefined: Self = StObject.set(x, "WebkitMarginEnd", js.undefined)
      
      inline def setWebkitMarginEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMarginEnd", js.Array(value*))
      
      inline def setWebkitMarginStart(
        value: (MarginInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMarginStart", value.asInstanceOf[js.Any])
      
      inline def setWebkitMarginStartUndefined: Self = StObject.set(x, "WebkitMarginStart", js.undefined)
      
      inline def setWebkitMarginStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (MarginInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MarginInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMarginStart", js.Array(value*))
      
      inline def setWebkitMask(
        value: (WebkitMask[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitMask[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMask[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitMask[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMask", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskAttachment(
        value: WebkitMaskAttachment | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskAttachment | js.Array[NonNullable[js.UndefOr[WebkitMaskAttachment]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskAttachment]]
            ])
      ): Self = StObject.set(x, "WebkitMaskAttachment", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskAttachmentUndefined: Self = StObject.set(x, "WebkitMaskAttachment", js.undefined)
      
      inline def setWebkitMaskAttachmentVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskAttachment | js.Array[NonNullable[js.UndefOr[WebkitMaskAttachment]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskAttachment]])*
      ): Self = StObject.set(x, "WebkitMaskAttachment", js.Array(value*))
      
      inline def setWebkitMaskBoxImage(
        value: MaskBorder | (js.Array[
              (Extract[js.UndefOr[MaskBorder | js.Array[NonNullable[js.UndefOr[MaskBorder]]]], String]) | NonNullable[js.UndefOr[MaskBorder]]
            ])
      ): Self = StObject.set(x, "WebkitMaskBoxImage", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskBoxImageOutset(
        value: (MaskBorderOutset[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaskBorderOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMaskBoxImageOutset", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskBoxImageOutsetUndefined: Self = StObject.set(x, "WebkitMaskBoxImageOutset", js.undefined)
      
      inline def setWebkitMaskBoxImageOutsetVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaskBorderOutset[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaskBorderOutset[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMaskBoxImageOutset", js.Array(value*))
      
      inline def setWebkitMaskBoxImageRepeat(
        value: MaskBorderRepeat | (js.Array[
              (Extract[
                js.UndefOr[MaskBorderRepeat | js.Array[NonNullable[js.UndefOr[MaskBorderRepeat]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskBorderRepeat]]
            ])
      ): Self = StObject.set(x, "WebkitMaskBoxImageRepeat", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskBoxImageRepeatUndefined: Self = StObject.set(x, "WebkitMaskBoxImageRepeat", js.undefined)
      
      inline def setWebkitMaskBoxImageRepeatVarargs(
        value: ((Extract[
              js.UndefOr[MaskBorderRepeat | js.Array[NonNullable[js.UndefOr[MaskBorderRepeat]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskBorderRepeat]])*
      ): Self = StObject.set(x, "WebkitMaskBoxImageRepeat", js.Array(value*))
      
      inline def setWebkitMaskBoxImageSlice(
        value: MaskBorderSlice | (js.Array[
              (Extract[
                js.UndefOr[MaskBorderSlice | js.Array[NonNullable[js.UndefOr[MaskBorderSlice]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskBorderSlice]]
            ])
      ): Self = StObject.set(x, "WebkitMaskBoxImageSlice", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskBoxImageSliceUndefined: Self = StObject.set(x, "WebkitMaskBoxImageSlice", js.undefined)
      
      inline def setWebkitMaskBoxImageSliceVarargs(
        value: ((Extract[
              js.UndefOr[MaskBorderSlice | js.Array[NonNullable[js.UndefOr[MaskBorderSlice]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskBorderSlice]])*
      ): Self = StObject.set(x, "WebkitMaskBoxImageSlice", js.Array(value*))
      
      inline def setWebkitMaskBoxImageSource(
        value: MaskBorderSource | (js.Array[
              (Extract[
                js.UndefOr[MaskBorderSource | js.Array[NonNullable[js.UndefOr[MaskBorderSource]]]], 
                String
              ]) | NonNullable[js.UndefOr[MaskBorderSource]]
            ])
      ): Self = StObject.set(x, "WebkitMaskBoxImageSource", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskBoxImageSourceUndefined: Self = StObject.set(x, "WebkitMaskBoxImageSource", js.undefined)
      
      inline def setWebkitMaskBoxImageSourceVarargs(
        value: ((Extract[
              js.UndefOr[MaskBorderSource | js.Array[NonNullable[js.UndefOr[MaskBorderSource]]]], 
              String
            ]) | NonNullable[js.UndefOr[MaskBorderSource]])*
      ): Self = StObject.set(x, "WebkitMaskBoxImageSource", js.Array(value*))
      
      inline def setWebkitMaskBoxImageUndefined: Self = StObject.set(x, "WebkitMaskBoxImage", js.undefined)
      
      inline def setWebkitMaskBoxImageVarargs(
        value: ((Extract[js.UndefOr[MaskBorder | js.Array[NonNullable[js.UndefOr[MaskBorder]]]], String]) | NonNullable[js.UndefOr[MaskBorder]])*
      ): Self = StObject.set(x, "WebkitMaskBoxImage", js.Array(value*))
      
      inline def setWebkitMaskBoxImageWidth(
        value: (MaskBorderWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaskBorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMaskBoxImageWidth", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskBoxImageWidthUndefined: Self = StObject.set(x, "WebkitMaskBoxImageWidth", js.undefined)
      
      inline def setWebkitMaskBoxImageWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaskBorderWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaskBorderWidth[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMaskBoxImageWidth", js.Array(value*))
      
      inline def setWebkitMaskClip(
        value: WebkitMaskClip | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskClip | js.Array[NonNullable[js.UndefOr[WebkitMaskClip]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskClip]]
            ])
      ): Self = StObject.set(x, "WebkitMaskClip", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskClipUndefined: Self = StObject.set(x, "WebkitMaskClip", js.undefined)
      
      inline def setWebkitMaskClipVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskClip | js.Array[NonNullable[js.UndefOr[WebkitMaskClip]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskClip]])*
      ): Self = StObject.set(x, "WebkitMaskClip", js.Array(value*))
      
      inline def setWebkitMaskComposite(
        value: WebkitMaskComposite | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskComposite | js.Array[NonNullable[js.UndefOr[WebkitMaskComposite]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskComposite]]
            ])
      ): Self = StObject.set(x, "WebkitMaskComposite", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskCompositeUndefined: Self = StObject.set(x, "WebkitMaskComposite", js.undefined)
      
      inline def setWebkitMaskCompositeVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskComposite | js.Array[NonNullable[js.UndefOr[WebkitMaskComposite]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskComposite]])*
      ): Self = StObject.set(x, "WebkitMaskComposite", js.Array(value*))
      
      inline def setWebkitMaskImage(
        value: WebkitMaskImage | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskImage | js.Array[NonNullable[js.UndefOr[WebkitMaskImage]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskImage]]
            ])
      ): Self = StObject.set(x, "WebkitMaskImage", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskImageUndefined: Self = StObject.set(x, "WebkitMaskImage", js.undefined)
      
      inline def setWebkitMaskImageVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskImage | js.Array[NonNullable[js.UndefOr[WebkitMaskImage]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskImage]])*
      ): Self = StObject.set(x, "WebkitMaskImage", js.Array(value*))
      
      inline def setWebkitMaskOrigin(
        value: WebkitMaskOrigin | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskOrigin | js.Array[NonNullable[js.UndefOr[WebkitMaskOrigin]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskOrigin]]
            ])
      ): Self = StObject.set(x, "WebkitMaskOrigin", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskOriginUndefined: Self = StObject.set(x, "WebkitMaskOrigin", js.undefined)
      
      inline def setWebkitMaskOriginVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskOrigin | js.Array[NonNullable[js.UndefOr[WebkitMaskOrigin]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskOrigin]])*
      ): Self = StObject.set(x, "WebkitMaskOrigin", js.Array(value*))
      
      inline def setWebkitMaskPosition(
        value: (WebkitMaskPosition[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitMaskPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskPosition[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitMaskPosition[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMaskPosition", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskPositionUndefined: Self = StObject.set(x, "WebkitMaskPosition", js.undefined)
      
      inline def setWebkitMaskPositionVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitMaskPosition[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskPosition[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitMaskPosition[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMaskPosition", js.Array(value*))
      
      inline def setWebkitMaskPositionX(
        value: (WebkitMaskPositionX[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitMaskPositionX[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskPositionX[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitMaskPositionX[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMaskPositionX", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskPositionXUndefined: Self = StObject.set(x, "WebkitMaskPositionX", js.undefined)
      
      inline def setWebkitMaskPositionXVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitMaskPositionX[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskPositionX[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitMaskPositionX[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMaskPositionX", js.Array(value*))
      
      inline def setWebkitMaskPositionY(
        value: (WebkitMaskPositionY[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitMaskPositionY[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskPositionY[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitMaskPositionY[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMaskPositionY", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskPositionYUndefined: Self = StObject.set(x, "WebkitMaskPositionY", js.undefined)
      
      inline def setWebkitMaskPositionYVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitMaskPositionY[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskPositionY[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitMaskPositionY[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMaskPositionY", js.Array(value*))
      
      inline def setWebkitMaskRepeat(
        value: WebkitMaskRepeat | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskRepeat | js.Array[NonNullable[js.UndefOr[WebkitMaskRepeat]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskRepeat]]
            ])
      ): Self = StObject.set(x, "WebkitMaskRepeat", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskRepeatUndefined: Self = StObject.set(x, "WebkitMaskRepeat", js.undefined)
      
      inline def setWebkitMaskRepeatVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskRepeat | js.Array[NonNullable[js.UndefOr[WebkitMaskRepeat]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskRepeat]])*
      ): Self = StObject.set(x, "WebkitMaskRepeat", js.Array(value*))
      
      inline def setWebkitMaskRepeatX(
        value: WebkitMaskRepeatX | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskRepeatX | js.Array[NonNullable[js.UndefOr[WebkitMaskRepeatX]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskRepeatX]]
            ])
      ): Self = StObject.set(x, "WebkitMaskRepeatX", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskRepeatXUndefined: Self = StObject.set(x, "WebkitMaskRepeatX", js.undefined)
      
      inline def setWebkitMaskRepeatXVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskRepeatX | js.Array[NonNullable[js.UndefOr[WebkitMaskRepeatX]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskRepeatX]])*
      ): Self = StObject.set(x, "WebkitMaskRepeatX", js.Array(value*))
      
      inline def setWebkitMaskRepeatY(
        value: WebkitMaskRepeatY | (js.Array[
              (Extract[
                js.UndefOr[WebkitMaskRepeatY | js.Array[NonNullable[js.UndefOr[WebkitMaskRepeatY]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitMaskRepeatY]]
            ])
      ): Self = StObject.set(x, "WebkitMaskRepeatY", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskRepeatYUndefined: Self = StObject.set(x, "WebkitMaskRepeatY", js.undefined)
      
      inline def setWebkitMaskRepeatYVarargs(
        value: ((Extract[
              js.UndefOr[WebkitMaskRepeatY | js.Array[NonNullable[js.UndefOr[WebkitMaskRepeatY]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitMaskRepeatY]])*
      ): Self = StObject.set(x, "WebkitMaskRepeatY", js.Array(value*))
      
      inline def setWebkitMaskSize(
        value: (WebkitMaskSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitMaskSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitMaskSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMaskSize", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaskSizeUndefined: Self = StObject.set(x, "WebkitMaskSize", js.undefined)
      
      inline def setWebkitMaskSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitMaskSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMaskSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitMaskSize[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMaskSize", js.Array(value*))
      
      inline def setWebkitMaskUndefined: Self = StObject.set(x, "WebkitMask", js.undefined)
      
      inline def setWebkitMaskVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitMask[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitMask[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitMask[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMask", js.Array(value*))
      
      inline def setWebkitMaxInlineSize(
        value: (MaxInlineSize[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (MaxInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[MaxInlineSize[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitMaxInlineSize", value.asInstanceOf[js.Any])
      
      inline def setWebkitMaxInlineSizeUndefined: Self = StObject.set(x, "WebkitMaxInlineSize", js.undefined)
      
      inline def setWebkitMaxInlineSizeVarargs(
        value: ((Extract[
              js.UndefOr[
                (MaxInlineSize[Double | String]) | (js.Array[NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[MaxInlineSize[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitMaxInlineSize", js.Array(value*))
      
      inline def setWebkitOrder(
        value: Order | (js.Array[
              (Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]]
            ])
      ): Self = StObject.set(x, "WebkitOrder", value.asInstanceOf[js.Any])
      
      inline def setWebkitOrderUndefined: Self = StObject.set(x, "WebkitOrder", js.undefined)
      
      inline def setWebkitOrderVarargs(
        value: ((Extract[js.UndefOr[Order | js.Array[NonNullable[js.UndefOr[Order]]]], String]) | NonNullable[js.UndefOr[Order]])*
      ): Self = StObject.set(x, "WebkitOrder", js.Array(value*))
      
      inline def setWebkitOverflowScrolling(
        value: WebkitOverflowScrolling | (js.Array[
              (Extract[
                js.UndefOr[
                  WebkitOverflowScrolling | js.Array[NonNullable[js.UndefOr[WebkitOverflowScrolling]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[WebkitOverflowScrolling]]
            ])
      ): Self = StObject.set(x, "WebkitOverflowScrolling", value.asInstanceOf[js.Any])
      
      inline def setWebkitOverflowScrollingUndefined: Self = StObject.set(x, "WebkitOverflowScrolling", js.undefined)
      
      inline def setWebkitOverflowScrollingVarargs(
        value: ((Extract[
              js.UndefOr[
                WebkitOverflowScrolling | js.Array[NonNullable[js.UndefOr[WebkitOverflowScrolling]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[WebkitOverflowScrolling]])*
      ): Self = StObject.set(x, "WebkitOverflowScrolling", js.Array(value*))
      
      inline def setWebkitPaddingEnd(
        value: (PaddingInlineEnd[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitPaddingEnd", value.asInstanceOf[js.Any])
      
      inline def setWebkitPaddingEndUndefined: Self = StObject.set(x, "WebkitPaddingEnd", js.undefined)
      
      inline def setWebkitPaddingEndVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingInlineEnd[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingInlineEnd[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitPaddingEnd", js.Array(value*))
      
      inline def setWebkitPaddingStart(
        value: (PaddingInlineStart[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitPaddingStart", value.asInstanceOf[js.Any])
      
      inline def setWebkitPaddingStartUndefined: Self = StObject.set(x, "WebkitPaddingStart", js.undefined)
      
      inline def setWebkitPaddingStartVarargs(
        value: ((Extract[
              js.UndefOr[
                (PaddingInlineStart[Double | String]) | (js.Array[NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PaddingInlineStart[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitPaddingStart", js.Array(value*))
      
      inline def setWebkitPerspective(
        value: (Perspective[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitPerspective", value.asInstanceOf[js.Any])
      
      inline def setWebkitPerspectiveOrigin(
        value: (PerspectiveOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitPerspectiveOrigin", value.asInstanceOf[js.Any])
      
      inline def setWebkitPerspectiveOriginUndefined: Self = StObject.set(x, "WebkitPerspectiveOrigin", js.undefined)
      
      inline def setWebkitPerspectiveOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (PerspectiveOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[PerspectiveOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitPerspectiveOrigin", js.Array(value*))
      
      inline def setWebkitPerspectiveUndefined: Self = StObject.set(x, "WebkitPerspective", js.undefined)
      
      inline def setWebkitPerspectiveVarargs(
        value: ((Extract[
              js.UndefOr[
                (Perspective[Double | String]) | (js.Array[NonNullable[js.UndefOr[Perspective[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Perspective[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitPerspective", js.Array(value*))
      
      inline def setWebkitPrintColorAdjust(
        value: ColorAdjust | (js.Array[
              (Extract[js.UndefOr[ColorAdjust | js.Array[NonNullable[js.UndefOr[ColorAdjust]]]], String]) | NonNullable[js.UndefOr[ColorAdjust]]
            ])
      ): Self = StObject.set(x, "WebkitPrintColorAdjust", value.asInstanceOf[js.Any])
      
      inline def setWebkitPrintColorAdjustUndefined: Self = StObject.set(x, "WebkitPrintColorAdjust", js.undefined)
      
      inline def setWebkitPrintColorAdjustVarargs(
        value: ((Extract[js.UndefOr[ColorAdjust | js.Array[NonNullable[js.UndefOr[ColorAdjust]]]], String]) | NonNullable[js.UndefOr[ColorAdjust]])*
      ): Self = StObject.set(x, "WebkitPrintColorAdjust", js.Array(value*))
      
      inline def setWebkitRubyPosition(
        value: RubyPosition | (js.Array[
              (Extract[js.UndefOr[RubyPosition | js.Array[NonNullable[js.UndefOr[RubyPosition]]]], String]) | NonNullable[js.UndefOr[RubyPosition]]
            ])
      ): Self = StObject.set(x, "WebkitRubyPosition", value.asInstanceOf[js.Any])
      
      inline def setWebkitRubyPositionUndefined: Self = StObject.set(x, "WebkitRubyPosition", js.undefined)
      
      inline def setWebkitRubyPositionVarargs(
        value: ((Extract[js.UndefOr[RubyPosition | js.Array[NonNullable[js.UndefOr[RubyPosition]]]], String]) | NonNullable[js.UndefOr[RubyPosition]])*
      ): Self = StObject.set(x, "WebkitRubyPosition", js.Array(value*))
      
      inline def setWebkitScrollSnapPointsX(
        value: ScrollSnapPointsX | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsX]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapPointsX]]
            ])
      ): Self = StObject.set(x, "WebkitScrollSnapPointsX", value.asInstanceOf[js.Any])
      
      inline def setWebkitScrollSnapPointsXUndefined: Self = StObject.set(x, "WebkitScrollSnapPointsX", js.undefined)
      
      inline def setWebkitScrollSnapPointsXVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapPointsX | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsX]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapPointsX]])*
      ): Self = StObject.set(x, "WebkitScrollSnapPointsX", js.Array(value*))
      
      inline def setWebkitScrollSnapPointsY(
        value: ScrollSnapPointsY | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsY]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapPointsY]]
            ])
      ): Self = StObject.set(x, "WebkitScrollSnapPointsY", value.asInstanceOf[js.Any])
      
      inline def setWebkitScrollSnapPointsYUndefined: Self = StObject.set(x, "WebkitScrollSnapPointsY", js.undefined)
      
      inline def setWebkitScrollSnapPointsYVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapPointsY | js.Array[NonNullable[js.UndefOr[ScrollSnapPointsY]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapPointsY]])*
      ): Self = StObject.set(x, "WebkitScrollSnapPointsY", js.Array(value*))
      
      inline def setWebkitScrollSnapType(
        value: ScrollSnapType | (js.Array[
              (Extract[
                js.UndefOr[ScrollSnapType | js.Array[NonNullable[js.UndefOr[ScrollSnapType]]]], 
                String
              ]) | NonNullable[js.UndefOr[ScrollSnapType]]
            ])
      ): Self = StObject.set(x, "WebkitScrollSnapType", value.asInstanceOf[js.Any])
      
      inline def setWebkitScrollSnapTypeUndefined: Self = StObject.set(x, "WebkitScrollSnapType", js.undefined)
      
      inline def setWebkitScrollSnapTypeVarargs(
        value: ((Extract[
              js.UndefOr[ScrollSnapType | js.Array[NonNullable[js.UndefOr[ScrollSnapType]]]], 
              String
            ]) | NonNullable[js.UndefOr[ScrollSnapType]])*
      ): Self = StObject.set(x, "WebkitScrollSnapType", js.Array(value*))
      
      inline def setWebkitShapeMargin(
        value: (ShapeMargin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (ShapeMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ShapeMargin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[ShapeMargin[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitShapeMargin", value.asInstanceOf[js.Any])
      
      inline def setWebkitShapeMarginUndefined: Self = StObject.set(x, "WebkitShapeMargin", js.undefined)
      
      inline def setWebkitShapeMarginVarargs(
        value: ((Extract[
              js.UndefOr[
                (ShapeMargin[Double | String]) | (js.Array[NonNullable[js.UndefOr[ShapeMargin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[ShapeMargin[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitShapeMargin", js.Array(value*))
      
      inline def setWebkitTapHighlightColor(
        value: WebkitTapHighlightColor | (js.Array[
              (Extract[
                js.UndefOr[
                  WebkitTapHighlightColor | js.Array[NonNullable[js.UndefOr[WebkitTapHighlightColor]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[WebkitTapHighlightColor]]
            ])
      ): Self = StObject.set(x, "WebkitTapHighlightColor", value.asInstanceOf[js.Any])
      
      inline def setWebkitTapHighlightColorUndefined: Self = StObject.set(x, "WebkitTapHighlightColor", js.undefined)
      
      inline def setWebkitTapHighlightColorVarargs(
        value: ((Extract[
              js.UndefOr[
                WebkitTapHighlightColor | js.Array[NonNullable[js.UndefOr[WebkitTapHighlightColor]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[WebkitTapHighlightColor]])*
      ): Self = StObject.set(x, "WebkitTapHighlightColor", js.Array(value*))
      
      inline def setWebkitTextCombine(
        value: TextCombineUpright | (js.Array[
              (Extract[
                js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextCombineUpright]]
            ])
      ): Self = StObject.set(x, "WebkitTextCombine", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextCombineUndefined: Self = StObject.set(x, "WebkitTextCombine", js.undefined)
      
      inline def setWebkitTextCombineVarargs(
        value: ((Extract[
              js.UndefOr[TextCombineUpright | js.Array[NonNullable[js.UndefOr[TextCombineUpright]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextCombineUpright]])*
      ): Self = StObject.set(x, "WebkitTextCombine", js.Array(value*))
      
      inline def setWebkitTextDecorationColor(
        value: TextDecorationColor | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationColor]]
            ])
      ): Self = StObject.set(x, "WebkitTextDecorationColor", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextDecorationColorUndefined: Self = StObject.set(x, "WebkitTextDecorationColor", js.undefined)
      
      inline def setWebkitTextDecorationColorVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationColor | js.Array[NonNullable[js.UndefOr[TextDecorationColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationColor]])*
      ): Self = StObject.set(x, "WebkitTextDecorationColor", js.Array(value*))
      
      inline def setWebkitTextDecorationLine(
        value: TextDecorationLine | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationLine]]
            ])
      ): Self = StObject.set(x, "WebkitTextDecorationLine", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextDecorationLineUndefined: Self = StObject.set(x, "WebkitTextDecorationLine", js.undefined)
      
      inline def setWebkitTextDecorationLineVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationLine | js.Array[NonNullable[js.UndefOr[TextDecorationLine]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationLine]])*
      ): Self = StObject.set(x, "WebkitTextDecorationLine", js.Array(value*))
      
      inline def setWebkitTextDecorationSkip(
        value: TextDecorationSkip | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationSkip | js.Array[NonNullable[js.UndefOr[TextDecorationSkip]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationSkip]]
            ])
      ): Self = StObject.set(x, "WebkitTextDecorationSkip", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextDecorationSkipUndefined: Self = StObject.set(x, "WebkitTextDecorationSkip", js.undefined)
      
      inline def setWebkitTextDecorationSkipVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationSkip | js.Array[NonNullable[js.UndefOr[TextDecorationSkip]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationSkip]])*
      ): Self = StObject.set(x, "WebkitTextDecorationSkip", js.Array(value*))
      
      inline def setWebkitTextDecorationStyle(
        value: TextDecorationStyle | (js.Array[
              (Extract[
                js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextDecorationStyle]]
            ])
      ): Self = StObject.set(x, "WebkitTextDecorationStyle", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextDecorationStyleUndefined: Self = StObject.set(x, "WebkitTextDecorationStyle", js.undefined)
      
      inline def setWebkitTextDecorationStyleVarargs(
        value: ((Extract[
              js.UndefOr[TextDecorationStyle | js.Array[NonNullable[js.UndefOr[TextDecorationStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextDecorationStyle]])*
      ): Self = StObject.set(x, "WebkitTextDecorationStyle", js.Array(value*))
      
      inline def setWebkitTextEmphasis(
        value: TextEmphasis | (js.Array[
              (Extract[js.UndefOr[TextEmphasis | js.Array[NonNullable[js.UndefOr[TextEmphasis]]]], String]) | NonNullable[js.UndefOr[TextEmphasis]]
            ])
      ): Self = StObject.set(x, "WebkitTextEmphasis", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextEmphasisColor(
        value: TextEmphasisColor | (js.Array[
              (Extract[
                js.UndefOr[TextEmphasisColor | js.Array[NonNullable[js.UndefOr[TextEmphasisColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextEmphasisColor]]
            ])
      ): Self = StObject.set(x, "WebkitTextEmphasisColor", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextEmphasisColorUndefined: Self = StObject.set(x, "WebkitTextEmphasisColor", js.undefined)
      
      inline def setWebkitTextEmphasisColorVarargs(
        value: ((Extract[
              js.UndefOr[TextEmphasisColor | js.Array[NonNullable[js.UndefOr[TextEmphasisColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextEmphasisColor]])*
      ): Self = StObject.set(x, "WebkitTextEmphasisColor", js.Array(value*))
      
      inline def setWebkitTextEmphasisPosition(
        value: TextEmphasisPosition | (js.Array[
              (Extract[
                js.UndefOr[TextEmphasisPosition | js.Array[NonNullable[js.UndefOr[TextEmphasisPosition]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextEmphasisPosition]]
            ])
      ): Self = StObject.set(x, "WebkitTextEmphasisPosition", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextEmphasisPositionUndefined: Self = StObject.set(x, "WebkitTextEmphasisPosition", js.undefined)
      
      inline def setWebkitTextEmphasisPositionVarargs(
        value: ((Extract[
              js.UndefOr[TextEmphasisPosition | js.Array[NonNullable[js.UndefOr[TextEmphasisPosition]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextEmphasisPosition]])*
      ): Self = StObject.set(x, "WebkitTextEmphasisPosition", js.Array(value*))
      
      inline def setWebkitTextEmphasisStyle(
        value: TextEmphasisStyle | (js.Array[
              (Extract[
                js.UndefOr[TextEmphasisStyle | js.Array[NonNullable[js.UndefOr[TextEmphasisStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextEmphasisStyle]]
            ])
      ): Self = StObject.set(x, "WebkitTextEmphasisStyle", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextEmphasisStyleUndefined: Self = StObject.set(x, "WebkitTextEmphasisStyle", js.undefined)
      
      inline def setWebkitTextEmphasisStyleVarargs(
        value: ((Extract[
              js.UndefOr[TextEmphasisStyle | js.Array[NonNullable[js.UndefOr[TextEmphasisStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextEmphasisStyle]])*
      ): Self = StObject.set(x, "WebkitTextEmphasisStyle", js.Array(value*))
      
      inline def setWebkitTextEmphasisUndefined: Self = StObject.set(x, "WebkitTextEmphasis", js.undefined)
      
      inline def setWebkitTextEmphasisVarargs(
        value: ((Extract[js.UndefOr[TextEmphasis | js.Array[NonNullable[js.UndefOr[TextEmphasis]]]], String]) | NonNullable[js.UndefOr[TextEmphasis]])*
      ): Self = StObject.set(x, "WebkitTextEmphasis", js.Array(value*))
      
      inline def setWebkitTextFillColor(
        value: WebkitTextFillColor | (js.Array[
              (Extract[
                js.UndefOr[WebkitTextFillColor | js.Array[NonNullable[js.UndefOr[WebkitTextFillColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitTextFillColor]]
            ])
      ): Self = StObject.set(x, "WebkitTextFillColor", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextFillColorUndefined: Self = StObject.set(x, "WebkitTextFillColor", js.undefined)
      
      inline def setWebkitTextFillColorVarargs(
        value: ((Extract[
              js.UndefOr[WebkitTextFillColor | js.Array[NonNullable[js.UndefOr[WebkitTextFillColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitTextFillColor]])*
      ): Self = StObject.set(x, "WebkitTextFillColor", js.Array(value*))
      
      inline def setWebkitTextOrientation(
        value: TextOrientation | (js.Array[
              (Extract[
                js.UndefOr[TextOrientation | js.Array[NonNullable[js.UndefOr[TextOrientation]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextOrientation]]
            ])
      ): Self = StObject.set(x, "WebkitTextOrientation", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextOrientationUndefined: Self = StObject.set(x, "WebkitTextOrientation", js.undefined)
      
      inline def setWebkitTextOrientationVarargs(
        value: ((Extract[
              js.UndefOr[TextOrientation | js.Array[NonNullable[js.UndefOr[TextOrientation]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextOrientation]])*
      ): Self = StObject.set(x, "WebkitTextOrientation", js.Array(value*))
      
      inline def setWebkitTextSizeAdjust(
        value: TextSizeAdjust | (js.Array[
              (Extract[
                js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextSizeAdjust]]
            ])
      ): Self = StObject.set(x, "WebkitTextSizeAdjust", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextSizeAdjustUndefined: Self = StObject.set(x, "WebkitTextSizeAdjust", js.undefined)
      
      inline def setWebkitTextSizeAdjustVarargs(
        value: ((Extract[
              js.UndefOr[TextSizeAdjust | js.Array[NonNullable[js.UndefOr[TextSizeAdjust]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextSizeAdjust]])*
      ): Self = StObject.set(x, "WebkitTextSizeAdjust", js.Array(value*))
      
      inline def setWebkitTextStroke(
        value: (WebkitTextStroke[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitTextStroke[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitTextStroke[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitTextStroke[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitTextStroke", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextStrokeColor(
        value: WebkitTextStrokeColor | (js.Array[
              (Extract[
                js.UndefOr[WebkitTextStrokeColor | js.Array[NonNullable[js.UndefOr[WebkitTextStrokeColor]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitTextStrokeColor]]
            ])
      ): Self = StObject.set(x, "WebkitTextStrokeColor", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextStrokeColorUndefined: Self = StObject.set(x, "WebkitTextStrokeColor", js.undefined)
      
      inline def setWebkitTextStrokeColorVarargs(
        value: ((Extract[
              js.UndefOr[WebkitTextStrokeColor | js.Array[NonNullable[js.UndefOr[WebkitTextStrokeColor]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitTextStrokeColor]])*
      ): Self = StObject.set(x, "WebkitTextStrokeColor", js.Array(value*))
      
      inline def setWebkitTextStrokeUndefined: Self = StObject.set(x, "WebkitTextStroke", js.undefined)
      
      inline def setWebkitTextStrokeVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitTextStroke[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitTextStroke[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitTextStroke[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitTextStroke", js.Array(value*))
      
      inline def setWebkitTextStrokeWidth(
        value: (WebkitTextStrokeWidth[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WebkitTextStrokeWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitTextStrokeWidth[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WebkitTextStrokeWidth[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitTextStrokeWidth", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextStrokeWidthUndefined: Self = StObject.set(x, "WebkitTextStrokeWidth", js.undefined)
      
      inline def setWebkitTextStrokeWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (WebkitTextStrokeWidth[Double | String]) | (js.Array[NonNullable[js.UndefOr[WebkitTextStrokeWidth[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WebkitTextStrokeWidth[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitTextStrokeWidth", js.Array(value*))
      
      inline def setWebkitTextUnderlinePosition(
        value: TextUnderlinePosition | (js.Array[
              (Extract[
                js.UndefOr[TextUnderlinePosition | js.Array[NonNullable[js.UndefOr[TextUnderlinePosition]]]], 
                String
              ]) | NonNullable[js.UndefOr[TextUnderlinePosition]]
            ])
      ): Self = StObject.set(x, "WebkitTextUnderlinePosition", value.asInstanceOf[js.Any])
      
      inline def setWebkitTextUnderlinePositionUndefined: Self = StObject.set(x, "WebkitTextUnderlinePosition", js.undefined)
      
      inline def setWebkitTextUnderlinePositionVarargs(
        value: ((Extract[
              js.UndefOr[TextUnderlinePosition | js.Array[NonNullable[js.UndefOr[TextUnderlinePosition]]]], 
              String
            ]) | NonNullable[js.UndefOr[TextUnderlinePosition]])*
      ): Self = StObject.set(x, "WebkitTextUnderlinePosition", js.Array(value*))
      
      inline def setWebkitTouchCallout(
        value: WebkitTouchCallout | (js.Array[
              (Extract[
                js.UndefOr[WebkitTouchCallout | js.Array[NonNullable[js.UndefOr[WebkitTouchCallout]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitTouchCallout]]
            ])
      ): Self = StObject.set(x, "WebkitTouchCallout", value.asInstanceOf[js.Any])
      
      inline def setWebkitTouchCalloutUndefined: Self = StObject.set(x, "WebkitTouchCallout", js.undefined)
      
      inline def setWebkitTouchCalloutVarargs(
        value: ((Extract[
              js.UndefOr[WebkitTouchCallout | js.Array[NonNullable[js.UndefOr[WebkitTouchCallout]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitTouchCallout]])*
      ): Self = StObject.set(x, "WebkitTouchCallout", js.Array(value*))
      
      inline def setWebkitTransform(
        value: Transform | (js.Array[
              (Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]]
            ])
      ): Self = StObject.set(x, "WebkitTransform", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransformOrigin(
        value: (TransformOrigin[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]])
            ])
      ): Self = StObject.set(x, "WebkitTransformOrigin", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransformOriginUndefined: Self = StObject.set(x, "WebkitTransformOrigin", js.undefined)
      
      inline def setWebkitTransformOriginVarargs(
        value: ((Extract[
              js.UndefOr[
                (TransformOrigin[Double | String]) | (js.Array[NonNullable[js.UndefOr[TransformOrigin[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[TransformOrigin[Double | String]]]))*
      ): Self = StObject.set(x, "WebkitTransformOrigin", js.Array(value*))
      
      inline def setWebkitTransformStyle(
        value: TransformStyle | (js.Array[
              (Extract[
                js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransformStyle]]
            ])
      ): Self = StObject.set(x, "WebkitTransformStyle", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransformStyleUndefined: Self = StObject.set(x, "WebkitTransformStyle", js.undefined)
      
      inline def setWebkitTransformStyleVarargs(
        value: ((Extract[
              js.UndefOr[TransformStyle | js.Array[NonNullable[js.UndefOr[TransformStyle]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransformStyle]])*
      ): Self = StObject.set(x, "WebkitTransformStyle", js.Array(value*))
      
      inline def setWebkitTransformUndefined: Self = StObject.set(x, "WebkitTransform", js.undefined)
      
      inline def setWebkitTransformVarargs(
        value: ((Extract[js.UndefOr[Transform | js.Array[NonNullable[js.UndefOr[Transform]]]], String]) | NonNullable[js.UndefOr[Transform]])*
      ): Self = StObject.set(x, "WebkitTransform", js.Array(value*))
      
      inline def setWebkitTransition(
        value: Transition[String] | (js.Array[
              (Extract[
                js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
                String
              ]) | NonNullable[js.UndefOr[Transition[String]]]
            ])
      ): Self = StObject.set(x, "WebkitTransition", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransitionDelay(
        value: TransitionDelay[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDelay[String]]]
            ])
      ): Self = StObject.set(x, "WebkitTransitionDelay", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransitionDelayUndefined: Self = StObject.set(x, "WebkitTransitionDelay", js.undefined)
      
      inline def setWebkitTransitionDelayVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDelay[String] | js.Array[NonNullable[js.UndefOr[TransitionDelay[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDelay[String]]])*
      ): Self = StObject.set(x, "WebkitTransitionDelay", js.Array(value*))
      
      inline def setWebkitTransitionDuration(
        value: TransitionDuration[String] | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionDuration[String]]]
            ])
      ): Self = StObject.set(x, "WebkitTransitionDuration", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransitionDurationUndefined: Self = StObject.set(x, "WebkitTransitionDuration", js.undefined)
      
      inline def setWebkitTransitionDurationVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionDuration[String] | js.Array[NonNullable[js.UndefOr[TransitionDuration[String]]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionDuration[String]]])*
      ): Self = StObject.set(x, "WebkitTransitionDuration", js.Array(value*))
      
      inline def setWebkitTransitionProperty(
        value: TransitionProperty | (js.Array[
              (Extract[
                js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
                String
              ]) | NonNullable[js.UndefOr[TransitionProperty]]
            ])
      ): Self = StObject.set(x, "WebkitTransitionProperty", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransitionPropertyUndefined: Self = StObject.set(x, "WebkitTransitionProperty", js.undefined)
      
      inline def setWebkitTransitionPropertyVarargs(
        value: ((Extract[
              js.UndefOr[TransitionProperty | js.Array[NonNullable[js.UndefOr[TransitionProperty]]]], 
              String
            ]) | NonNullable[js.UndefOr[TransitionProperty]])*
      ): Self = StObject.set(x, "WebkitTransitionProperty", js.Array(value*))
      
      inline def setWebkitTransitionTimingFunction(
        value: TransitionTimingFunction | (js.Array[
              (Extract[
                js.UndefOr[
                  TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
                ], 
                String
              ]) | NonNullable[js.UndefOr[TransitionTimingFunction]]
            ])
      ): Self = StObject.set(x, "WebkitTransitionTimingFunction", value.asInstanceOf[js.Any])
      
      inline def setWebkitTransitionTimingFunctionUndefined: Self = StObject.set(x, "WebkitTransitionTimingFunction", js.undefined)
      
      inline def setWebkitTransitionTimingFunctionVarargs(
        value: ((Extract[
              js.UndefOr[
                TransitionTimingFunction | js.Array[NonNullable[js.UndefOr[TransitionTimingFunction]]]
              ], 
              String
            ]) | NonNullable[js.UndefOr[TransitionTimingFunction]])*
      ): Self = StObject.set(x, "WebkitTransitionTimingFunction", js.Array(value*))
      
      inline def setWebkitTransitionUndefined: Self = StObject.set(x, "WebkitTransition", js.undefined)
      
      inline def setWebkitTransitionVarargs(
        value: ((Extract[
              js.UndefOr[Transition[String] | js.Array[NonNullable[js.UndefOr[Transition[String]]]]], 
              String
            ]) | NonNullable[js.UndefOr[Transition[String]]])*
      ): Self = StObject.set(x, "WebkitTransition", js.Array(value*))
      
      inline def setWebkitUserModify(
        value: WebkitUserModify | (js.Array[
              (Extract[
                js.UndefOr[WebkitUserModify | js.Array[NonNullable[js.UndefOr[WebkitUserModify]]]], 
                String
              ]) | NonNullable[js.UndefOr[WebkitUserModify]]
            ])
      ): Self = StObject.set(x, "WebkitUserModify", value.asInstanceOf[js.Any])
      
      inline def setWebkitUserModifyUndefined: Self = StObject.set(x, "WebkitUserModify", js.undefined)
      
      inline def setWebkitUserModifyVarargs(
        value: ((Extract[
              js.UndefOr[WebkitUserModify | js.Array[NonNullable[js.UndefOr[WebkitUserModify]]]], 
              String
            ]) | NonNullable[js.UndefOr[WebkitUserModify]])*
      ): Self = StObject.set(x, "WebkitUserModify", js.Array(value*))
      
      inline def setWebkitUserSelect(
        value: UserSelect | (js.Array[
              (Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]]
            ])
      ): Self = StObject.set(x, "WebkitUserSelect", value.asInstanceOf[js.Any])
      
      inline def setWebkitUserSelectUndefined: Self = StObject.set(x, "WebkitUserSelect", js.undefined)
      
      inline def setWebkitUserSelectVarargs(
        value: ((Extract[js.UndefOr[UserSelect | js.Array[NonNullable[js.UndefOr[UserSelect]]]], String]) | NonNullable[js.UndefOr[UserSelect]])*
      ): Self = StObject.set(x, "WebkitUserSelect", js.Array(value*))
      
      inline def setWebkitWritingMode(
        value: WritingMode | (js.Array[
              (Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]]
            ])
      ): Self = StObject.set(x, "WebkitWritingMode", value.asInstanceOf[js.Any])
      
      inline def setWebkitWritingModeUndefined: Self = StObject.set(x, "WebkitWritingMode", js.undefined)
      
      inline def setWebkitWritingModeVarargs(
        value: ((Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]])*
      ): Self = StObject.set(x, "WebkitWritingMode", js.Array(value*))
      
      inline def setWhiteSpace(
        value: WhiteSpace | (js.Array[
              (Extract[js.UndefOr[WhiteSpace | js.Array[NonNullable[js.UndefOr[WhiteSpace]]]], String]) | NonNullable[js.UndefOr[WhiteSpace]]
            ])
      ): Self = StObject.set(x, "whiteSpace", value.asInstanceOf[js.Any])
      
      inline def setWhiteSpaceUndefined: Self = StObject.set(x, "whiteSpace", js.undefined)
      
      inline def setWhiteSpaceVarargs(
        value: ((Extract[js.UndefOr[WhiteSpace | js.Array[NonNullable[js.UndefOr[WhiteSpace]]]], String]) | NonNullable[js.UndefOr[WhiteSpace]])*
      ): Self = StObject.set(x, "whiteSpace", js.Array(value*))
      
      inline def setWidows(
        value: Widows | (js.Array[
              (Extract[js.UndefOr[Widows | js.Array[NonNullable[js.UndefOr[Widows]]]], String]) | NonNullable[js.UndefOr[Widows]]
            ])
      ): Self = StObject.set(x, "widows", value.asInstanceOf[js.Any])
      
      inline def setWidowsUndefined: Self = StObject.set(x, "widows", js.undefined)
      
      inline def setWidowsVarargs(
        value: ((Extract[js.UndefOr[Widows | js.Array[NonNullable[js.UndefOr[Widows]]]], String]) | NonNullable[js.UndefOr[Widows]])*
      ): Self = StObject.set(x, "widows", js.Array(value*))
      
      inline def setWidth(
        value: (Width[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (Width[Double | String]) | (js.Array[NonNullable[js.UndefOr[Width[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[Width[Double | String]]])
            ])
      ): Self = StObject.set(x, "width", value.asInstanceOf[js.Any])
      
      inline def setWidthUndefined: Self = StObject.set(x, "width", js.undefined)
      
      inline def setWidthVarargs(
        value: ((Extract[
              js.UndefOr[
                (Width[Double | String]) | (js.Array[NonNullable[js.UndefOr[Width[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[Width[Double | String]]]))*
      ): Self = StObject.set(x, "width", js.Array(value*))
      
      inline def setWillChange(
        value: WillChange | (js.Array[
              (Extract[js.UndefOr[WillChange | js.Array[NonNullable[js.UndefOr[WillChange]]]], String]) | NonNullable[js.UndefOr[WillChange]]
            ])
      ): Self = StObject.set(x, "willChange", value.asInstanceOf[js.Any])
      
      inline def setWillChangeUndefined: Self = StObject.set(x, "willChange", js.undefined)
      
      inline def setWillChangeVarargs(
        value: ((Extract[js.UndefOr[WillChange | js.Array[NonNullable[js.UndefOr[WillChange]]]], String]) | NonNullable[js.UndefOr[WillChange]])*
      ): Self = StObject.set(x, "willChange", js.Array(value*))
      
      inline def setWordBreak(
        value: WordBreak | (js.Array[
              (Extract[js.UndefOr[WordBreak | js.Array[NonNullable[js.UndefOr[WordBreak]]]], String]) | NonNullable[js.UndefOr[WordBreak]]
            ])
      ): Self = StObject.set(x, "wordBreak", value.asInstanceOf[js.Any])
      
      inline def setWordBreakUndefined: Self = StObject.set(x, "wordBreak", js.undefined)
      
      inline def setWordBreakVarargs(
        value: ((Extract[js.UndefOr[WordBreak | js.Array[NonNullable[js.UndefOr[WordBreak]]]], String]) | NonNullable[js.UndefOr[WordBreak]])*
      ): Self = StObject.set(x, "wordBreak", js.Array(value*))
      
      inline def setWordSpacing(
        value: (WordSpacing[Double | String]) | (js.Array[
              (Extract[
                js.UndefOr[
                  (WordSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[WordSpacing[Double | String]]]])
                ], 
                String
              ]) | (NonNullable[js.UndefOr[WordSpacing[Double | String]]])
            ])
      ): Self = StObject.set(x, "wordSpacing", value.asInstanceOf[js.Any])
      
      inline def setWordSpacingUndefined: Self = StObject.set(x, "wordSpacing", js.undefined)
      
      inline def setWordSpacingVarargs(
        value: ((Extract[
              js.UndefOr[
                (WordSpacing[Double | String]) | (js.Array[NonNullable[js.UndefOr[WordSpacing[Double | String]]]])
              ], 
              String
            ]) | (NonNullable[js.UndefOr[WordSpacing[Double | String]]]))*
      ): Self = StObject.set(x, "wordSpacing", js.Array(value*))
      
      inline def setWordWrap(
        value: WordWrap | (js.Array[
              (Extract[js.UndefOr[WordWrap | js.Array[NonNullable[js.UndefOr[WordWrap]]]], String]) | NonNullable[js.UndefOr[WordWrap]]
            ])
      ): Self = StObject.set(x, "wordWrap", value.asInstanceOf[js.Any])
      
      inline def setWordWrapUndefined: Self = StObject.set(x, "wordWrap", js.undefined)
      
      inline def setWordWrapVarargs(
        value: ((Extract[js.UndefOr[WordWrap | js.Array[NonNullable[js.UndefOr[WordWrap]]]], String]) | NonNullable[js.UndefOr[WordWrap]])*
      ): Self = StObject.set(x, "wordWrap", js.Array(value*))
      
      inline def setWritingMode(
        value: WritingMode | (js.Array[
              (Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]]
            ])
      ): Self = StObject.set(x, "writingMode", value.asInstanceOf[js.Any])
      
      inline def setWritingModeUndefined: Self = StObject.set(x, "writingMode", js.undefined)
      
      inline def setWritingModeVarargs(
        value: ((Extract[js.UndefOr[WritingMode | js.Array[NonNullable[js.UndefOr[WritingMode]]]], String]) | NonNullable[js.UndefOr[WritingMode]])*
      ): Self = StObject.set(x, "writingMode", js.Array(value*))
      
      inline def setZIndex(
        value: ZIndex | (js.Array[
              (Extract[js.UndefOr[ZIndex | js.Array[NonNullable[js.UndefOr[ZIndex]]]], String]) | NonNullable[js.UndefOr[ZIndex]]
            ])
      ): Self = StObject.set(x, "zIndex", value.asInstanceOf[js.Any])
      
      inline def setZIndexUndefined: Self = StObject.set(x, "zIndex", js.undefined)
      
      inline def setZIndexVarargs(
        value: ((Extract[js.UndefOr[ZIndex | js.Array[NonNullable[js.UndefOr[ZIndex]]]], String]) | NonNullable[js.UndefOr[ZIndex]])*
      ): Self = StObject.set(x, "zIndex", js.Array(value*))
      
      inline def setZoom(
        value: Zoom | (js.Array[
              (Extract[js.UndefOr[Zoom | js.Array[NonNullable[js.UndefOr[Zoom]]]], String]) | NonNullable[js.UndefOr[Zoom]]
            ])
      ): Self = StObject.set(x, "zoom", value.asInstanceOf[js.Any])
      
      inline def setZoomUndefined: Self = StObject.set(x, "zoom", js.undefined)
      
      inline def setZoomVarargs(
        value: ((Extract[js.UndefOr[Zoom | js.Array[NonNullable[js.UndefOr[Zoom]]]], String]) | NonNullable[js.UndefOr[Zoom]])*
      ): Self = StObject.set(x, "zoom", js.Array(value*))
    }
  }
  
  /* Inlined {[ K in csstype.csstype.Pseudos ]:? @emotion/serialize.@emotion/serialize.CSSObject} */
  trait CSSPseudos extends StObject {
    
    @JSName(":-khtml-any-link")
    var `Colon-khtml-any-link`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-any-link")
    var `Colon-moz-any-link`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-any()")
    var `Colon-moz-anyLeftparenthesisRightparenthesis`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-dir")
    var `Colon-moz-dir`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-focusring")
    var `Colon-moz-focusring`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-full-screen")
    var `Colon-moz-full-screen`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-placeholder")
    var `Colon-moz-placeholder`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-read-only")
    var `Colon-moz-read-only`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-read-write")
    var `Colon-moz-read-write`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-ui-invalid")
    var `Colon-moz-ui-invalid`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-moz-ui-valid")
    var `Colon-moz-ui-valid`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-ms-fullscreen")
    var `Colon-ms-fullscreen`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-ms-input-placeholder")
    var `Colon-ms-input-placeholder`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-webkit-any-link")
    var `Colon-webkit-any-link`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-webkit-any()")
    var `Colon-webkit-anyLeftparenthesisRightparenthesis`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":-webkit-full-screen")
    var `Colon-webkit-full-screen`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-moz-placeholder")
    var `ColonColon-moz-placeholder`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-moz-progress-bar")
    var `ColonColon-moz-progress-bar`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-moz-range-progress")
    var `ColonColon-moz-range-progress`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-moz-range-thumb")
    var `ColonColon-moz-range-thumb`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-moz-range-track")
    var `ColonColon-moz-range-track`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-moz-selection")
    var `ColonColon-moz-selection`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-backdrop")
    var `ColonColon-ms-backdrop`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-browse")
    var `ColonColon-ms-browse`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-check")
    var `ColonColon-ms-check`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-clear")
    var `ColonColon-ms-clear`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-fill")
    var `ColonColon-ms-fill`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-fill-lower")
    var `ColonColon-ms-fill-lower`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-fill-upper")
    var `ColonColon-ms-fill-upper`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-input-placeholder")
    var `ColonColon-ms-input-placeholder`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-reveal")
    var `ColonColon-ms-reveal`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-thumb")
    var `ColonColon-ms-thumb`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-ticks-after")
    var `ColonColon-ms-ticks-after`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-ticks-before")
    var `ColonColon-ms-ticks-before`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-tooltip")
    var `ColonColon-ms-tooltip`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-track")
    var `ColonColon-ms-track`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-ms-value")
    var `ColonColon-ms-value`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-webkit-backdrop")
    var `ColonColon-webkit-backdrop`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-webkit-input-placeholder")
    var `ColonColon-webkit-input-placeholder`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-webkit-progress-bar")
    var `ColonColon-webkit-progress-bar`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-webkit-progress-inner-value")
    var `ColonColon-webkit-progress-inner-value`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-webkit-progress-value")
    var `ColonColon-webkit-progress-value`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-webkit-slider-runnable-track")
    var `ColonColon-webkit-slider-runnable-track`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::-webkit-slider-thumb")
    var `ColonColon-webkit-slider-thumb`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::after")
    var ColonColonafter: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::backdrop")
    var ColonColonbackdrop: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::before")
    var ColonColonbefore: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::cue")
    var ColonColoncue: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::cue-region")
    var `ColonColoncue-region`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::first-letter")
    var `ColonColonfirst-letter`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::first-line")
    var `ColonColonfirst-line`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::grammar-error")
    var `ColonColongrammar-error`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::marker")
    var ColonColonmarker: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::part")
    var ColonColonpart: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::placeholder")
    var ColonColonplaceholder: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::selection")
    var ColonColonselection: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::slotted")
    var ColonColonslotted: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::spelling-error")
    var `ColonColonspelling-error`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName("::target-text")
    var `ColonColontarget-text`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":active")
    var Colonactive: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":after")
    var Colonafter: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":any-link")
    var `Colonany-link`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":before")
    var Colonbefore: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":blank")
    var Colonblank: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":checked")
    var Colonchecked: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":current")
    var Coloncurrent: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":default")
    var Colondefault: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":defined")
    var Colondefined: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":dir")
    var Colondir: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":disabled")
    var Colondisabled: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":empty")
    var Colonempty: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":enabled")
    var Colonenabled: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":first")
    var Colonfirst: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":first-child")
    var `Colonfirst-child`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":first-letter")
    var `Colonfirst-letter`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":first-line")
    var `Colonfirst-line`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":first-of-type")
    var `Colonfirst-of-type`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":focus")
    var Colonfocus: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":focus-visible")
    var `Colonfocus-visible`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":focus-within")
    var `Colonfocus-within`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":fullscreen")
    var Colonfullscreen: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":future")
    var Colonfuture: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":has")
    var Colonhas: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":host")
    var Colonhost: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":host-context")
    var `Colonhost-context`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":hover")
    var Colonhover: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":in-range")
    var `Colonin-range`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":indeterminate")
    var Colonindeterminate: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":invalid")
    var Coloninvalid: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":is")
    var Colonis: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":lang")
    var Colonlang: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":last-child")
    var `Colonlast-child`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":last-of-type")
    var `Colonlast-of-type`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":left")
    var Colonleft: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":link")
    var Colonlink: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":local-link")
    var `Colonlocal-link`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":matches()")
    var ColonmatchesLeftparenthesisRightparenthesis: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":not")
    var Colonnot: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":nth-child")
    var `Colonnth-child`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":nth-col")
    var `Colonnth-col`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":nth-last-child")
    var `Colonnth-last-child`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":nth-last-col")
    var `Colonnth-last-col`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":nth-last-of-type")
    var `Colonnth-last-of-type`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":nth-of-type")
    var `Colonnth-of-type`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":only-child")
    var `Colononly-child`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":only-of-type")
    var `Colononly-of-type`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":optional")
    var Colonoptional: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":out-of-range")
    var `Colonout-of-range`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":past")
    var Colonpast: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":paused")
    var Colonpaused: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":picture-in-picture")
    var `Colonpicture-in-picture`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":placeholder-shown")
    var `Colonplaceholder-shown`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":read-only")
    var `Colonread-only`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":read-write")
    var `Colonread-write`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":required")
    var Colonrequired: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":right")
    var Colonright: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":root")
    var Colonroot: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":scope")
    var Colonscope: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":target")
    var Colontarget: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":target-within")
    var `Colontarget-within`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":user-invalid")
    var `Colonuser-invalid`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":user-valid")
    var `Colonuser-valid`: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":valid")
    var Colonvalid: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":visited")
    var Colonvisited: js.UndefOr[CSSObject] = js.undefined
    
    @JSName(":where")
    var Colonwhere: js.UndefOr[CSSObject] = js.undefined
  }
  object CSSPseudos {
    
    inline def apply(): CSSPseudos = {
      val __obj = js.Dynamic.literal()
      __obj.asInstanceOf[CSSPseudos]
    }
    
    @scala.inline
    implicit open class MutableBuilder[Self <: CSSPseudos] (val x: Self) extends AnyVal {
      
      inline def `setColon-khtml-any-link`(value: CSSObject): Self = StObject.set(x, ":-khtml-any-link", value.asInstanceOf[js.Any])
      
      inline def `setColon-khtml-any-linkUndefined`: Self = StObject.set(x, ":-khtml-any-link", js.undefined)
      
      inline def `setColon-moz-any-link`(value: CSSObject): Self = StObject.set(x, ":-moz-any-link", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-any-linkUndefined`: Self = StObject.set(x, ":-moz-any-link", js.undefined)
      
      inline def `setColon-moz-anyLeftparenthesisRightparenthesis`(value: CSSObject): Self = StObject.set(x, ":-moz-any()", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-anyLeftparenthesisRightparenthesisUndefined`: Self = StObject.set(x, ":-moz-any()", js.undefined)
      
      inline def `setColon-moz-dir`(value: CSSObject): Self = StObject.set(x, ":-moz-dir", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-dirUndefined`: Self = StObject.set(x, ":-moz-dir", js.undefined)
      
      inline def `setColon-moz-focusring`(value: CSSObject): Self = StObject.set(x, ":-moz-focusring", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-focusringUndefined`: Self = StObject.set(x, ":-moz-focusring", js.undefined)
      
      inline def `setColon-moz-full-screen`(value: CSSObject): Self = StObject.set(x, ":-moz-full-screen", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-full-screenUndefined`: Self = StObject.set(x, ":-moz-full-screen", js.undefined)
      
      inline def `setColon-moz-placeholder`(value: CSSObject): Self = StObject.set(x, ":-moz-placeholder", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-placeholderUndefined`: Self = StObject.set(x, ":-moz-placeholder", js.undefined)
      
      inline def `setColon-moz-read-only`(value: CSSObject): Self = StObject.set(x, ":-moz-read-only", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-read-onlyUndefined`: Self = StObject.set(x, ":-moz-read-only", js.undefined)
      
      inline def `setColon-moz-read-write`(value: CSSObject): Self = StObject.set(x, ":-moz-read-write", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-read-writeUndefined`: Self = StObject.set(x, ":-moz-read-write", js.undefined)
      
      inline def `setColon-moz-ui-invalid`(value: CSSObject): Self = StObject.set(x, ":-moz-ui-invalid", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-ui-invalidUndefined`: Self = StObject.set(x, ":-moz-ui-invalid", js.undefined)
      
      inline def `setColon-moz-ui-valid`(value: CSSObject): Self = StObject.set(x, ":-moz-ui-valid", value.asInstanceOf[js.Any])
      
      inline def `setColon-moz-ui-validUndefined`: Self = StObject.set(x, ":-moz-ui-valid", js.undefined)
      
      inline def `setColon-ms-fullscreen`(value: CSSObject): Self = StObject.set(x, ":-ms-fullscreen", value.asInstanceOf[js.Any])
      
      inline def `setColon-ms-fullscreenUndefined`: Self = StObject.set(x, ":-ms-fullscreen", js.undefined)
      
      inline def `setColon-ms-input-placeholder`(value: CSSObject): Self = StObject.set(x, ":-ms-input-placeholder", value.asInstanceOf[js.Any])
      
      inline def `setColon-ms-input-placeholderUndefined`: Self = StObject.set(x, ":-ms-input-placeholder", js.undefined)
      
      inline def `setColon-webkit-any-link`(value: CSSObject): Self = StObject.set(x, ":-webkit-any-link", value.asInstanceOf[js.Any])
      
      inline def `setColon-webkit-any-linkUndefined`: Self = StObject.set(x, ":-webkit-any-link", js.undefined)
      
      inline def `setColon-webkit-anyLeftparenthesisRightparenthesis`(value: CSSObject): Self = StObject.set(x, ":-webkit-any()", value.asInstanceOf[js.Any])
      
      inline def `setColon-webkit-anyLeftparenthesisRightparenthesisUndefined`: Self = StObject.set(x, ":-webkit-any()", js.undefined)
      
      inline def `setColon-webkit-full-screen`(value: CSSObject): Self = StObject.set(x, ":-webkit-full-screen", value.asInstanceOf[js.Any])
      
      inline def `setColon-webkit-full-screenUndefined`: Self = StObject.set(x, ":-webkit-full-screen", js.undefined)
      
      inline def `setColonColon-moz-placeholder`(value: CSSObject): Self = StObject.set(x, "::-moz-placeholder", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-moz-placeholderUndefined`: Self = StObject.set(x, "::-moz-placeholder", js.undefined)
      
      inline def `setColonColon-moz-progress-bar`(value: CSSObject): Self = StObject.set(x, "::-moz-progress-bar", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-moz-progress-barUndefined`: Self = StObject.set(x, "::-moz-progress-bar", js.undefined)
      
      inline def `setColonColon-moz-range-progress`(value: CSSObject): Self = StObject.set(x, "::-moz-range-progress", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-moz-range-progressUndefined`: Self = StObject.set(x, "::-moz-range-progress", js.undefined)
      
      inline def `setColonColon-moz-range-thumb`(value: CSSObject): Self = StObject.set(x, "::-moz-range-thumb", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-moz-range-thumbUndefined`: Self = StObject.set(x, "::-moz-range-thumb", js.undefined)
      
      inline def `setColonColon-moz-range-track`(value: CSSObject): Self = StObject.set(x, "::-moz-range-track", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-moz-range-trackUndefined`: Self = StObject.set(x, "::-moz-range-track", js.undefined)
      
      inline def `setColonColon-moz-selection`(value: CSSObject): Self = StObject.set(x, "::-moz-selection", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-moz-selectionUndefined`: Self = StObject.set(x, "::-moz-selection", js.undefined)
      
      inline def `setColonColon-ms-backdrop`(value: CSSObject): Self = StObject.set(x, "::-ms-backdrop", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-backdropUndefined`: Self = StObject.set(x, "::-ms-backdrop", js.undefined)
      
      inline def `setColonColon-ms-browse`(value: CSSObject): Self = StObject.set(x, "::-ms-browse", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-browseUndefined`: Self = StObject.set(x, "::-ms-browse", js.undefined)
      
      inline def `setColonColon-ms-check`(value: CSSObject): Self = StObject.set(x, "::-ms-check", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-checkUndefined`: Self = StObject.set(x, "::-ms-check", js.undefined)
      
      inline def `setColonColon-ms-clear`(value: CSSObject): Self = StObject.set(x, "::-ms-clear", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-clearUndefined`: Self = StObject.set(x, "::-ms-clear", js.undefined)
      
      inline def `setColonColon-ms-fill`(value: CSSObject): Self = StObject.set(x, "::-ms-fill", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-fill-lower`(value: CSSObject): Self = StObject.set(x, "::-ms-fill-lower", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-fill-lowerUndefined`: Self = StObject.set(x, "::-ms-fill-lower", js.undefined)
      
      inline def `setColonColon-ms-fill-upper`(value: CSSObject): Self = StObject.set(x, "::-ms-fill-upper", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-fill-upperUndefined`: Self = StObject.set(x, "::-ms-fill-upper", js.undefined)
      
      inline def `setColonColon-ms-fillUndefined`: Self = StObject.set(x, "::-ms-fill", js.undefined)
      
      inline def `setColonColon-ms-input-placeholder`(value: CSSObject): Self = StObject.set(x, "::-ms-input-placeholder", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-input-placeholderUndefined`: Self = StObject.set(x, "::-ms-input-placeholder", js.undefined)
      
      inline def `setColonColon-ms-reveal`(value: CSSObject): Self = StObject.set(x, "::-ms-reveal", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-revealUndefined`: Self = StObject.set(x, "::-ms-reveal", js.undefined)
      
      inline def `setColonColon-ms-thumb`(value: CSSObject): Self = StObject.set(x, "::-ms-thumb", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-thumbUndefined`: Self = StObject.set(x, "::-ms-thumb", js.undefined)
      
      inline def `setColonColon-ms-ticks-after`(value: CSSObject): Self = StObject.set(x, "::-ms-ticks-after", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-ticks-afterUndefined`: Self = StObject.set(x, "::-ms-ticks-after", js.undefined)
      
      inline def `setColonColon-ms-ticks-before`(value: CSSObject): Self = StObject.set(x, "::-ms-ticks-before", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-ticks-beforeUndefined`: Self = StObject.set(x, "::-ms-ticks-before", js.undefined)
      
      inline def `setColonColon-ms-tooltip`(value: CSSObject): Self = StObject.set(x, "::-ms-tooltip", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-tooltipUndefined`: Self = StObject.set(x, "::-ms-tooltip", js.undefined)
      
      inline def `setColonColon-ms-track`(value: CSSObject): Self = StObject.set(x, "::-ms-track", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-trackUndefined`: Self = StObject.set(x, "::-ms-track", js.undefined)
      
      inline def `setColonColon-ms-value`(value: CSSObject): Self = StObject.set(x, "::-ms-value", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-ms-valueUndefined`: Self = StObject.set(x, "::-ms-value", js.undefined)
      
      inline def `setColonColon-webkit-backdrop`(value: CSSObject): Self = StObject.set(x, "::-webkit-backdrop", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-webkit-backdropUndefined`: Self = StObject.set(x, "::-webkit-backdrop", js.undefined)
      
      inline def `setColonColon-webkit-input-placeholder`(value: CSSObject): Self = StObject.set(x, "::-webkit-input-placeholder", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-webkit-input-placeholderUndefined`: Self = StObject.set(x, "::-webkit-input-placeholder", js.undefined)
      
      inline def `setColonColon-webkit-progress-bar`(value: CSSObject): Self = StObject.set(x, "::-webkit-progress-bar", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-webkit-progress-barUndefined`: Self = StObject.set(x, "::-webkit-progress-bar", js.undefined)
      
      inline def `setColonColon-webkit-progress-inner-value`(value: CSSObject): Self = StObject.set(x, "::-webkit-progress-inner-value", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-webkit-progress-inner-valueUndefined`: Self = StObject.set(x, "::-webkit-progress-inner-value", js.undefined)
      
      inline def `setColonColon-webkit-progress-value`(value: CSSObject): Self = StObject.set(x, "::-webkit-progress-value", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-webkit-progress-valueUndefined`: Self = StObject.set(x, "::-webkit-progress-value", js.undefined)
      
      inline def `setColonColon-webkit-slider-runnable-track`(value: CSSObject): Self = StObject.set(x, "::-webkit-slider-runnable-track", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-webkit-slider-runnable-trackUndefined`: Self = StObject.set(x, "::-webkit-slider-runnable-track", js.undefined)
      
      inline def `setColonColon-webkit-slider-thumb`(value: CSSObject): Self = StObject.set(x, "::-webkit-slider-thumb", value.asInstanceOf[js.Any])
      
      inline def `setColonColon-webkit-slider-thumbUndefined`: Self = StObject.set(x, "::-webkit-slider-thumb", js.undefined)
      
      inline def setColonColonafter(value: CSSObject): Self = StObject.set(x, "::after", value.asInstanceOf[js.Any])
      
      inline def setColonColonafterUndefined: Self = StObject.set(x, "::after", js.undefined)
      
      inline def setColonColonbackdrop(value: CSSObject): Self = StObject.set(x, "::backdrop", value.asInstanceOf[js.Any])
      
      inline def setColonColonbackdropUndefined: Self = StObject.set(x, "::backdrop", js.undefined)
      
      inline def setColonColonbefore(value: CSSObject): Self = StObject.set(x, "::before", value.asInstanceOf[js.Any])
      
      inline def setColonColonbeforeUndefined: Self = StObject.set(x, "::before", js.undefined)
      
      inline def setColonColoncue(value: CSSObject): Self = StObject.set(x, "::cue", value.asInstanceOf[js.Any])
      
      inline def `setColonColoncue-region`(value: CSSObject): Self = StObject.set(x, "::cue-region", value.asInstanceOf[js.Any])
      
      inline def `setColonColoncue-regionUndefined`: Self = StObject.set(x, "::cue-region", js.undefined)
      
      inline def setColonColoncueUndefined: Self = StObject.set(x, "::cue", js.undefined)
      
      inline def `setColonColonfirst-letter`(value: CSSObject): Self = StObject.set(x, "::first-letter", value.asInstanceOf[js.Any])
      
      inline def `setColonColonfirst-letterUndefined`: Self = StObject.set(x, "::first-letter", js.undefined)
      
      inline def `setColonColonfirst-line`(value: CSSObject): Self = StObject.set(x, "::first-line", value.asInstanceOf[js.Any])
      
      inline def `setColonColonfirst-lineUndefined`: Self = StObject.set(x, "::first-line", js.undefined)
      
      inline def `setColonColongrammar-error`(value: CSSObject): Self = StObject.set(x, "::grammar-error", value.asInstanceOf[js.Any])
      
      inline def `setColonColongrammar-errorUndefined`: Self = StObject.set(x, "::grammar-error", js.undefined)
      
      inline def setColonColonmarker(value: CSSObject): Self = StObject.set(x, "::marker", value.asInstanceOf[js.Any])
      
      inline def setColonColonmarkerUndefined: Self = StObject.set(x, "::marker", js.undefined)
      
      inline def setColonColonpart(value: CSSObject): Self = StObject.set(x, "::part", value.asInstanceOf[js.Any])
      
      inline def setColonColonpartUndefined: Self = StObject.set(x, "::part", js.undefined)
      
      inline def setColonColonplaceholder(value: CSSObject): Self = StObject.set(x, "::placeholder", value.asInstanceOf[js.Any])
      
      inline def setColonColonplaceholderUndefined: Self = StObject.set(x, "::placeholder", js.undefined)
      
      inline def setColonColonselection(value: CSSObject): Self = StObject.set(x, "::selection", value.asInstanceOf[js.Any])
      
      inline def setColonColonselectionUndefined: Self = StObject.set(x, "::selection", js.undefined)
      
      inline def setColonColonslotted(value: CSSObject): Self = StObject.set(x, "::slotted", value.asInstanceOf[js.Any])
      
      inline def setColonColonslottedUndefined: Self = StObject.set(x, "::slotted", js.undefined)
      
      inline def `setColonColonspelling-error`(value: CSSObject): Self = StObject.set(x, "::spelling-error", value.asInstanceOf[js.Any])
      
      inline def `setColonColonspelling-errorUndefined`: Self = StObject.set(x, "::spelling-error", js.undefined)
      
      inline def `setColonColontarget-text`(value: CSSObject): Self = StObject.set(x, "::target-text", value.asInstanceOf[js.Any])
      
      inline def `setColonColontarget-textUndefined`: Self = StObject.set(x, "::target-text", js.undefined)
      
      inline def setColonactive(value: CSSObject): Self = StObject.set(x, ":active", value.asInstanceOf[js.Any])
      
      inline def setColonactiveUndefined: Self = StObject.set(x, ":active", js.undefined)
      
      inline def setColonafter(value: CSSObject): Self = StObject.set(x, ":after", value.asInstanceOf[js.Any])
      
      inline def setColonafterUndefined: Self = StObject.set(x, ":after", js.undefined)
      
      inline def `setColonany-link`(value: CSSObject): Self = StObject.set(x, ":any-link", value.asInstanceOf[js.Any])
      
      inline def `setColonany-linkUndefined`: Self = StObject.set(x, ":any-link", js.undefined)
      
      inline def setColonbefore(value: CSSObject): Self = StObject.set(x, ":before", value.asInstanceOf[js.Any])
      
      inline def setColonbeforeUndefined: Self = StObject.set(x, ":before", js.undefined)
      
      inline def setColonblank(value: CSSObject): Self = StObject.set(x, ":blank", value.asInstanceOf[js.Any])
      
      inline def setColonblankUndefined: Self = StObject.set(x, ":blank", js.undefined)
      
      inline def setColonchecked(value: CSSObject): Self = StObject.set(x, ":checked", value.asInstanceOf[js.Any])
      
      inline def setColoncheckedUndefined: Self = StObject.set(x, ":checked", js.undefined)
      
      inline def setColoncurrent(value: CSSObject): Self = StObject.set(x, ":current", value.asInstanceOf[js.Any])
      
      inline def setColoncurrentUndefined: Self = StObject.set(x, ":current", js.undefined)
      
      inline def setColondefault(value: CSSObject): Self = StObject.set(x, ":default", value.asInstanceOf[js.Any])
      
      inline def setColondefaultUndefined: Self = StObject.set(x, ":default", js.undefined)
      
      inline def setColondefined(value: CSSObject): Self = StObject.set(x, ":defined", value.asInstanceOf[js.Any])
      
      inline def setColondefinedUndefined: Self = StObject.set(x, ":defined", js.undefined)
      
      inline def setColondir(value: CSSObject): Self = StObject.set(x, ":dir", value.asInstanceOf[js.Any])
      
      inline def setColondirUndefined: Self = StObject.set(x, ":dir", js.undefined)
      
      inline def setColondisabled(value: CSSObject): Self = StObject.set(x, ":disabled", value.asInstanceOf[js.Any])
      
      inline def setColondisabledUndefined: Self = StObject.set(x, ":disabled", js.undefined)
      
      inline def setColonempty(value: CSSObject): Self = StObject.set(x, ":empty", value.asInstanceOf[js.Any])
      
      inline def setColonemptyUndefined: Self = StObject.set(x, ":empty", js.undefined)
      
      inline def setColonenabled(value: CSSObject): Self = StObject.set(x, ":enabled", value.asInstanceOf[js.Any])
      
      inline def setColonenabledUndefined: Self = StObject.set(x, ":enabled", js.undefined)
      
      inline def setColonfirst(value: CSSObject): Self = StObject.set(x, ":first", value.asInstanceOf[js.Any])
      
      inline def `setColonfirst-child`(value: CSSObject): Self = StObject.set(x, ":first-child", value.asInstanceOf[js.Any])
      
      inline def `setColonfirst-childUndefined`: Self = StObject.set(x, ":first-child", js.undefined)
      
      inline def `setColonfirst-letter`(value: CSSObject): Self = StObject.set(x, ":first-letter", value.asInstanceOf[js.Any])
      
      inline def `setColonfirst-letterUndefined`: Self = StObject.set(x, ":first-letter", js.undefined)
      
      inline def `setColonfirst-line`(value: CSSObject): Self = StObject.set(x, ":first-line", value.asInstanceOf[js.Any])
      
      inline def `setColonfirst-lineUndefined`: Self = StObject.set(x, ":first-line", js.undefined)
      
      inline def `setColonfirst-of-type`(value: CSSObject): Self = StObject.set(x, ":first-of-type", value.asInstanceOf[js.Any])
      
      inline def `setColonfirst-of-typeUndefined`: Self = StObject.set(x, ":first-of-type", js.undefined)
      
      inline def setColonfirstUndefined: Self = StObject.set(x, ":first", js.undefined)
      
      inline def setColonfocus(value: CSSObject): Self = StObject.set(x, ":focus", value.asInstanceOf[js.Any])
      
      inline def `setColonfocus-visible`(value: CSSObject): Self = StObject.set(x, ":focus-visible", value.asInstanceOf[js.Any])
      
      inline def `setColonfocus-visibleUndefined`: Self = StObject.set(x, ":focus-visible", js.undefined)
      
      inline def `setColonfocus-within`(value: CSSObject): Self = StObject.set(x, ":focus-within", value.asInstanceOf[js.Any])
      
      inline def `setColonfocus-withinUndefined`: Self = StObject.set(x, ":focus-within", js.undefined)
      
      inline def setColonfocusUndefined: Self = StObject.set(x, ":focus", js.undefined)
      
      inline def setColonfullscreen(value: CSSObject): Self = StObject.set(x, ":fullscreen", value.asInstanceOf[js.Any])
      
      inline def setColonfullscreenUndefined: Self = StObject.set(x, ":fullscreen", js.undefined)
      
      inline def setColonfuture(value: CSSObject): Self = StObject.set(x, ":future", value.asInstanceOf[js.Any])
      
      inline def setColonfutureUndefined: Self = StObject.set(x, ":future", js.undefined)
      
      inline def setColonhas(value: CSSObject): Self = StObject.set(x, ":has", value.asInstanceOf[js.Any])
      
      inline def setColonhasUndefined: Self = StObject.set(x, ":has", js.undefined)
      
      inline def setColonhost(value: CSSObject): Self = StObject.set(x, ":host", value.asInstanceOf[js.Any])
      
      inline def `setColonhost-context`(value: CSSObject): Self = StObject.set(x, ":host-context", value.asInstanceOf[js.Any])
      
      inline def `setColonhost-contextUndefined`: Self = StObject.set(x, ":host-context", js.undefined)
      
      inline def setColonhostUndefined: Self = StObject.set(x, ":host", js.undefined)
      
      inline def setColonhover(value: CSSObject): Self = StObject.set(x, ":hover", value.asInstanceOf[js.Any])
      
      inline def setColonhoverUndefined: Self = StObject.set(x, ":hover", js.undefined)
      
      inline def `setColonin-range`(value: CSSObject): Self = StObject.set(x, ":in-range", value.asInstanceOf[js.Any])
      
      inline def `setColonin-rangeUndefined`: Self = StObject.set(x, ":in-range", js.undefined)
      
      inline def setColonindeterminate(value: CSSObject): Self = StObject.set(x, ":indeterminate", value.asInstanceOf[js.Any])
      
      inline def setColonindeterminateUndefined: Self = StObject.set(x, ":indeterminate", js.undefined)
      
      inline def setColoninvalid(value: CSSObject): Self = StObject.set(x, ":invalid", value.asInstanceOf[js.Any])
      
      inline def setColoninvalidUndefined: Self = StObject.set(x, ":invalid", js.undefined)
      
      inline def setColonis(value: CSSObject): Self = StObject.set(x, ":is", value.asInstanceOf[js.Any])
      
      inline def setColonisUndefined: Self = StObject.set(x, ":is", js.undefined)
      
      inline def setColonlang(value: CSSObject): Self = StObject.set(x, ":lang", value.asInstanceOf[js.Any])
      
      inline def setColonlangUndefined: Self = StObject.set(x, ":lang", js.undefined)
      
      inline def `setColonlast-child`(value: CSSObject): Self = StObject.set(x, ":last-child", value.asInstanceOf[js.Any])
      
      inline def `setColonlast-childUndefined`: Self = StObject.set(x, ":last-child", js.undefined)
      
      inline def `setColonlast-of-type`(value: CSSObject): Self = StObject.set(x, ":last-of-type", value.asInstanceOf[js.Any])
      
      inline def `setColonlast-of-typeUndefined`: Self = StObject.set(x, ":last-of-type", js.undefined)
      
      inline def setColonleft(value: CSSObject): Self = StObject.set(x, ":left", value.asInstanceOf[js.Any])
      
      inline def setColonleftUndefined: Self = StObject.set(x, ":left", js.undefined)
      
      inline def setColonlink(value: CSSObject): Self = StObject.set(x, ":link", value.asInstanceOf[js.Any])
      
      inline def setColonlinkUndefined: Self = StObject.set(x, ":link", js.undefined)
      
      inline def `setColonlocal-link`(value: CSSObject): Self = StObject.set(x, ":local-link", value.asInstanceOf[js.Any])
      
      inline def `setColonlocal-linkUndefined`: Self = StObject.set(x, ":local-link", js.undefined)
      
      inline def setColonmatchesLeftparenthesisRightparenthesis(value: CSSObject): Self = StObject.set(x, ":matches()", value.asInstanceOf[js.Any])
      
      inline def setColonmatchesLeftparenthesisRightparenthesisUndefined: Self = StObject.set(x, ":matches()", js.undefined)
      
      inline def setColonnot(value: CSSObject): Self = StObject.set(x, ":not", value.asInstanceOf[js.Any])
      
      inline def setColonnotUndefined: Self = StObject.set(x, ":not", js.undefined)
      
      inline def `setColonnth-child`(value: CSSObject): Self = StObject.set(x, ":nth-child", value.asInstanceOf[js.Any])
      
      inline def `setColonnth-childUndefined`: Self = StObject.set(x, ":nth-child", js.undefined)
      
      inline def `setColonnth-col`(value: CSSObject): Self = StObject.set(x, ":nth-col", value.asInstanceOf[js.Any])
      
      inline def `setColonnth-colUndefined`: Self = StObject.set(x, ":nth-col", js.undefined)
      
      inline def `setColonnth-last-child`(value: CSSObject): Self = StObject.set(x, ":nth-last-child", value.asInstanceOf[js.Any])
      
      inline def `setColonnth-last-childUndefined`: Self = StObject.set(x, ":nth-last-child", js.undefined)
      
      inline def `setColonnth-last-col`(value: CSSObject): Self = StObject.set(x, ":nth-last-col", value.asInstanceOf[js.Any])
      
      inline def `setColonnth-last-colUndefined`: Self = StObject.set(x, ":nth-last-col", js.undefined)
      
      inline def `setColonnth-last-of-type`(value: CSSObject): Self = StObject.set(x, ":nth-last-of-type", value.asInstanceOf[js.Any])
      
      inline def `setColonnth-last-of-typeUndefined`: Self = StObject.set(x, ":nth-last-of-type", js.undefined)
      
      inline def `setColonnth-of-type`(value: CSSObject): Self = StObject.set(x, ":nth-of-type", value.asInstanceOf[js.Any])
      
      inline def `setColonnth-of-typeUndefined`: Self = StObject.set(x, ":nth-of-type", js.undefined)
      
      inline def `setColononly-child`(value: CSSObject): Self = StObject.set(x, ":only-child", value.asInstanceOf[js.Any])
      
      inline def `setColononly-childUndefined`: Self = StObject.set(x, ":only-child", js.undefined)
      
      inline def `setColononly-of-type`(value: CSSObject): Self = StObject.set(x, ":only-of-type", value.asInstanceOf[js.Any])
      
      inline def `setColononly-of-typeUndefined`: Self = StObject.set(x, ":only-of-type", js.undefined)
      
      inline def setColonoptional(value: CSSObject): Self = StObject.set(x, ":optional", value.asInstanceOf[js.Any])
      
      inline def setColonoptionalUndefined: Self = StObject.set(x, ":optional", js.undefined)
      
      inline def `setColonout-of-range`(value: CSSObject): Self = StObject.set(x, ":out-of-range", value.asInstanceOf[js.Any])
      
      inline def `setColonout-of-rangeUndefined`: Self = StObject.set(x, ":out-of-range", js.undefined)
      
      inline def setColonpast(value: CSSObject): Self = StObject.set(x, ":past", value.asInstanceOf[js.Any])
      
      inline def setColonpastUndefined: Self = StObject.set(x, ":past", js.undefined)
      
      inline def setColonpaused(value: CSSObject): Self = StObject.set(x, ":paused", value.asInstanceOf[js.Any])
      
      inline def setColonpausedUndefined: Self = StObject.set(x, ":paused", js.undefined)
      
      inline def `setColonpicture-in-picture`(value: CSSObject): Self = StObject.set(x, ":picture-in-picture", value.asInstanceOf[js.Any])
      
      inline def `setColonpicture-in-pictureUndefined`: Self = StObject.set(x, ":picture-in-picture", js.undefined)
      
      inline def `setColonplaceholder-shown`(value: CSSObject): Self = StObject.set(x, ":placeholder-shown", value.asInstanceOf[js.Any])
      
      inline def `setColonplaceholder-shownUndefined`: Self = StObject.set(x, ":placeholder-shown", js.undefined)
      
      inline def `setColonread-only`(value: CSSObject): Self = StObject.set(x, ":read-only", value.asInstanceOf[js.Any])
      
      inline def `setColonread-onlyUndefined`: Self = StObject.set(x, ":read-only", js.undefined)
      
      inline def `setColonread-write`(value: CSSObject): Self = StObject.set(x, ":read-write", value.asInstanceOf[js.Any])
      
      inline def `setColonread-writeUndefined`: Self = StObject.set(x, ":read-write", js.undefined)
      
      inline def setColonrequired(value: CSSObject): Self = StObject.set(x, ":required", value.asInstanceOf[js.Any])
      
      inline def setColonrequiredUndefined: Self = StObject.set(x, ":required", js.undefined)
      
      inline def setColonright(value: CSSObject): Self = StObject.set(x, ":right", value.asInstanceOf[js.Any])
      
      inline def setColonrightUndefined: Self = StObject.set(x, ":right", js.undefined)
      
      inline def setColonroot(value: CSSObject): Self = StObject.set(x, ":root", value.asInstanceOf[js.Any])
      
      inline def setColonrootUndefined: Self = StObject.set(x, ":root", js.undefined)
      
      inline def setColonscope(value: CSSObject): Self = StObject.set(x, ":scope", value.asInstanceOf[js.Any])
      
      inline def setColonscopeUndefined: Self = StObject.set(x, ":scope", js.undefined)
      
      inline def setColontarget(value: CSSObject): Self = StObject.set(x, ":target", value.asInstanceOf[js.Any])
      
      inline def `setColontarget-within`(value: CSSObject): Self = StObject.set(x, ":target-within", value.asInstanceOf[js.Any])
      
      inline def `setColontarget-withinUndefined`: Self = StObject.set(x, ":target-within", js.undefined)
      
      inline def setColontargetUndefined: Self = StObject.set(x, ":target", js.undefined)
      
      inline def `setColonuser-invalid`(value: CSSObject): Self = StObject.set(x, ":user-invalid", value.asInstanceOf[js.Any])
      
      inline def `setColonuser-invalidUndefined`: Self = StObject.set(x, ":user-invalid", js.undefined)
      
      inline def `setColonuser-valid`(value: CSSObject): Self = StObject.set(x, ":user-valid", value.asInstanceOf[js.Any])
      
      inline def `setColonuser-validUndefined`: Self = StObject.set(x, ":user-valid", js.undefined)
      
      inline def setColonvalid(value: CSSObject): Self = StObject.set(x, ":valid", value.asInstanceOf[js.Any])
      
      inline def setColonvalidUndefined: Self = StObject.set(x, ":valid", js.undefined)
      
      inline def setColonvisited(value: CSSObject): Self = StObject.set(x, ":visited", value.asInstanceOf[js.Any])
      
      inline def setColonvisitedUndefined: Self = StObject.set(x, ":visited", js.undefined)
      
      inline def setColonwhere(value: CSSObject): Self = StObject.set(x, ":where", value.asInstanceOf[js.Any])
      
      inline def setColonwhereUndefined: Self = StObject.set(x, ":where", js.undefined)
    }
  }
  
  trait ComponentSelector extends StObject {
    
    var __emotion_styles: Any
  }
  object ComponentSelector {
    
    inline def apply(__emotion_styles: Any): ComponentSelector = {
      val __obj = js.Dynamic.literal(__emotion_styles = __emotion_styles.asInstanceOf[js.Any])
      __obj.asInstanceOf[ComponentSelector]
    }
    
    @scala.inline
    implicit open class MutableBuilder[Self <: ComponentSelector] (val x: Self) extends AnyVal {
      
      inline def set__emotion_styles(value: Any): Self = StObject.set(x, "__emotion_styles", value.asInstanceOf[js.Any])
    }
  }
  
  /** 
  NOTE: Rewritten from type alias:
  {{{
  type FunctionInterpolation = (props : Props): @emotion/serialize.@emotion/serialize.Interpolation
  }}}
  to avoid circular code involving: 
  - @emotion/serialize.@emotion/serialize.ArrayInterpolation
  - @emotion/serialize.@emotion/serialize.FunctionInterpolation
  - @emotion/serialize.@emotion/serialize.Interpolation
  */
  @js.native
  trait FunctionInterpolation[Props] extends StObject {
    
    def apply(props: Props): Interpolation[Props] = js.native
  }
  
  /** 
  NOTE: Rewritten from type alias:
  {{{
  type Interpolation = @emotion/serialize.@emotion/serialize.InterpolationPrimitive | @emotion/serialize.@emotion/serialize.ArrayInterpolation | @emotion/serialize.@emotion/serialize.FunctionInterpolation
  }}}
  to avoid circular code involving: 
  - @emotion/serialize.@emotion/serialize.ArrayInterpolation
  - @emotion/serialize.@emotion/serialize.Interpolation
  */
  type Interpolation[Props] = InterpolationPrimitive | Any | FunctionInterpolation[Props]
  
  type InterpolationPrimitive = js.UndefOr[
    Null | Boolean | Double | String | ComponentSelector | Keyframes | SerializedStyles | CSSObject
  ]
  
  @js.native
  trait Keyframes
    extends StObject
       with com.olvind.mui.std.String {
    
    var anim: Double = js.native
    
    var name: String = js.native
    
    var styles: String = js.native
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy