Skip to content
Selection & Inputs

Chip

Assist, filter, input, and suggestion chips

Chips help people enter information, make selections, filter content, or trigger actions. Material 3 ships four kinds: assist, filter, input, and suggestion.

Chip demos rendered in Compose Playground
Pixel-accurate preview · light theme

Examples

01

Assist

An AssistChip triggers an action related to nearby content.

Kotlin
AssistChip(
    onClick = {},
    label = { Text("Settings") },
    leadingIcon = { Icon(Icons.Filled.Settings, null, Modifier.size(18.dp)) }
)
02

Filter (multi-select)

FilterChips reflect selection state and can be toggled independently.

Kotlin
val filters = listOf("Vegetarian", "Vegan", "Gluten-free", "Spicy")
val selected = remember { mutableStateMapOf<String, Boolean>() }
FlowRow {
    filters.forEach { filter ->
        val isOn = selected[filter] == true
        FilterChip(
            selected = isOn,
            onClick = { selected[filter] = !isOn },
            label = { Text(filter) },
            leadingIcon = if (isOn) {
                { Icon(Icons.Filled.Check, null, Modifier.size(18.dp)) }
            } else null
        )
    }
}
03

Input (removable)

An InputChip represents a discrete entry the user can dismiss.

Kotlin
var visible by remember { mutableStateOf(true) }
if (visible) {
    InputChip(
        selected = false,
        onClick = {},
        label = { Text("alice@example.com") },
        trailingIcon = {
            Icon(
                Icons.Filled.Close,
                "Remove",
                Modifier.size(18.dp).selectable(false) { visible = false }
            )
        }
    )
}
04

Suggestion

SuggestionChips surface dynamically generated recommendations.

Kotlin
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
    SuggestionChip(onClick = {}, label = { Text("Sounds good") })
    SuggestionChip(onClick = {}, label = { Text("On my way") })
}