---
title: WidgetConfiguration
framework: swiftui
role: symbol
role_heading: Protocol
path: swiftui/widgetconfiguration
---

# WidgetConfiguration

A type that describes a widget’s content.

## Declaration

```swift
@MainActor @preconcurrency protocol WidgetConfiguration
```

## Overview

Overview A type conforming to this protocol inherits @preconcurrency @MainActor isolation from the protocol if the conformance is included in the type’s base declaration: struct MyCustomType: Transition {     // `@preconcurrency @MainActor` isolation by default } Isolation to the main actor is the default, but it’s not required. Declare the conformance in an extension to opt out of main actor isolation: extension MyCustomType: Transition {     // `nonisolated` by default }

## Topics

### Implementing a widget

- [body](swiftui/widgetconfiguration/body-swift.property.md)
- [Body](swiftui/widgetconfiguration/body-swift.associatedtype.md)

### Setting a name

- [configurationDisplayName(_:)](swiftui/widgetconfiguration/configurationdisplayname(_:).md)

### Setting a description

- [description(_:)](swiftui/widgetconfiguration/description(_:).md)

### Setting the appearance

- [supportedFamilies(_:)](swiftui/widgetconfiguration/supportedfamilies(_:).md)
- [contentMarginsDisabled()](swiftui/widgetconfiguration/contentmarginsdisabled().md)
- [disfavoredLocations(_:for:)](swiftui/widgetconfiguration/disfavoredlocations(_:for:).md)
- [containerBackgroundRemovable(_:)](swiftui/widgetconfiguration/containerbackgroundremovable(_:).md)

### Managing background tasks

- [backgroundTask(_:action:)](swiftui/widgetconfiguration/backgroundtask(_:action:).md)
- [onBackgroundURLSessionEvents(matching:_:)](swiftui/widgetconfiguration/onbackgroundurlsessionevents(matching:_:).md)

### Instance Methods

- [associatedKind(_:)](swiftui/widgetconfiguration/associatedkind(_:).md)
- [promptsForUserConfiguration()](swiftui/widgetconfiguration/promptsforuserconfiguration().md)
- [pushHandler(_:)](swiftui/widgetconfiguration/pushhandler(_:).md)
- [supplementalActivityFamilies(_:)](swiftui/widgetconfiguration/supplementalactivityfamilies(_:).md)
- [supportedMountingStyles(_:)](swiftui/widgetconfiguration/supportedmountingstyles(_:).md)
- [widgetTexture(_:)](swiftui/widgetconfiguration/widgettexture(_:).md)

## Relationships

### Conforming Types

- [EmptyWidgetConfiguration](swiftui/emptywidgetconfiguration.md)
- [LimitedAvailabilityConfiguration](swiftui/limitedavailabilityconfiguration.md)

## See Also

### Creating widgets

- [Building Widgets Using WidgetKit and SwiftUI](widgetkit/building_widgets_using_widgetkit_and_swiftui.md)
- [Creating a widget extension](widgetkit/creating-a-widget-extension.md)
- [Keeping a widget up to date](widgetkit/keeping-a-widget-up-to-date.md)
- [Making a configurable widget](widgetkit/making-a-configurable-widget.md)
- [Widget](swiftui/widget.md)
- [WidgetBundle](swiftui/widgetbundle.md)
- [LimitedAvailabilityConfiguration](swiftui/limitedavailabilityconfiguration.md)
- [EmptyWidgetConfiguration](swiftui/emptywidgetconfiguration.md)
