# Split button
[Split buttons](https://m3.material.io/components/split-button/overview) open a
menu to give people more options related to an action. It is a specialized type
of the connected button group. The trailing button is checkable with an animated
icon.

**Note:** Images use various dynamic color schemes.
## Design & API documentation
* [Material 3 (M3) spec](https://m3.material.io/components/split-button/overview)
* [API reference](https://developer.android.com/reference/com/google/android/material/button/package-summary)
## Anatomy

1. Leading button
2. Icon
3. Label text
4. Trailing button
More details on anatomy items in the
[component guidelines](https://m3.material.io/components/split-button/guidelines#551f6e11-0f95-41c2-9398-cd4066755806).
## M3 Expressive
### M3 Expressive update
Before you can use `Material3Expressive` component styles, follow the
[`Material3Expressive` themes setup instructions](https://github.com/material-components/material-components-android/tree/master/docs/getting-started.md#material3expressive-themes).
Split buttons have the same five recommended sizes as label and icon buttons
The split button has a separate menu button that spins and changes shape when
activated. It can be used alongside other buttons of the same size.
[More on M3 Expressive](https://m3.material.io/blog/building-with-m3-expressive)
Split button is a new component added in expressive, a special type of connected
button group.
**Sizes:**
* Extra small
* Small
* Medium
* Large
* Extra large
**Color styles:**
* Elevated
* Filled
* Tonal
* Outlined
## Key properties
### Size and space attributes
Element | Attribute | Related method(s) | Default value
--------------------------- | ---------------------- | --------------------------------------------- | -------------
**Size of inner corners** | `app:innerCornerSize` | `setInnerCornerSize` `getInnerCornerSize` | `none`
**Spacing between buttons** | `android:spacing` | `setSpacing` `getSpacing` | `2dp`
**Button size change** | `app:buttonSizeChange` | N/A | `0%`
### Styles and theme attributes
Element | Style | Theme attribute
----------------------------------------- | --------------------------------------------------------- | ---------------
**Default style** | `Widget.Material3.MaterialSplitButton` | `?attr/materialSplitButtonStyle`
**Leading button primary (filled) style** | `Widget.Material3.SplitButton.LeadingButton.Filled` | `?attr/materialSplitButtonLeadingFilledStyle`
**Leading button primary (tonal) style** | `Widget.Material3.SplitButton.LeadingButton.Filled.Tonal` | `?attr/materialSplitButtonLeadingFilledTonalStyle`
**Trailing icon primary (filled) style** | `Widget.Material3.SplitButton.IconButton.Filled` | `?attr/materialSplitButtonIconFilledStyle`
**Trailing icon secondary (tonal) style** | `Widget.Material3.SplitButton.IconButton.Filled.Tonal` | `?attr/materialSplitButtonIconFilledTonalStyle`
The two new trailing icon styles `materialSplitButtonIconFilledStyle` – parented
by `materialIconButtonFilledStyle` – and
`materialSplitButtonIconFilledTonalStyle`-- parented by
`materialIconButtonFilledTonalStyle` allow for the `MaterialSplitButton` custom
behavior for `onChecked` and `onUnchecked` states.
`materialSplitButtonIconFilledStyle` is paired with default leading button
styling, with no style explicitly specified in the XML.
`materialSplitButtonIconFilledTonalStyle` is paired with
`materialButtonTonalStyle` for the leading button.
## Code implementation
Before you can use Material buttons, you need to add a dependency to the
Material components for Android library. For more information, go to the
[Getting started](https://github.com/material-components/material-components-android/tree/master/docs/getting-started.md)
page.
**Note:** `