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 masksshape— rectangles, ellipses, gradients, and vector paths (morph, stroke evolution)image— static images with fit + filtersvideo— video with trim, loop, playback rateaudio— audio with trim, loop, volumecaption— word-timed kinetic captionsgroup— nested element groupsparticles— deterministic particle systems
Field-value types#
A field's "Type" column uses these conventions:
| Notation | Meaning |
|---|---|
number | Any JSON number. |
string | Any JSON string. |
'a' | 'b' | 'c' | One of an enumerated set of string literals. |
number | string | A 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.