This is the exhaustive reference for every field of the domotion animate config. It is generated directly from schemas/animate-config.schema.json — the same schema the CLI validates against and ships in the npm package — so it can never drift from what domotion animate actually accepts.
New here? Start with the guided Animate config format page for a narrative introduction, then come back here for the complete field list. Within each table and section below, fields are ordered most-common-first (not in raw schema order), so the everyday options come before the rarely-used ones.
Config for the domotion animate CLI: a list of frames captured from a URL / HTML file, with per-frame actions, overlays, intra-frame animations, and transitions, composed into one animated SVG. Authoritative validation is the zod schema in src/cli/animate.ts; cross-field rules (frame-0 input, scroll-pattern / regex validity) are enforced at runtime and not expressed here.
| Field | Type | Required | Default | Description |
|---|
width | number | ✔ | | |
height | number | ✔ | | |
frames | object[] | ✔ | | |
output | string | | | |
optimize | boolean | | | |
mobile | boolean | | | |
colorScheme | "light" | "dark" | "no-preference" | | | |
vars | object | | | |
cursor | string | object | | | |
$schema | string | | | Optional pointer to this JSON Schema for editor support; ignored by the CLI. |
brand | string | object | | | |
One of 2 variants:
| Field | Type | Required | Default | Description |
|---|
style | object | | | |
events | object[] | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
scale | number | | | |
color | string | | | |
pulseColor | string | | | |
pulseRadius | number | | | |
pulseDurationMs | number | | | |
| Field | Type | Required | Default | Description |
|---|
frame | integer | ✔ | | |
at | number | | 0 | |
type | "move" | "click" | "moveClick" | "hide" | ✔ | | |
selector | string | | | |
to | object | | | |
offset | object | | | |
duration | number | | | |
button | "primary" | "secondary" | "middle" | | | |
| Field | Type | Required | Default | Description |
|---|
x | number | ✔ | | |
y | number | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
dx | number | ✔ | | |
dy | number | ✔ | | |
One of 2 variants:
| Field | Type | Required | Default | Description |
|---|
palette | object | | | |
font | object | | | |
radius | number | | | Corner radius (px) for panels/cards. |
logo | string | | | Logo asset (path/URL) for templates with a logo slot. |
background | string | | | Optional richer scene fill (overrides palette.background full-bleed). |
| Field | Type | Required | Default | Description |
|---|
primary | string | | | Main brand color (buttons, accents, series 1). |
accent | string | | | Secondary accent (highlights, bars, series 2). |
background | string | | | Flat surface color behind content. |
text | string | | | Primary text / foreground color. |
muted | string | | | Secondary text color. |
| Field | Type | Required | Default | Description |
|---|
family | string | | | CSS font-family stack. |
weights | number[] | | | Font weights a template may pick from. |
Each entry in frames. The first frame must have an input (or template/cast); later frames may set continue: true to keep driving the same page.
| Field | Type | Required | Default | Description |
|---|
input | string | | | |
template | string | | | |
cast | string | | | |
continue | boolean | | | |
duration | number | | 0 | |
transition | object | | | |
actions | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[] | | | |
overlays | object | object | object | object | object | object[] | | | |
animations | object[] | | | |
waitForText | object | | | |
waitForCount | object | | | |
waitForGone | string | | | |
waitFor | string | | | |
wait | number | | | |
fit | "center" | "contain" | "cover" | | | |
scroll | object | | | |
scrollTo | any[] | | | |
selector | string | | | |
params | object | | | |
term | object | | | |
forceState | object[] | | | |
hoverReveal | object | | | |
hoverDetect | object | | | |
typeResample | object | | | |
jsReveal | object | | | |
| Field | Type | Required | Default | Description |
|---|
type | "crossfade" | "push-left" | "scroll" | "cut" | "magic-move" | "push-right" | "push-up" | "push-down" | "wipe" | "iris" | "zoom-in" | "zoom-out" | "shine" | "wipe-radial" | "wipe-clock" | ✔ | | |
duration | number | ✔ | | |
easing | string | | | Named/raw easing for wipe/iris/zoom reveals (spring-* etc.). |
wipeStartAngle | number | | | wipe-clock: start angle in degrees clockwise from 12 o’clock (default 0). |
wipeCounterclockwise | boolean | | | wipe-clock: sweep counterclockwise instead of clockwise. |
One of 27 variants:
| Field | Type | Required | Default | Description |
|---|
type | "click" | ✔ | | |
selector | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "fill" | ✔ | | |
selector | string | ✔ | | |
value | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "press" | ✔ | | |
key | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "hover" | ✔ | | |
selector | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "scroll" | ✔ | | |
x | number | | | |
y | number | | | |
| Field | Type | Required | Default | Description |
|---|
type | "wait" | ✔ | | |
ms | number | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "scrollIntoView" | ✔ | | |
selector | string | ✔ | | |
block | "start" | "center" | "end" | "nearest" | | | |
inline | "start" | "center" | "end" | "nearest" | | | |
| Field | Type | Required | Default | Description |
|---|
type | "dispatch" | ✔ | | |
selector | string | ✔ | | |
event | string | ✔ | | |
bubbles | boolean | | | |
| Field | Type | Required | Default | Description |
|---|
type | "focus" | ✔ | | |
selector | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "blur" | ✔ | | |
selector | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "selectText" | ✔ | | |
selector | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "clear" | ✔ | | |
selector | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "setText" | ✔ | | |
selector | string | ✔ | | |
value | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "setHtml" | ✔ | | |
selector | string | ✔ | | |
value | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "remove" | ✔ | | |
selector | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "setAttribute" | ✔ | | |
selector | string | ✔ | | |
name | string | ✔ | | |
value | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "removeAttribute" | ✔ | | |
selector | string | ✔ | | |
name | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "addClass" | ✔ | | |
selector | string | ✔ | | |
class | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "removeClass" | ✔ | | |
selector | string | ✔ | | |
class | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "toggleClass" | ✔ | | |
selector | string | ✔ | | |
class | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "setStyle" | ✔ | | |
selector | string | ✔ | | |
props | object | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "insert" | ✔ | | |
selector | string | ✔ | | |
position | "beforebegin" | "afterbegin" | "beforeend" | "afterend" | ✔ | | |
html | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "setValue" | ✔ | | |
selector | string | ✔ | | |
value | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "check" | ✔ | | |
selector | string | ✔ | | |
checked | boolean | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "selectOption" | ✔ | | |
selector | string | ✔ | | |
value | string | ✔ | | |
| Field | Type | Required | Default | Description |
|---|
type | "replaceText" | ✔ | | |
selector | string | ✔ | | |
pattern | string | ✔ | | |
replacement | string | ✔ | | |
flags | string | | | |
| Field | Type | Required | Default | Description |
|---|
type | "evaluate" | ✔ | | |
script | string | ✔ | | |
One of 6 variants:
| Field | Type | Required | Default | Description |
|---|
kind | "typing" | ✔ | | |
text | string | ✔ | | |
x | number | | 0 | |
y | number | | 0 | |
fontSize | number | | | |
fontFamily | string | | | |
kern | boolean | | | |
color | string | | | |
delay | number | | | |
speed | number | | | |
mode | "type" | "paste" | | | |
jitter | number | | | |
wrapWidth | number | | | |
mask | object | | | |
bgColor | string | | | |
bgWidth | number | | | |
bgHeight | number | | | |
caret | boolean | object | | | |
mistakes | number | array | | | |
mistakeThinkMs | number | | | |
anchor | object | | | |
maxWidth | string | number | | | |
| Field | Type | Required | Default | Description |
|---|
width | number | | | |
height | number | | | |
color | string | | | |
One of 2 variants:
| Field | Type | Required | Default | Description |
|---|
color | string | | | |
width | number | | | |
blinkMs | number | | | |
shape | "bar" | "block" | "underscore" | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
at | "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right" | | | |
dx | number | | | |
dy | number | | | |
| Field | Type | Required | Default | Description |
|---|
kind | "tap" | ✔ | | |
x | number | | 0 | |
y | number | | 0 | |
delay | number | | | |
anchor | object | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
at | "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right" | | | |
dx | number | | | |
dy | number | | | |
| Field | Type | Required | Default | Description |
|---|
kind | "svg" | ✔ | | |
src | string | ✔ | | |
x | number | | 0 | |
y | number | | 0 | |
width | number | ✔ | | |
height | number | ✔ | | |
enter | object | | | |
exit | object | | | |
anchor | object | | | |
| Field | Type | Required | Default | Description |
|---|
from | "top" | "bottom" | "left" | "right" | ✔ | | |
duration | number | ✔ | | |
easing | string | | | |
delay | number | | | |
| Field | Type | Required | Default | Description |
|---|
from | "top" | "bottom" | "left" | "right" | ✔ | | |
duration | number | ✔ | | |
easing | string | | | |
delay | number | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
at | "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right" | | | |
dx | number | | | |
dy | number | | | |
| Field | Type | Required | Default | Description |
|---|
kind | "blink" | ✔ | | |
x | number | | 0 | |
y | number | | 0 | |
width | number | ✔ | | |
height | number | ✔ | | |
periodMs | number | | | |
color | string | | | |
fillOpacity | number | | | |
radius | number | | | |
delay | number | | | |
anchor | object | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
at | "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right" | | | |
dx | number | | | |
dy | number | | | |
| Field | Type | Required | Default | Description |
|---|
kind | "shine" | ✔ | | |
x | number | | 0 | |
y | number | | 0 | |
width | number | | 0 | |
height | number | | 0 | |
delay | number | | | |
duration | number | | | |
color | string | | | |
opacity | number | | | |
bandWidth | number | | | |
skewDeg | number | | | |
radius | number | | | |
repeat | number | string | | | |
repeatPeriodMs | number | | | |
anchor | object | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
at | "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right" | | | |
dx | number | | | |
dy | number | | | |
| Field | Type | Required | Default | Description |
|---|
kind | "interact" | ✔ | | |
x | number | | 0 | |
y | number | | 0 | |
width | number | | 0 | |
height | number | | 0 | |
treatment | "hover" | "focus" | "press" | | | |
fill | string | | | |
fillOpacity | number | | | |
ring | string | | | |
ringWidth | number | | | |
radius | number | | | |
scale | number | | | |
delay | number | | | |
duration | number | | | |
holdMs | number | | | |
releaseMs | number | | | |
repeat | number | string | | | |
repeatPeriodMs | number | | | |
anchor | object | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
at | "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right" | | | |
dx | number | | | |
dy | number | | | |
| Field | Type | Required | Default | Description |
|---|
property | "width" | "height" | "opacity" | "transform" | "translateX" | "translateY" | "scale" | "clipPath" | | | |
from | string | | | |
to | string | | | |
duration | number | ✔ | | |
easing | string | | | |
transformOrigin | string | | | |
delay | number | | | |
repeat | integer | string | | | |
alternate | boolean | | | |
fuse | object[] | | | |
selector | string | ✔ | | |
preset | string | | | Named motion preset supplying property/from/to/fuse/easing. |
presetDistance | number | | | Travel px for slide/fade presets. |
presetScaleFrom | number | | | Start scale for the pop preset. |
exit | boolean | | | Reverse the preset (animate the element OUT). |
| Field | Type | Required | Default | Description |
|---|
property | "width" | "height" | "opacity" | "transform" | "translateX" | "translateY" | "scale" | "clipPath" | ✔ | | |
from | string | ✔ | | |
to | string | ✔ | | |
duration | number | | | |
delay | number | | | |
easing | string | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
equals | string | | | |
contains | string | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
equals | number | | | |
atLeast | number | | | |
atMost | number | | | |
| Field | Type | Required | Default | Description |
|---|
pattern | string | ✔ | | |
speed | number | | | |
selector | string | | | |
prescroll | boolean | | | |
| Field | Type | Required | Default | Description |
|---|
theme | string | object | | | |
mode | "incremental" | "full" | | | |
cursor | "block" | "bar" | "underline" | "none" | | | |
cursorColor | string | | | |
fontSize | number | | | |
fontFamily | string | | | |
padding | number | | | |
cols | integer | | | |
rows | integer | | | |
settleMs | number | | | |
minFrameMs | number | | | |
maxFrameMs | number | | | |
tailMs | number | | | |
One of 2 variants:
| Field | Type | Required | Default | Description |
|---|
extends | string | | | |
name | string | | | |
bg | string | | | |
fg | string | | | |
ansi | string[] | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
states | "hover" | "active" | "focus" | "focus-within" | "focus-visible" | "visited" | "target" | "enabled" | "disabled" | "checked" | "indeterminate" | "read-only" | "read-write" | "link"[] | | | |
reset | boolean | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
states | "hover" | "active" | "focus" | "focus-within" | "focus-visible" | "visited" | "target" | "enabled" | "disabled" | "checked" | "indeterminate" | "read-only" | "read-write" | "link"[] | | | |
crossfadeMs | number | | | |
hoverMs | number | | | |
cursor | boolean | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
states | "hover" | "active" | "focus" | "focus-within" | "focus-visible" | "visited" | "target" | "enabled" | "disabled" | "checked" | "indeterminate" | "read-only" | "read-write" | "link"[] | | | |
transitionMs | number | | | |
hoverMs | number | | | |
cursor | boolean | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
text | string | ✔ | | |
speed | number | | | |
delay | number | | | |
tailMs | number | | | |
clear | boolean | | | |
caret | boolean | | | |
caretShape | "auto" | "bar" | "block" | "underscore" | | | |
regionOnly | boolean | | | |
| Field | Type | Required | Default | Description |
|---|
selector | string | ✔ | | |
event | "mouseover" | "mouseenter" | "mousedown" | "mouseup" | "click" | "pointerover" | "pointerenter" | "pointerdown" | | | |
settleMs | number | | | |
debounceMs | number | | | |
holdMs | number | | | |
crossfadeMs | number | | | |