FontVariation.Settings


A collection of settings to apply to a single font.

Settings must be unique on Setting.axisName

Summary

Public constructors

Settings(vararg settings: FontVariation.Setting)

A collection of settings to apply to a single font.

Cmn

Public functions

open operator Boolean
equals(other: Any?)
Cmn
open Int
Cmn
FontVariation.Settings

Merges the given other settings into this Settings instance.

Cmn
FontVariation.Settings
merge(vararg overrides: FontVariation.Setting)

Merges the given overrides into this Settings instance.

Cmn
open String
Cmn

Public properties

List<FontVariation.Setting>

All settings, unique by FontVariation.Setting.axisName

Cmn

Public constructors

Settings

Settings(vararg settings: FontVariation.Setting)

A collection of settings to apply to a single font.

Settings must be unique on Setting.axisName

Public functions

equals

open operator fun equals(other: Any?): Boolean

hashCode

open fun hashCode(): Int

merge

fun merge(other: FontVariation.Settings?): FontVariation.Settings

Merges the given other settings into this Settings instance.

If there are duplicate axes, settings in other will override settings in this instance.

import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontVariation.Settings
import androidx.compose.ui.text.font.FontVariation.weight
import androidx.compose.ui.text.font.FontVariation.width

// Define base settings shared across the typography (e.g., normal weight, standard width)
val baseVariationSettings = Settings(weight(400), width(100f))

val customTypography =
    Typography(
        displayLarge =
            TextStyle(
                fontFamily =
                    FontFamily(
                        Font(
                            resId = R.font.myfont,
                            // weight(700), width(100f)
                            variationSettings =
                                baseVariationSettings.merge(Settings(weight(700))),
                        )
                    )
            ),
        bodyMedium =
            TextStyle(
                fontFamily =
                    FontFamily(
                        Font(
                            resId = R.font.myfont,
                            // weight(400), width(90f)
                            variationSettings =
                                baseVariationSettings.merge(Settings(width(90f))),
                        )
                    )
            ),
    )
Parameters
other: FontVariation.Settings?

The settings to merge into this instance. If null, this instance is returned.

merge

fun merge(vararg overrides: FontVariation.Setting): FontVariation.Settings

Merges the given overrides into this Settings instance.

If there are duplicate axes, settings in overrides will override settings in this instance. Note that overrides itself must not contain duplicate axes.

import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontVariation.Settings
import androidx.compose.ui.text.font.FontVariation.italic
import androidx.compose.ui.text.font.FontVariation.weight
import androidx.compose.ui.text.font.FontVariation.width

// Define base settings shared across the typography (e.g., normal weight, standard width)
val baseVariationSettings = Settings(weight(400), width(100f))

val customTypography =
    Typography(
        displayLarge =
            TextStyle(
                fontFamily =
                    FontFamily(
                        Font(
                            resId = R.font.myfont,
                            // weight(700), width(100f), italic(1.0f)
                            variationSettings =
                                baseVariationSettings.merge(weight(700), italic(1.0f)),
                        )
                    )
            ),
        bodyMedium =
            TextStyle(
                fontFamily =
                    FontFamily(
                        Font(
                            resId = R.font.myfont,
                            // weight(400), width(90f)
                            variationSettings = baseVariationSettings.merge(width(90f)),
                        )
                    )
            ),
    )
Parameters
vararg overrides: FontVariation.Setting

The individual settings to merge into this instance.

Throws
IllegalArgumentException

if overrides contains duplicate axes.

toString

open fun toString(): String

Public properties

settings

val settingsList<FontVariation.Setting>

All settings, unique by FontVariation.Setting.axisName