State of Compose 2023 results are in! Click here to learn more

← Back to Material Compose

Button

Component
in
Material
. Since 0.1.0-dev15

Overview

Code Examples

Video

<a href="https://material.io/components/buttons#contained-button" class="external" target="_blank">Material Design contained button</a>.

Contained buttons are high-emphasis, distinguished by their use of elevation and fill. They contain actions that are primary to your app.

!Contained button image(https://developer.android.com/images/reference/androidx/compose/material/contained-button.png)

The default text style for internal Text components will be set to Typography.button.

Overloads

Button

@OptIn(ExperimentalMaterialApi::class)
@Composable
fun Button(
    onClick: () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
    elevation: ButtonElevation? = ButtonDefaults.elevation(),
    shape: Shape = MaterialTheme.shapes.small,
    border: BorderStroke? = null,
    colors: ButtonColors = ButtonDefaults.buttonColors(),
    contentPadding: PaddingValues = ButtonDefaults.ContentPadding,
    content: @Composable RowScope.() -> Unit
)

Parameters

NameDescription
onClickWill be called when the user clicks the button
modifierModifier to be applied to the button
enabledControls the enabled state of the button. When false, this button will not be clickable
interactionSourcethe MutableInteractionSource representing the stream of Interactions for this Button. You can create and pass in your own remembered MutableInteractionSource if you want to observe Interactions and customize the appearance / behavior of this Button in different Interactions.
elevationButtonElevation used to resolve the elevation for this button in different states. This controls the size of the shadow below the button. Pass null here to disable elevation for this button. See ButtonDefaults.elevation.
shapeDefines the button's shape as well as its shadow
borderBorder to draw around the button
colorsButtonColors that will be used to resolve the background and content color for this button in different states. See ButtonDefaults.buttonColors.
contentPaddingThe spacing values to apply internally between the container and the conten