# PreviewWrapperProvider

Artifact: [androidx.compose.ui:ui-tooling-preview](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/tooling/preview/PreviewWrapper.kt+class:androidx.compose.ui.tooling.preview.PreviewWrapperProvider) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0) Common/All
- Cmn

  ```
  interface PreviewWrapperProvider
  ```
Known direct subclasses [RemotePreviewWrapper](https://developer.android.com/reference/kotlin/androidx/compose/remote/tooling/preview/RemotePreviewWrapper)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/remote/tooling/preview/RemotePreviewWrapper` | Default `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewWrapperProvider` of Remote Compose, that uses `https://developer.android.com/reference/kotlin/androidx/compose/remote/creation/profile/RcPlatformProfiles#ANDROIDX()` profile. |

*** ** * ** ***

Interface used to define custom rendering logic for Compose Previews in Android Studio.

Implementations of this interface allow developers to wrap the content of a `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/Preview` to provide specific environments, themes, or containers (such as a Remote Compose) without requiring repetitive code in every preview function.

**Usage:** Implementations are applied to previews using the `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewWrapper` annotation.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewWrapper` |   |

## Summary

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewWrapperProvider#Wrap(kotlin.Function0)(content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Wraps the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewWrapperProvider#Wrap(kotlin.Function0)` with custom UI logic or containers. | Cmn |

## Public functions

### Wrap

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

```
@Composable
fun Wrap(content: @Composable () -> Unit): Unit
```

Wraps the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewWrapperProvider#Wrap(kotlin.Function0)` with custom UI logic or containers.

Example usage for applying a Theme:

```kotlin
class CustomThemeWrapper : PreviewWrapperProvider {
    @Composable
    override fun Wrap(content: @Composable () -> Unit) {
        // Apply a light theme and provide a full-screen Surface to set a default background
        // color for the preview content.
        MaterialTheme(colorScheme = lightColorScheme()) {
            Surface(modifier = Modifier.fillMaxSize()) {
                content()
            }
        }
    }
}
```

| Parameters |
|---|---|
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The original composable content of the function annotated with `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/Preview`. |