---
title: "Typography"
description: "[Material Design type
scale](https://material.io/design/typography/the-type-system.html#type-scale)

The Material Design type scale includes a range of contrasting styles that support the needs of
your product and its content.

The type scale is a combination of thirteen styles that are supported by the type system. It
contains reusable categories of text, each with an intended application and meaning.

![Typography
image](https://developer.android.com/images/reference/androidx/compose/material/typography.png)"
type: "class"
---

<div class='type'>Class</div>


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

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


```kotlin
class Typography
internal constructor(
    val h1: TextStyle,
    val h2: TextStyle,
    val h3: TextStyle,
    val h4: TextStyle,
    val h5: TextStyle,
    val h6: TextStyle,
    val subtitle1: TextStyle,
    val subtitle2: TextStyle,
    val body1: TextStyle,
    val body2: TextStyle,
    val button: TextStyle,
    val caption: TextStyle,
    val overline: TextStyle,
)
```


`Material Design type
scale`(https://material.io/design/typography/the-type-system.html#type-scale)

The Material Design type scale includes a range of contrasting styles that support the needs of
your product and its content.

The type scale is a combination of thirteen styles that are supported by the type system. It
contains reusable categories of text, each with an intended application and meaning.

!`Typography
image`(https://developer.android.com/images/reference/androidx/compose/material/typography.png)


## Secondary Constructors

```kotlin
constructor(
    defaultFontFamily: FontFamily = FontFamily.Default,
    h1: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Light,
            fontSize = 96.sp,
            lineHeight = 112.sp,
            letterSpacing = (-1.5).sp,
        ),
    h2: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Light,
            fontSize = 60.sp,
            lineHeight = 72.sp,
            letterSpacing = (-0.5).sp,
        ),
    h3: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 48.sp,
            lineHeight = 56.sp,
            letterSpacing = 0.sp,
        ),
    h4: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 34.sp,
            lineHeight = 36.sp,
            letterSpacing = 0.25.sp,
        ),
    h5: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 24.sp,
            lineHeight = 24.sp,
            letterSpacing = 0.sp,
        ),
    h6: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Medium,
            fontSize = 20.sp,
            lineHeight = 24.sp,
            letterSpacing = 0.15.sp,
        ),
    subtitle1: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 16.sp,
            lineHeight = 24.sp,
            letterSpacing = 0.15.sp,
        ),
    subtitle2: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Medium,
            fontSize = 14.sp,
            lineHeight = 24.sp,
            letterSpacing = 0.1.sp,
        ),
    body1: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 16.sp,
            lineHeight = 24.sp,
            letterSpacing = 0.5.sp,
        ),
    body2: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 14.sp,
            lineHeight = 20.sp,
            letterSpacing = 0.25.sp,
        ),
    button: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Medium,
            fontSize = 14.sp,
            lineHeight = 16.sp,
            letterSpacing = 1.25.sp,
        ),
    caption: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 12.sp,
            lineHeight = 16.sp,
            letterSpacing = 0.4.sp,
        ),
    overline: TextStyle =
        DefaultTextStyle.copy(
            fontWeight = FontWeight.Normal,
            fontSize = 10.sp,
            lineHeight = 16.sp,
            letterSpacing = 1.5.sp,
        ),
) : this(
    h1 = h1.withDefaultFontFamily(defaultFontFamily),
    h2 = h2.withDefaultFontFamily(defaultFontFamily),
    h3 = h3.withDefaultFontFamily(defaultFontFamily),
    h4 = h4.withDefaultFontFamily(defaultFontFamily),
    h5 = h5.withDefaultFontFamily(defaultFontFamily),
    h6 = h6.withDefaultFontFamily(defaultFontFamily),
    subtitle1 = subtitle1.withDefaultFontFamily(defaultFontFamily),
    subtitle2 = subtitle2.withDefaultFontFamily(defaultFontFamily),
    body1 = body1.withDefaultFontFamily(defaultFontFamily),
    body2 = body2.withDefaultFontFamily(defaultFontFamily),
    button = button.withDefaultFontFamily(defaultFontFamily),
    caption = caption.withDefaultFontFamily(defaultFontFamily),
    overline = overline.withDefaultFontFamily(defaultFontFamily),
)
```


Constructor to create a `Typography`. For information on the types of style defined in this
constructor, see the property documentation for `Typography`.

#### Parameters

| | |
| --- | --- |
| defaultFontFamily | the default `FontFamily` to be used for `TextStyle`s provided in this constructor. This default will be used if the `FontFamily` on the `TextStyle` is `null`. |
| h1 | h1 is the largest headline, reserved for short, important text or numerals. |
| h2 | h2 is the second largest headline, reserved for short, important text or numerals. |
| h3 | h3 is the third largest headline, reserved for short, important text or numerals. |
| h4 | h4 is the fourth largest headline, reserved for short, important text or numerals. |
| h5 | h5 is the fifth largest headline, reserved for short, important text or numerals. |
| h6 | h6 is the sixth largest headline, reserved for short, important text or numerals. |
| subtitle1 | subtitle1 is the largest subtitle, and is typically reserved for medium-emphasis text that is shorter in length. |
| subtitle2 | subtitle2 is the smallest subtitle, and is typically reserved for medium-emphasis text that is shorter in length. |
| body1 | body1 is the largest body, and is typically used for long-form writing as it works well for small text sizes. |
| body2 | body2 is the smallest body, and is typically used for long-form writing as it works well for small text sizes. |
| button | button text is a call to action used in different types of buttons (such as text, outlined and contained buttons) and in tabs, dialogs, and cards. |
| caption | caption is one of the smallest font sizes. It is used sparingly to annotate imagery or to introduce a headline. |
| overline | overline is one of the smallest font sizes. It is used sparingly to annotate imagery or to introduce a headline. |



## Functions

```kotlin
fun copy(
        h1: TextStyle = this.h1,
        h2: TextStyle = this.h2,
        h3: TextStyle = this.h3,
        h4: TextStyle = this.h4,
        h5: TextStyle = this.h5,
        h6: TextStyle = this.h6,
        subtitle1: TextStyle = this.subtitle1,
        subtitle2: TextStyle = this.subtitle2,
        body1: TextStyle = this.body1,
        body2: TextStyle = this.body2,
        button: TextStyle = this.button,
        caption: TextStyle = this.caption,
        overline: TextStyle = this.overline,
    ): Typography
```


Returns a copy of this Typography, optionally overriding some of the values.



