View raw

Fields#

Reference for every field the Clipkit runtime reads. The schema is layered — start here, then drill into the part you need.

How the schema is organized#

A Clipkit project is a Source: a top-level object that holds project-wide settings (dimensions, duration, frame rate) and an elements[] array.

Each entry in elements is an Element. Every element shares a common set of fields (id, position, size, animations) and then adds its own variant-specific fields based on type.

Source                       → project shell
├── width, height, duration   → Source root fields
├── frame_rate, output_format
└── elements: Element[]       → one Element per scene item
        ├── id, type           → common to all elements
        ├── x, y, width, height
        ├── animations
        └── (variant fields)   → depend on `type`:
              text   → text, font_family, font_size, ...
              shape  → shape, fill_color, border_radius, ...
              image  → source, fit, ...
              video  → source, volume, trim_start, ...
              ...

Pages in this section#

  • Source root — fields on the top-level project object (width, height, duration, frame_rate, …)
  • Common element fields — fields every element has (id, type, time, x, y, animations, …)
  • Per-element fields:
    • text — text + typographic styling + reveal masks
    • shape — rectangles, ellipses, gradients, and vector paths (morph, stroke evolution)
    • image — static images with fit + filters
    • video — video with trim, loop, playback rate
    • audio — audio with trim, loop, volume
    • caption — word-timed kinetic captions
    • group — nested element groups
    • particles — deterministic particle systems

Field-value types#

A field's "Type" column uses these conventions:

NotationMeaning
numberAny JSON number.
stringAny JSON string.
'a' | 'b' | 'c'One of an enumerated set of string literals.
number | stringA length. number is pixels; string is "50%", "100vw", etc.
number | string | Keyframe[]Animatable. See Animation.
Keyframe[]Array of { time, value, easing? } keyframes.
[number, number]A two-number tuple (e.g. position coordinates).
…[]An array of the listed type.

Fields without a default are required when shown unflagged. Fields marked optional may be omitted.

Forward compatibility#

The Source object passes through unknown keys. A runtime newer than your document may read fields you didn't write; an older runtime will ignore fields it doesn't recognize. See Protocol §11 for the version policy.