---
title: ControlGroupStyle
framework: swiftui
role: symbol
role_heading: Protocol
path: swiftui/controlgroupstyle
---

# ControlGroupStyle

Defines the implementation of all control groups within a view hierarchy.

## Declaration

```swift
@MainActor @preconcurrency protocol ControlGroupStyle
```

## Overview

Overview To configure the current ControlGroupStyle for a view hierarchy, use the controlGroupStyle(_:) modifier. 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

### Getting built-in control group styles

- [automatic](swiftui/controlgroupstyle/automatic.md)
- [compactMenu](swiftui/controlgroupstyle/compactmenu.md)
- [menu](swiftui/controlgroupstyle/menu.md)
- [navigation](swiftui/controlgroupstyle/navigation.md)
- [palette](swiftui/controlgroupstyle/palette.md)

### Creating custom control group styles

- [makeBody(configuration:)](swiftui/controlgroupstyle/makebody(configuration:).md)
- [ControlGroupStyle.Configuration](swiftui/controlgroupstyle/configuration.md)
- [Body](swiftui/controlgroupstyle/body.md)

### Supporting types

- [AutomaticControlGroupStyle](swiftui/automaticcontrolgroupstyle.md)
- [CompactMenuControlGroupStyle](swiftui/compactmenucontrolgroupstyle.md)
- [MenuControlGroupStyle](swiftui/menucontrolgroupstyle.md)
- [NavigationControlGroupStyle](swiftui/navigationcontrolgroupstyle.md)
- [PaletteControlGroupStyle](swiftui/palettecontrolgroupstyle.md)

## Relationships

### Conforming Types

- [AutomaticControlGroupStyle](swiftui/automaticcontrolgroupstyle.md)
- [CompactMenuControlGroupStyle](swiftui/compactmenucontrolgroupstyle.md)
- [MenuControlGroupStyle](swiftui/menucontrolgroupstyle.md)
- [NavigationControlGroupStyle](swiftui/navigationcontrolgroupstyle.md)
- [PaletteControlGroupStyle](swiftui/palettecontrolgroupstyle.md)

## See Also

### Styling groups

- [controlGroupStyle(_:)](swiftui/view/controlgroupstyle(_:).md)
- [ControlGroupStyleConfiguration](swiftui/controlgroupstyleconfiguration.md)
- [formStyle(_:)](swiftui/view/formstyle(_:).md)
- [FormStyle](swiftui/formstyle.md)
- [FormStyleConfiguration](swiftui/formstyleconfiguration.md)
- [groupBoxStyle(_:)](swiftui/view/groupboxstyle(_:).md)
- [GroupBoxStyle](swiftui/groupboxstyle.md)
- [GroupBoxStyleConfiguration](swiftui/groupboxstyleconfiguration.md)
- [indexViewStyle(_:)](swiftui/view/indexviewstyle(_:).md)
- [IndexViewStyle](swiftui/indexviewstyle.md)
- [labeledContentStyle(_:)](swiftui/view/labeledcontentstyle(_:).md)
- [LabeledContentStyle](swiftui/labeledcontentstyle.md)
- [LabeledContentStyleConfiguration](swiftui/labeledcontentstyleconfiguration.md)
