<!--
{
  "documentType" : "article",
  "framework" : "WidgetKit",
  "identifier" : "/documentation/WidgetKit/Widgets-and-Complications-Collection",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Widgets and watch complications"
}
-->

# Widgets and watch complications

Allow people to personalize their devices, view relevant information, and perform interactions with widgets and watch complications.

## Discussion

Use WidgetKit to create widgets and watch complications that elevate a small amount of timely, personally relevant information from your app and allow people to perform quick actions without launching your app:

- On iPhone and iPad, people put widgets in Today View, on the Home Screen, and on the Lock Screen.
- On Mac, people place macOS widgets and widgets from a paired iPhone in locations like the Mac desktop and in Notification Center.
- On Apple Watch, widgets appear in the Smart Stack and as watch complications.
- On Apple Vision Pro, widgets become three-dimensional objects that people pin to horizontal and vertical surfaces.
- In CarPlay, people configure iPhone widgets to appear on the widgets screen.

## Topics

### Widget creation

[Creating a widget extension](/documentation/WidgetKit/Creating-a-Widget-Extension)

Display your app’s content in a convenient, informative widget on various devices.

[Developing a WidgetKit strategy](/documentation/WidgetKit/Developing-a-WidgetKit-strategy)

Explore features, tasks, related frameworks, and constraints as you make a plan to implement widgets, controls, watch complications, and Live Activities.

[Emoji Rangers: Supporting Live Activities, interactivity, and animations](/documentation/WidgetKit/emoji-rangers-supporting-live-activities-interactivity-and-animations)

Offer Live Activities, controls, animate data updates, and add interactivity to widgets.

[Preparing widgets for additional platforms, contexts, and appearances](/documentation/WidgetKit/Preparing-widgets-for-additional-contexts-and-appearances)

Create widgets that support additional platforms and adapt to their context.

  <doc://com.apple.documentation/documentation/SwiftUI/Widget>

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

Values that define the widget’s size and shape.

[`StaticConfiguration`](/documentation/WidgetKit/StaticConfiguration)

An object describing the content of a widget that has no user-configurable
options.

### Configurable widgets

[Making a configurable widget](/documentation/WidgetKit/Making-a-Configurable-Widget)

Give people the option to customize their widgets by adding a custom app intent
to your project.

[Migrating widgets from SiriKit Intents to App Intents](/documentation/WidgetKit/Migrating-from-SiriKit-Intents-to-App-Intents)

Configure your widgets for backward compatibility.

[`AppIntentConfiguration`](/documentation/WidgetKit/AppIntentConfiguration)

An object describing the content of a widget that uses a custom intent
to provide user-configurable options.

[`WidgetInfo`](/documentation/WidgetKit/WidgetInfo)

A structure that contains information about user-configured widgets.

### Layout and presentation

[Supporting additional widget sizes](/documentation/WidgetKit/Supporting-additional-widget-sizes)

Offer widgets in additional contexts by adding support for various widget sizes.

[Displaying the right widget background](/documentation/WidgetKit/Displaying-the-right-widget-background)

Group your widget’s background views and mark them as removable to ensure your widget appears correctly for each context and platform.

[Optimizing your widget for accented rendering mode and Liquid Glass](/documentation/WidgetKit/optimizing-your-widget-for-accented-rendering-mode-and-liquid-glass)

Make your widget feel at home on Apple platforms and Liquid Glass by using accented rendering mode.

[Adding StandBy and CarPlay support to your widget](/documentation/WidgetKit/adding-standby-and-carplay-support-to-your-widget)

Ensure that your small system family widget works well in StandBy and CarPlay.

[`WidgetRenderingMode`](/documentation/WidgetKit/WidgetRenderingMode)

Constants that indicate the rendering mode for a widget.

[`WidgetAccentedRenderingMode`](/documentation/WidgetKit/WidgetAccentedRenderingMode)

Constants that indicate the rendering mode for an `Image` in when displayed in a widget
in [`accented`](/documentation/WidgetKit/WidgetRenderingMode/accented) mode.

[`AccessoryWidgetBackground`](/documentation/WidgetKit/AccessoryWidgetBackground)

An adaptive background view that provides a standard appearance based on the
the widget’s environment.

[`WidgetLocation`](/documentation/WidgetKit/WidgetLocation)

Values that indicate different widget locations.

### Timeline updates

[Keeping a widget up to date](/documentation/WidgetKit/Keeping-a-Widget-Up-To-Date)

Plan your widget’s timeline to show timely, relevant information using
dynamic views, and update the timeline when things change.

[`TimelineProvider`](/documentation/WidgetKit/TimelineProvider)

A type that advises WidgetKit when to update a widget’s display.

[`AppIntentTimelineProvider`](/documentation/WidgetKit/AppIntentTimelineProvider)

A type that advises WidgetKit when to update a user-configurable
widget’s display.

[`IntentTimelineProvider`](/documentation/WidgetKit/IntentTimelineProvider)

A type that advises WidgetKit when to update a user-configurable
widget’s display.

[`TimelineProviderContext`](/documentation/WidgetKit/TimelineProviderContext)

An object that contains details about how a widget is rendered, including
its size and whether it appears in the widget gallery.

[`TimelineEntry`](/documentation/WidgetKit/TimelineEntry)

A type that specifies the date to display a widget, and, optionally,
indicates the current relevance of the widget’s content.

[`Timeline`](/documentation/WidgetKit/Timeline)

An object that specifies a date for WidgetKit to update a widget’s view.

[`WidgetCenter`](/documentation/WidgetKit/WidgetCenter)

An object that contains a list of user-configured widgets and is used for
reloading widget timelines.

### Push notification updates

[Updating widgets with WidgetKit push notifications](/documentation/WidgetKit/Updating-widgets-with-widgetkit-push-notifications)

Use WidgetKit to receive push tokens and reload your widgets with remote push notifications.

[`WidgetPushHandler`](/documentation/WidgetKit/WidgetPushHandler)

A type that can receive push information about widget refreshes and
relevance refreshes.

[`WidgetPushInfo`](/documentation/WidgetKit/WidgetPushInfo)

A structure that contains information about the push token for
updating widgets and widget relevances.

### Capabilities

[Accessing location information in widgets](/documentation/WidgetKit/Accessing-Location-Information-in-Widgets)

Incorporate location information into your widget presentation to make it
more relevant and contextual.

[Making network requests in a widget extension](/documentation/WidgetKit/Making-network-requests-in-a-widget-extension)

Update your widget with new information you fetch with a network request.

### Debugging

[Previewing widgets and Live Activities in Xcode](/documentation/WidgetKit/Previewing-widgets-and-live-activities-in-xcode)

Use Xcode previews to iteratively develop, fine-tune, and troubleshoot widgets and Live Activities.

[Preview macros](/documentation/WidgetKit/Preview-macros)

Use Swift macros to create widget previews in Xcode.

[`WidgetPreviewContext`](/documentation/WidgetKit/WidgetPreviewContext)

A specification for the context of a widget preview.

[Debugging widgets](/documentation/WidgetKit/Debugging-Widgets)

Set environment variables in Xcode to control your widget’s configuration in
the debugger.

### visionOS widgets

[Updating your widgets for visionOS](/documentation/WidgetKit/Updating-your-widgets-for-visionOS)

Choose widget styles specific to visionOS, support recessed and elevated appearances, and add proximity awareness to your widget.

  <doc://com.apple.documentation/documentation/SwiftUI/WidgetConfiguration/widgetTexture(_:)>

[`WidgetTexture`](/documentation/WidgetKit/WidgetTexture)

Values that define the texture of the widget’s coating layer.

  <doc://com.apple.documentation/documentation/SwiftUI/WidgetConfiguration/supportedMountingStyles(_:)>

[`WidgetMountingStyle`](/documentation/WidgetKit/WidgetMountingStyle)

Values that define the widget’s supported mounting style.

[`LevelOfDetail`](/documentation/WidgetKit/LevelOfDetail)

The level of detail the view is recommended to have.

### Accessory and watchOS widgets

[Creating accessory widgets and watch complications](/documentation/WidgetKit/Creating-accessory-widgets-and-watch-complications)

Support accessory widgets that appear on the Lock Screen and as complications on Apple Watch.

[`AccessoryWidgetGroup`](/documentation/WidgetKit/AccessoryWidgetGroup)

A view type that has a label at the top and three content views masked with a circle or rounded square.

[`AccessoryWidgetGroupStyle`](/documentation/WidgetKit/AccessoryWidgetGroupStyle)

The style for an [`AccessoryWidgetGroup`](/documentation/WidgetKit/AccessoryWidgetGroup) view.

[Migrating ClockKit complications to WidgetKit](/documentation/WidgetKit/Converting-A-ClockKit-App)

Leverage WidgetKit’s API to create watchOS complications using SwiftUI.

### Smart Stacks

[Increasing the visibility of widgets in Smart Stacks](/documentation/WidgetKit/Widget-Suggestions-In-Smart-Stacks)

Provide contextual information and donate intents to the system to make sure your widget appears prominently in Smart Stacks.

[`TimelineEntryRelevance`](/documentation/WidgetKit/TimelineEntryRelevance)

An object that describes the relative importance of a timeline entry
compared to other entries in the current and past timelines.

[`RelevanceConfiguration`](/documentation/WidgetKit/RelevanceConfiguration)

A type that describes the content of a widget that uses relevance clues.

[`RelevanceEntriesProvider`](/documentation/WidgetKit/RelevanceEntriesProvider)

A type that provides the content for a widget that uses relevance clues to display information in the Smart Stack.

[`RelevanceEntry`](/documentation/WidgetKit/RelevanceEntry)

A type that specifies the information to render a widget at a specific
relevance configuration.

[`WidgetRelevance`](/documentation/WidgetKit/WidgetRelevance)

A type collecting the relevances for a widget kind.

[`WidgetRelevanceAttribute`](/documentation/WidgetKit/WidgetRelevanceAttribute)

A type that describes when a specific widget could be relevant.

[`WidgetRelevanceGroup`](/documentation/WidgetKit/WidgetRelevanceGroup)

A type for configuring widget behavior in the watchOS Smart Stack.

[`AppIntentRecommendation`](/documentation/WidgetKit/AppIntentRecommendation)

An object that describes a recommended intent configuration for a
user-customizable widget.

[`IntentConfiguration`](/documentation/WidgetKit/IntentConfiguration)

An object describing the content of a widget that uses a custom intent
definition to provide user-configurable options.

[`IntentRecommendation`](/documentation/WidgetKit/IntentRecommendation)

An object that describes a recommended intent configuration for a
user-customizable widget.



---

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)