---
title: Preview
framework: developertoolssupport
role: symbol
role_heading: Structure
path: developertoolssupport/preview
---

# Preview

A base type that preview macros use to create previews.

## Declaration

```swift
@MainActor struct Preview
```

## Overview

Overview Frameworks like SwiftUI and WidgetKit define initializers for this type, along with framework-specific preview macros that rely on this type. You don’t use this type directly. Instead, use one of the preview macros, like Preview(_:body:).

## Topics

### Creating a SwiftUI preview

- [init(_:traits:body:)](developertoolssupport/preview/init(_:traits:body:)-8pemr.md)
- [init(_:traits:body:cameras:)](developertoolssupport/preview/init(_:traits:body:cameras:).md)
- [init(_:immersionStyle:traits:body:cameras:)](developertoolssupport/preview/init(_:immersionstyle:traits:body:cameras:).md)
- [init(_:windowStyle:traits:body:cameras:)](developertoolssupport/preview/init(_:windowstyle:traits:body:cameras:).md)

### Creating a preview of a widget

- [init(_:as:using:widget:contentStates:)](developertoolssupport/preview/init(_:as:using:widget:contentstates:).md)
- [init(_:as:using:widget:timelineProvider:)](developertoolssupport/preview/init(_:as:using:widget:timelineprovider:)-1if5u.md)
- [init(_:as:using:widget:timelineProvider:)](developertoolssupport/preview/init(_:as:using:widget:timelineprovider:)-5335n.md)
- [init(_:as:widget:timeline:)](developertoolssupport/preview/init(_:as:widget:timeline:).md)
- [init(_:as:widget:timelineProvider:)](developertoolssupport/preview/init(_:as:widget:timelineprovider:).md)

### Creating an AppKit preview

- [init(_:traits:body:)](developertoolssupport/preview/init(_:traits:body:)-158mk.md)
- [init(_:traits:body:)](developertoolssupport/preview/init(_:traits:body:)-2viaf.md)

### Getting preview traits

- [Preview.ViewTraits](developertoolssupport/preview/viewtraits.md)

### Initializers

- [init(_:traits:arguments:body:)](developertoolssupport/preview/init(_:traits:arguments:body:)-1xqo1.md)
- [init(_:traits:arguments:body:)](developertoolssupport/preview/init(_:traits:arguments:body:)-287km.md)
- [init(_:traits:arguments:body:)](developertoolssupport/preview/init(_:traits:arguments:body:)-3q0i9.md)
- [init(_:traits:arguments:body:)](developertoolssupport/preview/init(_:traits:arguments:body:)-4ieth.md)
- [init(_:traits:arguments:body:)](developertoolssupport/preview/init(_:traits:arguments:body:)-5cb4o.md)
- [init(_:traits:body:)](developertoolssupport/preview/init(_:traits:body:)-3i54d.md)
- [init(_:traits:body:)](developertoolssupport/preview/init(_:traits:body:)-941vb.md)
- [init(_:widget:relevanceEntries:)](developertoolssupport/preview/init(_:widget:relevanceentries:).md)
- [init(_:widget:relevanceProvider:)](developertoolssupport/preview/init(_:widget:relevanceprovider:).md)
- [init(_:widget:relevanceProvider:relevance:)](developertoolssupport/preview/init(_:widget:relevanceprovider:relevance:).md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Preview definition

- [PreviewLayout](developertoolssupport/previewlayout.md)
- [PreviewTrait](developertoolssupport/previewtrait.md)
- [PreviewRegistry](developertoolssupport/previewregistry.md)
