2025-04-30 17:36:54 +00:00

4.1 KiB

Typography theming

Material Design typography theming can be used to create typographic styles that reflect your brand or style by defining a set of type scales which will be used throughout your app. You can use type scales to customize the appearance of text in Material components.

Design and API Documentation

Usage

Baseline scale

Attribute name Default style
textAppearanceDisplayLarge Regular 57sp
textAppearanceDisplayMedium Regular 45sp
textAppearanceDisplaySmall Regular 36sp
textAppearanceHeadlineLarge Regular 32sp
textAppearanceHeadlineMedium Regular 28sp
textAppearanceHeadlineSmall Regular 24sp
textAppearanceTitleLarge Regular 22sp
textAppearanceTitleMedium Medium 16sp
textAppearanceTitleSmall Medium 14sp
textAppearanceBodyLarge Regular 16sp
textAppearanceBodyMedium Regular 14sp
textAppearanceBodySmall Regular 12sp
textAppearanceLabelLarge Medium 14sp
textAppearanceLabelMedium Medium 12sp
textAppearanceLabelSmall Medium 11sp

Emphasized scale

Emphasized styles are used to create hierarchy and are recommended for showing selection, actions, headlines, or other editorial treatments.

Attribute name Default style
textAppearanceDisplayLargeEmphasized Medium 57sp
textAppearanceDisplayMediumEmphasized Medium 45sp
textAppearanceDisplaySmallEmphasized Medium 36sp
textAppearanceHeadlineLargeEmphasized Medium 32sp
textAppearanceHeadlineMediumEmphasized Medium 28sp
textAppearanceHeadlineSmallEmphasized Medium 24sp
textAppearanceTitleLargeEmphasized Medium 22sp
textAppearanceTitleMediumEmphasized Bold 16sp
textAppearanceTitleSmallEmphasized Bold 14sp
textAppearanceBodyLargeEmphasized Medium 16sp
textAppearanceBodyMediumEmphasized Medium 14sp
textAppearanceBodySmallEmphasized Medium 12sp
textAppearanceLabelLargeEmphasized Bold 14sp
textAppearanceLabelMediumEmphasized Bold 12sp
textAppearanceLabelSmallEmphasized Bold 11sp

Style values

Style values are a combination of the following:

  • Font face name and weight
  • Font size
  • Letter spacing
  • Text transformation (e.g., all caps)

Customization

The components included in the Material Design Library reference these themeable text attributes, enabling you to easily change text appearance across your whole application. If you display text in TextViews or create custom components, consider referencing one of these text attributes where it makes sense.

You can change the look of any text style by creating a new style and setting it in your theme:

<style name="TextAppearance.MyApp.DisplaySmall" parent="TextAppearance.Material3.DisplaySmall">
  ...
  <item name="fontFamily">@font/custom_font</item>
  <item name="android:textStyle">normal</item>
  <item name="android:textAllCaps">false</item>
  <item name="android:textSize">64sp</item>
  <item name="android:letterSpacing">0</item>
  ...
</style>
<style name="Theme.MyApp" parent="Theme.Material3.DayNight.NoActionBar">
  ...
  <item name="textAppearanceDisplaySmall">@style/TextAppearance.MyApp.DisplaySmall</item>
  ...
</style>

Downloadable fonts

Android O and Android Support Library 26 add support for Downloadable Fonts. This allows you to easily use the entire Google Fonts Open Source collection without bundling a font with your apk. Find more information at https://developers.google.com/fonts/docs/android.

Note: If you want to use a Downloadable Font before Android O, make sure you are using AppCompatTextView or that you are loading the font yourself with ResourcesCompat.getFont().