Skip to content

MarginModifier

A Modifier.Element that adds outer spacing (margin) around a composable.

Margins are applied outside the node bounds and are accumulated additively when multiple MarginModifier elements are chained.

Constructors

MarginModifier

constructor(margin: MarginValues)

Properties

horizontal

Total horizontal margin (left + right).

margin

vertical

val vertical: Int

Total vertical margin (top + bottom).

Functions

all

open override fun all(predicate: (Modifier.Element<*>) -> Boolean): Boolean

Returns true if predicate returns true for all Elements in this Modifier or if this Modifier contains no Elements.

any

open override fun any(predicate: (Modifier.Element<*>) -> Boolean): Boolean

Returns true if predicate returns true for any Element in this Modifier.

background

@Stable



fun Modifier.background(color: Int): Modifier

Fills the composable's background with a solid ARGB integer color.

@Stable



fun Modifier.background(color: KColor): Modifier

Fills the composable's background with a solid color.

@Stable



fun Modifier.background(startColor: Int, endColor: Int): Modifier

Fills the composable's background with a gradient between two ARGB integer colours.

@Stable



fun Modifier.background(startColor: KColor, endColor: KColor): Modifier

Fills the composable's background with a gradient from startColor to endColor going top-to-bottom.

@Stable



fun Modifier.background(
    startColor: Int, 
    endColor: Int, 
    gradientDirection: GradientDirection = GradientDirection.TOP_TO_BOTTOM
): Modifier

Fills the composable's background with a directional gradient between two ARGB integer colours.

@Stable



fun Modifier.background(
    startColor: KColor, 
    endColor: KColor, 
    gradientDirection: GradientDirection = GradientDirection.TOP_TO_BOTTOM
): Modifier

Fills the composable's background with a gradient from startColor to endColor in the given gradientDirection.

border

@Stable



fun Modifier.border(color: Int, thickness: Int = 1): Modifier

Adds a border using a raw ARGB integer color.

@Stable



fun Modifier.border(color: KColor, thickness: Int = 1): Modifier

Adds a border of thickness pixels and color to the composable.

combinedClickable

@Stable



fun <T : AUINode> Modifier.combinedClickable(
    onLongClick: (T, PointerEvent) -> Unit? = null, 
    onDoubleClick: (T, PointerEvent) -> Unit? = null, 
    onClick: (T, PointerEvent) -> Unit? = null
): Modifier

Adds multiple click-type handlers to a composable in a single modifier.

debug

@Stable



fun Modifier.debug(vararg strs: String): Modifier

Attaches one or more plain-text debug strings to the composable.

@Stable



fun Modifier.debug(vararg comps: Component): Modifier

Attaches one or more formatted Component debug labels to the composable.

fillMaxHeight

@Stable



fun Modifier.fillMaxHeight(percent: Double = 1.0): Modifier

Forces the node to fill percent of the maximum available height.

fillMaxSize

@Stable



fun Modifier.fillMaxSize(percent: Double = 1.0): Modifier

Forces the node to fill percent of both the available width and height.

fillMaxWidth

@Stable



fun Modifier.fillMaxWidth(percent: Double = 1.0): Modifier

Forces the node to fill percent of the maximum available width.

foldIn

open override fun <R> foldIn(initial: R, operation: (R, Modifier.Element<*>) -> R): R

Accumulates a value starting with initial and applying operation to the current value and each element from outside in.

foldOut

open override fun <R> foldOut(initial: R, operation: (Modifier.Element<*>, R) -> R): R

Accumulates a value starting with initial and applying operation to the current value and each element from inside out.

getAll

inline fun <T : Modifier.Element<T>> Modifier.getAll(): List<T>

Collects all Modifier.Element instances of type T from this modifier chain.

height

@Stable



fun Modifier.height(height: Int): Modifier

Sets an exact fixed height of height pixels (width unconstrained).

margin

@Stable



fun Modifier.margin(
    left: Int = 0, 
    right: Int = 0, 
    top: Int = 0, 
    bottom: Int = 0
): Modifier

Adds independent per-side margins around this composable.

Parameters

  • left: Left margin in pixels.

  • right: Right margin in pixels.

  • top: Top margin in pixels.

  • bottom: Bottom margin in pixels.

@Stable



fun Modifier.margin(horizontal: Int = 0, vertical: Int = 0): Modifier

Adds symmetric horizontal and vertical margins.

Parameters

  • horizontal: Margin applied to both the left and right sides.

  • vertical: Margin applied to both the top and bottom sides.

@Stable



fun Modifier.margin(all: Int = 0): Modifier

Adds a uniform margin on all four sides.

Parameters

  • all: The margin in pixels applied to every side.

mergeWith

open override fun mergeWith(other: MarginModifier): MarginModifier

modifyInnerConstraints

Adjusts the Constraints passed into this node for measuring its children.

modifyLayoutConstraints

open fun modifyLayoutConstraints(measuredSize: IntSize, constraints: Constraints): Constraints

Adjusts the Constraints as seen by the parent when it lays out this node.

modifyPosition

open override fun modifyPosition(offset: IntCoordinates): IntCoordinates

Shifts the node's placement by transforming the parent-supplied offset.

Return

The adjusted position for this node.

Parameters

  • offset: The position computed by the parent layout.

offset

@Stable



fun Modifier.offset(x: Int, y: Int): Modifier

Shifts the composable by (x, y) pixels after layout.

The shift does not affect the space reserved for the composable in its parent layout.

Parameters

  • x: Horizontal pixel offset (positive moves right).

  • y: Vertical pixel offset (positive moves down).

onCharTyped

Registers a character-typed handler on this composable.

onDrag

@Stable



fun <T : AUINode> Modifier.onDrag(global: Boolean = false, onDragEvent: (T, DragEvent) -> Unit): Modifier

Registers a drag event handler on this composable.

onGloballyPositioned

fun Modifier.onGloballyPositioned(onGloballyPositioned: (IntCoordinates) -> Unit): Modifier

onKeyEvent

Registers a key-press handler on this composable.

onPointerEvent

@Stable



fun <T : AUINode> Modifier.onPointerEvent(type: PointerEventType, onEvent: (T, PointerEvent) -> Unit): Modifier

Registers a handler for the given pointer type on this composable.

onScroll

@Stable



fun <T : AUINode> Modifier.onScroll(global: Boolean = false, onScrollEvent: (T, ScrollEvent) -> Unit): Modifier

Registers a scroll event handler on this composable.

onSizeChanged

fun Modifier.onSizeChanged(onSizeChanged: (Size) -> Unit): Modifier

Notifies callback of any size changes to element.

padding

@Stable



fun Modifier.padding(
    left: Int = 0, 
    right: Int = 0, 
    top: Int = 0, 
    bottom: Int = 0
): Modifier

Adds independent per-side padding inside this composable.

Parameters

  • left: Left padding in pixels.

  • right: Right padding in pixels.

  • top: Top padding in pixels.

  • bottom: Bottom padding in pixels.

@Stable



fun Modifier.padding(horizontal: Int = 0, vertical: Int = 0): Modifier

Adds symmetric horizontal and vertical padding.

Parameters

  • horizontal: Padding applied to both the left and right sides.

  • vertical: Padding applied to both the top and bottom sides.

@Stable



fun Modifier.padding(all: Int = 0): Modifier

Adds uniform padding on all four sides.

Parameters

  • all: The padding in pixels applied to every side.

size

@Stable



fun Modifier.size(size: Int): Modifier

Sets an exact fixed square size of size × size pixels.

@Stable



fun Modifier.size(width: Int, height: Int): Modifier

Sets an exact fixed size of width × height pixels.

sizeIn

@Stable



fun Modifier.sizeIn(
    minWidth: Int = 0, 
    maxWidth: Int = Integer.MAX_VALUE, 
    minHeight: Int = 0, 
    maxHeight: Int = Integer.MAX_VALUE
): Modifier

Constrains the node's width and height to be within the given min/max bounds.

texture

@Stable



fun Modifier.texture(texture: ResourceLocation): Modifier

Overrides the texture of theme-aware composables with the given ResourceLocation.

then

open infix fun then(other: Modifier): Modifier

Concatenates this modifier with another.

toComponent

open fun toComponent(): Component

Converts this modifier element to a debug Component representation.

tooltip

@Stable



fun Modifier.tooltip(vararg tooltips: TooltipComponent): Modifier

Attaches one or more TooltipComponents to this composable.

toString

open override fun toString(): String

unsafeMergeWith

width

@Stable



fun Modifier.width(width: Int): Modifier

Sets an exact fixed width of width pixels (height unconstrained).

zIndex

@Stable



fun Modifier.zIndex(zIndex: Float): Modifier

Sets the rendering depth of this composable relative to its siblings.

Higher values appear on top and receive input events before lower-valued siblings.

Parameters

  • zIndex: The z-index to apply.