Skip to content

Modifier

interface Modifier

An ordered, immutable collection of modifier elements that decorate or add behavior to Compose UI elements. For example, backgrounds, padding and click event listeners decorate or add behavior to rows, text or buttons.

This class is taken from the androidx Jetpack Compose UI library so as to avoid extra dependencies.

Inheritors

Types

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.

Element

A single element contained within a Modifier chain.

Functions

all

abstract 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

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

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.

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.

foldIn

abstract 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

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

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, y: Int): Modifier

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

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

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 fun then(other: Modifier): Modifier

Concatenates this modifier with another.

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

tooltip

@Stable



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

Attaches one or more TooltipComponents to this composable.

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.