# WindowSizeClass

Artifact: [androidx.compose.material3:material3-window-size-class](https://developer.android.com/jetpack/androidx/releases/compose-material3) [View Source](https://cs.android.com/search?q=file:androidx/compose/material3/windowsizeclass/WindowSizeClass.kt+class:androidx.compose.material3.windowsizeclass.WindowSizeClass) Common/AllAndroid/JVM
- Cmn

  ```
  class WindowSizeClass
  ```

*** ** * ** ***

Window size classes are a set of opinionated viewport breakpoints to design, develop, and test responsive application layouts against. For more details check [Support different screen sizes]("https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes") documentation.

WindowSizeClass contains a `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowWidthSizeClass` and `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowHeightSizeClass`, representing the window size classes for this window's width and height respectively.

See `calculateWindowSizeClass` to calculate the WindowSizeClass for an Activity's current window

## Summary

| ### Public companion functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` | `@https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/ExperimentalMaterial3WindowSizeClassApi https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass#calculateFromSize(androidx.compose.ui.unit.DpSize,kotlin.collections.Set,kotlin.collections.Set)( size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize, supportedWidthSizeClasses: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowWidthSizeClass>, supportedHeightSizeClasses: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowHeightSizeClass> )` Calculates the best matched `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` for a given `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.Companion#calculateFromSize(androidx.compose.ui.unit.DpSize,kotlin.collections.Set,kotlin.collections.Set)` according to the provided `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.Companion#calculateFromSize(androidx.compose.ui.unit.DpSize,kotlin.collections.Set,kotlin.collections.Set)` and `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.Companion#calculateFromSize(androidx.compose.ui.unit.DpSize,kotlin.collections.Set,kotlin.collections.Set)`. | Cmn |

| ### Public functions |
|---|---|---|
| `open operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass#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/material3/windowsizeclass/WindowSizeClass#hashCode()()` | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass#toString()()` | Cmn |

| ### Public properties |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowHeightSizeClass` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass#heightSizeClass()` height-based window size class (`https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowHeightSizeClass`) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowWidthSizeClass` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass#widthSizeClass()` width-based window size class (`https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowWidthSizeClass`) | Cmn |

## Public companion functions

### calculateFromSize

Cmn

```
@ExperimentalMaterial3WindowSizeClassApi
fun calculateFromSize(
    size: DpSize,
    supportedWidthSizeClasses: Set<WindowWidthSizeClass> = WindowWidthSizeClass.DefaultSizeClasses,
    supportedHeightSizeClasses: Set<WindowHeightSizeClass> = WindowHeightSizeClass.DefaultSizeClasses
): WindowSizeClass
```

Calculates the best matched `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` for a given `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.Companion#calculateFromSize(androidx.compose.ui.unit.DpSize,kotlin.collections.Set,kotlin.collections.Set)` according to the provided `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.Companion#calculateFromSize(androidx.compose.ui.unit.DpSize,kotlin.collections.Set,kotlin.collections.Set)` and `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass.Companion#calculateFromSize(androidx.compose.ui.unit.DpSize,kotlin.collections.Set,kotlin.collections.Set)`.

| Parameters |
|---|---|
| `size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize` | of the window |
| `supportedWidthSizeClasses: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowWidthSizeClass> = WindowWidthSizeClass.DefaultSizeClasses` | the set of width size classes that are supported |
| `supportedHeightSizeClasses: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowHeightSizeClass> = WindowHeightSizeClass.DefaultSizeClasses` | the set of height size classes that are supported |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowSizeClass` corresponding to the given width and height |

## Public functions

### equals

Cmn

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

### hashCode

Cmn

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

### toString

Cmn

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

## Public properties

### heightSizeClass

Cmn

```
val heightSizeClass: WindowHeightSizeClass
```

height-based window size class (`https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowHeightSizeClass`)

### widthSizeClass

Cmn

```
val widthSizeClass: WindowWidthSizeClass
```

width-based window size class (`https://developer.android.com/reference/kotlin/androidx/compose/material3/windowsizeclass/WindowWidthSizeClass`)