---
title: "Dp"
description: "Dimension value representing device-independent pixels (dp). Component APIs specify their
dimensions such as line thickness in DP with Dp objects. Hairline (1 pixel) thickness may be
specified with [Hairline], a dimension that take up no space. Dp are normally defined using [dp],
which can be applied to [Int], [Double], and [Float].


Drawing and Layout are done in pixels. To retrieve the pixel size of a Dp, use [Density.toPx]:"
type: "class"
---

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


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

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


```kotlin
value class Dp(val value: Float) : Comparable<Dp>
```


Dimension value representing device-independent pixels (dp). Component APIs specify their
dimensions such as line thickness in DP with Dp objects. Hairline (1 pixel) thickness may be
specified with `Hairline`, a dimension that take up no space. Dp are normally defined using `dp`,
which can be applied to `Int`, `Double`, and `Float`.


Drawing and Layout are done in pixels. To retrieve the pixel size of a Dp, use `Density.toPx`:


## Functions

```kotlin
inline operator fun plus(other: Dp) = Dp(this.value + other.value)
```


Add two `Dp`s together.


```kotlin
inline operator fun minus(other: Dp) = Dp(this.value - other.value)
```


Subtract a Dp from another one.


```kotlin
inline operator fun unaryMinus() = Dp(-value)
```


This is the same as multiplying the Dp by -1.0.


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


Divide a Dp by a scalar.


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

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


Divide by another Dp to get a scalar.


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


Multiply a Dp by a scalar.


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

## Companion Object

#### Properties

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


```kotlin
val Hairline = Dp(0f)
```


A dimension used to represent a hairline drawing element. Hairline elements take up no
space, but will draw a single pixel, independent of the device's resolution and density.



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


```kotlin
val Infinity = Dp(Float.POSITIVE_INFINITY)
```


Infinite dp dimension.



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


```kotlin
val Unspecified = Dp(Float.NaN)
```


Constant that means unspecified Dp. Instead of comparing a `Dp` value to this constant,
consider using `isSpecified` and `isUnspecified` instead.





## Code Examples

### DpSample
```kotlin
@Composable
fun DpSample() {
    Box(
        Modifier.padding(
            10.dp, // Int
            10f.dp, // Float
            20.0.dp, // Double
            10.dp,
        )
    )
}
```

### ToPxSample
```kotlin
@Composable
fun ToPxSample() {
    val lineThickness = 6.dp
    Canvas(Modifier.fillMaxSize()) {
        val lineThicknessPx = lineThickness.toPx()
        inset(lineThicknessPx / 2) { drawRect(Color.Red, style = Stroke(lineThicknessPx)) }
    }
}
```

