Buttons
Split button
Keep the common outcome immediate while exposing nearby alternatives.Choose it deliberately
Use the component when its interaction contract matches the user task.
Use when
You need a primary command with related alternatives with predictable M3 behavior.
Avoid overloading
Do not move application business state, requests, or navigation rules into the component.
Composition
Sizing, labels, and neighboring elements should preserve visual hierarchy.
One primary meaning
Label and supporting content should communicate one task.
Stable geometry
Avoid unnecessary size or position changes during interaction.