Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ProwlEngine/Prowl.Paper/llms.txt

Use this file to discover all available pages before exploring further.

GuiProp is the central enum that names every style property Prowl.Paper can animate or transition. Whenever you call .Transition(GuiProp.X, duration) or set a property on an element, you reference a GuiProp value. The engine stores one typed object per property per element and interpolates between them each frame using the appropriate typed lerp. Default values are applied automatically when a property has never been set; they are listed in each section below.

Visual properties

These properties control the appearance of the element’s background, border, and effects.

BackgroundColor

BackgroundColor
Color
default:"Color.Transparent"
The solid fill color of the element’s background rectangle. Animated via HSV interpolation so hue rotates naturally. If both BackgroundColor and BackgroundGradient are set, the gradient takes precedence in the renderer.

BackgroundGradient

BackgroundGradient
Gradient
default:"Gradient.None"
A Gradient struct (Linear, Radial, or Box) painted over the background rectangle. Set to Gradient.None to disable. See the Gradient struct and GradientType enum below.

BorderColor

BorderColor
Color
default:"Color.Transparent"
Color of the element’s border stroke. Has no visual effect when BorderWidth is 0.

BorderWidth

BorderWidth
float
default:"0.0f"
Pixel width of the border stroke drawn inside the element’s rect. A value of 0 renders no border.

Rounded

Rounded
Float4
default:"Float4(0, 0, 0, 0)"
Corner radii in pixels as (topLeft, topRight, bottomRight, bottomLeft). Use a uniform value for all corners or set individual components for asymmetric rounding.

BoxShadow

BoxShadow
BoxShadow
default:"BoxShadow.None"
Drop shadow applied behind the element. The BoxShadow struct holds OffsetX, OffsetY, Blur, Spread, and Color fields. Set to BoxShadow.None for no shadow.

BackdropBlur

BackdropBlur
float
default:"0.0f"
Gaussian blur radius applied to content rendered behind this element, creating a frosted-glass effect. A value of 0 disables the blur.

Layout — sizing

These properties govern how large an element is. All use UnitValue which supports pixels, percentage, stretch, and auto units.

Core size

Width
UnitValue
default:"UnitValue.Stretch()"
The element’s width. Defaults to stretch, so an element fills its parent’s available width by default.
Height
UnitValue
default:"UnitValue.Stretch()"
The element’s height. Defaults to stretch, so an element fills its parent’s available height by default.
AspectRatio
float
default:"-1.0f"
Locks the width-to-height ratio. A value of -1 disables aspect-ratio enforcement. When set (e.g. 1.777f for 16:9), the layout engine adjusts whichever axis is not explicitly constrained.

Size constraints

MinWidth
UnitValue
default:"UnitValue.Pixels(0)"
Minimum width clamp applied after the main width resolves.
MaxWidth
UnitValue
default:"UnitValue.Pixels(float.MaxValue)"
Maximum width clamp. Defaults to unconstrained.
MinHeight
UnitValue
default:"UnitValue.Pixels(0)"
Minimum height clamp applied after the main height resolves.
MaxHeight
UnitValue
default:"UnitValue.Pixels(float.MaxValue)"
Maximum height clamp. Defaults to unconstrained.

Layout — positioning

These properties control where an element sits relative to its parent or layout flow. All use UnitValue.
Left
UnitValue
default:"UnitValue.Auto"
Distance from the parent’s left edge. Auto lets the parent layout algorithm position the element.
Right
UnitValue
default:"UnitValue.Auto"
Distance from the parent’s right edge.
Top
UnitValue
default:"UnitValue.Auto"
Distance from the parent’s top edge.
Bottom
UnitValue
default:"UnitValue.Auto"
Distance from the parent’s bottom edge.

Position clamps

Each edge also has Min and Max variants that clamp the computed position:
PropertyDefault
MinLeft / MaxLeftPixels(float.MinValue) / Pixels(float.MaxValue)
MinRight / MaxRightPixels(float.MinValue) / Pixels(float.MaxValue)
MinTop / MaxTopPixels(float.MinValue) / Pixels(float.MaxValue)
MinBottom / MaxBottomPixels(float.MinValue) / Pixels(float.MaxValue)

Layout — child alignment

These properties are set on the parent element and control how its children are positioned within the parent’s bounds.
ChildLeft
UnitValue
default:"UnitValue.Auto"
Space inserted to the left of each child. Auto distributes the horizontal spacing automatically.
ChildRight
UnitValue
default:"UnitValue.Auto"
Space inserted to the right of each child.
ChildTop
UnitValue
default:"UnitValue.Auto"
Space inserted above each child.
ChildBottom
UnitValue
default:"UnitValue.Auto"
Space inserted below each child.
RowBetween
UnitValue
default:"UnitValue.Auto"
Gap inserted between children along the row (horizontal) axis. Similar to CSS column-gap.
ColBetween
UnitValue
default:"UnitValue.Auto"
Gap inserted between children along the column (vertical) axis. Similar to CSS row-gap.

Layout — padding

Padding insets the content area on the parent’s interior. Children are placed inside the padded rect.
PaddingLeft
UnitValue
default:"UnitValue.Pixels(0)"
Left-side inset applied to the parent’s content area.
PaddingRight
UnitValue
default:"UnitValue.Pixels(0)"
Right-side inset.
PaddingTop
UnitValue
default:"UnitValue.Pixels(0)"
Top-side inset.
PaddingBottom
UnitValue
default:"UnitValue.Pixels(0)"
Bottom-side inset.

Transform properties

Transform properties apply a 2D affine transform to the rendered element after layout. They do not affect sibling layout. All transforms combine through a TransformBuilder in the order: translate → rotate → scale → skew → custom.
TranslateX
float
default:"0.0f"
Horizontal translation in pixels applied post-layout.
TranslateY
float
default:"0.0f"
Vertical translation in pixels applied post-layout.
ScaleX
float
default:"1.0f"
Horizontal scale factor. 1.0 = no scaling, 2.0 = double width.
ScaleY
float
default:"1.0f"
Vertical scale factor.
Rotate
float
default:"0.0f"
Rotation angle in degrees. Positive values rotate clockwise.
OriginX
float
default:"0.5f"
Normalized X position of the transform origin within the element. 0 = left edge, 0.5 = center (default), 1 = right edge.
OriginY
float
default:"0.5f"
Normalized Y position of the transform origin. 0 = top, 0.5 = center (default), 1 = bottom.
SkewX
float
default:"0.0f"
Horizontal skew angle in degrees.
SkewY
float
default:"0.0f"
Vertical skew angle in degrees.
Transform
Transform2D
default:"Transform2D.Identity"
An additional custom Transform2D matrix applied on top of the individual transform properties above.
Transforms are pivot-relative. Set OriginX/OriginY before animating Rotate or ScaleX/ScaleY to control the pivot point — for example, set both to 0.5f (the default) for center-pivot scaling, or 0f / 0f for top-left corner rotation.

Image properties

BackgroundImage
object?
default:"null"
An image resource to render as the element’s background. The concrete type depends on your renderer integration. null disables the background image. Combine with ImageScaleMode to control how the image fits its rect.

Text properties

TextColor
Color
default:"Color.White"
Color applied to all text rendered within the element.
FontSize
float
default:"16.0f"
Font size in pixels.
LineHeight
float
default:"1.0f"
Multiplier applied to the font’s natural line height. 1.0 = normal, 1.5 = 150% leading.
LetterSpacing
float
default:"0.0f"
Additional pixel spacing inserted between individual glyphs.
WordSpacing
float
default:"0.0f"
Additional pixel spacing inserted between words (i.e. after space characters).
TabSize
int
default:"4"
Number of spaces a tab character is equivalent to for layout purposes.

LayoutType

Controls the direction children are stacked within a container:
ValueDescription
LayoutType.RowChildren arranged horizontally, left to right
LayoutType.ColumnChildren arranged vertically, top to bottom
element.LayoutType(LayoutType.Row);

PositionType

Controls whether an element participates in the parent’s flow or positions itself independently:
ValueDescription
PositionType.ParentDirectedPosition determined by the parent layout (similar to CSS relative)
PositionType.SelfDirectedElement uses its own Left/Top/etc. coordinates (similar to CSS absolute)

TextAlignment

Nine-point alignment for text within a text element:
ValueDescription
LeftTop-left
CenterTop-center
RightTop-right
MiddleLeftVertically centered, left
MiddleCenterFully centered
MiddleRightVertically centered, right
BottomLeftBottom-left
BottomCenterBottom-center
BottomRightBottom-right

GradientType

Specifies which gradient algorithm the Gradient struct uses:
ValueDescription
NoneNo gradient (default)
LinearLinear gradient between two points
RadialRadial gradient from a center point outward
BoxBox (rounded-rectangle) gradient

ImageScaleMode

Controls how a BackgroundImage is scaled to fill the element’s rectangle:
ValueDescription
StretchStretches to fill, ignoring aspect ratio
FitScales uniformly to fit inside, preserving aspect ratio (may leave empty space)
FillScales uniformly to cover the entire rect, preserving aspect ratio (may crop)

Layer (static class)

Named integer constants for the rendering layer system. Higher layer numbers render on top and receive input first. The constants are spaced by 100 so you can insert custom layers between them without renumbering:
ConstantValuePurpose
Layer.Base0Default layer for all normal elements
Layer.Overlay100Modals, dropdowns — sits above base content
Layer.Topmost200Tooltips, popovers — sits above everything
// Custom layer between Base and Overlay
element.Layer(Layer.Base + 50);

// Modal dialog on the Overlay layer
dialog.Layer(Layer.Overlay);
Layer is a static class with const int members, not an enum. Pass any integer value to ElementBuilder.Layer(int).

Quick reference: all defaults

// Visual
BackgroundColorColor.Transparent
BackgroundGradientGradient.None
BorderColorColor.Transparent
BorderWidth0.0f
RoundedFloat4(0, 0, 0, 0)
BoxShadowBoxShadow.None
BackdropBlur0.0f

// Sizing
Width / HeightUnitValue.Stretch()
MinWidth/MinHeightUnitValue.Pixels(0)
MaxWidth/MaxHeightUnitValue.Pixels(float.MaxValue)
AspectRatio-1.0f

// Positioning
Left/Right/Top/BottomUnitValue.Auto

// Child alignment
ChildLeft/Right/Top/BottomUnitValue.Auto
RowBetween / ColBetweenUnitValue.Auto

// Padding
PaddingLeft/Right/Top/BottomUnitValue.Pixels(0)

// Transform
TranslateX/Y0.0f
ScaleX/Y1.0f
Rotate0.0f
OriginX/Y0.5f
SkewX/Y0.0f
TransformTransform2D.Identity

// Text
TextColorColor.White
FontSize16.0f
LineHeight1.0f
LetterSpacing0.0f
WordSpacing0.0f
TabSize4

Build docs developers (and LLMs) love