Build apps faster with our new App builder! Check it out →

AssistChip

Common

Component in Material 3 Compose

Chips help people enter information, make selections, filter content, or trigger actions. Chips can show multiple interactive elements together in the same area, such as a list of selectable movie times, or a series of email contacts.

Assist chips represent smart or automated actions that can span multiple apps, such as opening a calendar event from the home screen. Assist chips function as though the user asked an assistant to complete the action. They should appear dynamically and contextually in a UI.

Assist chip
image

Last updated:

Installation

dependencies {
   implementation("androidx.compose.material3:material3:1.4.0-alpha02")
}

Overloads

@Composable
fun AssistChip(
    onClick: () -> Unit,
    label: @Composable () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    leadingIcon: @Composable (() -> Unit)? = null,
    trailingIcon: @Composable (() -> Unit)? = null,
    shape: Shape = AssistChipDefaults.shape,
    colors: ChipColors = AssistChipDefaults.assistChipColors(),
    elevation: ChipElevation? = AssistChipDefaults.assistChipElevation(),
    border: BorderStroke? = AssistChipDefaults.assistChipBorder(enabled),
    interactionSource: MutableInteractionSource? = null,
)

Parameters

namedescription
onClickcalled when this chip is clicked
labeltext label for this chip
modifierthe [Modifier] to be applied to this chip
enabledcontrols the enabled state of this chip. When false, this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services.
leadingIconoptional icon at the start of the chip, preceding the [label] text
trailingIconoptional icon at the end of the chip
shapedefines the shape of this chip's container, border (when [border] is not null), and shadow (when using [elevation])
colors[ChipColors] that will be used to resolve the colors used for this chip in different states. See [AssistChipDefaults.assistChipColors].
elevation[ChipElevation] used to resolve the elevation for this chip in different states. This controls the size of the shadow below the chip. Additionally, when the container color is [ColorScheme.surface], this controls the amount of primary color applied as an overlay. See [AssistChipDefaults.assistChipElevation].
borderthe border to draw around the container of this chip. Pass null for no border. See [AssistChipDefaults.assistChipBorder].
interactionSourcean optional hoisted [MutableInteractionSource] for observing and emitting [Interaction]s for this chip. You can use this to change the chip's appearance or preview the chip in different states. Note that if null is provided, interactions will still happen internally.
@Suppress("DEPRECATION")
@Deprecated(
    "Maintained for binary compatibility. Use version with AssistChip that take a" +
        " BorderStroke instead",
    replaceWith =
        ReplaceWith(
            "AssistChip(onClick, label, modifier, enabled,leadingIcon," +
                " trailingIcon, shape, colors, elevation, border, interactionSource"
        ),
    level = DeprecationLevel.HIDDEN
)
@Composable
fun AssistChip(
    onClick: () -> Unit,
    label: @Composable () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    leadingIcon: @Composable (() -> Unit)? = null,
    trailingIcon: @Composable (() -> Unit)? = null,
    shape: Shape = AssistChipDefaults.shape,
    colors: ChipColors = AssistChipDefaults.assistChipColors(),
    elevation: ChipElevation? = AssistChipDefaults.assistChipElevation(),
    border: ChipBorder? = AssistChipDefaults.assistChipBorder(),
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
)

Parameters

namedescription
onClickcalled when this chip is clicked
labeltext label for this chip
modifierthe [Modifier] to be applied to this chip
enabledcontrols the enabled state of this chip. When false, this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services.
leadingIconoptional icon at the start of the chip, preceding the [label] text
trailingIconoptional icon at the end of the chip
shapedefines the shape of this chip's container, border (when [border] is not null), and shadow (when using [elevation])
colors[ChipColors] that will be used to resolve the colors used for this chip in different states. See [AssistChipDefaults.assistChipColors].
elevation[ChipElevation] used to resolve the elevation for this chip in different states. This controls the size of the shadow below the chip. Additionally, when the container color is [ColorScheme.surface], this controls the amount of primary color applied as an overlay. See [AssistChipDefaults.assistChipElevation].
borderthe border to draw around the container of this chip. Pass null for no border. See [AssistChipDefaults.assistChipBorder].
interactionSourcethe [MutableInteractionSource] representing the stream of [Interaction]s for this chip. You can create and pass in your own remembered instance to observe [Interaction]s and customize the appearance / behavior of this chip in different states.

Code Example

AssistChipSample

@Preview
@Composable
fun AssistChipSample() {
    AssistChip(
        onClick = { /* Do something! */ },
        label = { Text("Assist Chip") },
        leadingIcon = {
            Icon(
                Icons.Filled.Settings,
                contentDescription = "Localized description",
                Modifier.size(AssistChipDefaults.IconSize)
            )
        }
    )
}
by @alexstyl