Clickable elements used to perform actions.


A button can have one of five themes: Primary, Secondary, Tertiary, Caution and Solid.

Button themes


There are three global states: default, active and disabled. The primary button also has a loading state. All active states double as focus states.


Button anatomy

Buttons contain one required element and one optional element.

  1. Background: Buttons are either a solid color or have a 2dp border. All buttons have a 4dp border radius.
  2. Content/CTA (required): Buttons should be sentence case with exceptions for proper nouns. Buttons should be limited to three words where possible.
  3. Icon (optional): An icon is used to emphasize an action.


Only one button size is available on native. It adheres to our global tap target of 48dp.


By default buttons change width depending on the content inside of them. Occasionally a design requires a button to span the width of the container. Full width buttons occupy 100% of the width available to them in the container.

Button width examples



Configurable items (via XML or values):

  1. app:buttonType in XML or ThumbprintButton.buttonType, with enum values primary, secondary, tertiary, caution, or solid; defaults to primary
  2. android:text in XML or ThumbprintButton.text, String
  3. app:isEnabled in XML or ThumbprintButton.isEnabled, Boolean; defaults to true
  4. app:isLoading in XML or ThumbprintButton.isLoading, Boolean; defaults to false
  5. app:isBleed in XML or ThumbprintButton.isBleed, Boolean; defaults to false
  6. app:inlineDrawableLeft or app:inlineDrawableRight in XML, Drawable
Was this page helpful?

We use this feedback to improve the quality of our documentation.