---
title: "Switch"
description: "Switches toggle the state of a single item on or off."
type: "component"
social_image: "/static/images/material3/switch.png"
---

<div class='type'>Composable Component</div>



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

<img loading='lazy' class='hero-img' alt='Switch image' src='/static/images/material3/switch.png'>

<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>


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


#### Parameters

| | |
| --- | --- |
| checked | whether or not this switch is checked |
| onCheckedChange | called 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. |
| modifier | the `Modifier` to be applied to this switch |
| thumbContent | content that will be drawn inside the thumb, expected to measure `SwitchDefaults.IconSize` |
| enabled | controls 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`. |
| interactionSource | an 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 Examples
### SwitchSample
```kotlin
@Preview
@Composable
fun SwitchSample() {
    var checked by remember { mutableStateOf(true) }
    Switch(
        modifier = Modifier.semantics { contentDescription = "Demo" },
        checked = checked,
        onCheckedChange = { checked = it },
    )
}
```
### SwitchWithThumbIconSample
```kotlin
@Preview
@Composable
fun SwitchWithThumbIconSample() {
    var checked by remember { mutableStateOf(true) }
    Switch(
        modifier = Modifier.semantics { contentDescription = "Demo with icon" },
        checked = checked,
        onCheckedChange = { checked = it },
        thumbContent = {
            if (checked) {
                // Icon isn't focusable, no need for content description
                Icon(
                    imageVector = Icons.Filled.Check,
                    contentDescription = null,
                    modifier = Modifier.size(SwitchDefaults.IconSize),
                )
            }
        },
    )
}
```

