---
title: PaperKit
framework: PaperKit
role: collection
role_heading: Framework
platforms: [iOS 26.0+, iPadOS 26.0+, Mac Catalyst 26.0+, macOS 26.0+, visionOS 26.0+]
path: paperkit
---

# PaperKit

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

## Overview

Overview PaperKit builds on top of 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 serves as the primary markup controller that interactively creates and displays PaperKit elements alongside PencilKit content. PaperMarkup acts as the data model container that handles saving, loading, and rendering both markup elements and PencilKit drawing data. MarkupEditViewController (in iOS, iPadOS, and visionOS) and 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 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](paperkit/getting-started-with-paperkit.md)

### View controllers

- [PaperMarkupViewController](paperkit/papermarkupviewcontroller.md)
- [MarkupEditViewController](paperkit/markupeditviewcontroller.md)
- [MarkupToolbarViewController](paperkit/markuptoolbarviewcontroller.md)

### Configuration

- [FeatureSet](paperkit/featureset.md)
- [ShapeConfiguration](paperkit/shapeconfiguration.md)
- [RenderingOptions](paperkit/renderingoptions.md)
- [MarkupAutoresizing](paperkit/markupautoresizing.md)

### Data model

- [PaperMarkup](paperkit/papermarkup.md)
- [MarkupOrderedSet](paperkit/markuporderedset.md)
- [MarkupID](paperkit/markupid.md)

### Markup elements

- [Markup](paperkit/markup.md)
- [ImageMarkup](paperkit/imagemarkup.md)
- [ShapeMarkup](paperkit/shapemarkup.md)
- [LinkMarkup](paperkit/linkmarkup.md)
- [LoupeMarkup](paperkit/loupemarkup.md)
- [MarkupInteractions](paperkit/markupinteractions.md)

### Adornments

- [MarkupAdornment](paperkit/markupadornment.md)

### Error handling

- [MarkupError](paperkit/markuperror.md)
