Skip to content

Companion

object Companion : Modifier

The companion object Modifier is the empty, default, or starter Modifier that contains no elements. Use it to create a new Modifier using modifier extension factory functions.

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.

The strings are displayed in the debug overlay when debug mode is active.

Parameters

  • strs: The strings to attach.
@Stable



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

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

Parameters

  • comps: The components to attach.

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.

Parameters

  • percent: Fraction of available height (0.0–1.0). Default 1.0 fills all 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.

Parameters

  • percent: Fraction of available space (0.0–1.0). Default 1.0 fills all available space.

fillMaxWidth

@Stable



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

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

Parameters

  • percent: Fraction of available width (0.0–1.0). Default 1.0 fills all 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.

Elements wrap one another in a chain from left to right; an Element that appears to the left of another in a + expression or in operation's parameter order affects all of the elements that appear after it. foldIn may be used to accumulate a value starting from the parent or head of the modifier chain to the final wrapped child.

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.

Elements wrap one another in a chain from left to right; an Element that appears to the left of another in a + expression or in operation's parameter order affects all of the elements that appear after it. foldOut may be used to accumulate a value starting from the child or tail of the modifier chain up to the parent or head of the chain.

getAll

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

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

Return

A list of all modifier elements matching type T, in declaration order.

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(all: Int = 0): Modifier

Adds a uniform margin on all four sides.

@Stable



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

Adds symmetric horizontal and vertical margins.

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

offset

@Stable



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

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

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(all: Int = 0): Modifier

Adds uniform padding on all four sides.

@Stable



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

Adds symmetric horizontal and vertical 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.

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(width: Int, height: Int): Modifier

Sets an exact fixed size of width × height pixels.

@Stable



fun Modifier.size(size: Int): Modifier

Sets an exact fixed square size of size × size 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.

Parameters

  • minWidth: Minimum width in pixels.

  • maxWidth: Maximum width in pixels.

  • minHeight: Minimum height in pixels.

  • maxHeight: Maximum height in pixels.

texture

@Stable



fun Modifier.texture(texture: ResourceLocation): Modifier

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

then

open infix override fun then(other: Modifier): Modifier

Concatenates this modifier with another.

Returns a Modifier representing this modifier followed by other in sequence.

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

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.