JsonCutDocs
Projects & Schema

Project source and canvas

Define the image or video canvas, duration, safe areas and portable HTML-first source envelope.

Every V2 project begins with the same small envelope. Images use compositionKind: "image", fps: 1 and duration: 1; videos use a real frame rate and fractional duration in seconds.

Rendered output

API reference cover

A layered still image rendered from the same project contract used by video.

API reference cover
Image1200 × 630Editable V2 source

Minimal image source

{
  "format": "jsoncut-html",
  "version": 1,
  "id": "api-reference-cover",
  "name": "API reference cover",
  "compositionKind": "image",
  "canvasBackground": "#031c21ff",
  "width": 1200,
  "height": 630,
  "fps": 1,
  "duration": 1,
  "html": "<div id=\"headline\" data-jc-clip data-jc-kind=\"text\" data-jc-start=\"0\" data-jc-duration=\"1\" data-jc-track=\"1\">RENDER FROM HTML</div>",
  "css": "#headline{position:absolute;left:72px;top:210px;width:780px;color:#effffb;font:800 76px/1 Inter,sans-serif}",
  "variables": [],
  "values": {},
  "customBlocks": []
}

Canvas fields

FieldContract
compositionKindimage or video
width, heightPositive integers; standard render safety allows up to 3840 × 2160
fpsPositive integer up to 60 for render-safe video; images use exactly 1
durationDecimal seconds; images use exactly 1
canvasBackgroundCSS color, eight-digit hex or transparent
safeAreaOptional non-rendering pixel insets {top,right,bottom,left}
aspectVariantsUp to 12 named alternate canvases

Safe areas and aspect variants

{
  "safeArea": { "top": 72, "right": 64, "bottom": 96, "left": 64 },
  "aspectVariants": [
    {
      "id": "vertical",
      "label": "Vertical 9:16",
      "width": 1080,
      "height": 1920,
      "safeArea": { "top": 180, "right": 72, "bottom": 280, "left": 72 }
    }
  ]
}

Safe areas are editor guides and never appear in exports. Aspect variants change the output canvas, not the stored hierarchy, so review text wrapping and crop for every published variant.

Structural and render-safe limits

Structural validation checks that dimensions, frame rate and duration are positive and that the source is internally consistent. Before a render, the standard safety profile additionally enforces integer dimensions up to 3840 × 2160, integer FPS up to 60, duration up to 1200 seconds, at most 800 editable clips, at most 250 variables and at most 5 MiB of combined HTML, CSS and custom-block source.

Named aspect variants are design metadata and allow 64 to 8192 pixels per axis. They do not increase the render limit of the active output canvas.