Milky2018/css/values does not have a README file

    AlignSelf

    pub(all) enum AlignSelf {
    Auto
    Start
    End
    Center
    Stretch
    Baseline
    } derive(Eq,
    Debug
    )

    Align-self value (can override align-items for individual items)
    impl Show for AlignSelf

    AlignSelf::equal

    fn AlignSelf::equal(AlignSelf, AlignSelf) -> Bool

    AlignSelf::not_equal

    fn AlignSelf::not_equal(x : AlignSelf, y : AlignSelf) -> Bool

    AlignSelf::output

    fn AlignSelf::output(self : AlignSelf, logger : &Logger) -> Unit

    AlignSelf::to_string

    fn AlignSelf::to_string(self : AlignSelf) -> String

    Alignment

    pub(all) enum Alignment {
    Start
    End
    Left
    Right
    FlexStart
    FlexEnd
    Center
    SpaceBetween
    SpaceAround
    SpaceEvenly
    Stretch
    Baseline
    } derive(Eq,
    Debug
    )

    Alignment for justify-content, align-items, etc.
    impl Show for Alignment

    Alignment::equal

    fn Alignment::equal(Alignment, Alignment) -> Bool

    Alignment::not_equal

    fn Alignment::not_equal(x : Alignment, y : Alignment) -> Bool

    Alignment::output

    fn Alignment::output(self : Alignment, logger : &Logger) -> Unit

    Alignment::to_string

    fn Alignment::to_string(self : Alignment) -> String

    AnimationDirection

    pub(all) enum AnimationDirection {
    Normal
    Reverse
    Alternate
    AlternateReverse
    } derive(Eq,
    Debug
    )

    animation-direction value.

    AnimationDirection::equal

    AnimationDirection::not_equal

    AnimationDirection::output

    fn AnimationDirection::output(self : AnimationDirection, logger : &Logger) -> Unit

    AnimationDirection::to_string

    fn AnimationDirection::to_string(self : AnimationDirection) -> String

    AnimationFillMode

    pub(all) enum AnimationFillMode {
    None
    Forwards
    Backwards
    Both
    } derive(Eq,
    Debug
    )

    animation-fill-mode value.

    AnimationFillMode::equal

    AnimationFillMode::not_equal

    fn AnimationFillMode::not_equal(x : AnimationFillMode, y : AnimationFillMode) -> Bool

    AnimationFillMode::output

    fn AnimationFillMode::output(self : AnimationFillMode, logger : &Logger) -> Unit

    AnimationFillMode::to_string

    fn AnimationFillMode::to_string(self : AnimationFillMode) -> String

    AnimationIterationCount

    pub(all) enum AnimationIterationCount {
    Count(Double)
    Infinite
    } derive(Eq,
    Debug
    )

    animation-iteration-count value (<number> or infinite).

    AnimationIterationCount::equal

    AnimationIterationCount::not_equal

    AnimationIterationCount::output

    fn AnimationIterationCount::output(self : AnimationIterationCount, logger : &Logger) -> Unit

    AnimationIterationCount::to_string

    fn AnimationIterationCount::to_string(self : AnimationIterationCount) -> String

    AnimationPlayState

    pub(all) enum AnimationPlayState {
    Running
    Paused
    } derive(Eq,
    Debug
    )

    animation-play-state value.

    AnimationPlayState::equal

    AnimationPlayState::not_equal

    AnimationPlayState::output

    fn AnimationPlayState::output(self : AnimationPlayState, logger : &Logger) -> Unit

    AnimationPlayState::to_string

    fn AnimationPlayState::to_string(self : AnimationPlayState) -> String

    BackgroundImage

    pub(all) enum BackgroundImage {
    None
    Gradient(LinearGradient)
    } derive(Eq,
    Debug
    )

    Background image (currently only linear-gradient)

    BackgroundImage::equal

    BackgroundImage::not_equal

    fn BackgroundImage::not_equal(x : BackgroundImage, y : BackgroundImage) -> Bool

    BackgroundImage::output

    fn BackgroundImage::output(self : BackgroundImage, logger : &Logger) -> Unit

    BackgroundImage::to_string

    fn BackgroundImage::to_string(self : BackgroundImage) -> String

    BoundingRect

    pub(all) struct BoundingRect {
    x : Double
    y : Double
    width : Double
    height : Double
    }

    BoundingRect - the output of layout computation Matches browser's getBoundingClientRect()

    BoundingRect::area

    fn BoundingRect::area(self : BoundingRect) -> Double

    Calculate the area of the bounding rect

    BoundingRect::bottom

    fn BoundingRect::bottom(self : BoundingRect) -> Double

    Get the bottom edge (y + height)

    BoundingRect::new

    fn BoundingRect::new(x : Double, y : Double, width : Double, height : Double) -> BoundingRect

    BoundingRect::output

    fn BoundingRect::output(self : BoundingRect, logger : &Logger) -> Unit

    BoundingRect::right

    fn BoundingRect::right(self : BoundingRect) -> Double

    Get the right edge (x + width)

    BoundingRect::to_string

    fn BoundingRect::to_string(self : BoundingRect) -> String

    BoundingRect::union

    fn BoundingRect::union(self : BoundingRect, other : BoundingRect) -> BoundingRect

    Calculate union of two bounding rects

    BoundingRect::zero

    BoxSizing

    pub(all) enum BoxSizing {
    ContentBox
    BorderBox
    } derive(Eq,
    Debug
    )

    CSS box-sizing property
    impl Show for BoxSizing

    BoxSizing::equal

    fn BoxSizing::equal(BoxSizing, BoxSizing) -> Bool

    BoxSizing::not_equal

    fn BoxSizing::not_equal(x : BoxSizing, y : BoxSizing) -> Bool

    BoxSizing::output

    fn BoxSizing::output(self : BoxSizing, logger : &Logger) -> Unit

    BoxSizing::to_string

    fn BoxSizing::to_string(self : BoxSizing) -> String

    Clear

    pub(all) enum Clear {
    None
    Left
    Right
    Both
    } derive(Eq,
    Debug
    )

    CSS clear property
    impl Show for Clear

    Clear::equal

    fn Clear::equal(Clear, Clear) -> Bool

    Clear::not_equal

    fn Clear::not_equal(x : Clear, y : Clear) -> Bool

    Clear::output

    fn Clear::output(self : Clear, logger : &Logger) -> Unit

    Clear::to_repr

    Clear::to_string

    fn Clear::to_string(self : Clear) -> String

    ClipRect

    pub(all) enum ClipRect {
    Auto
    Rect(top~ : Double, right~ : Double, bottom~ : Double, left~ : Double)
    } derive(Eq,
    Debug
    )

    CSS clip property value clip: rect(top, right, bottom, left) or auto Note: This is a deprecated property, but still widely used for accessibility
    impl Show for ClipRect

    ClipRect::default

    fn ClipRect::default() -> ClipRect

    ClipRect::equal

    fn ClipRect::equal(ClipRect, ClipRect) -> Bool

    ClipRect::not_equal

    fn ClipRect::not_equal(x : ClipRect, y : ClipRect) -> Bool

    ClipRect::output

    fn ClipRect::output(self : ClipRect, logger : &Logger) -> Unit

    ClipRect::to_repr

    ClipRect::to_string

    fn ClipRect::to_string(self : ClipRect) -> String

    Color

    pub(all) struct Color {
    r : Int
    g : Int
    b : Int
    a : Double
    } derive(
    Debug
    )

    RGBA color with 8-bit channels and alpha
    impl Eq for Color
    impl Show for Color

    Color::black

    fn Color::black() -> Color

    Black color

    Color::equal

    fn Color::equal(self : Color, other : Color) -> Bool

    Color::is_opaque

    fn Color::is_opaque(self : Color) -> Bool

    Color::is_transparent

    fn Color::is_transparent(self : Color) -> Bool

    Color::not_equal

    fn Color::not_equal(x : Color, y : Color) -> Bool

    Color::output

    fn Color::output(self : Color, logger : &Logger) -> Unit

    Color::rgb

    fn Color::rgb(r : Int, g : Int, b : Int) -> Color

    Color::rgba

    fn Color::rgba(r : Int, g : Int, b : Int, a : Double) -> Color

    Color::to_hex

    fn Color::to_hex(self : Color) -> String

    Convert to CSS hex string (#rrggbb or #rrggbbaa)

    Color::to_repr

    Color::to_rgba_string

    fn Color::to_rgba_string(self : Color) -> String

    Convert to CSS rgba() string

    Color::to_string

    fn Color::to_string(self : Color) -> String

    Color::transparent

    fn Color::transparent() -> Color

    Transparent color (alpha = 0)

    Color::white

    fn Color::white() -> Color

    White color

    Dimension

    pub(all) enum Dimension {
    Length(Double)
    Percent(Double)
    Auto
    MinContent
    MaxContent
    FitContent(Double)
    Calc(Double, Double)
    MathFn(MathOp, Array[(Double, Double)])
    } derive(Eq,
    Debug
    )

    CSS dimension value: length, percentage, auto, or intrinsic sizing keywords
    impl Show for Dimension

    Dimension::eq_length

    fn Dimension::eq_length(self : Dimension, value : Double) -> Bool

    Check if dimension equals a specific length value

    Dimension::eq_percent

    fn Dimension::eq_percent(self : Dimension, value : Double) -> Bool

    Check if dimension equals a specific percent value

    Dimension::equal

    fn Dimension::equal(Dimension, Dimension) -> Bool

    Dimension::is_definite

    fn Dimension::is_definite(self : Dimension) -> Bool

    Check if dimension is a definite value (Length or Percent)

    Dimension::is_intrinsic

    fn Dimension::is_intrinsic(self : Dimension) -> Bool

    Check if dimension requires intrinsic sizing

    Dimension::not_equal

    fn Dimension::not_equal(x : Dimension, y : Dimension) -> Bool

    Dimension::output

    fn Dimension::output(self : Dimension, logger : &Logger) -> Unit

    Dimension::resolve

    fn Dimension::resolve(self : Dimension, context : Double) -> Double?

    Resolve dimension to concrete value context: parent size for percentage calculation Note: MinContent, MaxContent, FitContent return None - they need intrinsic size calculation

    Dimension::resolve_or

    fn Dimension::resolve_or(self : Dimension, context : Double, fallback : Double) -> Double

    Resolve with fallback value for Auto

    Matches self directly rather than going through resolve, which returns a Double? and so boxes a Some(..) on every call. This is on the hot layout path (every width/height/padding/margin per element, plus all four sides via resolve_rect), where the intermediate Option allocation dominated.

    Dimension::resolve_or_intrinsic

    fn Dimension::resolve_or_intrinsic(self : Dimension, context : Double, fallback : Double) -> Double

    Resolve dimension to length, treating intrinsic keywords as fallback

    Dimension::to_string

    fn Dimension::to_string(self : Dimension) -> String

    Display

    pub(all) enum Display {
    Block
    Inline
    InlineBlock
    Flex
    InlineFlex
    Grid
    InlineGrid
    Table
    InlineTable
    TableRow
    TableCell
    TableCaption
    TableRowGroup
    TableHeaderGroup
    TableFooterGroup
    TableColumn
    TableColumnGroup
    None
    Contents
    FlowRoot
    } derive(Eq,
    Debug
    )

    CSS display property
    impl Show for Display

    Display::equal

    fn Display::equal(Display, Display) -> Bool

    Display::not_equal

    fn Display::not_equal(x : Display, y : Display) -> Bool

    Display::output

    fn Display::output(self : Display, logger : &Logger) -> Unit

    Display::to_repr

    Display::to_string

    fn Display::to_string(self : Display) -> String

    Easing

    pub(all) enum Easing {
    Linear
    Ease
    EaseIn
    EaseOut
    EaseInOut
    EaseInSine
    EaseOutSine
    EaseInOutSine
    EaseInQuad
    EaseOutQuad
    EaseInOutQuad
    EaseInCubic
    EaseOutCubic
    EaseInOutCubic
    EaseInQuart
    EaseOutQuart
    EaseInOutQuart
    EaseInQuint
    EaseOutQuint
    EaseInOutQuint
    EaseInExpo
    EaseOutExpo
    EaseInOutExpo
    EaseInCirc
    EaseOutCirc
    EaseInOutCirc
    EaseInBack
    EaseOutBack
    EaseInOutBack
    EaseInElastic
    EaseOutElastic
    EaseInOutElastic
    EaseInBounce
    EaseOutBounce
    EaseInOutBounce
    LinearFunction(Array[LinearEasingPoint])
    CubicBezier(Double, Double, Double, Double)
    Steps(Int, StepPosition)
    } derive(Eq,
    Debug
    )

    CSS easing/timing-function value without binding it to transitions or animations. Consumers can sample it against normalized progress [0, 1].
    impl Show for Easing

    Easing::apply

    fn Easing::apply(self : Easing, start_value : Double, end_value : Double, progress : Double) -> Double

    Apply the easing to a numeric range at normalized progress.

    Easing::cubic_bezier

    fn Easing::cubic_bezier(x1 : Double, y1 : Double, x2 : Double, y2 : Double) -> Easing

    Easing::equal

    fn Easing::equal(Easing, Easing) -> Bool

    Easing::frame

    fn Easing::frame(self : Easing, start_value : Double, end_value : Double, progress : Double) -> EasingFrame

    Build one frame with the clamped input progress, eased progress and value.

    Easing::frames

    fn Easing::frames(self : Easing, start_value : Double, end_value : Double, count : Int) -> Array[EasingFrame]

    Build evenly spaced frames across the easing range. The sequence includes both endpoints when count >= 2.

    Easing::linear

    fn Easing::linear(points : Array[LinearEasingPoint]) -> Easing?

    Easing::not_equal

    fn Easing::not_equal(x : Easing, y : Easing) -> Bool

    Easing::output

    fn Easing::output(self : Easing, logger : &Logger) -> Unit

    Easing::sample

    fn Easing::sample(self : Easing, progress : Double) -> Double

    Sample the easing at normalized progress. Input progress is clamped to [0, 1]; cubic-bezier output may overshoot if its Y control points do.

    Easing::steps

    fn Easing::steps(count : Int, position : StepPosition) -> Easing

    Easing::to_repr

    Easing::to_string

    fn Easing::to_string(self : Easing) -> String

    EasingFrame

    pub(all) struct EasingFrame {
    progress : Double
    eased_progress : Double
    value : Double
    }

    Eased value at one point in an interpolation sequence.
    impl Show for EasingFrame

    EasingFrame::output

    fn EasingFrame::output(self : EasingFrame, logger : &Logger) -> Unit

    EasingFrame::to_string

    fn EasingFrame::to_string(self : EasingFrame) -> String

    FlexDirection

    pub(all) enum FlexDirection {
    Row
    RowReverse
    Column
    ColumnReverse
    } derive(Eq,
    Debug
    )

    Flex direction

    FlexDirection::equal

    FlexDirection::not_equal

    fn FlexDirection::not_equal(x : FlexDirection, y : FlexDirection) -> Bool

    FlexDirection::output

    fn FlexDirection::output(self : FlexDirection, logger : &Logger) -> Unit

    FlexDirection::to_string

    fn FlexDirection::to_string(self : FlexDirection) -> String

    FlexWrap

    pub(all) enum FlexWrap {
    NoWrap
    Wrap
    WrapReverse
    } derive(Eq,
    Debug
    )

    Flex wrap mode
    impl Show for FlexWrap

    FlexWrap::equal

    fn FlexWrap::equal(FlexWrap, FlexWrap) -> Bool

    FlexWrap::not_equal

    fn FlexWrap::not_equal(x : FlexWrap, y : FlexWrap) -> Bool

    FlexWrap::output

    fn FlexWrap::output(self : FlexWrap, logger : &Logger) -> Unit

    FlexWrap::to_repr

    FlexWrap::to_string

    fn FlexWrap::to_string(self : FlexWrap) -> String

    Float

    pub(all) enum Float {
    None
    Left
    Right
    } derive(Eq,
    Debug
    )

    CSS float property
    impl Show for Float

    Float::equal

    fn Float::equal(Float, Float) -> Bool

    Float::not_equal

    fn Float::not_equal(x : Float, y : Float) -> Bool

    Float::output

    fn Float::output(self : Float, logger : &Logger) -> Unit

    Float::to_repr

    Float::to_string

    fn Float::to_string(self : Float) -> String

    GradientStop

    pub(all) struct GradientStop {
    color : Color
    position : Double
    } derive(Eq,
    Debug
    )

    A color stop in a gradient

    GradientStop::equal

    GradientStop::not_equal

    fn GradientStop::not_equal(x : GradientStop, y : GradientStop) -> Bool

    GradientStop::output

    fn GradientStop::output(self : GradientStop, logger : &Logger) -> Unit

    GradientStop::to_string

    fn GradientStop::to_string(self : GradientStop) -> String

    GridAutoFlow

    pub(all) enum GridAutoFlow {
    Row
    Column
    RowDense
    ColumnDense
    } derive(Eq,
    Debug
    )

    Grid auto-flow direction

    GridAutoFlow::equal

    GridAutoFlow::not_equal

    fn GridAutoFlow::not_equal(x : GridAutoFlow, y : GridAutoFlow) -> Bool

    GridAutoFlow::output

    fn GridAutoFlow::output(self : GridAutoFlow, logger : &Logger) -> Unit

    GridAutoFlow::to_string

    fn GridAutoFlow::to_string(self : GridAutoFlow) -> String

    GridLine

    pub(all) struct GridLine {
    start : GridPlacement
    end : GridPlacement
    } derive(Eq,
    Debug
    )

    Grid line range (start and end)
    impl Show for GridLine

    GridLine::auto

    fn GridLine::auto() -> GridLine

    GridLine::equal

    fn GridLine::equal(GridLine, GridLine) -> Bool

    GridLine::not_equal

    fn GridLine::not_equal(x : GridLine, y : GridLine) -> Bool

    GridLine::output

    fn GridLine::output(self : GridLine, logger : &Logger) -> Unit

    GridLine::to_repr

    GridLine::to_string

    fn GridLine::to_string(self : GridLine) -> String

    GridPlacement

    pub(all) enum GridPlacement {
    Auto
    Line(Int)
    Span(Int)
    Named(String)
    NamedLine(Int, String)
    SpanNamed(Int, String)
    } derive(Eq,
    Debug
    )

    Grid line placement for grid items

    GridPlacement::equal

    GridPlacement::not_equal

    fn GridPlacement::not_equal(x : GridPlacement, y : GridPlacement) -> Bool

    GridPlacement::output

    fn GridPlacement::output(self : GridPlacement, logger : &Logger) -> Unit

    GridPlacement::to_string

    fn GridPlacement::to_string(self : GridPlacement) -> String

    GridTemplateKind

    pub(all) enum GridTemplateKind {
    Explicit
    Subgrid
    Masonry
    } derive(Eq,
    Debug
    )

    Kind of a grid template axis (grid-template-columns / -rows). Explicit is the normal <track-list> (or none when the track array is empty); Subgrid / Masonry are the alternative axis values.

    GridTemplateKind::equal

    GridTemplateKind::not_equal

    fn GridTemplateKind::not_equal(x : GridTemplateKind, y : GridTemplateKind) -> Bool

    GridTemplateKind::output

    fn GridTemplateKind::output(self : GridTemplateKind, logger : &Logger) -> Unit

    GridTemplateKind::to_string

    fn GridTemplateKind::to_string(self : GridTemplateKind) -> String

    Line

    pub struct Line[T] {
    start : T
    end : T
    }

    A line segment with start and end points
    impl Show for Line[T]

    Line::new

    fn[T] Line::new(start : T, end : T) -> Line[T]

    Line::output

    fn[T : Show] Line::output(self : Line[T], logger : &Logger) -> Unit

    Line::to_string

    fn[T : Show] Line::to_string(self : Line[T]) -> String

    LinearEasingPoint

    pub(all) struct LinearEasingPoint {
    input : Double
    output : Double
    } derive(Eq,
    Debug
    )

    One point in a CSS linear() easing function.

    LinearEasingPoint::equal

    LinearEasingPoint::new

    fn LinearEasingPoint::new(input : Double, output : Double) -> LinearEasingPoint

    LinearEasingPoint::not_equal

    fn LinearEasingPoint::not_equal(x : LinearEasingPoint, y : LinearEasingPoint) -> Bool

    LinearEasingPoint::output

    fn LinearEasingPoint::output(self : LinearEasingPoint, logger : &Logger) -> Unit

    LinearEasingPoint::to_string

    fn LinearEasingPoint::to_string(self : LinearEasingPoint) -> String

    LinearGradient

    pub(all) struct LinearGradient {
    angle_deg : Double
    stops : Array[GradientStop]
    } derive(Eq,
    Debug
    )

    Linear gradient with angle and color stops

    LinearGradient::equal

    LinearGradient::not_equal

    fn LinearGradient::not_equal(x : LinearGradient, y : LinearGradient) -> Bool

    LinearGradient::output

    fn LinearGradient::output(self : LinearGradient, logger : &Logger) -> Unit

    LinearGradient::to_string

    fn LinearGradient::to_string(self : LinearGradient) -> String

    MathOp

    pub(all) enum MathOp {
    Min
    Max
    Clamp
    } derive(Eq,
    Debug
    )

    CSS comparison/math function selector for min() / max() / clamp().

    MathOp::equal

    fn MathOp::equal(MathOp, MathOp) -> Bool

    MathOp::not_equal

    fn MathOp::not_equal(x : MathOp, y : MathOp) -> Bool

    MathOp::to_repr

    MaxTrackSizing

    pub(all) enum MaxTrackSizing {
    Length(Double)
    Percent(Double)
    Fr(Double)
    Auto
    MinContent
    MaxContent
    } derive(Eq,
    Debug
    )

    Maximum track sizing function for minmax()

    MaxTrackSizing::equal

    MaxTrackSizing::not_equal

    fn MaxTrackSizing::not_equal(x : MaxTrackSizing, y : MaxTrackSizing) -> Bool

    MaxTrackSizing::output

    fn MaxTrackSizing::output(self : MaxTrackSizing, logger : &Logger) -> Unit

    MaxTrackSizing::to_string

    fn MaxTrackSizing::to_string(self : MaxTrackSizing) -> String

    MinTrackSizing

    pub(all) enum MinTrackSizing {
    Length(Double)
    Percent(Double)
    Auto
    MinContent
    MaxContent
    } derive(Eq,
    Debug
    )

    Minimum track sizing function for minmax()

    MinTrackSizing::equal

    MinTrackSizing::not_equal

    fn MinTrackSizing::not_equal(x : MinTrackSizing, y : MinTrackSizing) -> Bool

    MinTrackSizing::output

    fn MinTrackSizing::output(self : MinTrackSizing, logger : &Logger) -> Unit

    MinTrackSizing::to_string

    fn MinTrackSizing::to_string(self : MinTrackSizing) -> String

    Overflow

    pub(all) enum Overflow {
    Visible
    Hidden
    Clip
    Scroll
    Auto
    } derive(Eq,
    Debug
    )

    CSS overflow property
    impl Show for Overflow

    Overflow::equal

    fn Overflow::equal(Overflow, Overflow) -> Bool

    Overflow::not_equal

    fn Overflow::not_equal(x : Overflow, y : Overflow) -> Bool

    Overflow::output

    fn Overflow::output(self : Overflow, logger : &Logger) -> Unit

    Overflow::to_repr

    Overflow::to_string

    fn Overflow::to_string(self : Overflow) -> String

    Point

    pub struct Point[T] {
    x : T
    y : T
    }

    2D point with x and y coordinates
    impl Show for Point[T]

    Point::map

    fn[T, U] Point::map(self : Point[T], f : (T) -> U) -> Point[U]

    Point::new

    fn[T] Point::new(x : T, y : T) -> Point[T]

    Point::output

    fn[T : Show] Point::output(self : Point[T], logger : &Logger) -> Unit

    Point::to_string

    fn[T : Show] Point::to_string(self : Point[T]) -> String

    Point::zero

    fn Point::zero() -> Point[Double]

    Position

    pub(all) enum Position {
    Static
    Relative
    Absolute
    Fixed
    } derive(Eq,
    Debug
    )

    CSS position property
    impl Show for Position

    Position::equal

    fn Position::equal(Position, Position) -> Bool

    Position::not_equal

    fn Position::not_equal(x : Position, y : Position) -> Bool

    Position::output

    fn Position::output(self : Position, logger : &Logger) -> Unit

    Position::to_repr

    Position::to_string

    fn Position::to_string(self : Position) -> String

    Rect

    pub(all) struct Rect[T] {
    left : T
    right : T
    top : T
    bottom : T
    } derive(Eq,
    Debug
    )

    Rectangle with left, right, top, bottom edges Used for margin, padding, border, inset
    impl Show for Rect[T]

    Rect::all

    fn[T] Rect::all(value : T) -> Rect[T]

    Create a rect with all sides set to the same value

    Rect::equal

    fn[T : Eq] Rect::equal(Rect[T], Rect[T]) -> Bool

    Rect::horizontal_sum

    fn Rect::horizontal_sum(self : Rect[Double]) -> Double

    Sum of left and right (horizontal axis)

    Rect::map

    fn[T, U] Rect::map(self : Rect[T], f : (T) -> U) -> Rect[U]

    Rect::new

    fn[T] Rect::new(left : T, right : T, top : T, bottom : T) -> Rect[T]

    Rect::not_equal

    fn[T : Eq] Rect::not_equal(x : Rect[T], y : Rect[T]) -> Bool

    Rect::output

    fn[T : Show] Rect::output(self : Rect[T], logger : &Logger) -> Unit

    Rect::to_string

    fn[T : Show] Rect::to_string(self : Rect[T]) -> String

    Rect::vertical_sum

    fn Rect::vertical_sum(self : Rect[Double]) -> Double

    Sum of top and bottom (vertical axis)

    Rect::zero

    fn Rect::zero() -> Rect[Double]

    RepeatCount

    pub(all) enum RepeatCount {
    Count(Int)
    AutoFill
    AutoFit
    } derive(Eq,
    Debug
    )

    Repeat count for repeat() function
    impl Show for RepeatCount

    RepeatCount::equal

    fn RepeatCount::equal(RepeatCount, RepeatCount) -> Bool

    RepeatCount::not_equal

    fn RepeatCount::not_equal(x : RepeatCount, y : RepeatCount) -> Bool

    RepeatCount::output

    fn RepeatCount::output(self : RepeatCount, logger : &Logger) -> Unit

    RepeatCount::to_string

    fn RepeatCount::to_string(self : RepeatCount) -> String

    SingleTrackSizing

    pub(all) enum SingleTrackSizing {
    Length(Double)
    Percent(Double)
    Fr(Double)
    Auto
    MinContent
    MaxContent
    MinMax(MinTrackSizing, MaxTrackSizing)
    FitContentLength(Double)
    FitContentPercent(Double)
    } derive(Eq,
    Debug
    )

    Single track sizing function (non-repeating)

    SingleTrackSizing::equal

    SingleTrackSizing::not_equal

    fn SingleTrackSizing::not_equal(x : SingleTrackSizing, y : SingleTrackSizing) -> Bool

    SingleTrackSizing::output

    fn SingleTrackSizing::output(self : SingleTrackSizing, logger : &Logger) -> Unit

    SingleTrackSizing::to_string

    fn SingleTrackSizing::to_string(self : SingleTrackSizing) -> String

    Size

    pub struct Size[T] {
    width : T
    height : T
    }

    2D size with width and height
    impl Show for Size[T]

    Size::map

    fn[T, U] Size::map(self : Size[T], f : (T) -> U) -> Size[U]

    Size::new

    fn[T] Size::new(width : T, height : T) -> Size[T]

    Size::output

    fn[T : Show] Size::output(self : Size[T], logger : &Logger) -> Unit

    Size::to_string

    fn[T : Show] Size::to_string(self : Size[T]) -> String

    Size::zero

    fn Size::zero() -> Size[Double]

    StepPosition

    pub(all) enum StepPosition {
    Start
    End
    JumpNone
    JumpBoth
    } derive(Eq,
    Debug
    )

    Step timing function jump position.

    StepPosition::equal

    StepPosition::not_equal

    fn StepPosition::not_equal(x : StepPosition, y : StepPosition) -> Bool

    StepPosition::output

    fn StepPosition::output(self : StepPosition, logger : &Logger) -> Unit

    StepPosition::to_string

    fn StepPosition::to_string(self : StepPosition) -> String

    TrackSizingFunction

    pub(all) enum TrackSizingFunction {
    Length(Double)
    Percent(Double)
    Fr(Double)
    Auto
    MinContent
    MaxContent
    MinMax(MinTrackSizing, MaxTrackSizing)
    Repeat(RepeatCount, Array[SingleTrackSizing], Array[Array[String]])
    FitContentLength(Double)
    FitContentPercent(Double)
    } derive(Eq,
    Debug
    )

    Track sizing function for grid-template-rows/columns

    TrackSizingFunction::equal

    TrackSizingFunction::not_equal

    TrackSizingFunction::output

    fn TrackSizingFunction::output(self : TrackSizingFunction, logger : &Logger) -> Unit

    TrackSizingFunction::to_string

    fn TrackSizingFunction::to_string(self : TrackSizingFunction) -> String

    apply_aspect_ratio_height

    fn apply_aspect_ratio_height(width : Double, aspect_ratio : Double?) -> Double?

    Apply aspect ratio to calculate height from width. Returns height if aspect_ratio is defined, otherwise returns None.

    apply_aspect_ratio_width

    fn apply_aspect_ratio_width(height : Double, aspect_ratio : Double?) -> Double?

    Apply aspect ratio to calculate width from height. Returns width if aspect_ratio is defined, otherwise returns None.

    apply_math_op

    fn apply_math_op(op : MathOp, vals : Array[Double]) -> Double

    Apply a min()/max()/clamp() reduction over already-resolved scalar values. clamp expects exactly 3 values (lo, val, hi); other lengths fall back to the first value (or 0.0 when empty) so callers never panic on malformed input.

    clamp

    fn clamp(value : Double, min_val : Double, max_val : Double) -> Double

    Clamp a value between min and max CSS spec: min takes precedence over max when they conflict So apply max first (value cannot exceed max), then min (value cannot go below min)

    max

    fn max(a : Double, b : Double) -> Double

    min

    fn min(a : Double, b : Double) -> Double

    parse_easing

    fn parse_easing(value : String) -> Easing?

    Parse a CSS easing keyword or basic timing function.

    resolve_dimensions_with_aspect_ratio

    fn resolve_dimensions_with_aspect_ratio(width : Double?, height : Double?, aspect_ratio : Double?, min_width : Double, max_width : Double, min_height : Double, max_height : Double) -> (Double?, Double?)

    Resolve dimensions with aspect ratio. Given known dimension (width or height), aspect_ratio, and min/max constraints, returns the final (width, height) pair.

    • If width is known, height = width / aspect_ratio
    • If height is known, width = height * aspect_ratio
    • If both are known, aspect_ratio overrides the height
    • Min/max constraints are applied after aspect ratio calculation

    resolve_rect

    fn resolve_rect(rect : Rect[Dimension], parent_width : Double) -> Rect[Double]

    Resolve a Rect[Dimension] (margin/padding/border) to Rect[Double] Uses parent_width for percentage resolution (CSS spec: percentages resolve against width)

    resolve_rect_intrinsic

    fn resolve_rect_intrinsic(rect : Rect[Dimension]) -> Rect[Double]

    Resolve a dimension rect for intrinsic sizing Percentages resolve to 0 in intrinsic sizing contexts