# FontVariation.Settings

Artifact: [androidx.compose.ui:ui-text](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/text/font/FontVariation.kt+class:androidx.compose.ui.text.font.FontVariation.Settings) Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.3.0) Common/AllAndroid/JVM
- Cmn

  ```
  class FontVariation.Settings
  ```

*** ** * ** ***

A collection of settings to apply to a single font.

Settings must be unique on `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting#axisName()`

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#Settings(kotlin.Array)(vararg settings: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting)` A collection of settings to apply to a single font. | Cmn |

| ### Public functions |
|---|---|---|
| `open operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#equals(kotlin.Any)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#hashCode()()` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(androidx.compose.ui.text.font.FontVariation.Settings)(other: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings?)` Merges the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(androidx.compose.ui.text.font.FontVariation.Settings)` settings into this `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings` instance. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(kotlin.Array)(vararg overrides: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting)` Merges the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(kotlin.Array)` into this `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings` instance. | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#toString()()` | Cmn |

| ### Public properties |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#settings()` All settings, unique by `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting#axisName()` | Cmn |

## Public constructors

### Settings

Cmn Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.3.0)

```
Settings(vararg settings: FontVariation.Setting)
```

A collection of settings to apply to a single font.

Settings must be unique on `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting#axisName()`

## Public functions

### equals

Cmn

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

### hashCode

Cmn

```
open fun hashCode(): Int
```

### merge

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

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

Merges the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(androidx.compose.ui.text.font.FontVariation.Settings)` settings into this `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings` instance.

If there are duplicate axes, settings in `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(androidx.compose.ui.text.font.FontVariation.Settings)` will override settings in this instance.

```kotlin
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: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings?` | The settings to merge into this instance. If `null`, this instance is returned. |

### merge

Cmn Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

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

Merges the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(kotlin.Array)` into this `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings` instance.

If there are duplicate axes, settings in `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(kotlin.Array)` will override settings in this instance. Note that `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(kotlin.Array)` itself must not contain duplicate axes.

```kotlin
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: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting` | The individual settings to merge into this instance. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Settings#merge(kotlin.Array)` contains duplicate axes. |

### toString

Cmn

```
open fun toString(): String
```

## Public properties

### settings

Cmn Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.3.0)

```
val settings: List<FontVariation.Setting>
```

All settings, unique by `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/font/FontVariation.Setting#axisName()`