Compose 스키마
compose.v1.schema.json에서 자동 생성한 페이지입니다. compose spec은 영상 하나 전체(본문, 그 위에 그려지는 것, 그 아래에서 재생되는 것)를 기술하는 문서이며, 프로젝트 문서로 컴파일됩니다. 안에 포함된 모델 타입은 프로젝트 스키마와 같습니다.
ComposeSpec
A whole video: a body, what is drawn over it, and what plays under it.
| Field | Type | Description |
|---|---|---|
audio | Node[] | Sound beside the body's: |
bodyrequired | Node | The main picture, from time zero. Its length is the video's unless |
canvas | Canvas | Size, rate and background. Default Default: |
compose_version | 1 | Spec version. This build reads only Default: |
duration | number | null | The video's length in seconds. Default: the body's. |
loudness | Loudness | null | The loudness an export normalizes the mix to. Returned as an export option, not stored in the project. |
name | string | null | The project's name. Default |
overlays | Node[] | Nodes drawn over the body in order, placed by their own |
theme | ThemeChoice | Fonts, colors, sizes and default timings. Default Default: |
Align
A point of an area: its center, an edge's middle or a corner.
"center"The center."top"The top edge's middle."bottom"The bottom edge's middle."left"The left edge's middle."right"The right edge's middle."top-left"The top-left corner."top-right"The top-right corner."bottom-left"The bottom-left corner."bottom-right"The bottom-right corner.
AlignContent
Where the lines of a wrapping flex container, or a grid's rows, lie across the container.
"start"Packed at the start."center"Packed in the middle."end"Packed at the end."space_between"The first at the start, the last at the end, equal space between."space_around"Equal space around each."space_evenly"Equal space between each and at both ends."stretch"Grown to fill the container.
AlignItems
Where children lie across a flex container's main axis, or in their grid areas.
"start"At the start."center"In the middle."end"At the end."stretch"Across the whole line or area.
AnimatedPoint
A position that can move along curves between its keyframes.
Its JSON is an Animated<Vec2> plus optional spatial tangents per keyframe. With them, the value travels the cubic Bezier through this keyframe's out_tangent and the next's in_tangent, at the speed its timing curve sets along the arc length. Without them it moves in a straight line.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Vec2 | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | PointKeyframe[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_EffectValue
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | EffectValue | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_EffectValue[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Insets
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Insets | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Insets[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutLength
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutLength | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutLength[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutOffset
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutOffset | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutOffset[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_LayoutSize
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | LayoutSize | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_LayoutSize[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Paint
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Paint | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Paint[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Path
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Path | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Path[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Rgba
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Rgba | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Rgba[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_Vec2
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | Vec2 | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_Vec2[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_float
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float) | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_float[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
Animated_string
A value that is either constant or controlled by sorted keyframes.
One of:
mode: "constant"
A value without animation.
| Field | Type | Description |
|---|---|---|
valuerequired | string | Value used at every timestamp. |
mode: "keyframes"
Values evaluated from their keyframe sequence.
| Field | Type | Description |
|---|---|---|
keyframesrequired | Keyframe_string[] | Strictly ascending keyframes. The evaluator clamps outside the sequence. |
AudioEffect
A serializable single-input audio effect applied to a clip or track bus.
Sidechain ducking takes a second input, so it is authored per track through Ducking.
One of:
type: "eq"
Cascaded biquad sections.
| Field | Type | Description |
|---|---|---|
bandsrequired | EqBand[] | Ordered filter sections, 1 to |
type: "compressor"
Lookahead dynamic range compression.
| Field | Type | Description |
|---|---|---|
attack_msrequired | number (float) | Attack time in milliseconds, positive and at most |
lookahead_ms | number (float) | Lookahead in milliseconds, at most Default: |
ratiorequired | number (float) | Downward ratio, from one (unity) to |
release_msrequired | number (float) | Release time in milliseconds, positive and at most |
threshold_dbrequired | number (float) | Level above which gain reduction begins, in decibels from |
type: "reverb"
Schroeder reverberation.
| Field | Type | Description |
|---|---|---|
dampingrequired | number (float) | High-frequency damping, in |
mixrequired | number (float) | Wet mix, in |
room_sizerequired | number (float) | Room size, in |
AudioProperties
Per-clip audio presentation controls.
| Field | Type | Description |
|---|---|---|
effects | AudioEffect[] | Ordered single-input effects applied before the track bus, at most Default: |
fade_in | MediaTime | Fade-in duration measured from the clip's timeline start. Non-negative. Default: |
fade_out | MediaTime | Fade-out duration measured back from the clip's timeline end. Non-negative. Default: |
fade_shape | FadeShape | Curve used by both fades. Default: |
gain | Animated_float | Animated linear amplitude constrained to Default: |
muted | boolean | Silences this clip without removing it. Default: |
pan | Animated_float | Animated stereo position from Default: |
preserve_pitch | boolean | Keeps the clip's pitch when its speed is not 1 by time-stretching instead of resampling. No effect at speed 1, on loops or on freezes. |
AudioStreamShape
An audio stream's channel count and sample rate.
| Field | Type | Description |
|---|---|---|
channelsrequired | integer (uint32) | Channel count. |
sample_raterequired | integer (uint32) | Samples per second per channel. |
CacheIntent
Whether a runtime may keep and reuse a clip's rendered picture.
"auto"The runtime decides, keeping pictures whose inputs it can identify."pin"Keep it ahead of other pictures, and bake its range when a host bakes render caches."bypass"Always render it live, never reading from or writing to a cache.
Canvas
The canvas: a preset name, or its parts.
One of:
string
A preset at 30 fps: youtube-1080p (1920x1080), youtube-4k (3840x2160), youtube-720p (1280x720), shorts (1080x1920), square (1080x1080) or portrait (1080x1350).
<a href="#customcanvas">CustomCanvas</a>
A preset with some parts replaced, or every part given.
CaptionCue
Text shown over one timeline interval.
| Field | Type | Description |
|---|---|---|
speaker | string | null | Who says it, as the source names them (a WebVTT voice), at most 64 bytes. A track style of that name applies when the cue names no style. |
style | string | null | The name of one of the track's |
textrequired | TextContent | The text, a string or runs; |
timeline_rangerequired | TimeRange | When the cue shows. Non-empty and not before zero. |
CaptionStyle
How captions look.
"outline"Text with a dark band around the glyphs, near the bottom."boxed"Text on a panel behind each line, near the bottom."bar-bottom"Text centered on a translucent bar across the canvas near the bottom, shown as long as the captions."bold-center"Larger outlined text a little below the middle, as short-form video draws it."bold"White text with a black stroke and a soft shadow, near the bottom."karaoke"bold, each word turning the highlight color as it is said. Needs word times (wordsor WebVTT inline timestamps), else draws asbold."pop"bold, the word being said growing a little in the highlight color. Needs word times.
Captions
What a caption track shows: its cues, in its style.
| Field | Type | Description |
|---|---|---|
cuesrequired | CaptionCue[] | Cues in timeline order, none overlapping; a track shows one cue at a time. |
style | TextStyle | The style every cue starts from. Default: |
styles | { [name]: TextStylePatch } | Named changes to |
CaptionsNode
Timed text.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
color | Rgba | null | Text color. Default: the theme's. |
cues | Cue[] | Cues as given, in seconds from the node's start. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
file | string | null | A SubRip ( |
font_size | number | null | Font size in pixels. Default: the theme's caption size. |
highlight | Rgba | null | The color |
id | string | null | The node's name, for other nodes to refer to. |
max_chars | integer | null | The longest cue words are grouped into, in characters. Default 32 on a tall canvas, 42 on a wide one. |
position | number | null | Where the text's middle lies, as a fraction of the canvas height. Default depends on the style and the canvas's shape. |
speakers | { [name]: SpeakerLook } | Each speaker's look, keyed by a WebVTT voice or a cue's |
srt | string | null | SubRip text. |
style | CaptionStyle | How the captions look. Default Default: |
vtt | string | null | WebVTT text. |
words | Cue[] | Words with their times, as speech recognition gives them, grouped into cues of up to |
Clip
A reference to a source over independent timeline and source ranges.
| Field | Type | Description |
|---|---|---|
audio | AudioProperties | Presentation controls applied to this clip's audio. Default: |
blend_mode | ClipBlendMode | Artistic operation used when this clip is composited over earlier layers. Default: |
cache | CacheIntent | Whether a runtime may keep and reuse the clip's rendered picture. Never changes what renders. |
composition | ClipComposition | null | The composition graph that builds the clip's picture from its source, with the clip's time mapping onto it. Without one the clip shows its source as is. Visual clips only. Default: |
idrequired | ClipId | Stable clip identity. |
masks | ShapeMask[] | Shapes that limit where the clip is visible, applied in order after its composition and before its transform. At most Default: |
matte | Matte | null | Another visual clip whose picture sets where this clip is visible. Default: |
source_idrequired | SourceId | Source consumed by this clip. |
source_rangerequired | TimeRange | Interval read from the source timeline. |
time_map | TimeMap | How timeline time maps onto the source range. Default: |
timeline_rangerequired | TimeRange | Destination interval on the project timeline. |
visual | VisualProperties | Resolution-independent visual presentation controls. Default: |
ClipBlendMode
Blend mode, from W3C Compositing and Blending Level 1 (CSS mix-blend-mode) with the specification's formulas, plus plus-lighter from Level 2.
"normal"Preserve source color and apply source-over coverage."multiply"Multiply source and backdrop components."screen"Inverse-multiply source and backdrop components."overlay"Multiply dark backdrop regions and screen light regions."darken"The darker of source and backdrop, per channel."lighten"The lighter of source and backdrop, per channel."color_dodge"Brighten the backdrop to reflect the source."color_burn"Darken the backdrop to reflect the source."hard_light"Multiply or screen, depending on the source."soft_light"Darken or lighten, depending on the source: a diffused hard light."difference"The absolute difference of source and backdrop."exclusion"Like difference, with lower contrast."hue"The source's hue with the backdrop's saturation and luminosity."saturation"The source's saturation with the backdrop's hue and luminosity."color"The source's hue and saturation with the backdrop's luminosity."luminosity"The source's luminosity with the backdrop's hue and saturation."plus_lighter"Source and backdrop added, premultiplied color and alpha each clamped to 1 (Add or Linear Dodge in design tools). It replaces source-over rather than blending inside it.
ClipComposition
A clip's use of a Composition, and how its time maps onto it.
Composition time is offset + (t - clip start) * scale for timeline time t, rounded down to a tick. Moving a clip keeps its offset so the animation moves with it; trimming its start by d adds d * scale to the offset so the rest stays in place. A negative offset holds settings at their first keyframe and media nodes at their first frame.
| Field | Type | Description |
|---|---|---|
idrequired | CompositionId | The composition shown. |
offset | MediaTime | Composition time at the clip's start. Default: |
scale | TimeScale | Composition time per timeline time. Default: |
ClipEffect
One versioned effect invocation: a composition's effect or transition node, or a timeline transition.
| Field | Type | Description |
|---|---|---|
idrequired | string | Stable effect definition identifier. |
params | { [name]: Animated_EffectValue } | Named parameter values, constant or keyframed. Omitted entries use definition defaults. Keyframe times are composition times in a composition node and timeline times in a timeline transition. A parameter's keyframes share one value type, and Default: |
resources | { [name]: EffectResourceId } | Named external resources matched against the effect definition. Default: |
versionrequired | integer (uint32) | Exact effect definition version required by the project. |
ClipId
A stable timeline-clip identifier.
Type: string
ClipTransition
A two-input transition over the overlap of two visual clips.
| Field | Type | Description |
|---|---|---|
easingrequired | Easing | Timing curve applied to the transition's linear progress. The eased progress is clamped to |
effectrequired | ClipEffect | Versioned transition shader and named parameter values. |
from_cliprequired | ClipId | Clip sampled as transition progress zero. |
timeline_rangerequired | TimeRange | Half-open timeline interval over which both clips must be active. |
to_cliprequired | ClipId | Clip sampled as transition progress one. |
ColorMatrix
Coefficients used to decode source components.
"bt601"SD BT.601 YUV coefficients."bt709"HD BT.709 YUV coefficients."bt2020_ncl"BT.2020 non-constant-luminance YUV coefficients."rgb"Source components are already RGB.
ColorMetadata
Host-independent video color description.
| Field | Type | Description |
|---|---|---|
dynamic_rangerequired | DynamicRange | SDR or HDR; HDR exactly when |
matrixrequired | ColorMatrix | YUV-to-RGB coefficient family, or RGB for already converted sources. |
primariesrequired | ColorPrimaries | RGB chromaticity standard. |
rangerequired | ColorRange | Encoded component range. |
transferrequired | TransferFunction | Nonlinear transfer curve. |
ColorPrimaries
RGB primary chromaticities a source or export declares.
"bt601"SD video primaries."bt709"HD video and sRGB primaries."bt2020"Wide-gamut BT.2020 primaries, normally indicating HDR input.
ColorRange
Nominal encoded component range.
"limited"Studio/video range."full"Full component range.
Composition
An acyclic graph of image operations with one selected output.
| Field | Type | Description |
|---|---|---|
controls | CompositionControl[] | The node settings a group node may set, by name. |
idrequired | CompositionId | Stable composition identity. |
inputs | string[] | The images a group node gives it, by name, in port order; its |
nodes | CompositionNode[] | The graph's nodes. Order has no meaning; a node may name a later node as its input. Default: |
output | NodeId | null | The node whose image is the composition's picture. A composition without one saves but cannot be rendered. Default: |
CompositionControl
A node setting a composition exposes to group nodes: an effect or transition parameter of one of its nodes.
| Field | Type | Description |
|---|---|---|
namerequired | string | The name a group node sets it by; unique in the composition. |
noderequired | NodeId | The effect or transition node. |
paramrequired | string | The parameter of its effect. |
CompositionId
A stable composition-graph identifier.
Type: string
CompositionNode
One image operation in a Composition.
Cue
Text over an interval.
| Field | Type | Description |
|---|---|---|
endrequired | number (double) | End in seconds. |
speaker | string | null | Who says it: a key of the captions' |
startrequired | number (double) | Start in seconds. |
textrequired | string | The text. |
CustomCanvas
A canvas by its parts.
| Field | Type | Description |
|---|---|---|
background | Rgba | null | The opaque color under everything. Default: the theme's. |
frame_rate | FrameRateChoice | null | Frames per second: an integer, 23.976, 29.97 or 59.94, or the project's exact |
height | integer | null | Height in pixels. |
preset | string | null | The preset the other parts replace parts of. Default |
width | integer | null | Width in pixels. |
Dash
A dash pattern.
| Field | Type | Description |
|---|---|---|
offset | Animated_float | How far into the pattern the stroke starts. Default: |
patternrequired | Animated_float[] | Alternating dash and gap lengths, as fractions of the shorter side: one to |
Display
How a box lays its children out.
"flex"CSS flexbox."grid"CSS grid.
Ducking
Sidechain ducking authored on the track that is attenuated.
| Field | Type | Description |
|---|---|---|
attack_msrequired | number (float) | Attack time in milliseconds, positive and at most |
depth_dbrequired | number (float) | Maximum attenuation in decibels, from |
release_msrequired | number (float) | Release time in milliseconds, positive and at most |
sidechain_trackrequired | TrackId | Track whose mixed output drives the envelope follower. |
thresholdrequired | number (float) | Linear level above which attenuation begins. Positive. |
DynamicRange
Standard or high dynamic range; must agree with the transfer.
"sdr"Standard dynamic range: a BT.709 or sRGB transfer."hdr"High dynamic range: a PQ or HLG transfer, tone-mapped or rejected per the color pipeline.
Easing
A timing curve from linear progress to eased progress, without a hold.
Transitions use it directly; keyframe Interpolation adds hold.
One of:
type: "linear"
Progress advances at a constant rate.
type: "cubic_bezier"
Progress follows a CSS cubic-bezier() curve.
| Field | Type | Description |
|---|---|---|
x1required | number (float) | Horizontal coordinate of the first control point, in |
x2required | number (float) | Horizontal coordinate of the second control point, in |
y1required | number (float) | Vertical coordinate of the first control point. |
y2required | number (float) | Vertical coordinate of the second control point. |
EffectResourceId
A stable effect-resource identifier.
Type: string
EffectValue
Serializable value supplied to one runtime effect parameter.
One of:
type: "float"
One finite scalar.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float) |
type: "vec2"
Two finite components, normally in normalized coordinates.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float)[] |
type: "vec4"
Four finite components that are not a color, such as per-channel thresholds; they keyframe component by component.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float)[] |
type: "color"
Straight (not premultiplied), sRGB-encoded RGBA in 0..=1, as a color picker shows it.
| Field | Type | Description |
|---|---|---|
valuerequired | number (float)[] |
type: "enum"
Index into an effect definition's enum choices.
| Field | Type | Description |
|---|---|---|
valuerequired | integer (uint32) |
type: "bool"
Boolean toggle.
| Field | Type | Description |
|---|---|---|
valuerequired | boolean |
EqBand
A single equalizer section stored independently from its DSP implementation.
| Field | Type | Description |
|---|---|---|
frequency_hzrequired | number (float) | Center or corner frequency in hertz, within |
gain_db | number (float) | Peaking gain in decibels, at most Default: |
kindrequired | EqBandKind | Filter shape. |
qrequired | number (float) | Resonance, within |
EqBandKind
The filter shape of one equalizer band.
"peaking"Bell-shaped parametric band."low_pass"Second-order low-pass."high_pass"Second-order high-pass.
FadeShape
Curve applied by a clip's fade in and fade out.
"linear"Amplitude moves linearly. Two linear fades over one overlap dip by 6 dB."equal_power"Amplitude follows a quarter sine. Two of these crossfade at constant power.
FileKind
What a media file holds, when its extension does not say.
"video"Moving pictures, perhaps with sound."image"A still picture."audio"Sound alone.
FillRule
Which regions of a path are inside it.
"nonzero"Where the outline winds around a point at all."evenodd"Where it winds around a point an odd number of times.
Fit
How a picture fills its area.
"contain"All of it, as large as fits; the rest of the area stays empty."cover"All of the area, cropped to it."fill"Stretched to the area."none"At its own size in pixels, cropped to the area.
FlexDirection
The main axis of a flex container.
"row"Left to right."column"Top to bottom."row_reverse"Right to left."column_reverse"Bottom to top.
FlexWrap
Whether a flex container's children wrap.
"nowrap"One line."wrap"As many lines as the children need.
FrameRate
A positive rational frame rate in reduced form, at most one frame per tick (120 000 fps).
| Field | Type | Description |
|---|---|---|
denrequired | integer (uint32) | Seconds per |
numrequired | integer (uint32) | Frames per |
FrameRateChoice
A frame rate, as a number or exactly.
One of:
number <span class="a2-muted">(double)</span>
Frames per second: an integer, or 23.976, 29.97 or 59.94 for the NTSC rates.
<a href="#framerate">FrameRate</a>
The project's exact rate.
Generator
The picture of a generated source.
A generated picture has the canvas's size and aspect. Positions are normalized, (0, 0) top-left to (1, 1) bottom-right, and lengths are fractions of the shorter side, so the picture is the same at any render resolution. A fill never changes over time; text changes only through its style's animators; shapes and layouts may change.
One of:
type: "fill"
Paint over the whole picture.
| Field | Type | Description |
|---|---|---|
paintrequired | Paint | What covers the picture. |
type: "shapes"
Shapes drawn from an ordered content tree, as an After Effects or Lottie shape layer draws them. Every value in the tree may be keyframed in picture time.
type: "text"
Text on a transparent picture, laid out and placed by its style as caption cues are, and drawn with the host's registered fonts.
| Field | Type | Description |
|---|---|---|
style | TextStyle | How it looks and where it lies. The font size is at most Default: |
textrequired | TextContent | The text, a string or runs; |
type: "layout"
Boxes laid out by CSS flexbox around their text and shapes, with the engine's fonts. Any value in the tree may be keyframed in picture time. See LayoutNode.
| Field | Type | Description |
|---|---|---|
rootrequired | LayoutNode | The root box: the whole picture. |
GradientStop
One color of a gradient.
| Field | Type | Description |
|---|---|---|
colorrequired | Rgba | Color at that position. |
offsetrequired | number (float) | Position along the gradient, in |
GridAutoFlow
How a grid places items that have no placement of their own.
"row"Filling each row, adding rows."column"Filling each column, adding columns."row_dense"Asrow, filling earlier holes."column_dense"Ascolumn, filling earlier holes.
GridLength
How long a grid of clips of different lengths lasts.
"shortest"As long as its shortest cell."longest_freeze"As long as its longest; shorter clips hold their last frame."longest_loop"As long as its longest; shorter clips play again from their start.
GridPlacement
Where a grid item lies on one axis, as CSS writes it: 2, "1 / 3", "span 2", "2 / span 3", "auto". Lines count from 1, or from -1 at the end.
One of:
integer
string
Inset
Space kept clear inside an area.
One of:
number <span class="a2-muted">(float)</span>
The same on every side.
number <span class="a2-muted">(float)</span>[]
[top, right, bottom, left].
Insets
A length on each side of a box: one length for every side, the CSS shorthand of one to four lengths ("8px 16px": top first, clockwise), or the sides object, missing sides 0.
One of:
number <span class="a2-muted">(float)</span>
string
object
| Field | Type | Description |
|---|---|---|
bottom | LayoutSize | |
left | LayoutSize | |
right | LayoutSize | |
top | LayoutSize |
Interpolation
Interpolation from one keyframe to the next.
Values interpolate numerically: a rotation from 0 to 720 degrees turns twice. A host that wants the shortest path normalizes its keyframe values.
One of:
type: "hold"
Keep this keyframe's value until the next keyframe.
type: "linear"
Move to the next value at a constant rate.
type: "cubic_bezier"
Move to the next value along a CSS cubic-bezier() timing curve.
| Field | Type | Description |
|---|---|---|
x1required | number (float) | Horizontal coordinate of the first control point, in |
x2required | number (float) | Horizontal coordinate of the second control point, in |
y1required | number (float) | Vertical coordinate of the first control point. |
y2required | number (float) | Vertical coordinate of the second control point. |
JustifyContent
Where children lie along a container's main axis, or a grid's columns in it.
"start"Packed at the start."center"Packed in the middle."end"Packed at the end."space_between"The first at the start, the last at the end, equal space between."space_around"Equal space around each."space_evenly"Equal space between each and at both ends.
Keyframe_EffectValue
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | EffectValue | Value at |
Keyframe_Insets
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | Insets | Value at |
Keyframe_LayoutLength
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | LayoutLength | Value at |
Keyframe_LayoutOffset
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | LayoutOffset | Value at |
Keyframe_LayoutSize
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | LayoutSize | Value at |
Keyframe_Paint
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | Paint | Value at |
Keyframe_Path
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | Path | Value at |
Keyframe_Rgba
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | Rgba | Value at |
Keyframe_Vec2
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | Vec2 | Value at |
Keyframe_float
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | number (float) | Value at |
Keyframe_string
One timestamped control value.
| Field | Type | Description |
|---|---|---|
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor. |
timerequired | MediaTime | Timestamp of this value. Timeline time, except composition time in a composition node's settings and picture time in a shapes or layout generator's tree. |
valuerequired | string | Value at |
LayoutBorder
A border inside the border box, as wide on every side.
| Field | Type | Description |
|---|---|---|
paintrequired | Animated_Paint | What covers the border. Positions are normalized to the border box. |
widthrequired | Animated_LayoutSize | Width. At least 0. |
LayoutInset
Where an absolute box lies in its parent's padding box. A missing side is auto; with neither left nor right, the box keeps its flow position on that axis.
| Field | Type | Description |
|---|---|---|
bottom | Animated_LayoutLength | null | Distance from the parent's bottom padding edge. |
left | Animated_LayoutLength | null | Distance from the parent's left padding edge. |
right | Animated_LayoutLength | null | Distance from the parent's right padding edge. |
top | Animated_LayoutLength | null | Distance from the parent's top padding edge. |
LayoutLength
A length: a number is a fraction of the layout picture's shorter side, "<n>px" pixels of the project canvas, "<n>%" a percent of the parent's content box along the field's axis.
One of:
number <span class="a2-muted">(float)</span>
string
LayoutNode
One box of a layout tree.
A box lays its children out by flexbox (the default) or grid. It is a container with children, a leaf with text or shape content, and empty otherwise (a spacer or decoration). Each box draws background, then border, then content. Boxes draw in document order; reversed directions and grid placement move them but do not change paint order.
| Field | Type | Description |
|---|---|---|
align_content | AlignContent | null | Where lines of a wrapping flex container, or a grid's rows, lie across the container. Default |
align_items | AlignItems | null | Where children lie across the main axis, or in their grid areas' rows. Default |
align_self | AlignItems | null | Where the box lies across its flex container's main axis, or in its grid area's row. |
aspect_ratio | number | null | Width over height. Positive. |
background | Animated_Paint | null | What covers the border box, rounded by |
border | LayoutBorder | null | A border inside the border box. |
border_radius | Animated_LayoutSize | null | The corner radius of the border box. At least 0; default 0. Capped at half the box's shorter side. |
children | LayoutNode[] | Boxes laid out in this one, in document (and paint) order. Not with |
column_gap | Animated_LayoutSize | null | Space between columns, in place of |
display | Display | null | How the box lays its children out. Default |
fill | Paint | null | What paints the text's glyphs, as a text style's |
flex_basis | Animated_LayoutLength | null | The main size before growing and shrinking. |
flex_direction | FlexDirection | null | The main axis of a flex container's children. Default |
flex_grow | Animated_float | null | How much of a flex container's free space the box takes. At least 0; default 0. Like every flex item field, not in a grid. |
flex_shrink | Animated_float | null | How much the box gives up when a flex container's space runs short. At least 0; default 1. |
flex_wrap | FlexWrap | null | Whether a flex container's children wrap onto more lines. Default |
font_family | string | null | The family the box's text draws in, as a text style's |
font_size | Animated_LayoutSize | null | Font size: positive, at most |
font_weight | integer | null | The weight in |
gap | Animated_LayoutSize | null | Space between children, on both axes. At least 0; default 0. |
grid_auto_columns | TrackList | null | The size of a grid's implicit columns. Default |
grid_auto_flow | GridAutoFlow | null | How a grid places items without a placement. Default |
grid_auto_rows | TrackList | null | The size of a grid's implicit rows. Default |
grid_column | GridPlacement | null | The box's columns in its grid, as CSS writes them ( |
grid_row | GridPlacement | null | The box's rows in its grid. Default |
grid_template_columns | TrackList | null | A grid's explicit columns, as CSS writes them ( |
grid_template_rows | TrackList | null | A grid's explicit rows. Default none. |
height | Animated_LayoutLength | null | Border-box height. |
inset | LayoutInset | null | Where an |
justify_content | JustifyContent | null | Where children lie along the main (for a grid, inline) axis. Default |
justify_items | AlignItems | null | Where a grid's children lie in their grid areas' columns. Default |
justify_self | AlignItems | null | Where the box lies in its grid area's column. |
letter_spacing | number | null | Space after each character, as a fraction of the font size, in |
line_height | number | null | Baseline-to-baseline distance in font sizes, in |
margin | Animated_Insets | null | Space outside the border, written as |
max_height | Animated_LayoutLength | null | Largest height. |
max_width | Animated_LayoutLength | null | Largest width. |
min_height | Animated_LayoutLength | null | Smallest height. |
min_width | Animated_LayoutLength | null | Smallest width. |
opacity | Animated_float | null | Opacity of the box and everything in it as one group, in |
overflow | Overflow | null | Whether content past the padding box is drawn. Default |
padding | Animated_Insets | null | Space inside the border: a length, the CSS shorthand ( |
position | Position | null | Whether the box is in its parent's flow. Default |
rotation_degrees | Animated_float | null | Clockwise rotation of the box and everything in it about its border-box centre, in degrees, after layout. |
row_gap | Animated_LayoutSize | null | Space between rows (or lines of a wrapping row flex container), in place of |
scale | Animated_Vec2 | null | Per-axis scale of the box and everything in it about its border-box centre, after layout. |
shadows | array | null | Shadows of the glyphs and strokes, as a text style's |
shape | LayoutShape | null | Shapes drawn on a picture the size of the box's content box. Not with |
strokes | array | null | Bands around the glyphs, as a text style's |
text | Animated_string | null | The box's text, wrapped at its content width in the inherited style; |
text_align | TextAlign | null | How lines align within the content width. Inherited; the root's is |
text_animators | TextAnimator[] | Per-character motion of the box's own text, Range selectors only (layout text has no runs). At most |
translate | Animated_LayoutOffset | null | Offset of the box and everything in it after layout: the object, or one or two lengths as CSS |
width | Animated_LayoutLength | null | Border-box width. |
LayoutOffset
An offset, x right and y down: one or two lengths as CSS translate writes them (y 0 when missing), or {x, y}.
LayoutShape
A box's shapes, drawn as a shapes generator draws its items on a picture the size of the box's content box. A shape box has no size of its own.
| Field | Type | Description |
|---|---|---|
itemsrequired | ShapeItem[] | The content tree, front first. |
LayoutSize
A length that may not be a percent: a number is a fraction of the layout picture's shorter side, "<n>px" pixels of the project canvas.
One of:
number <span class="a2-muted">(float)</span>
string
LineCap
How an open stroke ends.
"butt"Flat at the end point."round"A half circle past the end point."square"A half square past the end point.
LineJoin
How stroke segments meet at a vertex.
"miter"Extended edges meeting at a point, up to the miter limit."round"A circular arc."bevel"A straight cut across the corner.
LinearPrimaries
Named RGB primaries linear-light media may be in, each with its own white point.
"bt709"ITU-R BT.709 and sRGB, D65 white."bt2020"ITU-R BT.2020, D65 white."p3_d65"DCI-P3 primaries with a D65 white, as Display P3."aces_ap0"ACES AP0 (SMPTE ST 2065-1), the ACES white."aces_ap1"ACES AP1 (ACEScg), the ACES white.
LoopMode
How each pass of a Loop follows the one before.
"repeat"Every pass plays forward from the start. Sound fades out and in overLOOP_FADE_SECONDSat each wrap so the jump does not click."ping_pong"Passes alternate forward and backward.
Loudness
The loudness an export normalizes to: a target, or a target and a ceiling.
One of:
number <span class="a2-muted">(double)</span>
Integrated loudness in LUFS, under a -1 dBTP ceiling.
<a href="#loudnesstarget">LoudnessTarget</a>
Integrated loudness and a true-peak ceiling.
LoudnessTarget
The loudness an export normalizes to.
| Field | Type | Description |
|---|---|---|
target_lufsrequired | number (double) | Integrated loudness, -60..=0 LUFS. |
true_peak_ceiling_dbtp | number (double) | True-peak ceiling, -20..=0 dBTP. Default -1. Default: |
MaskMode
How a mask combines with the coverage of the masks before it.
Coverage starts empty when the first mask adds and full otherwise, so a clip whose only mask subtracts is visible outside the shape.
"add"Union:c + m - c * m."subtract"Difference:c * (1 - m)."intersect"Intersection:c * m.
Matte
Another visual clip whose picture sets where this clip is visible.
The matte clip is drawn, with its own transform and effects, only into the matte and is never composited itself. Where it is not active, coverage is zero.
MatteMode
Which property of the matte clip's picture is coverage.
"alpha"Its alpha."alpha_inverted"One minus its alpha."luma"Its luminance over black: BT.709 weights on linear light, times alpha."luma_inverted"One minus that luminance.
MediaFingerprint
Evidence of a source's media, each part recorded only when known.
A matching content hash proves the same bytes; without one, the other parts can only show a difference. modified_ms narrows a search and never decides identity.
| Field | Type | Description |
|---|---|---|
byte_length | integer | null | The file's length in bytes. |
color | ColorMetadata | null | The color the decoded pictures carry. |
content_sha256 | string | null | SHA-256 of the whole file, as 64 lowercase hexadecimal digits. |
duration_ticks | integer | null | Where the media ends on its own timeline, in ticks: first presentation plus length (a stream starting at 1.4 s and lasting 2 s ends at 3.4 s). Non-negative. |
modified_ms | integer | null | The file's modification time, in milliseconds since the Unix epoch. |
streams | StreamTopology | null | The streams the file carries. |
MediaItem
A file given by its path alone, or a media node.
One of:
string
The file, everything else by default.
<a href="#node">Node</a>
A media node.
MediaKind
The payload domain of a source.
"video"A video stream, potentially with an audio stream."audio"An audio stream."image"A still visual image."generated"A picture the engine draws from the source'sGenerator; the host supplies nothing."composition"A composition of the project, drawn with the source time as its own time. The host supplies only the media its nodes read.
MediaSource
A host-resolved media resource.
| Field | Type | Description |
|---|---|---|
color_metadata | ColorMetadata | null | The color a Default: |
composition | CompositionId | null | The composition a |
fingerprint | MediaFingerprint | null | What the host found at the locator when the project recorded it, so another host can tell whether media it finds is the same. Generated sources have none. |
generator | Generator | null | What a Default: |
has_audio | boolean | Whether the media has an audio stream. This is a fact of the file, recorded the same by every host whether or not it can decode the stream; a host that cannot plays the source silent.
Default: |
idrequired | SourceId | Stable source identity. |
kindrequired | MediaKind | Media payload domain. |
locator | string | Opaque URI or host locator; the engine does not open it. Required except for Default: |
provider | ProviderSource | null | The extension provider and settings that supply this source's media when the host's own decoders do not read it. |
MediaTime
A signed position or duration in timeline ticks (120 000 per second), at most the largest integer a JavaScript number holds exactly either way.
Type: integer (int64)
MergeLayer
One layer of a Merge.
| Field | Type | Description |
|---|---|---|
blend_mode | ClipBlendMode | How the layer blends with the layers under it. Default: |
input | NodeId | null | The layer's image. Default: |
opacity | Animated_float | The layer's opacity, in Default: |
MissingFrames
How an image sequence shows a frame missing from its numbering.
"reject"A sequence with a missing frame is refused."hold"The frame before it is shown."blank"Nothing is shown: a transparent frame.
Node
One part of a video.
One of:
type: "sequence"
Children one after another, with transitions between them.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
childrenrequired | Node[] | The children, in play order. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
transition | TransitionChoice | null | What joins neighbours: a transition overlaps them by its duration. Default |
type: "stack"
Children over each other, each over the ones before.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
childrenrequired | Node[] | The children, each drawn over the ones before and starting at its own |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number, or |
type: "grid"
Children in the cells of a grid, row by row.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
childrenrequired | Node[] | The cells' contents, row by row. |
columns | integer | null | Columns. Default: as square a grid as the children make. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
gap | number (float) | Pixels between cells. Default: |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number, or |
length | GridLength | How long the grid lasts when its cells differ, and what a cell that ends early shows. Default Default: |
type: "media"
A video or still file.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where in its area the picture or text lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
blur | number | null | A Gaussian blur's radius, as a fraction of the picture's shorter side. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade_in | number | null | Seconds of fade in from transparent. |
fade_out | number | null | Seconds of fade out to transparent. |
fit | Fit | null | How a picture fills its area. Default |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number, or |
kind | FileKind | null | What the file holds. Default: by its extension. |
label | string | null | A label a comparison grid shows on the cell. |
loop | boolean | Plays a video again from its start while the node lasts. |
muted | boolean | Silences a video's sound. |
opacity | number | null | Opacity, 0..=1. Default 1. |
pathrequired | string | The file. It becomes the source's locator and the export's asset. |
preserve_pitch | boolean | null | Keeps a video's sound at its pitch when |
speed | number | null | Playback speed of a video: 2 plays it twice as fast. Default 1. |
trim_end | number | null | Where in the file a video ends, in seconds. Default: its end. |
trim_start | number | null | Where in the file a video starts, in seconds. |
volume | number | null | Linear gain of a video's sound. Default 1. |
zoom | array | null | A slow zoom over the node's length, |
type: "text"
Text.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where in its area the picture or text lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
background | Rgba | null | A box of this color behind each line. |
color | Rgba | null | Color. Default: the theme's text color. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default none. |
font_family | string | null | Family. Default: the theme's. |
font_size | number | null | Font size in pixels. Default: the style's. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number, or |
max_lines | integer | null | The most lines it may take; with fonts to measure by, longer text shrinks until it fits. Default: no limit. |
opacity | number | null | Opacity, 0..=1. Default 1. |
shadows | TextShadow[] | Shadows of the glyphs, the first on top, lengths as fractions of the font size (as a text style's |
strokes | TextStroke[] | Bands around the glyphs, innermost first, widths as fractions of the font size (as a text style's |
style | TextRole | The theme style it starts from. Default Default: |
textrequired | string | The text; |
type: "color"
An area painted one color.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
color | Rgba | null | The color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number, or |
type: "captions"
Timed text from cues, a SubRip or WebVTT file, or word timestamps.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
color | Rgba | null | Text color. Default: the theme's. |
cues | Cue[] | Cues as given, in seconds from the node's start. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
file | string | null | A SubRip ( |
font_size | number | null | Font size in pixels. Default: the theme's caption size. |
highlight | Rgba | null | The color |
id | string | null | The node's name, for other nodes to refer to. |
max_chars | integer | null | The longest cue words are grouped into, in characters. Default 32 on a tall canvas, 42 on a wide one. |
position | number | null | Where the text's middle lies, as a fraction of the canvas height. Default depends on the style and the canvas's shape. |
speakers | { [name]: SpeakerLook } | Each speaker's look, keyed by a WebVTT voice or a cue's |
srt | string | null | SubRip text. |
style | CaptionStyle | How the captions look. Default Default: |
vtt | string | null | WebVTT text. |
words | Cue[] | Words with their times, as speech recognition gives them, grouped into cues of up to |
type: "layout"
A layout generator: boxes, text and shapes laid out by CSS flexbox and grid.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where in its area the picture or text lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
inset | Inset | null | Pixels kept clear inside the parent's area: one number, or |
rootrequired | LayoutNode | The root box, as a project's layout generator writes it. |
type: "audio"
A sound file.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
duck_depth_db | number | null | How far ducking lowers it, in dB (negative). Default -12. |
duck_under | string | null | The |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade_in | number | null | Seconds of fade in. |
fade_out | number | null | Seconds of fade out. |
id | string | null | The node's name, for other nodes to refer to. |
loop | boolean | Plays the file again from its start while the node lasts. |
pathrequired | string | The file. |
trim_end | number | null | Where in the file it ends, in seconds. Default: its end. |
trim_start | number | null | Where in the file it starts, in seconds. |
volume | number | null | Linear gain. Default 1. |
type: "raw"
Part of a project (sources, tracks, compositions) at its own times. Overlays only.
| Field | Type | Description |
|---|---|---|
assets | { [name]: string } | Each file a media source of the fragment reads, by source id: the export's assets. |
compositions | Composition[] | Compositions its clips show. |
sources | MediaSource[] | Sources its tracks read. Ids must not collide with the compiler's ( |
tracks | Track[] | Tracks drawn over what comes before, at timeline times. |
type: "slideshow"
Stills or clips in turn, with transitions and slow zooms.
| Field | Type | Description |
|---|---|---|
at | number | null | When it starts in its parent; its length is the slides'. |
fit | Fit | null | How slides fill the canvas. Default |
fit_to | string | null | A sound file whose length the slides share out. It is not played; add it as a music bed. |
id | string | null | The node's name, for other nodes to refer to. |
itemsrequired | MediaItem[] | The slides. |
ken_burns | number | null | How far each slide zooms in over its time, as a multiple (1.15 ends 15% larger). Default none. |
seconds | number | null | How long each slide shows, transitions included, in seconds. Default: |
transition | TransitionChoice | null | What joins slides. Default |
type: "captioned_video"
A video under its captions.
| Field | Type | Description |
|---|---|---|
at | number | null | When it starts in its parent; its length is the video's. |
captionsrequired | CaptionsNode | The captions, timed from the video's start. |
fit | Fit | null | How the video fills the canvas. Default |
id | string | null | The node's name, for other nodes to refer to. Its sound is the video's. |
videorequired | MediaItem | The video. |
type: "title"
A title (and subtitle) over what is under it, laid out on the whole canvas.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where it lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
background | Rgba | null | A card's color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
subtitle | string | null | A smaller line under it. |
textrequired | string | The title. |
type: "title_card"
A title (and subtitle) on the theme's surface, over the whole canvas.
| Field | Type | Description |
|---|---|---|
align | Align | null | Where it lies. Default |
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
background | Rgba | null | A card's color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
subtitle | string | null | A smaller line under it. |
textrequired | string | The title. |
type: "lower_third"
A name and role in the canvas's lower left.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
subtitle | string | null | The role, under it. |
textrequired | string | The name. |
type: "end_card"
A closing card over the whole canvas: a logo, a title and a subtitle on the theme's surface.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
background | Rgba | null | The card's color. Default: the theme's surface. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade | number | null | Seconds of fade in and out. Default: the theme's. |
id | string | null | The node's name, for other nodes to refer to. |
logo | string | null | A picture above the title. |
subtitle | string | null | A smaller line under it. |
textrequired | string | The title. |
type: "comparison_grid"
Clips side by side in a grid, each labeled.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
audio_from | integer | null | Which item's sound plays, by index. Default: none. |
columns | integer | null | Columns. Default: as square a grid as the items make. |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
gap | number (float) | Pixels between cells. Default: |
id | string | null | The node's name, for other nodes to refer to. |
itemsrequired | MediaItem[] | The clips, row by row; each one's |
length | GridLength | How long the grid lasts when its clips differ. Default Default: |
type: "reframe"
A video fitted to a canvas of another shape, over a blurred copy of itself.
| Field | Type | Description |
|---|---|---|
at | number | null | When it starts in its parent; its length is the video's. |
blur | number | null | The background's blur radius, as a fraction of its shorter side. Default 0.05. |
id | string | null | The node's name, for other nodes to refer to. Its sound is the video's. |
videorequired | MediaItem | The video. |
type: "logo"
A picture in a corner.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
corner | Align | null | The corner. Default |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
id | string | null | The node's name, for other nodes to refer to. |
margin | number | null | Pixels from the edges. Default: the theme's margin. |
opacity | number | null | Opacity, 0..=1. Default 1. |
pathrequired | string | The picture. |
size | number | null | Its longer side, in pixels. Default: 15% of the canvas's shorter side. |
type: "music_bed"
Music under the video, faded in and out and ducked under speech.
| Field | Type | Description |
|---|---|---|
at | number | null | Seconds from the parent's start (an overlay's: the video's). Ignored in a sequence. |
duck_depth_db | number | null | How far ducking lowers it, in dB (negative). Default -12. |
duck_under | string | null | The |
duration | number | null | Length in seconds. Default: the node's own length, else what its parent gives it. |
fade_in | number | null | Seconds of fade in. Default 1. |
fade_out | number | null | Seconds of fade out at the end. Default 2. |
id | string | null | The node's name, for other nodes to refer to. |
loop | boolean | Plays the file again from its start while the video lasts. Default true. Default: |
pathrequired | string | The file. |
volume | number | null | Linear gain. Default 1. |
NodeId
A stable identifier of a node within one composition graph. It has no /, which joins the IDs of the group and media nodes a step was drawn through.
Type: string
NodeOp
The operation of a CompositionNode.
Animated settings are keyed in composition time (see ClipComposition).
One of:
type: "clip"
The picture of the clip showing the composition: its source at the time-mapped source time, or what its generated source draws.
type: "media"
Another visual source, read at start plus the composition time. Adds no sound to the mix.
type: "generator"
A picture the engine draws.
| Field | Type | Description |
|---|---|---|
generatorrequired | Generator | What is drawn. |
type: "effect"
A registered effect: its input plus any named images it samples.
| Field | Type | Description |
|---|---|---|
effectrequired | ClipEffect | The versioned effect and its parameters. |
input | NodeId | null | The image the effect processes; a bypassed node passes it through. Default: |
inputs | { [name]: NodeId | null } | The images the effect samples besides its input, by the names its definition declares ( |
type: "transition"
A registered two-input transition at an explicit progress.
| Field | Type | Description |
|---|---|---|
effectrequired | ClipEffect | The versioned transition and its parameters. |
from | NodeId | null | The image at progress zero. Default: |
progressrequired | Animated_float | Progress through the transition, in |
to | NodeId | null | The image at progress one. Default: |
type: "transform"
The input placed on the canvas by a transform and opacity.
| Field | Type | Description |
|---|---|---|
input | NodeId | null | The image placed. Default: |
transform | VisualProperties | Position, anchor, scale, rotation, and opacity. Default: |
type: "merge"
Ordered layers composited over transparency.
| Field | Type | Description |
|---|---|---|
layers | MergeLayer[] | Layers from bottom to top. Default: |
type: "matte"
The input kept where a second image says.
type: "shape_mask"
The input kept inside shapes.
type: "group"
Another composition drawn in this one's time as a group: its output, with group inputs fed from inputs and controls set from controls.
| Field | Type | Description |
|---|---|---|
compositionrequired | CompositionId | The composition drawn. |
controls | { [name]: Animated_EffectValue } | Values for its controls, by name; unset controls keep the composition's own value. Keyed in composition time. |
inputs | NodeId | null[] | The image for each of its inputs, in its port order. Default: |
type: "group_input"
In a composition used as a group, the image the group node gives its input index.
| Field | Type | Description |
|---|---|---|
indexrequired | integer (uint32) | The input, in the composition's port order. |
Overflow
Whether content past a box's padding box is drawn.
"visible"Drawn."hidden"Clipped to the padding box.
Paint
A color or gradient.
Gradients interpolate premultiplied stops in linear light, so a gradient between two colors passes through their physical mix and a stop fading to transparent does not darken its neighbour. A bare color is read as a solid paint; paints are written back tagged.
One of:
type: "linear_gradient"
Colors along the line from start to end, constant across it.
| Field | Type | Description |
|---|---|---|
endrequired | Vec2 | Where offset 1 lies. Distinct from |
spread | Spread | What lies beyond the first and last offsets. Default: |
startrequired | Vec2 | Where offset 0 lies. |
stopsrequired | GradientStop[] | Two to |
type: "radial_gradient"
Colors along the radius of a circle.
| Field | Type | Description |
|---|---|---|
centerrequired | Vec2 | Where offset 0 lies. |
radiusrequired | number (float) | The distance of offset 1 from the centre, as a fraction of the picture's shorter side. Positive. |
spread | Spread | What lies beyond the first and last offsets. Default: |
stopsrequired | GradientStop[] | Two to |
type: "conic_gradient"
Colors around a point: offsets 0 to 1 are one clockwise turn.
| Field | Type | Description |
|---|---|---|
angle_degrees | number (float) | Where offset 0 lies, in degrees clockwise from straight up. Default: |
centerrequired | Vec2 | The point the gradient turns around. |
stopsrequired | GradientStop[] | Two to |
<a href="#rgba">Rgba</a>
Path
One or more subpaths.
| Field | Type | Description |
|---|---|---|
subpathsrequired | Subpath[] | The subpaths, at most |
PathVertex
A path vertex and its tangents. The segment from a to b is the cubic Bezier through a.point, a.point + a.out_tangent, b.point + b.in_tangent and b.point; zero tangents make it straight.
PointKeyframe
One keyframe of an AnimatedPoint.
| Field | Type | Description |
|---|---|---|
in_tangent | Vec2 | The curve's second control point from the previous keyframe, relative to this value. |
interpolationrequired | Interpolation | Interpolation from this keyframe to its successor: how fast the value travels along the way. |
out_tangent | Vec2 | The curve's first control point toward the next keyframe, relative to this value. |
timerequired | MediaTime | Timestamp of this value, as a |
valuerequired | Vec2 | Value at |
PolystarKind
What kind of figure a polystar is.
"star"Points joined by inner corners."polygon"Points joined by straight sides.
Position
Whether a box is in its parent's flow.
"relative"In the flow."absolute"Out of the flow, placed byinset.
ProviderSource
A source whose media an extension provider supplies instead of the host's video and image decoders.
A host picks the provider by probing the bytes at import, never by file name, and records it here so every host opens the source the same way. The engine does not read it.
One of:
format: "svg"
A static SVG document, rasterized at its shown size. The source's kind is image.
format: "animated_image"
A GIF, animated WebP, or APNG: one cycle of frames, each with its own duration. Repetition is the clip's. The source's kind is video.
format: "lottie"
A Lottie animation (JSON file or dotLottie package), evaluated at its own frames. The source's kind is video.
| Field | Type | Description |
|---|---|---|
animation | string | null | The dotLottie animation shown, by ID. Absent means the package's first; always absent for a Lottie JSON file. |
format: "image_sequence"
Still images played in order at a fixed rate. The source's kind is video.
| Field | Type | Description |
|---|---|---|
frame_raterequired | FrameRate | The rate the frames play at. |
framesrequired | string | null[] | Each frame's locator, in play order. |
missing | MissingFrames | How a missing frame is shown. Default: |
primaries | LinearPrimaries | null | The primaries of OpenEXR frames' linear RGB, overriding the first frame's chromaticities. Only for OpenEXR frames. |
start_number | integer (uint64) | The number of the first frame, as its file was numbered. Default: |
format: "exr"
A still OpenEXR image: linear-light RGB(A), read at half precision. The source's kind is image.
| Field | Type | Description |
|---|---|---|
primaries | LinearPrimaries | null | The primaries of its linear RGB, overriding the file's chromaticities (BT.709 when the file has none, as OpenEXR defines). |
RangeShape
How selection rises and falls across a Range selector's range.
"square"Fully selected inside the range, partly at fractional ends."ramp_up"Rising from the start to the end."ramp_down"Falling from the start to the end."triangle"Rising to the middle, falling after it."round"A half circle over the range."smooth"The triangle eased by smoothstep.
RangeUnits
What a Range selector's start, end and offset count in.
"percent"Percents of the units."index"Unit indices.
Rgba
A straight (not premultiplied), sRGB-encoded color with alpha, each component in 0..=1.
Read from the object or CSS hex ("#rgb", "#rgba", "#rrggbb", "#rrggbbaa", any case). Always written back as the object, since components need not be multiples of 1/255.
One of:
object
| Field | Type | Description |
|---|---|---|
alpharequired | number (float) | Coverage. |
bluerequired | number (float) | Blue component. |
greenrequired | number (float) | Green component. |
redrequired | number (float) | Red component. |
string
RunState
Which runs a Timing selector selects.
"upcoming"Runs whose time has not started."active"Runs whose time holds the current time."spoken"Runs whose time has ended.
RunTime
A run's time span.
ShapeGeometry
A geometry alone, as a mask's outline is.
One of:
type: "rectangle"
A rectangle, optionally with rounded corners.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
corner_radius | Animated_float | Corner radius, as a fraction of the shorter side. Non-negative; capped at half the rectangle. Default: |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height before rotation: x a fraction of the picture's width, y of its height. Non-negative. |
type: "ellipse"
An ellipse.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height before rotation: x a fraction of the picture's width, y of its height. Non-negative. |
type: "polystar"
A regular polygon or star.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
inner_radius | Animated_float | A star's distance of its inner corners from the centre. Non-negative. Default: |
inner_roundness | Animated_float | How round a star's inner corners are, in Default: |
kindrequired | PolystarKind | A polygon or a star. |
outer_radiusrequired | Animated_float | Distance of the points from the centre, as a fraction of the shorter side. Non-negative. |
outer_roundness | Animated_float | How round the outer corners are, in Default: |
pointsrequired | Animated_float | Number of points (polygon corners or star tips), from |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
ShapeItem
One entry of a shapes generator's content tree.
A group is read front to back. Geometry accumulates in its group; a fill or stroke paints the geometry listed before it in the same group (nested groups included), and a trim cuts and replaces that geometry. Earlier paints draw on top of later ones, as in After Effects and Lottie.
One of:
type: "group"
Items drawn together through one transform and opacity. Their geometry also counts as the enclosing group's for paints and trims after the group.
| Field | Type | Description |
|---|---|---|
itemsrequired | ShapeItem[] | The group's items, front first. |
transform | ShapeTransform | Where the group lies, and how opaque it is. Default: |
type: "rectangle"
A rectangle, optionally with rounded corners.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
corner_radius | Animated_float | Corner radius, as a fraction of the shorter side. Non-negative; capped at half the rectangle. Default: |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height before rotation: x a fraction of the picture's width, y of its height. Non-negative. |
type: "ellipse"
An ellipse.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
sizerequired | Animated_Vec2 | Full width and height before rotation: x a fraction of the picture's width, y of its height. Non-negative. |
type: "polystar"
A regular polygon or star.
| Field | Type | Description |
|---|---|---|
centerrequired | AnimatedPoint | Centre. |
inner_radius | Animated_float | A star's distance of its inner corners from the centre. Non-negative. Default: |
inner_roundness | Animated_float | How round a star's inner corners are, in Default: |
kindrequired | PolystarKind | A polygon or a star. |
outer_radiusrequired | Animated_float | Distance of the points from the centre, as a fraction of the shorter side. Non-negative. |
outer_roundness | Animated_float | How round the outer corners are, in Default: |
pointsrequired | Animated_float | Number of points (polygon corners or star tips), from |
rotation_degrees | Animated_float | Clockwise rotation about the centre, in degrees. Default: |
type: "fill"
Paints the inside of the geometry listed before it in its group, as one compound path under rule. Open paths are closed for it.
| Field | Type | Description |
|---|---|---|
opacity | Animated_float | Opacity in Default: |
paintrequired | Animated_Paint | What covers it. |
rule | FillRule | Which regions of the compound path are inside. Default: |
type: "stroke"
Strokes the geometry listed before it in its group.
| Field | Type | Description |
|---|---|---|
cap | LineCap | How open ends look. Default: |
dash | Dash | null | Dashes, or a solid stroke when absent. Default: |
join | LineJoin | How segments meet. Default: |
miter_limit | number (float) | Longest a miter join reaches, as a multiple of half the width, before it is beveled. At least 1. Default: |
opacity | Animated_float | Opacity in Default: |
paintrequired | Animated_Paint | What covers the stroke. |
widthrequired | Animated_float | Full width, as a fraction of the shorter side. Non-negative; zero draws nothing. |
type: "trim"
Keeps part of the geometry listed before it in its group, by length.
| Field | Type | Description |
|---|---|---|
endrequired | Animated_float | Where it ends, in |
mode | TrimMode | Whether the span is of all the geometry together or of each part. Default: |
offset | Animated_float | Turns the span is shifted by; it wraps around a closed path. Default: |
startrequired | Animated_float | Where the kept span starts, as a fraction of the length, in |
ShapeMask
A shape that limits where a clip is visible.
Geometry is in the clip's source space before its transform, so the mask moves with the clip: (0, 0) is the source's top-left, (1, 1) its bottom-right. Distances (feather, corner_radius, polystar radii) are fractions of that space's shorter side.
| Field | Type | Description |
|---|---|---|
feather | Animated_float | Edge softness, non-negative; zero is the outline's antialiased edge. Coverage is blurred by a Gaussian with standard deviation Default: |
fill_rule | FillRule | Which regions of the outline are inside it. Default: |
invert | boolean | Whether the mask keeps the outside of the shape instead of its inside. Default: |
mode | MaskMode | How this mask combines with the ones before it. Default: |
shaperequired | ShapeGeometry | The shape's outline, as a shapes generator's geometry. |
ShapeTransform
A group's placement. In pixel space: translate by position, rotate, scale, then translate by minus anchor, so anchor lands on position. The default is identity.
| Field | Type | Description |
|---|---|---|
anchor | Animated_Vec2 | The point of the items that is placed at Default: |
opacity | Animated_float | Opacity of the group as a whole, in Default: |
position | AnimatedPoint | Where Default: |
rotation_degrees | Animated_float | Clockwise rotation, in degrees. Default: |
scale | Animated_Vec2 | Per-axis scale; 1 leaves the items unscaled. Stroke widths scale with it. Default: |
SourceId
A stable media-source identifier.
Type: string
SpeakerLook
How one speaker's captions look.
Spread
What a linear or radial gradient shows outside its first and last stops.
"pad"The end colors continue."repeat"The gradient starts again."reflect"The gradient runs back and forth.
StreamTopology
The streams a media file carries.
| Field | Type | Description |
|---|---|---|
audio | AudioStreamShape | null | The primary audio stream, if there is one. |
video | VideoStreamShape | null | The primary video stream, if there is one. |
Subpath
A run of vertices joined by cubic Bezier segments.
| Field | Type | Description |
|---|---|---|
closed | boolean | Whether a segment joins the last vertex back to the first. Default: |
verticesrequired | PathVertex[] | The vertices, in order. |
TextAlign
How lines of text align within it.
"start"Left."center"Centred."end"Right.
TextAnimator
One animator: what it selects, and what it does to what it selects.
| Field | Type | Description |
|---|---|---|
properties | TextAnimatorProperties | Applied to each character in proportion to its selection. Default: |
selectorrequired | TextSelector | Gives each character its selection, in |
TextAnimatorProperties
What an animator does to each character, in proportion to its selection. A property left out does nothing.
| Field | Type | Description |
|---|---|---|
fill | Animated_Rgba | null | The fill color a fully selected character takes; a gradient fill is mixed toward it. |
offset | Animated_Vec2 | null | Moves the character, in font sizes, +y down. |
opacity | Animated_float | null | The opacity a fully selected character takes, in |
rotation_degrees | Animated_float | null | Turns the character about its centre, clockwise degrees. |
scale | Animated_Vec2 | null | Scales the character about its centre; 1 is none. Each axis in |
stroke | Animated_Rgba | null | The color every stroke of a fully selected character takes. |
tracking | Animated_float | null | Space added after the character, in font sizes, in |
TextBackground
A box behind each line of text.
| Field | Type | Description |
|---|---|---|
colorrequired | Rgba | Box color. |
padding | number (float) | Space between the text and the box edge, as a fraction of the font size, in Default: |
TextContent
A text: one string, or runs whose texts joined are the text.
Written as "Hello" or [{ "text": "Hel" }, { "text": "lo", "class": ["key"] }].
One of:
string
One string; \n starts a line.
<a href="#textrun">TextRun</a>[]
Runs in order; their texts joined are the text.
TextRole
A theme text style.
"title"The largest."subtitle"Under a title."body"Running text."label"A cell's label.
TextRun
A piece of a text that animators' Class and Timing selectors can pick.
| Field | Type | Description |
|---|---|---|
class | string[] | Names Class selectors match, each 1 to 64 bytes of |
textrequired | string | Non-empty; |
time | RunTime | null | When the run is said, from the holder's start (a caption cue's start, or a text generator's picture time zero). |
TextSelector
How an animator selects characters.
One of:
type: "range"
A range over the text's units, shaped at its ends, like After Effects' range selector.
| Field | Type | Description |
|---|---|---|
amount | Animated_float | The selection's scale, in Default: |
based_on | TextUnit | What the range counts: characters (the default), non-space characters, words, or lines. Default: |
end | Animated_float | Where it ends, in the same range. Default 100. Default: |
offset | Animated_float | Added to start and end, in the same range. Default 0. Default: |
shape | RangeShape | How selection rises and falls across the range. Default: |
start | Animated_float | Where the range starts: Default: |
units | RangeUnits | Whether start, end and offset are percents of the units (the default) or unit indices. Default: |
type: "timing"
Characters of timed runs, by the run's time against the current time.
| Field | Type | Description |
|---|---|---|
ramp | MediaTime | How long the state takes to fade in and out; zero switches. Default: |
staterequired | RunState | Which runs it selects: those not yet said, being said, or said. |
sweep | boolean | Splits each run's span over its characters in order, sweeping the run character by character. Default: |
type: "class"
Characters of runs that carry a class.
| Field | Type | Description |
|---|---|---|
classrequired | string | The class name. |
TextShadow
A shadow of a text's glyphs and strokes, behind them.
| Field | Type | Description |
|---|---|---|
blur | number (float) | Blur radius in font sizes, as CSS Default: |
colorrequired | Rgba | Shadow color. |
offset | Vec2 | Offset in font sizes, +x right, +y down; each component in Default: |
TextStroke
A band around the glyphs and the strokes listed before it, drawn behind them.
| Field | Type | Description |
|---|---|---|
colorrequired | Rgba | Band color. |
widthrequired | number (float) | Band width as a fraction of the font size, positive; a text's strokes sum to at most |
TextStyle
How text looks and where it lies, for caption cues or a text Generator.
The font size is a fraction of the canvas's shorter side, the wrapping width a fraction of the canvas width, and strokes, shadows and padding fractions of the font size. The engine draws with its host's registered fonts, font_family first, then the rest in fallback order.
Painting is bottom to top as in CSS: background boxes, shadows (last listed lowest), strokes (outermost lowest), fill, then color glyphs.
| Field | Type | Description |
|---|---|---|
align | TextAlign | How lines align within the text. Default: |
anchor | Vec2 | The point of the text, background included, placed at Default: |
animators | TextAnimator[] | Per-character motion and color, applied in order, at most |
background | TextBackground | null | A box behind each line. Default: |
fill | Paint | What paints the glyphs; a color reads as a solid paint. Gradient positions are in the text's layout box, Default: |
font_family | string | null | The family, as the font's name table gives it (typographic family, else family), matched ASCII case-insensitively. Missing glyphs and unknown families fall back to the other fonts in order; |
font_size | number (float) | Font size as a fraction of the canvas's shorter side: positive, at most Default: |
font_weight | integer (uint16) | The weight in Default: |
letter_spacing | number (float) | Space after each character, as a fraction of the font size, in Default: |
line_height | number (float) | Baseline-to-baseline distance in font sizes, in Default: |
max_width | number (float) | Width text wraps at, as a fraction of the canvas width, in Default: |
position | Vec2 | Where on the canvas the text's anchor lies, Default: |
shadows | TextShadow[] | Shadows of the glyphs and strokes, the first on top, as CSS |
strokes | TextStroke[] | Bands around the glyphs, innermost first, each outside the one before. At most |
TextStylePatch
Changes to a TextStyle. Each field set replaces the base's whole value (lists are not merged); a field left out keeps the base's.
| Field | Type | Description |
|---|---|---|
align | TextAlign | null | See |
anchor | Vec2 | null | See |
animators | array | null | See |
background | TextBackground | null | The box behind each line; |
fill | Paint | null | See |
font_family | string | null | The family; |
font_size | number | null | See |
font_weight | integer | null | See |
letter_spacing | number | null | See |
line_height | number | null | See |
max_width | number | null | See |
position | Vec2 | null | See |
shadows | array | null | See |
strokes | array | null | See |
TextUnit
The units a Range selector counts.
"characters"Grapheme clusters, spaces included."characters_excluding_spaces"Grapheme clusters that are not white space."words"UAX #29 words that hold a letter or digit; a CJK ideograph is a word."lines"Laid-out lines.
Theme
How text, panels and timings look. Parts left out come from the base theme. Sizes are fractions of the canvas's shorter side, so a theme looks the same on wide and tall canvases.
| Field | Type | Description |
|---|---|---|
accent | Rgba | null | A highlight: a lower third's bar. |
background | Rgba | null | The canvas background. |
base | string | null | The built-in theme this one changes. Default |
body_size | number | null | Body text size. |
caption_size | number | null | Caption size. |
fade_seconds | number | null | How long text and cards fade in and out, in seconds. |
font_family | string | null | Font family, as the font names it. Unset, text draws in the first font an export registers. |
label_size | number | null | Label size: a grid cell's. |
margin | number | null | The space kept clear at the canvas's edges. |
panel | Rgba | null | The boxes behind labels, lower thirds and boxed captions. |
still_seconds | number | null | How long a still shows when nothing says, in seconds. |
subtitle_size | number | null | Subtitle size. |
surface | Rgba | null | What title and end cards are drawn on. |
text | Rgba | null | Text color. |
text_seconds | number | null | How long a card or text shows when nothing says, in seconds. |
title_size | number | null | Title size. |
transition | Transition | null | The transition a slideshow, or a sequence asking for |
ThemeChoice
A theme by name, or one built on a named theme.
One of:
string
A built-in theme: clean-dark or clean-light.
<a href="#theme">Theme</a>
A theme of its own.
TimeMap
How a clip plays its source range over its timeline range.
forward and reverse stretch the source range over the timeline range, so their speed is the ratio of the two. A loop plays the source range at its own speed for as long as the timeline range lasts.
One of:
type: "forward"
From the start of the source range to its end.
type: "reverse"
From the end of the source range to its start: pictures in reverse order and sound played backwards.
type: "freeze"
One source instant for the whole clip, and silence.
| Field | Type | Description |
|---|---|---|
source_timerequired | MediaTime | The instant shown; inside the source range. |
type: "loop"
The source range again and again, at its own speed.
| Field | Type | Description |
|---|---|---|
moderequired | LoopMode | How each pass follows the one before. |
TimeRange
A half-open timeline interval [start, end).
TimeScale
A positive rational rate of one time against another.
| Field | Type | Description |
|---|---|---|
denrequired | integer (uint32) | Denominator; positive. |
numrequired | integer (uint32) | Numerator; positive. |
Track
A homogeneous visual or audio timeline lane.
| Field | Type | Description |
|---|---|---|
audio | TrackAudio | Bus controls applied to this track's mixed audio. Default: |
captions | Captions | null | The cues and style of a caption track; present exactly for that kind. Default: |
clips | Clip[] | Clips on this track, in authoring order; evaluation sorts by time. A caption track has none. Default: |
idrequired | TrackId | Stable track identity. |
kindrequired | TrackKind | Controls source compatibility and evaluation behavior. |
namerequired | string | User-visible track name. |
transitions | ClipTransition[] | Explicit transitions between overlapping clips on this track. Default: |
TrackAudio
Per-track audio bus controls.
| Field | Type | Description |
|---|---|---|
ducking | Ducking | null | Optional sidechain attenuation driven by another track. Default: |
effects | AudioEffect[] | Ordered single-input effects applied to the summed clip signal, at most Default: |
gain | Animated_float | Animated linear bus amplitude constrained to Default: |
muted | boolean | Silences this bus. Default: |
pan | Animated_float | Animated stereo position applied after the clip mix, from Default: |
solo | boolean | Restricts the mix to soloed buses when any track sets this. Default: |
TrackId
A stable timeline-track identifier.
Type: string
TrackKind
The media domain accepted by a track.
"video"A composited visual track."audio"A mixed audio track."caption"Timed text, drawn over the tracks before it and under the ones after.
TrackList
A grid track list as CSS writes it: "1fr 2fr 120px", "repeat(3, minmax(100px, 1fr))", "repeat(auto-fill, 160px)", "auto min-content max-content", "fit-content(200px)". A bare number is a fraction of the picture's shorter side. Named lines are not supported.
Type: string
TransferFunction
Encoded transfer curve.
"bt709"BT.709 opto-electronic transfer function."srgb"IEC sRGB transfer function."pq"Perceptual quantizer HDR transfer function."hlg"Hybrid log-gamma HDR transfer function.
Transition
The transition between two neighbours of a sequence.
| Field | Type | Description |
|---|---|---|
durationrequired | number (double) | How long the neighbours overlap, in seconds. |
easing | Easing | null | The timing curve. Default linear. |
params | { [name]: Animated_EffectValue } | The effect's parameters by name. |
typerequired | string |
|
version | integer | null | The effect definition's version. Default 1. |
TransitionChoice
A sequence's transitions: none, the theme's, or one given.
One of:
string
none for cuts, theme for the theme's transition, or a transition name at the theme's duration.
<a href="#transition">Transition</a>
A transition.
TrimMode
What a trim measures.
"together"One span over the length of every subpath end to end, in order."individually"A span of each subpath alone.
Vec2
A two-dimensional value in normalized output coordinates.
| Field | Type | Description |
|---|---|---|
xrequired | number (float) | Horizontal component. |
yrequired | number (float) | Vertical component. |
VideoStreamShape
A video stream's displayed size and frame rate.
| Field | Type | Description |
|---|---|---|
frame_rate | FrameRate | null | The rate the first frames are presented at, measured from packet times and rounded ( |
heightrequired | integer (uint32) | Displayed height in square pixels, after the pixel aspect ratio and orientation. |
widthrequired | integer (uint32) | Displayed width in square pixels, after the pixel aspect ratio and orientation. |
VisualProperties
Resolution-independent visual presentation controls for a clip.
Omitted fields default to the source centred on the canvas, unscaled, unrotated and opaque.
| Field | Type | Description |
|---|---|---|
anchor | Vec2 | Unanimated normalized point within the source rectangle. Default: |
opacity | Animated_float | Animated opacity constrained to Default: |
position | AnimatedPoint | Animated normalized canvas translation, along spatial curves where keyframes have tangents. Default: |
rotation_degrees | Animated_float | Animated clockwise rotation in degrees. Default: |
scale | Animated_Vec2 | Animated per-axis scale. Default: |
