SuggestionChip

Composable Component

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.

Suggestion chip image
Common
@Composable
fun SuggestionChip(
    onClick: () -> Unit,
    label: @Composable () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    icon: @Composable (() -> Unit)? = null,
    shape: Shape = SuggestionChipDefaults.shape,
    colors: ChipColors = SuggestionChipDefaults.suggestionChipColors(),
    elevation: ChipElevation? = SuggestionChipDefaults.suggestionChipElevation(),
    border: BorderStroke? = SuggestionChipDefaults.suggestionChipBorder(enabled),
    horizontalArrangement: Arrangement.Horizontal = SuggestionChipDefaults.horizontalArrangement(),
    contentPadding: PaddingValues = SuggestionChipDefaults.ContentPadding,
    interactionSource: MutableInteractionSource? = null,
) =
    Chip(
        modifier = modifier,
        onClick = onClick,
        enabled = enabled,
        label = label,
        labelTextStyle = SuggestionChipTokens.LabelTextFont.value,
        labelColor = colors.labelColor(enabled),
        leadingIcon = icon,
        trailingIcon = null,
        shape = shape,
        colors = colors,
        elevation = elevation,
        border = border,
        minHeight = SuggestionChipDefaults.Height,
        horizontalArrangement = horizontalArrangement,
        paddingValues = contentPadding,
        interactionSource = interactionSource,
    )

Parameters

onClick called when this chip is clicked
label text label for this chip
modifier the Modifier to be applied to this chip
enabled controls 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.
icon optional icon at the start of the chip, preceding the label text
shape defines 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 SuggestionChipDefaults.suggestionChipColors.
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 SuggestionChipDefaults.suggestionChipElevation.
border the border to draw around the container of this chip. Pass null for no border. See SuggestionChipDefaults.suggestionChipBorder.
horizontalArrangement the horizontal arrangement of the chip's children. Note that while SuggestionChip only has a label and an icon, the horizontal arrangement is designed to support three children (e.g. icon, label, icon) for consistency across chips. If there isn't an icon, then the horizontal padding between the label and the border will be the sum of contentPadding and the spacing in this horizontalArrangement.
contentPadding the padding around the content of this chip, including the icon and label. See SuggestionChipDefaults.ContentPadding
interactionSource an optional hoisted MutableInteractionSource for observing and emitting Interactions 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.
Common
Deprecated Maintained for binary compatibility
@Composable
fun SuggestionChip(
    onClick: () -> Unit,
    label: @Composable () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    icon: @Composable (() -> Unit)? = null,
    shape: Shape = SuggestionChipDefaults.shape,
    colors: ChipColors = SuggestionChipDefaults.suggestionChipColors(),
    elevation: ChipElevation? = SuggestionChipDefaults.suggestionChipElevation(),
    border: BorderStroke? = SuggestionChipDefaults.suggestionChipBorder(enabled),
    interactionSource: MutableInteractionSource? = null,
) =
    SuggestionChip(
        modifier = modifier,
        onClick = onClick,
        enabled = enabled,
        label = label,
        icon = icon,
        shape = shape,
        colors = colors,
        elevation = elevation,
        border = border,
        horizontalArrangement = SuggestionChipDefaults.horizontalArrangement(),
        contentPadding = SuggestionChipDefaults.ContentPadding,
        interactionSource = interactionSource,
    )

Parameters

onClick called when this chip is clicked
label text label for this chip
modifier the Modifier to be applied to this chip
enabled controls 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.
icon optional icon at the start of the chip, preceding the label text
shape defines 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 SuggestionChipDefaults.suggestionChipColors.
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 SuggestionChipDefaults.suggestionChipElevation.
border the border to draw around the container of this chip. Pass null for no border. See SuggestionChipDefaults.suggestionChipBorder.
interactionSource an optional hoisted MutableInteractionSource for observing and emitting Interactions 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.
Common
Deprecated Maintained for binary compatibility. Use version with SuggestionChip that take a BorderStroke instead
@Composable
fun SuggestionChip(
    onClick: () -> Unit,
    label: @Composable () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    icon: @Composable (() -> Unit)? = null,
    shape: Shape = SuggestionChipDefaults.shape,
    colors: ChipColors = SuggestionChipDefaults.suggestionChipColors(),
    elevation: ChipElevation? = SuggestionChipDefaults.suggestionChipElevation(),
    border: ChipBorder? = SuggestionChipDefaults.suggestionChipBorder(),
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
) =
    Chip(
        modifier = modifier,
        onClick = onClick,
        enabled = enabled,
        label = label,
        labelTextStyle = SuggestionChipTokens.LabelTextFont.value,
        labelColor = colors.labelColor(enabled),
        leadingIcon = icon,
        trailingIcon = null,
        shape = shape,
        colors = colors,
        elevation = elevation,
        border = border?.borderStroke(enabled)?.value,
        minHeight = SuggestionChipDefaults.Height,
        paddingValues = SuggestionChipDefaults.ContentPadding,
        interactionSource = interactionSource,
    )

Parameters

onClick called when this chip is clicked
label text label for this chip
modifier the Modifier to be applied to this chip
enabled controls 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.
icon optional icon at the start of the chip, preceding the label text
shape defines 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 SuggestionChipDefaults.suggestionChipColors.
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 SuggestionChipDefaults.suggestionChipElevation.
border the border to draw around the container of this chip. Pass null for no border. See SuggestionChipDefaults.suggestionChipBorder.
interactionSource the MutableInteractionSource representing the stream of Interactions for this chip. You can create and pass in your own remembered instance to observe Interactions and customize the appearance / behavior of this chip in different states.

Code Examples

SuggestionChipSample

@Preview
@Composable
fun SuggestionChipSample() {
    SuggestionChip(onClick = { /* Do something! */ }, label = { Text("Suggestion Chip") })
}