> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joyfill.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Form Modes

The Joyfill SDK supports two distinct modes that control how users can interact with your forms: **Fill Mode** and **Read-Only Mode**.

**Fill Mode (Default)**

**Fill Mode** (.fill) is the default mode that allows users to interact with and edit form fields.

```swift theme={null}
// These are equivalent - Fill Mode is default
let documentEditor1 = DocumentEditor(document: document)
let documentEditor2 = DocumentEditor(document: document, mode: .fill)
```

**Features:**

* Users can input data into all field types
* File uploads and camera capture are enabled
* Form validation is active
* Page duplication is available (if enabled)
* All interactive elements are functional

**Read-Only Mode**

**Read-Only Mode** (.readonly) displays forms for viewing only, preventing any user modifications.

```swift theme={null}
let documentEditor = DocumentEditor(
    document: document,
    mode: .readonly  // Must be explicitly set
)
```

**Features:**

* All fields are disabled for input
* File uploads and camera capture are disabled
* Form data is displayed but cannot be modified
* Page duplication is automatically disabled
* Navigation remains functional for multi-page forms
