Skip to content

PaddingModifier

A Modifier.Element that adds inner spacing (padding) inside a composable.

Padding is applied inside the node bounds and reduces the available space for children.

Constructors

PaddingModifier

constructor(padding: PaddingValues)

Properties

horizontal

Total horizontal padding (left + right).

padding

vertical

val vertical: Int

Total vertical padding (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.

clipToBounds

Restricts hit-testing of this node's descendants to its own bounds - see ClipToBoundsModifier.

combinedClickable

@Stable



fun <T : UINode> 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.

draggable

fun Modifier.draggable(
    state: DraggableState, 
    orientation: Orientation, 
    enabled: Boolean = true, 
    interactionSource: MutableInteractionSource? = null, 
    onDragStarted: () -> Unit = {}, 
    onDragStopped: () -> Unit = {}
): Modifier

Recognizes a drag gesture along orientation and reports each movement as a delta to state - the net.kernelpanicsoft.archie equivalent of Compose Foundation's Modifier.draggable(state, orientation, enabled, interactionSource, onDragStarted, onDragStopped) (dropping startDragImmediately/reverseDirection, which have no equivalent concept here).

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.

focusable

@Composable



fun Modifier.focusable(enabled: Boolean = true, interactionSource: MutableInteractionSource? = null): Modifier

Registers this composable as a vanilla keyboard/controller focus-navigation stop - the net.kernelpanicsoft.archie equivalent of Compose Foundation's Modifier.focusable.

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).

hoverable

fun Modifier.hoverable(interactionSource: MutableInteractionSource, enabled: Boolean = true): Modifier

Emits HoverInteraction as the pointer enters/exits - matches Compose Foundation's own Modifier.hoverable(interactionSource, enabled) signature exactly. Observe the result via net.kernelpanicsoft.archie.gui.interaction.collectIsHoveredAsState, same as Android; this has no enter/exit callbacks of its own to hook into.

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: PaddingModifier): PaddingModifier

modifyInnerConstraints

open override fun modifyInnerConstraints(constraints: Constraints): Constraints

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

Use this to reduce the available space before measuring children (e.g. padding).

Return

The constraints to use when measuring this node's children.

Parameters

  • constraints: The constraints supplied by this node's parent.

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 fun modifyPosition(offset: IntOffset): IntOffset

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

offset

@Stable



fun Modifier.offset(x: Int = 0, y: Int = 0): 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 : UINode> 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

Registers onGloballyPositioned to be called with the node's absolute screen coordinates every time it is placed (e.g. on layout changes).

onKeyEvent

Registers a key-press handler on this composable.

onPointerEvent

@Stable



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

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

onScroll

@Stable



fun <T : UINode> 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.

pressable

fun Modifier.pressable(
    interactionSource: MutableInteractionSource, 
    enabled: Boolean = true, 
    onPress: (UINode, Int) -> Unit
): Modifier

Emits PressInteraction and invokes onPress across a press - the net.kernelpanicsoft.archie equivalent of the press-recognition half of Compose Foundation's Modifier.clickable. Observe release via net.kernelpanicsoft.archie.gui.interaction.collectIsPressedAsState rather than a callback - onPress is kept only because, unlike hover, a press is inherently an action (the click itself), not just state to observe.

selectable

@Composable



fun Modifier.selectable(
    selected: Boolean, 
    enabled: Boolean = true, 
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, 
    onClick: () -> Unit
): Modifier

Marks this composable as a selectable option within a mutually exclusive group (radio button/tab) - the net.kernelpanicsoft.archie equivalent of Compose Foundation's Modifier.selectable.

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.

toggleable

@Composable



fun Modifier.toggleable(
    value: Boolean, 
    enabled: Boolean = true, 
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, 
    onValueChange: (Boolean) -> Unit
): Modifier

Marks this composable as a togglable boolean control (checkbox/switch) - the net.kernelpanicsoft.archie equivalent of Compose Foundation's Modifier.toggleable.

tooltip

@Stable



fun Modifier.tooltip(lines: List<Component>): Modifier

tooltip, for lines a caller already holds as a list.

@Stable



fun Modifier.tooltip(vararg lines: Component): Modifier

Shows lines as a tooltip while the pointer is over 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.