<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macOS: 26.0.0 -",
    "visionOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PaperKit",
  "identifier" : "/documentation/PaperKit",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "PaperKit"
    ],
    "preciseIdentifier" : "PaperKit"
  },
  "title" : "PaperKit"
}
-->

# PaperKit

Add drawings, shapes, and a consistent markup experience to your app.

## Overview

PaperKit builds on top of <doc://com.apple.documentation/documentation/PencilKit> to deliver a comprehensive markup experience. It adds a layer of elements — including shapes, images, and text boxes — to help create a unified canvas that supports both drawing and annotation. PaperKit powers the markup experience across all Apple platforms, and provides an easy way to add rich markup capabilities to any app.

PaperKit consists of three main components that work together to deliver a complete markup experience. [`PaperMarkupViewController`](/documentation/PaperKit/PaperMarkupViewController) serves as the primary markup controller that interactively creates and displays PaperKit elements alongside PencilKit content. [`PaperMarkup`](/documentation/PaperKit/PaperMarkup) acts as the data model container that handles saving, loading, and rendering both markup elements and PencilKit drawing data. [`MarkupEditViewController`](/documentation/PaperKit/MarkupEditViewController) (in iOS, iPadOS, and visionOS) and [`MarkupToolbarViewController`](/documentation/PaperKit/MarkupToolbarViewController) (in macOS) provide platform-specific insertion menus for adding markup elements.

Configure PaperKit to match your app’s specific needs by providing a [`FeatureSet`](/documentation/PaperKit/FeatureSet) to control which markup tools and capabilities are available. Enable HDR support for stunning visual content, set custom background views, and fine-tune the markup experience to align perfectly with your app’s design and functionality.

## Topics

### Essentials

[Integrating PaperKit into your app](/documentation/PaperKit/getting-started-with-paperkit)

Create your first markup experience by setting up a view controller, adding markup editing tools, and implementing data persistence.

### View controllers

[`PaperMarkupViewController`](/documentation/PaperKit/PaperMarkupViewController)

A view controller for interactively creating and showing markup.

[`MarkupEditViewController`](/documentation/PaperKit/MarkupEditViewController)

A view controller that manages the interface for inserting content into a canvas.

[`MarkupToolbarViewController`](/documentation/PaperKit/MarkupToolbarViewController)

### Configuration

[`FeatureSet`](/documentation/PaperKit/FeatureSet)

The features PaperKit supports in its UI and data models.

[`ShapeConfiguration`](/documentation/PaperKit/ShapeConfiguration)

A configuration that specifies the appearance of a shape.

[`RenderingOptions`](/documentation/PaperKit/RenderingOptions)

The rendering options for drawing paper data models.

[`MarkupAutoresizing`](/documentation/PaperKit/MarkupAutoresizing)

Automatic sizing behaviors for this markup.

### Data model

[`PaperMarkup`](/documentation/PaperKit/PaperMarkup)

The data model object for storing markup data created from a `PaperViewController`.

[`MarkupOrderedSet`](/documentation/PaperKit/MarkupOrderedSet)

An ordered set of markup elements.

[`MarkupID`](/documentation/PaperKit/MarkupID)

An opaque ID for markup elements.

### Markup elements

[`Markup`](/documentation/PaperKit/Markup)

A markup component.

[`ImageMarkup`](/documentation/PaperKit/ImageMarkup)

A markup element that represents an image.

[`ShapeMarkup`](/documentation/PaperKit/ShapeMarkup)

A markup element that represents a shape or text box with customizable appearance and behavior.

[`LinkMarkup`](/documentation/PaperKit/LinkMarkup)

A URL link that a person can tap on in the canvas.

[`LoupeMarkup`](/documentation/PaperKit/LoupeMarkup)

A loupe magnifier that magnifies the content below the loupe.

[`MarkupInteractions`](/documentation/PaperKit/MarkupInteractions)

Interactions that people can perform on markup elements.

### Adornments

[`MarkupAdornment`](/documentation/PaperKit/MarkupAdornment)

A visual adornment that appears on top of markup content within a markup view controller.

### Error handling

[`MarkupError`](/documentation/PaperKit/MarkupError)

The error thrown for encoding / decoding data models.



---

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)