---
title: "TextUnit"
description: "The unit used for text related dimension value.

This unit can hold either scaled pixels (SP), relative font size (EM) and special unit
Unspecified for indicating inheriting from other style or using the default value. It can be
created with [sp] or [em]. (e.g. 15.sp or 18.em) which can be applied to [Int], [Double], and
[Float].

Note that do not store this value in your persistent storage or send to another process since the
internal representation may be changed in future."
type: "class"
---

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


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

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


```kotlin
value class TextUnit internal constructor(internal val packedValue: Long)
```


The unit used for text related dimension value.

This unit can hold either scaled pixels (SP), relative font size (EM) and special unit
Unspecified for indicating inheriting from other style or using the default value. It can be
created with `sp` or `em`. (e.g. 15.sp or 18.em) which can be applied to `Int`, `Double`, and
`Float`.

Note that do not store this value in your persistent storage or send to another process since the
internal representation may be changed in future.


## Properties

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


```kotlin
val type: TextUnitType
```


A type information of this TextUnit.



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


```kotlin
val isSp
```


True if this is a SP unit type.



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


```kotlin
val isEm
```


True if this is a EM unit type.



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


```kotlin
val value
```


Returns the value of this `TextUnit`.

For example, the value of 3.sp equals to 3, and value of 5.em equals to 5. The value of
`TextUnit`s whose `TextUnitType` is `TextUnitType.Unspecified` is undefined.



## Functions

```kotlin
inline operator fun unaryMinus(): TextUnit
```


This is the same as multiplying the `TextUnit` by -1.0.

This operation works only if the operand is not equal to `TextUnit.Unspecified`. The result
of this operation is the same unit type of the given one.


```kotlin
inline operator fun div(other: Float): TextUnit
```


Divide a `TextUnit` by a scalar.

This operation works only if the left operand is not equal to `TextUnit.Unspecified`. The
result of this operation is the same unit type of the given one.


```kotlin
inline operator fun div(other: Double): TextUnit
```


Divide a `TextUnit` by a scalar.

This operation works only if the left operand is not equal to `TextUnit.Unspecified`. The
result of this operation is the same unit type of the given one.


```kotlin
inline operator fun div(other: Int): TextUnit
```


Divide a `TextUnit` by a scalar.

This operation works only if the left operand is not equal to `TextUnit.Unspecified`. The
result of this operation is the same unit type of the given one.


```kotlin
inline operator fun times(other: Float): TextUnit
```


Multiply a `TextUnit` by a scalar.

This operation works only if the left operand is not equal to `TextUnit.Unspecified`. The
result of this operation is the same unit type of the given one.


```kotlin
inline operator fun times(other: Double): TextUnit
```


Multiply a `TextUnit` by a scalar.

This operation works only if the left operand is not equal to `TextUnit.Unspecified`. The
result of this operation is the same unit type of the given one.


```kotlin
inline operator fun times(other: Int): TextUnit
```


Multiply a `TextUnit` by a scalar.

This operation works only if the left operand is not equal to `TextUnit.Unspecified`. The
result of this operation is the same unit type of the given one.


```kotlin
inline operator fun compareTo(other: TextUnit): Int
```


Support comparing Dimensions with comparison operators.

#### Returns

| | |
| --- | --- |
|  | 0 if this `TextUnit` equals to the `other`, a negative number if it's less than the `other`, or a positive number if it's greater than the `other`. |



## Companion Object

#### Properties

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


```kotlin
val Unspecified = pack(UNIT_TYPE_UNSPECIFIED, Float.NaN)
```


A special `TextUnit` instance for representing inheriting from parent value.

Notice that performing arithmetic operations on `Unspecified` may result in an
`IllegalArgumentException`.





