<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: -",
    "macOS: 11.0.0 -",
    "visionOS: 26.0.0 -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WidgetKit",
  "identifier" : "/documentation/WidgetKit/WidgetFamily",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "WidgetKit"
    ],
    "preciseIdentifier" : "s:9WidgetKit0A6FamilyO"
  },
  "title" : "WidgetFamily"
}
-->

# WidgetFamily

Values that define the widget’s size and shape.

```
@preconcurrency enum WidgetFamily
```

## Overview

Widgets can support one or more sizes, giving users the flexibility to
configure their widgets however they like. Each widget size provides a
different amount of space for detail, so consider which sizes work best for
the type of information the widget displays. For more information about
designing widgets, see
[Widgets](https://developer.apple.com/design/human-interface-guidelines/widgets/overview/introduction/)
or [Complications](https://developer.apple.com/design/human-interface-guidelines/watchos/overview/complications/).

> Note: The sizes of widgets may vary across devices. Your widget content
> should be flexible and avoid using fixed values.

You specify the sizes your widget supports using the <doc://com.apple.documentation/documentation/SwiftUI/WidgetConfiguration/supportedFamilies(_:)>
property modifier when defining your widget’s configuration.

```
struct GameStatusWidget: Widget {
    var body: some WidgetConfiguration {
        StaticConfiguration(
            kind: "com.mygame.game-status",
            provider: GameStatusProvider(),
            placeholder: GameStatusPlaceholderView()
        ) { entry in
            GameStatusView(entry.gameStatus)
        }
        .configurationDisplayName("Game Status")
        .description("Shows an overview of your game status")
        .supportedFamilies([.systemSmall, .systemMedium, .systemLarge])
    }
}
```

When WidgetKit needs to load a widget’s timeline, it calls the
[`TimelineProvider`](/documentation/WidgetKit/TimelineProvider) class’s
[`getTimeline(in:completion:)`](/documentation/WidgetKit/TimelineProvider/getTimeline(in:completion:)) method. The system
passes a [`TimelineProviderContext`](/documentation/WidgetKit/TimelineProviderContext) instance to the method’s
`context` parameter. Use the context’s
[`family`](/documentation/WidgetKit/TimelineProviderContext/family) property to determine the
widget’s size and shape. For example, the
[`WidgetFamily.systemSmall`](/documentation/WidgetKit/WidgetFamily/systemSmall) family represents a small, square
widget on the Home Screen or Today View in iOS or iPadOS, while, in watchOS
the[`WidgetFamily.accessoryCorner`](/documentation/WidgetKit/WidgetFamily/accessoryCorner) family appears as
a widget-based complication in the corner of a watch face.

Use the [`WidgetFamily`](/documentation/WidgetKit/WidgetFamily) value to return the appropriate content
given the widget’s size. For example,
a [`WidgetFamily.systemSmall`](/documentation/WidgetKit/WidgetFamily/systemSmall) widget may focus on showing only
the most critical data, such as a single image or a simple gauge, while
a [`WidgetFamily.systemLarge`](/documentation/WidgetKit/WidgetFamily/systemLarge) widget can contain additional
details, more-complex graphs, and even small blocks of text.

## Topics

### Accessing system families

[`WidgetFamily.systemSmall`](/documentation/WidgetKit/WidgetFamily/systemSmall)

A small widget.

[`WidgetFamily.systemMedium`](/documentation/WidgetKit/WidgetFamily/systemMedium)

A medium-sized widget.

[`WidgetFamily.systemLarge`](/documentation/WidgetKit/WidgetFamily/systemLarge)

A large widget.

[`WidgetFamily.systemExtraLarge`](/documentation/WidgetKit/WidgetFamily/systemExtraLarge)

An extra-large widget.

[`WidgetFamily.systemExtraLargePortrait`](/documentation/WidgetKit/WidgetFamily/systemExtraLargePortrait)

An extra-large widget that uses a portrait orientation.

### Accessing accessory families

[`WidgetFamily.accessoryCircular`](/documentation/WidgetKit/WidgetFamily/accessoryCircular)

A circular widget.

[`WidgetFamily.accessoryCorner`](/documentation/WidgetKit/WidgetFamily/accessoryCorner)

A widget-based complication in the corner of a watch face in watchOS.

[`WidgetFamily.accessoryRectangular`](/documentation/WidgetKit/WidgetFamily/accessoryRectangular)

A rectangular widget.

[`WidgetFamily.accessoryInline`](/documentation/WidgetKit/WidgetFamily/accessoryInline)

A flat widget that contains a single row of text and an optional image.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)