New Compose Multiplatform components arrived on Composables UICheck it out →


Material Design Switch.

Switches toggle the state of a single item on or off.

Switch image

Switch can be used with a custom icon via [thumbContent] parameter

Last updated:


dependencies {


@Suppress("ComposableLambdaParameterNaming", "ComposableLambdaParameterPosition"
fun Switch(
    checked: Boolean,
    onCheckedChange: ((Boolean) -> Unit)?,
    modifier: Modifier = Modifier,
    thumbContent: (@Composable () -> Unit)? = null,
    enabled: Boolean = true,
    colors: SwitchColors = SwitchDefaults.colors(),
    interactionSource: MutableInteractionSource? = null,


checkedwhether or not this switch is checked
onCheckedChangecalled when this switch is clicked. If null, then this switch will not be interactable, unless something else handles its input events and updates its state.
modifierthe [Modifier] to be applied to this switch
thumbContentcontent that will be drawn inside the thumb, expected to measure [SwitchDefaults.IconSize]
enabledcontrols the enabled state of this switch. When false, this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services.
colors[SwitchColors] that will be used to resolve the colors used for this switch in different states. See [SwitchDefaults.colors].
interactionSourcean optional hoisted [MutableInteractionSource] for observing and emitting [Interaction]s for this switch. You can use this to change the switch's appearance or preview the switch in different states. Note that if null is provided, interactions will still happen internally.

Code Example


fun SwitchSample() {
    Switch(checked = true, onCheckedChange = { })