Composable Component

Button

Button is a component used for exposing actions to a user.

RevenueCat

RevenueCat

Add subscriptions to your apps in minutes

Ad Get started for free

Button

Android
@Composable
public fun Button(
    onClick: () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    buttonSize: ButtonSize = ButtonSize.Medium,
    leadingIcon: @Composable (() -> Unit)? = null,
    trailingIcon: @Composable (() -> Unit)? = null,
    shape: Shape = GlimmerTheme.shapes.large,
    color: Color = GlimmerTheme.colors.surface,
    contentColor: Color = calculateContentColor(color),
    border: BorderStroke? = SurfaceDefaults.border(),
    contentPadding: PaddingValues = ButtonDefaults.contentPadding(buttonSize),
    interactionSource: MutableInteractionSource? = null,
    content: @Composable RowScope.() -> Unit,
)

Parameters

onClick called when this button is clicked
modifier the Modifier to be applied to this button
enabled controls the enabled state of this button. When false, this button will not respond to user input
buttonSize the size variant of this button, represented as a ButtonSize. Changing buttonSize will affect some default values used by this button - but the final resulting size of the button will still be calculated based on the content of the button, and any provided size modifiers such as androidx.compose.foundation.layout.size. For example, setting a 100.dp size using a size modifier will result in the same layout size regardless of buttonSize, but the provided buttonSize will affect other properties such as padding values and the size of icons.
leadingIcon optional leading icon to be placed before the content. This is typically an Icon.
trailingIcon optional trailing icon to be placed after the content. This is typically an Icon.
shape the Shape used to clip this button, and also used to draw the background and border
color background color of this button
contentColor content color used by components inside content, leadingIcon, and trailingIcon.
border the border to draw around this button
contentPadding the spacing values to apply internally between the container and the content
interactionSource an optional hoisted MutableInteractionSource for observing and emitting Interactions for this button. You can use this to change the button's appearance or preview the button in different states. Note that if null is provided, interactions will still happen internally.
content the main content, typically Text, to display inside this button