work.sequential.defs

sequential.work

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "aspectRatio": {
      "properties": {
        "height": {
          "minimum": 1,
          "type": "integer"
        },
        "width": {
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "width",
        "height"
      ],
      "type": "object"
    },
    "bounds": {
      "description": "A rectangle relative to an image, in ten-thousandths of the image's width and height (0-10000), with the origin at the top left.",
      "properties": {
        "height": {
          "maximum": 10000,
          "minimum": 1,
          "type": "integer"
        },
        "width": {
          "maximum": 10000,
          "minimum": 1,
          "type": "integer"
        },
        "x": {
          "maximum": 10000,
          "minimum": 0,
          "type": "integer"
        },
        "y": {
          "maximum": 10000,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "x",
        "y",
        "width",
        "height"
      ],
      "type": "object"
    },
    "category": {
      "description": "A category for a series. AppViews may define their own categories.",
      "maxGraphemes": 64,
      "maxLength": 640,
      "type": "string"
    },
    "credit": {
      "properties": {
        "did": {
          "format": "did",
          "type": "string"
        },
        "displayName": {
          "maxGraphemes": 100,
          "maxLength": 1000,
          "type": "string"
        },
        "role": {
          "description": "The role of the credit. AppViews may define their own roles.",
          "knownValues": [
            "writer",
            "penciler",
            "inker",
            "colorist",
            "flats",
            "letterer",
            "cover",
            "creator",
            "editor",
            "editorInChief",
            "associateEditor",
            "assistantEditor",
            "designer",
            "artist",
            "translator",
            "painter",
            "backgrounds"
          ],
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "role"
      ],
      "type": "object"
    },
    "localizedAlt": {
      "description": "Localized alt text. Describes the art and transcribes the dialogue, captions and sound effects.",
      "properties": {
        "lang": {
          "description": "BCP-47 language tag for this text.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 10000,
          "maxLength": 100000,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "localizedDescription": {
      "properties": {
        "lang": {
          "description": "BCP-47 language tag for this description.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 3000,
          "maxLength": 30000,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "localizedImage": {
      "properties": {
        "image": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp",
            "image/avif"
          ],
          "description": "The localized image.",
          "maxSize": 4194304,
          "type": "blob"
        },
        "lang": {
          "description": "BCP-47 language tag for this image (e.g. 'en', 'pt-BR').",
          "format": "language",
          "type": "string"
        }
      },
      "required": [
        "image",
        "lang"
      ],
      "type": "object"
    },
    "localizedTitle": {
      "properties": {
        "lang": {
          "description": "BCP-47 language tag for this title.",
          "format": "language",
          "type": "string"
        },
        "text": {
          "maxGraphemes": 100,
          "maxLength": 1000,
          "type": "string"
        }
      },
      "required": [
        "lang",
        "text"
      ],
      "type": "object"
    },
    "panel": {
      "description": "A panel on a page or strip. Carries the image's alt text, one description per panel, and optionally its position for panel-by-panel reading. A splash page or single-panel strip is a single panel.",
      "properties": {
        "alt": {
          "description": "Localized alt text for this panel: describes the art and transcribes the dialogue, captions and sound effects.",
          "items": {
            "ref": "work.sequential.defs#localizedAlt",
            "type": "ref"
          },
          "maxLength": 100,
          "type": "array"
        },
        "background": {
          "description": "When reading panel-by-panel, fills the viewport around the panel if the panel's aspect ratio differs from the viewport's. The alpha is the opacity: 0 shows the panel with the surrounding page still visible, 100 hides the page behind a solid color so the panel stands on its own. Treated as fully transparent when omitted.",
          "ref": "#rgba",
          "type": "ref"
        },
        "bounds": {
          "description": "Where the panel sits on the image. Optional, so alt text can be added without mapping panel positions.",
          "ref": "#bounds",
          "type": "ref"
        },
        "mask": {
          "accept": [
            "image/png"
          ],
          "description": "Black and white mask of the panel's exact shape, for panels that aren't rectangles or whose art bleeds past the panel border. Covers the panel's bounds, at the same size or aspect ratio, so the bounds must enclose everything the mask shows. Ignored when bounds are omitted. White shows the art, black hides it, and grays blend for soft edges.",
          "maxSize": 4194304,
          "type": "blob"
        },
        "transition": {
          "default": "none",
          "description": "When reading panel-by-panel, how the app moves to this panel from the previous one. Played in reverse when reading backward. 'none' switches instantly, 'pan' moves the view across the image to the panel, 'fade' crossfades from the previous panel, and 'zoom' pulls back to show the whole image then pushes in to the panel. Duration is up to the AppView. AppViews treat unknown values as 'none'.",
          "knownValues": [
            "none",
            "pan",
            "fade",
            "zoom"
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "rgba": {
      "description": "A color with opacity.",
      "properties": {
        "a": {
          "description": "Opacity, from 0 (fully transparent) to 100 (fully opaque).",
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        "b": {
          "maximum": 255,
          "minimum": 0,
          "type": "integer"
        },
        "g": {
          "maximum": 255,
          "minimum": 0,
          "type": "integer"
        },
        "r": {
          "maximum": 255,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "r",
        "g",
        "b",
        "a"
      ],
      "type": "object"
    },
    "tag": {
      "description": "A free-form tag, without a leading '#'.",
      "maxGraphemes": 64,
      "maxLength": 640,
      "type": "string"
    },
    "version": {
      "description": "Another version of the same artwork, such as a production stage (pencils, inks) or an alternate treatment (virgin, black and white).",
      "properties": {
        "image": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/webp",
            "image/avif"
          ],
          "description": "The version image.",
          "maxSize": 4194304,
          "type": "blob"
        },
        "kind": {
          "description": "What this version shows. AppViews may define their own kinds.",
          "knownValues": [
            "thumbnails",
            "layout",
            "roughs",
            "pencils",
            "lineart",
            "inks",
            "flats",
            "colors",
            "letters"
          ],
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        }
      },
      "required": [
        "image",
        "kind"
      ],
      "type": "object"
    }
  },
  "id": "work.sequential.defs",
  "lexicon": 1
}

Validate Record

Validate a record against work.sequential.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:tndzxgswtjuwylmsa5x3whwa
CID
bafyreif5ij44ksop4zwe3ncyr5egwpw6trxdik2kbhj5lsqgba3d4o2qwq
Indexed At
2026-10-04 02:09 UTC
AT-URI
at://did:plc:tndzxgswtjuwylmsa5x3whwa/com.atproto.lexicon.schema/work.sequential.defs

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@