IIIF Cookbook

The IIIF Presentation API specifies a standardized way to describe complex digital objects. The resource types and properties of the specification are the building blocks of interoperable representations, for rendering by viewers and other software clients. This cookbook gathers together many examples of these representations (usually IIIF Manifests), in order to:

  • provide many more examples than the specification alone can do, for reference and learning;
  • encourage publishers to adopt common patterns in modeling classes of complex objects;
  • enable client software developers to support these patterns, for consistency of user experience (when desirable);
  • demonstrate the applicability of IIIF to a broad range of use cases.

The issues of the Cookbook Recipes repository are used to identify and discuss cookbook recipes, prior to their inclusion in the final cookbook site.

Viewer Support

As part of the work to aid implementation the Cookbook group have developed a Viewer Matrix which shows which recipe is supported by which IIIF viewer.

IIIF v3 viewer support

IIIF v4 viewer support

Presentation API Versions

The cookbook contains recipes primarily for version 3 of the IIIF Presentation API. Where a recipe has been written for only version 4, or for both versions 3 and 4, that is indicated following the recipe title.

Code samples

As well as viewer support, the cookbook provides links to code samples in various development libraries to aid developers who hope to re-create these recipes in Code. You can see a full list of recipes with code samples in the code samples page.

Contributing

Anyone is welcome to submit a recipe idea or work on implementing a recipe. Advice and support can be received from the IIIF Cookbook channel on the IIIF Slack. For detailed information on how to contribute please see the Cookbook process.

The Recipes

Building a manifest in stages, adding more complexity at each stage

Textual and other supplementary content

  • Using Transcripts with A/V Content (version 3)
  • Scholarly Annotation of a Poetry Reading (version 3)
  • Using Captions and Subtitles with Video Content (version 3)
  • Providing Alternative Representations (version 3)
  • Transcripts, Captions, and Subtitles - General Considerations (version 3)
    • Providing Access to Transcript Files of A/V Content (version 3)
    • Using Caption and Subtitle Files with Video Content (version 3)

Other kinds of annotations

(These are also building blocks for segmentation, below)

  • Simplest Annotation (version 3)
  • HTML in Annotations (version 3)
  • CSS in an Annotation (version 3)
  • Simple Annotation - Tagging (version 3)
  • Annotation with a Non-Rectangular Polygon (version 3)
  • Tagging with an External Resource (version 3)
  • Redirecting from one Canvas to another resource (Hotspot linking) (version 3)
  • Annotate a specific images or layers (version 3)
  • Annotating a specific point of an image (version 3)
  • Geographic coordinates (version 3)
  • Embedded or Referenced Annotations (version 3)
  • Linking external Annotations targeting a Canvas to a Manifest (version 3)
  • Using Annotation collections (version 3)
  • Image in annotations (version 3)
  • Annotating in Multiple Languages (version 3)
  • Visible Text Resource on a Canvas (version 3)

Internal structure

  • Table of Contents for Book Chapters (version 3)
  • Navigation by Newspaper Article (version 3)
  • Table of contents for A/V content (version 3)
  • Adding Thumbnail Navigation and no-nav to a Video Resource (version 3)
  • Alternative Page Sequences (version 3)

Higher-level structure

  • Multi-volume Work with Individually-bound Volumes (version 3)
  • Multiple Volumes in a Single Bound Volume (version 3)

Segmentation and complex resources

  • Multiple choice of images in a single view (version 3)
  • Foldouts, Flaps, and Maps (version 3)
  • Composition from Multiple Images (version 3)
  • Rendering Resources Sequentially on a Timeline (version 3)
  • Rendering Multiple Media Types on a Time-Based Canvas (version 3)
  • Image Rotation Two Ways (version 3)

Linking

  • Linking to Web Page of an Object (homepage) (version 3)
  • Linking to Structured Metadata (version 3)

Sharing IIIF content

Recipes using Content State API

  • Loading a manifest with a viewer using a link (version 3)
  • Open a specific region of a canvas in a viewer (version 3)
  • Sharing a link for opening two or more Canvases (version 3)
  • Drag and drop (version 3)

Technical

  • Making IIIF Presentation API v2 and v3 manifests available at the same URL (version 3)

Real-world complex objects (ideally taken from actual collections)

  • Multiple Choice of Audio Formats in a Single View (Canvas) (version 3)
  • Table of Contents for Multiple A/V files on a Single Canvas (version 3)
  • Table of Contents for Multiple A/V files on Multiple Canvases (version 3)
  • Basic Newspaper (version 3)
  • Using Caption and Subtitle Files in Multiple Languages with Video Content (version 3)
  • Locating an Item in Place and Time (version 3)