---
title: DocumentCreationSource
framework: swiftui
role: symbol
role_heading: Structure
path: swiftui/documentcreationsource
---

# DocumentCreationSource

Describes the source used to create a new document.

## Declaration

```swift
struct DocumentCreationSource
```

## Overview

Overview On iOS, you can declare custom creation sources and use them in NewDocumentButton. extension DocumentCreationSource {     static let scanner: Self =         DocumentCreationSource(id: "document-from-scanner")

static let template: Self =         DocumentCreationSource(id: "document-from-template") }

DocumentGroupLaunchScene("Documents") {     NewDocumentButton("Scan Document", source: .scanner)     NewDocumentButton("New from Template", source: .template) } When a document is created, you can retrieve its source from URLDocumentConfiguration or FileDocumentConfiguration: DocumentGroup(newDocument: { MyDocument() }) { configuration in     if configuration.creationSource == .template {         TemplateSetupView()     } }

## Topics

### Creating a source

- [init(id:)](swiftui/documentcreationsource/init(id:).md)

### Identifying a source

- [id](swiftui/documentcreationsource/id.md)

## Relationships

### Conforms To

- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Configuring the document launch experience

- [DocumentGroupLaunchScene](swiftui/documentgrouplaunchscene.md)
- [DocumentLaunchView](swiftui/documentlaunchview.md)
- [documentBrowserContextMenu(_:)](swiftui/view/documentbrowsercontextmenu(_:).md)
- [DocumentLaunchGeometryProxy](swiftui/documentlaunchgeometryproxy.md)
- [DefaultDocumentGroupLaunchActions](swiftui/defaultdocumentgrouplaunchactions.md)
- [NewDocumentButton](swiftui/newdocumentbutton.md)
- [NewDocumentButtonDataSource](swiftui/newdocumentbuttondatasource.md)
- [DefaultNewDocumentButtonLabel](swiftui/defaultnewdocumentbuttonlabel.md)
