page.cavu.pages

cavu.page

{
  "id": "page.cavu.pages",
  "defs": {
    "main": {
      "type": "object",
      "required": [
        "pages"
      ],
      "properties": {
        "pages": {
          "type": "array",
          "items": {
            "ref": "#page",
            "type": "ref"
          },
          "maxLength": 1000,
          "description": "Pages in reading order. Chunk boundaries are storage artifacts, invisible to the reader, exactly as for text chunks; a chunk is usually chapter- or issue-sized."
        }
      },
      "description": "Pre-paginated image content (comics, graphic novels, picture books, scanned pages) for a book chunk, carried in a site.standard.document record's `content` open union — the fixed-layout counterpart to a pub.leaflet.content text chunk. Each page is one image; readers lay pages into single-page or two-page-spread views using the book's pageProgression direction and each page's spread hint. The document's `textContent` field may carry a transcript or page descriptions for search and accessibility."
    },
    "page": {
      "type": "object",
      "required": [
        "image",
        "aspectRatio"
      ],
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 1000,
          "description": "Stable anchor id, unique within the document — the comic equivalent of a text block id. Targets for TOC entries and intra-book links: (document AT-URI, page id), stable across edits, unlike array indices."
        },
        "alt": {
          "type": "string",
          "maxLength": 20000,
          "description": "Description of the page for accessibility — ideally a transcript of panels and dialogue.",
          "maxGraphemes": 5000
        },
        "image": {
          "type": "blob",
          "accept": [
            "image/*"
          ],
          "maxSize": 20000000,
          "description": "The page image at full resolution. Prefer formats that decode progressively (progressive JPEG, JPEG XL) so readers can show a low-resolution preview from a byte prefix where range requests are available."
        },
        "spread": {
          "type": "string",
          "description": "Placement hint for two-page-spread views, mirroring EPUB's page-spread properties: `left`/`right` pin the page to a physical side of the spread (renderers insert a blank slot when the natural flow disagrees, as print does), `center` gives the page a spread to itself. Absent means pages fill spreads in reading order per the book's pageProgression. Renderers treat wider-than-tall pages as `center` regardless.",
          "knownValues": [
            "left",
            "right",
            "center"
          ]
        },
        "aspectRatio": {
          "ref": "pub.leaflet.blocks.image#aspectRatio",
          "type": "ref",
          "description": "Intrinsic pixel dimensions, for layout before the blob loads. A page wider than tall is a double-page spread drawn as one image; renderers give it both slots of a two-page view."
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against page.cavu.pages

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:citulkqjdzbnf7wd5xb6lled
CID
bafyreib3smyi47alk4z7kzc5zanwe3sl5m2fs6dpoq3j7raz4ols4a5vfy
Indexed At
2026-07-30 00:06 UTC
AT-URI
at://did:plc:citulkqjdzbnf7wd5xb6lled/com.atproto.lexicon.schema/page.cavu.pages

Referenced Schemas (1)

Lexicon Garden

@