Authoring/TextEntryNode.Style.g.cs

Autogenerated partial class that defines style properties for a TextEntry UI node and maps them into a Goo.TextEntry record via WithStyles. It declares many optional style fields (colors, sizing, layout, text, background, filters, etc.) and resolves each into a style blob using ResolveStyleValue and BuildStyleTransform.

File Access
// <auto-generated by tools/StyleFacadeEmit from style-manifest.json; do not edit />
using Goo;
using Sandbox;
using Sandbox.Rendering;
using Sandbox.UI;

namespace Goo.Authoring;

public partial class TextEntryNode
{
	/// <summary>Main-axis direction for children: Row lays them left-to-right, Column top-to-bottom (engine default Column).</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public FlexDirection? FlexDirection { get; set; }
	/// <summary>Distributes children along the main axis (start, center, end, or the space-* spreads).</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public Justify? JustifyContent { get; set; }
	/// <summary>Aligns children on the cross axis, the axis perpendicular to FlexDirection.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public Align? AlignItems { get; set; }
	/// <summary>Box generation: Flex lays out children, None removes the panel from layout entirely.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public DisplayMode? Display { get; set; }
	/// <summary>Width of the box (Length: px, %, em, rem, ...).</summary>
	[Property, GooToken, Group( "Sizing" ), Order( 20 ), Range( 0f, float.MaxValue, true, false ), Editor( "goo-axis-lengths" ), Title( "Size" )] public GooLength? Width { get; set; }
	/// <summary>Height of the box.</summary>
	[Property, GooToken, Group( "Sizing" ), Order( 20 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? Height { get; set; }
	/// <summary>Inner space on all four edges, between the border and the content.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false )] public GooLength? Padding { get; set; }
	/// <summary>Inner space on the left edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false ), Editor( "goo-side-lengths" ), Title( "Padding Sides" )] public GooLength? PaddingLeft { get; set; }
	/// <summary>Inner space on the top edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? PaddingTop { get; set; }
	/// <summary>Inner space on the right edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? PaddingRight { get; set; }
	/// <summary>Inner space on the bottom edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? PaddingBottom { get; set; }
	/// <summary>Outer space on all four edges, between this box and its neighbors.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 )] public GooLength? Margin { get; set; }
	/// <summary>Outer space on the left edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Editor( "goo-side-lengths" ), Title( "Margin Sides" )] public GooLength? MarginLeft { get; set; }
	/// <summary>Outer space on the top edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Hide] public GooLength? MarginTop { get; set; }
	/// <summary>Outer space on the right edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Hide] public GooLength? MarginRight { get; set; }
	/// <summary>Outer space on the bottom edge.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Hide] public GooLength? MarginBottom { get; set; }
	/// <summary>Space between flex children on both axes (shorthand for RowGap and ColumnGap).</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false )] public GooLength? Gap { get; set; }
	/// <summary>Vertical space between flex rows.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? RowGap { get; set; }
	/// <summary>Horizontal space between flex columns.</summary>
	[Property, GooToken, Group( "Spacing" ), Order( 30 ), Range( 0f, float.MaxValue, true, false ), Editor( "goo-axis-lengths" ), Title( "Gap Axes" )] public GooLength? ColumnGap { get; set; }
	/// <summary>Fill color behind the content.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 )] public Color? BackgroundColor { get; set; }
	/// <summary>Rounds all four corners.</summary>
	[Property, GooToken, Group( "Border Radius" ), Order( 80 ), Range( 0f, float.MaxValue, true, false )] public GooLength? BorderRadius { get; set; }
	/// <summary>Rounds the top-left corner.</summary>
	[Property, GooToken, Group( "Border Radius" ), Order( 80 ), Range( 0f, float.MaxValue, true, false ), Editor( "goo-corner-lengths" ), Title( "Border Corners" )] public GooLength? BorderTopLeftRadius { get; set; }
	/// <summary>Rounds the top-right corner.</summary>
	[Property, GooToken, Group( "Border Radius" ), Order( 80 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? BorderTopRightRadius { get; set; }
	/// <summary>Rounds the bottom-right corner.</summary>
	[Property, GooToken, Group( "Border Radius" ), Order( 80 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? BorderBottomRightRadius { get; set; }
	/// <summary>Rounds the bottom-left corner.</summary>
	[Property, GooToken, Group( "Border Radius" ), Order( 80 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? BorderBottomLeftRadius { get; set; }
	/// <summary>Aligns wrapped flex lines on the cross axis when there is spare room; only bites once content wraps.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public Align? AlignContent { get; set; }
	/// <summary>Overrides the parent's AlignItems for this one child.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public Align? AlignSelf { get; set; }
	/// <summary>Locks the width-to-height ratio when only one dimension is constrained.</summary>
	[Property, GooToken, Group( "Sizing" ), Order( 20 ), Editor( "goo-float" ), Range( 0.01f, float.MaxValue, true, false ), Step( 0.01f )] public float? AspectRatio { get; set; }
	/// <summary>Blur applied to whatever shows through behind the element (frosted-glass effect).</summary>
	[Property, GooToken, Group( "Backdrop Filter", StartFolded = true ), Order( 160 ), Range( 0f, float.MaxValue, true, false )] public GooLength? BackdropFilterBlur { get; set; }
	/// <summary>Brightness multiplier on the backdrop; 1 unchanged.</summary>
	[Property, GooToken, Group( "Backdrop Filter", StartFolded = true ), Order( 160 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.05f )] public float? BackdropFilterBrightness { get; set; }
	/// <summary>Contrast multiplier on the backdrop; 1 unchanged.</summary>
	[Property, GooToken, Group( "Backdrop Filter", StartFolded = true ), Order( 160 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.05f )] public float? BackdropFilterContrast { get; set; }
	/// <summary>Hue rotation on the backdrop.</summary>
	[Property, GooToken, Group( "Backdrop Filter", StartFolded = true ), Order( 160 ), Editor( "goo-float" ), Title( "Hue Rotate" ), Step( 0.01f )] public float? BackdropFilterHueRotate { get; set; }
	/// <summary>Inversion amount on the backdrop.</summary>
	[Property, GooToken, Group( "Backdrop Filter", StartFolded = true ), Order( 160 ), Editor( "goo-float" ), Range( 0f, 1f, true, true ), Step( 0.01f )] public float? BackdropFilterInvert { get; set; }
	/// <summary>Saturation multiplier on the backdrop; 1 unchanged.</summary>
	[Property, GooToken, Group( "Backdrop Filter", StartFolded = true ), Order( 160 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.05f )] public float? BackdropFilterSaturate { get; set; }
	/// <summary>Sepia amount on the backdrop.</summary>
	[Property, GooToken, Group( "Backdrop Filter", StartFolded = true ), Order( 160 ), Editor( "goo-float" ), Range( 0f, 1f, true, true ), Step( 0.01f )] public float? BackdropFilterSepia { get; set; }
	/// <summary>Angle in radians for a background gradient.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), Editor( "goo-float" ), Title( "Background Angle (Radians)" ), Step( 0.01f ), HideIf( nameof( BackgroundImage ), null )] public float? BackgroundAngle { get; set; }
	/// <summary>Blend mode between stacked background layers (CSS background-blend-mode keyword).</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), Editor( "goo-blend-mode" ), HideIf( nameof( BackgroundImage ), null )] public string BackgroundBlendMode { get; set; }
	/// <summary>Texture drawn as the background.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 )] public Texture BackgroundImage { get; set; }
	/// <summary>Pauses playback of an animated or video background texture.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), HideIf( nameof( BackgroundImage ), null )] public bool? BackgroundPlaybackPaused { get; set; }
	/// <summary>Horizontal offset of the background image.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), HideIf( nameof( BackgroundImage ), null ), Editor( "goo-axis-lengths" ), Title( "Background Position" )] public GooLength? BackgroundPositionX { get; set; }
	/// <summary>Vertical offset of the background image.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), HideIf( nameof( BackgroundImage ), null ), Hide] public GooLength? BackgroundPositionY { get; set; }
	/// <summary>How the background image tiles (repeat, repeat-x/y, no-repeat, clamp).</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), Editor( "goo-nullable-enum" ), HideIf( nameof( BackgroundImage ), null )] public BackgroundRepeat? BackgroundRepeat { get; set; }
	/// <summary>Rendered width of the background image.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( BackgroundImage ), null ), Editor( "goo-axis-lengths" ), Title( "Background Size" )] public GooLength? BackgroundSizeX { get; set; }
	/// <summary>Rendered height of the background image.</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( BackgroundImage ), null ), Hide] public GooLength? BackgroundSizeY { get; set; }
	/// <summary>Multiplies the background image color; default white (no tint).</summary>
	[Property, GooToken, Group( "Background" ), Order( 60 ), HideIf( nameof( BackgroundImage ), null )] public Color? BackgroundTint { get; set; }
	/// <summary>Color of the bottom border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Hide] public Color? BorderBottomColor { get; set; }
	/// <summary>Color of all four borders.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 )] public Color? BorderColor { get; set; }
	/// <summary>Color of the left border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Editor( "goo-side-colors" ), Title( "Border Color Sides" )] public Color? BorderLeftColor { get; set; }
	/// <summary>Color of the right border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Hide] public Color? BorderRightColor { get; set; }
	/// <summary>Color of the top border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Hide] public Color? BorderTopColor { get; set; }
	/// <summary>Whether the center slice of the border image fills the box (Unfilled or Filled).</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 ), Editor( "goo-nullable-enum" ), HideIf( nameof( BorderImageSource ), null )] public BorderImageFill? BorderImageFill { get; set; }
	/// <summary>How the edge slices of the border image repeat (Stretch or Round).</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 ), Editor( "goo-nullable-enum" ), HideIf( nameof( BorderImageSource ), null )] public BorderImageRepeat? BorderImageRepeat { get; set; }
	/// <summary>Texture sliced into a nine-patch to form the border.</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 )] public Texture BorderImageSource { get; set; }
	/// <summary>Tint multiplied onto the border image.</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 ), HideIf( nameof( BorderImageSource ), null )] public Color? BorderImageTint { get; set; }
	/// <summary>Width of the border-image slice on the bottom edge.</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( BorderImageSource ), null ), Hide] public GooLength? BorderImageWidthBottom { get; set; }
	/// <summary>Width of the border-image slice on the left edge.</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( BorderImageSource ), null ), Editor( "goo-side-lengths" ), Title( "Border Image Width Sides" )] public GooLength? BorderImageWidthLeft { get; set; }
	/// <summary>Width of the border-image slice on the right edge.</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( BorderImageSource ), null ), Hide] public GooLength? BorderImageWidthRight { get; set; }
	/// <summary>Width of the border-image slice on the top edge.</summary>
	[Property, GooToken, Group( "Border Image", StartFolded = true ), Order( 180 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( BorderImageSource ), null ), Hide] public GooLength? BorderImageWidthTop { get; set; }
	/// <summary>Thickness of the bottom border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? BorderBottomWidth { get; set; }
	/// <summary>Thickness of the left border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Range( 0f, float.MaxValue, true, false ), Editor( "goo-side-lengths" ), Title( "Border Width Sides" )] public GooLength? BorderLeftWidth { get; set; }
	/// <summary>Thickness of the right border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? BorderRightWidth { get; set; }
	/// <summary>Thickness of the top border.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? BorderTopWidth { get; set; }
	/// <summary>Thickness of all four borders.</summary>
	[Property, GooToken, Group( "Border" ), Order( 70 ), Range( 0f, float.MaxValue, true, false )] public GooLength? BorderWidth { get; set; }
	/// <summary>Bottom-edge offset; applied only when Position is Relative or Absolute.</summary>
	[Property, GooToken, Group( "Position Offsets" ), Order( 40 ), Hide] public GooLength? Bottom { get; set; }
	/// <summary>Drop shadow behind the panel: a single Shadow (offset, blur, spread, color).</summary>
	[Property, GooToken, Group( "Effects", StartFolded = true ), Order( 120 )] public GooShadow? BoxShadow { get; set; }
	/// <summary>Left-edge offset; applied only when Position is Relative or Absolute.</summary>
	[Property, GooToken, Group( "Position Offsets" ), Order( 40 ), Editor( "goo-side-lengths" ), Title( "Position Offsets" )] public GooLength? Left { get; set; }
	/// <summary>Right-edge offset; applied only when Position is Relative or Absolute.</summary>
	[Property, GooToken, Group( "Position Offsets" ), Order( 40 ), Hide] public GooLength? Right { get; set; }
	/// <summary>Top-edge offset; applied only when Position is Relative or Absolute.</summary>
	[Property, GooToken, Group( "Position Offsets" ), Order( 40 ), Hide] public GooLength? Top { get; set; }
	/// <summary>Color of the text-input caret.</summary>
	[Property, GooToken, Group( "Effects", StartFolded = true ), Order( 120 )] public Color? CaretColor { get; set; }
	/// <summary>Mouse cursor shown on hover (CSS cursor keyword).</summary>
	[Property, GooToken, Group( "Misc", StartFolded = true ), Order( 200 ), Editor( "goo-cursor" )] public string Cursor { get; set; }
	/// <summary>Gaussian blur applied to the element.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Range( 0f, float.MaxValue, true, false )] public GooLength? FilterBlur { get; set; }
	/// <summary>Color of the filter-pass border.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 )] public Color? FilterBorderColor { get; set; }
	/// <summary>Width of the border drawn by the filter pass.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Range( 0f, float.MaxValue, true, false )] public GooLength? FilterBorderWidth { get; set; }
	/// <summary>Brightness multiplier; 1 leaves it unchanged.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.05f )] public float? FilterBrightness { get; set; }
	/// <summary>Contrast multiplier; 1 leaves it unchanged.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.05f )] public float? FilterContrast { get; set; }
	/// <summary>Hue rotation angle.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Editor( "goo-float" ), Title( "Hue Rotate" ), Step( 0.01f )] public float? FilterHueRotate { get; set; }
	/// <summary>Color inversion amount; 0 none, 1 full.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Editor( "goo-float" ), Range( 0f, 1f, true, true ), Step( 0.01f )] public float? FilterInvert { get; set; }
	/// <summary>Saturation multiplier; 1 unchanged, 0 grayscale.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.05f )] public float? FilterSaturate { get; set; }
	/// <summary>Sepia amount; 0 none, 1 full.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 ), Editor( "goo-float" ), Range( 0f, 1f, true, true ), Step( 0.01f )] public float? FilterSepia { get; set; }
	/// <summary>Tint color multiplied over the element; default white.</summary>
	[Property, GooToken, Group( "Filter", StartFolded = true ), Order( 150 )] public Color? FilterTint { get; set; }
	/// <summary>Initial main-axis size of a flex child before grow and shrink are applied.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Range( 0f, float.MaxValue, true, false )] public GooLength? FlexBasis { get; set; }
	/// <summary>Share of leftover main-axis space this child claims; 0 (default) means do not grow.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.1f )] public float? FlexGrow { get; set; }
	/// <summary>How readily this child shrinks when space is tight; 0 pins it to its basis.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-float" ), Range( 0f, float.MaxValue, true, false ), Step( 0.1f )] public float? FlexShrink { get; set; }
	/// <summary>Whether children wrap onto multiple lines when they overflow the main axis.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public Wrap? FlexWrap { get; set; }
	/// <summary>Text color (s&amp;box uses font-color, not the CSS color property).</summary>
	[Property, GooToken, Group( "Font" ), Order( 90 )] public Color? FontColor { get; set; }
	/// <summary>Font face name.</summary>
	[Property, GooToken, Group( "Font" ), Order( 90 ), FontName] public string FontFamily { get; set; }
	/// <summary>Text size.</summary>
	[Property, GooToken, Group( "Font" ), Order( 90 ), Range( 0f, float.MaxValue, true, false )] public GooLength? FontSize { get; set; }
	/// <summary>Text antialiasing hint (Auto, Never, Always).</summary>
	[Property, GooToken, Group( "Font" ), Order( 90 ), Editor( "goo-nullable-enum" )] public FontSmooth? FontSmooth { get; set; }
	/// <summary>Italic or oblique styling.</summary>
	[Property, GooToken, Group( "Font" ), Order( 90 ), Editor( "goo-nullable-enum" )] public FontStyle? FontStyle { get; set; }
	/// <summary>Numeric glyph variant, e.g. TabularNums for fixed-width digits.</summary>
	[Property, GooToken, Group( "Font" ), Order( 90 ), Editor( "goo-nullable-enum" )] public FontVariantNumeric? FontVariantNumeric { get; set; }
	/// <summary>Boldness from 100 to 900 (400 normal, 700 bold).</summary>
	[Property, GooToken, Group( "Font" ), Order( 90 ), Editor( "goo-font-weight" )] public int? FontWeight { get; set; }
	/// <summary>Texture sampling for scaled images (Point, Bilinear, Trilinear, Anisotropic).</summary>
	[Property, GooToken, Group( "Effects", StartFolded = true ), Order( 120 ), Editor( "goo-nullable-enum" )] public ImageRendering? ImageRendering { get; set; }
	/// <summary>Extra space between characters.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public GooLength? LetterSpacing { get; set; }
	/// <summary>Height of each line of text (default 100%).</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Range( 0f, float.MaxValue, true, false )] public GooLength? LineHeight { get; set; }
	/// <summary>Angle in radians for a gradient mask.</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), Editor( "goo-float" ), Title( "Mask Angle (Radians)" ), Step( 0.01f ), HideIf( nameof( MaskImage ), null )] public float? MaskAngle { get; set; }
	/// <summary>Texture whose alpha or luminance masks the element.</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 )] public Texture MaskImage { get; set; }
	/// <summary>Whether the mask reads alpha or luminance (MatchSource, Alpha, Luminance).</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), Editor( "goo-nullable-enum" ), HideIf( nameof( MaskImage ), null )] public MaskMode? MaskMode { get; set; }
	/// <summary>Horizontal offset of the mask image.</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), HideIf( nameof( MaskImage ), null ), Editor( "goo-axis-lengths" ), Title( "Mask Position" )] public GooLength? MaskPositionX { get; set; }
	/// <summary>Vertical offset of the mask image.</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), HideIf( nameof( MaskImage ), null ), Hide] public GooLength? MaskPositionY { get; set; }
	/// <summary>How the mask image tiles (reuses the BackgroundRepeat values).</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), Editor( "goo-nullable-enum" ), HideIf( nameof( MaskImage ), null )] public BackgroundRepeat? MaskRepeat { get; set; }
	/// <summary>Whether the mask applies to the element or to its filter pass (Default, Filter).</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), Editor( "goo-nullable-enum" ), HideIf( nameof( MaskImage ), null )] public MaskScope? MaskScope { get; set; }
	/// <summary>Rendered width of the mask image.</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( MaskImage ), null ), Editor( "goo-axis-lengths" ), Title( "Mask Size" )] public GooLength? MaskSizeX { get; set; }
	/// <summary>Rendered height of the mask image.</summary>
	[Property, GooToken, Group( "Mask", StartFolded = true ), Order( 170 ), Range( 0f, float.MaxValue, true, false ), HideIf( nameof( MaskImage ), null ), Hide] public GooLength? MaskSizeY { get; set; }
	/// <summary>Upper bound on height.</summary>
	[Property, GooToken, Group( "Sizing" ), Order( 20 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? MaxHeight { get; set; }
	/// <summary>Upper bound on width; the box never grows past it.</summary>
	[Property, GooToken, Group( "Sizing" ), Order( 20 ), Range( 0f, float.MaxValue, true, false ), Editor( "goo-axis-lengths" ), Title( "Maximum Size" )] public GooLength? MaxWidth { get; set; }
	/// <summary>Lower bound on height.</summary>
	[Property, GooToken, Group( "Sizing" ), Order( 20 ), Range( 0f, float.MaxValue, true, false ), Hide] public GooLength? MinHeight { get; set; }
	/// <summary>Lower bound on width; the box never shrinks below it.</summary>
	[Property, GooToken, Group( "Sizing" ), Order( 20 ), Range( 0f, float.MaxValue, true, false ), Editor( "goo-axis-lengths" ), Title( "Minimum Size" )] public GooLength? MinWidth { get; set; }
	/// <summary>Blend mode against what is drawn behind the panel (CSS mix-blend-mode keyword).</summary>
	[Property, GooToken, Group( "Effects", StartFolded = true ), Order( 120 ), Editor( "goo-blend-mode" )] public string MixBlendMode { get; set; }
	/// <summary>Overall opacity from 0 (transparent) to 1 (opaque).</summary>
	[Property, GooToken, Group( "Effects", StartFolded = true ), Order( 120 ), Editor( "goo-float" ), Range( 0f, 1f, true, true ), Step( 0.01f )] public float? Opacity { get; set; }
	/// <summary>Reorders this child visually among its siblings (lower draws first) without moving it in the tree.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-integer" )] public int? Order { get; set; }
	/// <summary>Color of the outline drawn just outside the border.</summary>
	[Property, GooToken, Group( "Outline", StartFolded = true ), Order( 190 )] public Color? OutlineColor { get; set; }
	/// <summary>Gap between the border edge and the outline.</summary>
	[Property, GooToken, Group( "Outline", StartFolded = true ), Order( 190 )] public GooLength? OutlineOffset { get; set; }
	/// <summary>Thickness of the outline.</summary>
	[Property, GooToken, Group( "Outline", StartFolded = true ), Order( 190 ), Range( 0f, float.MaxValue, true, false )] public GooLength? OutlineWidth { get; set; }
	/// <summary>Clipping and scrolling for content past the box on both axes.</summary>
	[Property, GooToken, Group( "Overflow" ), Order( 50 ), Editor( "goo-nullable-enum" )] public OverflowMode? Overflow { get; set; }
	/// <summary>Overflow handling on the horizontal axis.</summary>
	[Property, GooToken, Group( "Overflow" ), Order( 50 ), Editor( "goo-axis-enums" ), Title( "Overflow Axes" )] public OverflowMode? OverflowX { get; set; }
	/// <summary>Overflow handling on the vertical axis.</summary>
	[Property, GooToken, Group( "Overflow" ), Order( 50 ), Hide] public OverflowMode? OverflowY { get; set; }
	/// <summary>Horizontal vanishing point for 3D-transformed children (default 50%).</summary>
	[Property, GooToken, Group( "Transform", StartFolded = true ), Order( 140 ), Editor( "goo-axis-lengths" ), Title( "Perspective Origin" )] public GooLength? PerspectiveOriginX { get; set; }
	/// <summary>Vertical vanishing point for 3D-transformed children (default 50%).</summary>
	[Property, GooToken, Group( "Transform", StartFolded = true ), Order( 140 ), Hide] public GooLength? PerspectiveOriginY { get; set; }
	/// <summary>Whether the element receives pointer input (All or None).</summary>
	[Property, GooToken, Group( "Misc", StartFolded = true ), Order( 200 ), Editor( "goo-nullable-enum" )] public PointerEvents? PointerEvents { get; set; }
	/// <summary>Positioning scheme: Relative offsets from the normal slot, Absolute lifts the box out of flow against the nearest positioned ancestor.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-nullable-enum" )] public PositionMode? Position { get; set; }
	/// <summary>Sound played when the element appears.</summary>
	[Property, GooToken, Group( "Misc", StartFolded = true ), Order( 200 ), ResourceType( "sound" )] public string SoundIn { get; set; }
	/// <summary>Sound played when the element is removed.</summary>
	[Property, GooToken, Group( "Misc", StartFolded = true ), Order( 200 ), ResourceType( "sound" )] public string SoundOut { get; set; }
	/// <summary>Horizontal alignment of text within its box.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public TextAlign? TextAlign { get; set; }
	/// <summary>Angle in radians for a gradient fill painted onto the text.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-float" ), Title( "Text Background Angle (Radians)" ), Step( 0.01f )] public float? TextBackgroundAngle { get; set; }
	/// <summary>Color of the underline, overline, or line-through.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public Color? TextDecorationColor { get; set; }
	/// <summary>Which decoration lines to draw (underline, overline, line-through; flags).</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public TextDecoration? TextDecorationLine { get; set; }
	/// <summary>Whether decoration lines skip over glyph descenders.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public TextSkipInk? TextDecorationSkipInk { get; set; }
	/// <summary>Decoration line style (solid, double, dotted, dashed, wavy).</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public TextDecorationStyle? TextDecorationStyle { get; set; }
	/// <summary>Thickness of the decoration line.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Range( 0f, float.MaxValue, true, false )] public GooLength? TextDecorationThickness { get; set; }
	/// <summary>Texture filtering mode used when rendering text.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public FilterMode? TextFilter { get; set; }
	/// <summary>Vertical offset of the line-through.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public GooLength? TextLineThroughOffset { get; set; }
	/// <summary>How clipped text is signalled (None, Ellipsis, Clip).</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public TextOverflow? TextOverflow { get; set; }
	/// <summary>Vertical offset of the overline.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public GooLength? TextOverlineOffset { get; set; }
	/// <summary>Color of the text outline stroke.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public Color? TextStrokeColor { get; set; }
	/// <summary>Width of the text outline stroke.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Range( 0f, float.MaxValue, true, false )] public GooLength? TextStrokeWidth { get; set; }
	/// <summary>Case transform applied at render (Uppercase, Lowercase, Capitalize).</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public TextTransform? TextTransform { get; set; }
	/// <summary>Vertical offset of the underline.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public GooLength? TextUnderlineOffset { get; set; }
	/// <summary>Horizontal pivot the transform rotates and scales around (default 50%).</summary>
	[Property, GooToken, Group( "Transform", StartFolded = true ), Order( 140 ), Editor( "goo-axis-lengths" ), Title( "Transform Origin" )] public GooLength? TransformOriginX { get; set; }
	/// <summary>Vertical pivot the transform rotates and scales around (default 50%).</summary>
	[Property, GooToken, Group( "Transform", StartFolded = true ), Order( 140 ), Hide] public GooLength? TransformOriginY { get; set; }
	/// <summary>Whitespace and wrapping handling (Normal, NoWrap, Pre, PreLine).</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public WhiteSpace? WhiteSpace { get; set; }
	/// <summary>Whether long words may break mid-word to avoid overflow.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 ), Editor( "goo-nullable-enum" )] public WordBreak? WordBreak { get; set; }
	/// <summary>Extra space between words.</summary>
	[Property, GooToken, Group( "Text" ), Order( 100 )] public GooLength? WordSpacing { get; set; }
	/// <summary>Stacking order among overlapping siblings; higher draws on top.</summary>
	[Property, GooToken, Group( "Layout" ), Order( 10 ), Editor( "goo-integer" )] public int? ZIndex { get; set; }
	/// <summary>BackgroundColor while the pointer is over the element.</summary>
	[Property, GooToken, Group( "State Variants", StartFolded = true ), Order( 110 )] public Color? HoverBackgroundColor { get; set; }
	/// <summary>BackgroundColor while the element is pressed.</summary>
	[Property, GooToken, Group( "State Variants", StartFolded = true ), Order( 110 )] public Color? ActiveBackgroundColor { get; set; }
	/// <summary>BackgroundColor while the element has focus.</summary>
	[Property, GooToken, Group( "State Variants", StartFolded = true ), Order( 110 )] public Color? FocusBackgroundColor { get; set; }
	/// <summary>FontColor while the pointer is over the element.</summary>
	[Property, GooToken, Group( "State Variants", StartFolded = true ), Order( 110 )] public Color? HoverFontColor { get; set; }
	/// <summary>FontColor while the element is pressed.</summary>
	[Property, GooToken, Group( "State Variants", StartFolded = true ), Order( 110 )] public Color? ActiveFontColor { get; set; }
	/// <summary>FontColor while the element has focus.</summary>
	[Property, GooToken, Group( "State Variants", StartFolded = true ), Order( 110 )] public Color? FocusFontColor { get; set; }
	/// <summary>Duration in milliseconds for the Hover/Active/Focus color transitions.</summary>
	[Property, GooToken, Group( "State Variants", StartFolded = true ), Order( 110 ), Editor( "goo-integer" ), Range( 0, int.MaxValue, true, false ), Step( 1 )] public int? TransitionMs { get; set; }

	Goo.TextEntry WithStyles( Goo.TextEntry blob ) => blob with
	{
		FlexDirection = ResolveStyleValue( nameof( FlexDirection ), FlexDirection ),
		JustifyContent = ResolveStyleValue( nameof( JustifyContent ), JustifyContent ),
		AlignItems = ResolveStyleValue( nameof( AlignItems ), AlignItems ),
		Display = ResolveStyleValue( nameof( Display ), Display ),
		Width = ResolveStyleValue( nameof( Width ), Width ),
		Height = ResolveStyleValue( nameof( Height ), Height ),
		Padding = ResolveStyleValue( nameof( Padding ), Padding ),
		PaddingLeft = ResolveStyleValue( nameof( PaddingLeft ), PaddingLeft ),
		PaddingTop = ResolveStyleValue( nameof( PaddingTop ), PaddingTop ),
		PaddingRight = ResolveStyleValue( nameof( PaddingRight ), PaddingRight ),
		PaddingBottom = ResolveStyleValue( nameof( PaddingBottom ), PaddingBottom ),
		Margin = ResolveStyleValue( nameof( Margin ), Margin ),
		MarginLeft = ResolveStyleValue( nameof( MarginLeft ), MarginLeft ),
		MarginTop = ResolveStyleValue( nameof( MarginTop ), MarginTop ),
		MarginRight = ResolveStyleValue( nameof( MarginRight ), MarginRight ),
		MarginBottom = ResolveStyleValue( nameof( MarginBottom ), MarginBottom ),
		Gap = ResolveStyleValue( nameof( Gap ), Gap ),
		RowGap = ResolveStyleValue( nameof( RowGap ), RowGap ),
		ColumnGap = ResolveStyleValue( nameof( ColumnGap ), ColumnGap ),
		BackgroundColor = ResolveStyleValue( nameof( BackgroundColor ), BackgroundColor ),
		BorderRadius = ResolveStyleValue( nameof( BorderRadius ), BorderRadius ),
		BorderTopLeftRadius = ResolveStyleValue( nameof( BorderTopLeftRadius ), BorderTopLeftRadius ),
		BorderTopRightRadius = ResolveStyleValue( nameof( BorderTopRightRadius ), BorderTopRightRadius ),
		BorderBottomRightRadius = ResolveStyleValue( nameof( BorderBottomRightRadius ), BorderBottomRightRadius ),
		BorderBottomLeftRadius = ResolveStyleValue( nameof( BorderBottomLeftRadius ), BorderBottomLeftRadius ),
		AlignContent = ResolveStyleValue( nameof( AlignContent ), AlignContent ),
		AlignSelf = ResolveStyleValue( nameof( AlignSelf ), AlignSelf ),
		AspectRatio = ResolveStyleValue( nameof( AspectRatio ), AspectRatio ),
		BackdropFilterBlur = ResolveStyleValue( nameof( BackdropFilterBlur ), BackdropFilterBlur ),
		BackdropFilterBrightness = ResolveStyleValue( nameof( BackdropFilterBrightness ), BackdropFilterBrightness ),
		BackdropFilterContrast = ResolveStyleValue( nameof( BackdropFilterContrast ), BackdropFilterContrast ),
		BackdropFilterHueRotate = ResolveStyleValue( nameof( BackdropFilterHueRotate ), BackdropFilterHueRotate ),
		BackdropFilterInvert = ResolveStyleValue( nameof( BackdropFilterInvert ), BackdropFilterInvert ),
		BackdropFilterSaturate = ResolveStyleValue( nameof( BackdropFilterSaturate ), BackdropFilterSaturate ),
		BackdropFilterSepia = ResolveStyleValue( nameof( BackdropFilterSepia ), BackdropFilterSepia ),
		BackgroundAngle = ResolveStyleValue( nameof( BackgroundAngle ), BackgroundAngle ),
		BackgroundBlendMode = ResolveStyleValue( nameof( BackgroundBlendMode ), string.IsNullOrEmpty( BackgroundBlendMode ) ? null : BackgroundBlendMode ),
		BackgroundImage = ResolveStyleValue( nameof( BackgroundImage ), BackgroundImage ),
		BackgroundPlaybackPaused = ResolveStyleValue( nameof( BackgroundPlaybackPaused ), BackgroundPlaybackPaused ),
		BackgroundPositionX = ResolveStyleValue( nameof( BackgroundPositionX ), BackgroundPositionX ),
		BackgroundPositionY = ResolveStyleValue( nameof( BackgroundPositionY ), BackgroundPositionY ),
		BackgroundRepeat = ResolveStyleValue( nameof( BackgroundRepeat ), BackgroundRepeat ),
		BackgroundSizeX = ResolveStyleValue( nameof( BackgroundSizeX ), BackgroundSizeX ),
		BackgroundSizeY = ResolveStyleValue( nameof( BackgroundSizeY ), BackgroundSizeY ),
		BackgroundTint = ResolveStyleValue( nameof( BackgroundTint ), BackgroundTint ),
		BorderBottomColor = ResolveStyleValue( nameof( BorderBottomColor ), BorderBottomColor ),
		BorderColor = ResolveStyleValue( nameof( BorderColor ), BorderColor ),
		BorderLeftColor = ResolveStyleValue( nameof( BorderLeftColor ), BorderLeftColor ),
		BorderRightColor = ResolveStyleValue( nameof( BorderRightColor ), BorderRightColor ),
		BorderTopColor = ResolveStyleValue( nameof( BorderTopColor ), BorderTopColor ),
		BorderImageFill = ResolveStyleValue( nameof( BorderImageFill ), BorderImageFill ),
		BorderImageRepeat = ResolveStyleValue( nameof( BorderImageRepeat ), BorderImageRepeat ),
		BorderImageSource = ResolveStyleValue( nameof( BorderImageSource ), BorderImageSource ),
		BorderImageTint = ResolveStyleValue( nameof( BorderImageTint ), BorderImageTint ),
		BorderImageWidthBottom = ResolveStyleValue( nameof( BorderImageWidthBottom ), BorderImageWidthBottom ),
		BorderImageWidthLeft = ResolveStyleValue( nameof( BorderImageWidthLeft ), BorderImageWidthLeft ),
		BorderImageWidthRight = ResolveStyleValue( nameof( BorderImageWidthRight ), BorderImageWidthRight ),
		BorderImageWidthTop = ResolveStyleValue( nameof( BorderImageWidthTop ), BorderImageWidthTop ),
		BorderBottomWidth = ResolveStyleValue( nameof( BorderBottomWidth ), BorderBottomWidth ),
		BorderLeftWidth = ResolveStyleValue( nameof( BorderLeftWidth ), BorderLeftWidth ),
		BorderRightWidth = ResolveStyleValue( nameof( BorderRightWidth ), BorderRightWidth ),
		BorderTopWidth = ResolveStyleValue( nameof( BorderTopWidth ), BorderTopWidth ),
		BorderWidth = ResolveStyleValue( nameof( BorderWidth ), BorderWidth ),
		Bottom = ResolveStyleValue( nameof( Bottom ), Bottom ),
		BoxShadow = ResolveStyleValue( nameof( BoxShadow ), BoxShadow ),
		Left = ResolveStyleValue( nameof( Left ), Left ),
		Right = ResolveStyleValue( nameof( Right ), Right ),
		Top = ResolveStyleValue( nameof( Top ), Top ),
		CaretColor = ResolveStyleValue( nameof( CaretColor ), CaretColor ),
		Cursor = ResolveStyleValue( nameof( Cursor ), string.IsNullOrEmpty( Cursor ) ? null : Cursor ),
		FilterBlur = ResolveStyleValue( nameof( FilterBlur ), FilterBlur ),
		FilterBorderColor = ResolveStyleValue( nameof( FilterBorderColor ), FilterBorderColor ),
		FilterBorderWidth = ResolveStyleValue( nameof( FilterBorderWidth ), FilterBorderWidth ),
		FilterBrightness = ResolveStyleValue( nameof( FilterBrightness ), FilterBrightness ),
		FilterContrast = ResolveStyleValue( nameof( FilterContrast ), FilterContrast ),
		FilterHueRotate = ResolveStyleValue( nameof( FilterHueRotate ), FilterHueRotate ),
		FilterInvert = ResolveStyleValue( nameof( FilterInvert ), FilterInvert ),
		FilterSaturate = ResolveStyleValue( nameof( FilterSaturate ), FilterSaturate ),
		FilterSepia = ResolveStyleValue( nameof( FilterSepia ), FilterSepia ),
		FilterTint = ResolveStyleValue( nameof( FilterTint ), FilterTint ),
		FlexBasis = ResolveStyleValue( nameof( FlexBasis ), FlexBasis ),
		FlexGrow = ResolveStyleValue( nameof( FlexGrow ), FlexGrow ),
		FlexShrink = ResolveStyleValue( nameof( FlexShrink ), FlexShrink ),
		FlexWrap = ResolveStyleValue( nameof( FlexWrap ), FlexWrap ),
		FontColor = ResolveStyleValue( nameof( FontColor ), FontColor ),
		FontFamily = ResolveStyleValue( nameof( FontFamily ), string.IsNullOrEmpty( FontFamily ) ? null : FontFamily ),
		FontSize = ResolveStyleValue( nameof( FontSize ), FontSize ),
		FontSmooth = ResolveStyleValue( nameof( FontSmooth ), FontSmooth ),
		FontStyle = ResolveStyleValue( nameof( FontStyle ), FontStyle ),
		FontVariantNumeric = ResolveStyleValue( nameof( FontVariantNumeric ), FontVariantNumeric ),
		FontWeight = ResolveStyleValue( nameof( FontWeight ), FontWeight ),
		ImageRendering = ResolveStyleValue( nameof( ImageRendering ), ImageRendering ),
		LetterSpacing = ResolveStyleValue( nameof( LetterSpacing ), LetterSpacing ),
		LineHeight = ResolveStyleValue( nameof( LineHeight ), LineHeight ),
		MaskAngle = ResolveStyleValue( nameof( MaskAngle ), MaskAngle ),
		MaskImage = ResolveStyleValue( nameof( MaskImage ), MaskImage ),
		MaskMode = ResolveStyleValue( nameof( MaskMode ), MaskMode ),
		MaskPositionX = ResolveStyleValue( nameof( MaskPositionX ), MaskPositionX ),
		MaskPositionY = ResolveStyleValue( nameof( MaskPositionY ), MaskPositionY ),
		MaskRepeat = ResolveStyleValue( nameof( MaskRepeat ), MaskRepeat ),
		MaskScope = ResolveStyleValue( nameof( MaskScope ), MaskScope ),
		MaskSizeX = ResolveStyleValue( nameof( MaskSizeX ), MaskSizeX ),
		MaskSizeY = ResolveStyleValue( nameof( MaskSizeY ), MaskSizeY ),
		MaxHeight = ResolveStyleValue( nameof( MaxHeight ), MaxHeight ),
		MaxWidth = ResolveStyleValue( nameof( MaxWidth ), MaxWidth ),
		MinHeight = ResolveStyleValue( nameof( MinHeight ), MinHeight ),
		MinWidth = ResolveStyleValue( nameof( MinWidth ), MinWidth ),
		MixBlendMode = ResolveStyleValue( nameof( MixBlendMode ), string.IsNullOrEmpty( MixBlendMode ) ? null : MixBlendMode ),
		Opacity = ResolveStyleValue( nameof( Opacity ), Opacity ),
		Order = ResolveStyleValue( nameof( Order ), Order ),
		OutlineColor = ResolveStyleValue( nameof( OutlineColor ), OutlineColor ),
		OutlineOffset = ResolveStyleValue( nameof( OutlineOffset ), OutlineOffset ),
		OutlineWidth = ResolveStyleValue( nameof( OutlineWidth ), OutlineWidth ),
		Overflow = ResolveStyleValue( nameof( Overflow ), Overflow ),
		OverflowX = ResolveStyleValue( nameof( OverflowX ), OverflowX ),
		OverflowY = ResolveStyleValue( nameof( OverflowY ), OverflowY ),
		PerspectiveOriginX = ResolveStyleValue( nameof( PerspectiveOriginX ), PerspectiveOriginX ),
		PerspectiveOriginY = ResolveStyleValue( nameof( PerspectiveOriginY ), PerspectiveOriginY ),
		PointerEvents = ResolveStyleValue( nameof( PointerEvents ), PointerEvents ),
		Position = ResolveStyleValue( nameof( Position ), Position ),
		SoundIn = ResolveStyleValue( nameof( SoundIn ), string.IsNullOrEmpty( SoundIn ) ? null : SoundIn ),
		SoundOut = ResolveStyleValue( nameof( SoundOut ), string.IsNullOrEmpty( SoundOut ) ? null : SoundOut ),
		TextAlign = ResolveStyleValue( nameof( TextAlign ), TextAlign ),
		TextBackgroundAngle = ResolveStyleValue( nameof( TextBackgroundAngle ), TextBackgroundAngle ),
		TextDecorationColor = ResolveStyleValue( nameof( TextDecorationColor ), TextDecorationColor ),
		TextDecorationLine = ResolveStyleValue( nameof( TextDecorationLine ), TextDecorationLine ),
		TextDecorationSkipInk = ResolveStyleValue( nameof( TextDecorationSkipInk ), TextDecorationSkipInk ),
		TextDecorationStyle = ResolveStyleValue( nameof( TextDecorationStyle ), TextDecorationStyle ),
		TextDecorationThickness = ResolveStyleValue( nameof( TextDecorationThickness ), TextDecorationThickness ),
		TextFilter = ResolveStyleValue( nameof( TextFilter ), TextFilter ),
		TextLineThroughOffset = ResolveStyleValue( nameof( TextLineThroughOffset ), TextLineThroughOffset ),
		TextOverflow = ResolveStyleValue( nameof( TextOverflow ), TextOverflow ),
		TextOverlineOffset = ResolveStyleValue( nameof( TextOverlineOffset ), TextOverlineOffset ),
		TextStrokeColor = ResolveStyleValue( nameof( TextStrokeColor ), TextStrokeColor ),
		TextStrokeWidth = ResolveStyleValue( nameof( TextStrokeWidth ), TextStrokeWidth ),
		TextTransform = ResolveStyleValue( nameof( TextTransform ), TextTransform ),
		TextUnderlineOffset = ResolveStyleValue( nameof( TextUnderlineOffset ), TextUnderlineOffset ),
		TransformOriginX = ResolveStyleValue( nameof( TransformOriginX ), TransformOriginX ),
		TransformOriginY = ResolveStyleValue( nameof( TransformOriginY ), TransformOriginY ),
		WhiteSpace = ResolveStyleValue( nameof( WhiteSpace ), WhiteSpace ),
		WordBreak = ResolveStyleValue( nameof( WordBreak ), WordBreak ),
		WordSpacing = ResolveStyleValue( nameof( WordSpacing ), WordSpacing ),
		ZIndex = ResolveStyleValue( nameof( ZIndex ), ZIndex ),
		HoverBackgroundColor = ResolveStyleValue( nameof( HoverBackgroundColor ), HoverBackgroundColor ),
		ActiveBackgroundColor = ResolveStyleValue( nameof( ActiveBackgroundColor ), ActiveBackgroundColor ),
		FocusBackgroundColor = ResolveStyleValue( nameof( FocusBackgroundColor ), FocusBackgroundColor ),
		HoverFontColor = ResolveStyleValue( nameof( HoverFontColor ), HoverFontColor ),
		ActiveFontColor = ResolveStyleValue( nameof( ActiveFontColor ), ActiveFontColor ),
		FocusFontColor = ResolveStyleValue( nameof( FocusFontColor ), FocusFontColor ),
		TransitionMs = ResolveStyleValue( nameof( TransitionMs ), TransitionMs ),
		Transform = BuildStyleTransform(),
	};
}