---
title: ControlWidgetConfiguration
framework: swiftui
role: symbol
role_heading: Protocol
path: swiftui/controlwidgetconfiguration
---

# ControlWidgetConfiguration

A type that describes a control widget’s content.

## Declaration

```swift
@MainActor @preconcurrency protocol ControlWidgetConfiguration
```

## 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

### Associated Types

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

### Instance Properties

- [body](swiftui/controlwidgetconfiguration/body-swift.property.md)

### Instance Methods

- [description(_:)](swiftui/controlwidgetconfiguration/description(_:).md)
- [displayName(_:)](swiftui/controlwidgetconfiguration/displayname(_:).md)
- [promptsForUserConfiguration()](swiftui/controlwidgetconfiguration/promptsforuserconfiguration().md)
- [pushHandler(_:)](swiftui/controlwidgetconfiguration/pushhandler(_:).md)

## Relationships

### Conforming Types

- [EmptyControlWidgetConfiguration](swiftui/emptycontrolwidgetconfiguration.md)

## See Also

### Composing control widgets

- [ControlWidget](swiftui/controlwidget.md)
- [EmptyControlWidgetConfiguration](swiftui/emptycontrolwidgetconfiguration.md)
- [ControlWidgetConfigurationBuilder](swiftui/controlwidgetconfigurationbuilder.md)
- [ControlWidgetTemplate](swiftui/controlwidgettemplate.md)
- [EmptyControlWidgetTemplate](swiftui/emptycontrolwidgettemplate.md)
- [ControlWidgetTemplateBuilder](swiftui/controlwidgettemplatebuilder.md)
- [controlWidgetActionHint(_:)](swiftui/view/controlwidgetactionhint(_:).md)
- [controlWidgetStatus(_:)](swiftui/view/controlwidgetstatus(_:).md)
