Funciones
Salida en vivo del motor de render real — edita los ajustes y se actualiza al instante.
Abanico de integraciones
motion design
Un producto en un anillo, con sus conexiones abriéndose en abanico, cada una con su icono.
Ideal para: Con qué se conecta.
Ajustes
Fuente
Tema
Tamaño
Ánimo
Úsala en un vídeo
Ideal paraDemo de producto
Lo que puedes cambiar:
kickercenterspokesPara desarrolladores (MCP y JSON)
Esta es la escena exacta para enviar a create_animation (MCP): mantén la estructura, cambia las palabras y escribe la narración — la voz fija cuánto dura la escena. Pégala en update_storyboard con set_data para cambiar un vídeo que ya hiciste.
{
"visual": "motion",
"heading": "Integrations",
"narration": "Write the sentence the voice says over this scene; its length is the scene's.",
"data": {
"motion": {
"spec": {
"version": 1,
"name": "Integrations hub",
"intent": "hubSpokes: one source fanning out to 3-4 outputs (a centre word and its spokes)",
"stagger": "item",
"params": [
{
"name": "kicker",
"type": "text",
"default": "Connects to",
"maxLength": 28,
"label": "Eyebrow"
},
{
"name": "center",
"type": "text",
"default": "Your CRM",
"maxLength": 18,
"label": "Centre"
},
{
"name": "spokes",
"type": "list",
"default": [
{
"title": "Email campaigns",
"icon": "✉️"
},
{
"title": "Team chat",
"icon": "💬"
},
{
"title": "Billing",
"icon": "💳"
},
{
"title": "Analytics",
"icon": "📊"
}
],
"min": 3,
"max": 4,
"items": "record",
"label": "Spokes"
}
],
"layers": [
{
"id": "kicker",
"kind": "text",
"text": "{{kicker}}",
"role": "label",
"uppercase": true,
"color": "c2",
"align": "center",
"maxLines": 1,
"box": {
"col": 0,
"row": 0,
"cols": 5.2,
"rows": 0.7
},
"tall": {
"col": 0,
"row": 0,
"cols": 12,
"rows": 0.6
},
"enter": {
"primitive": "fadeUp",
"distance": "nudge",
"order": 0
}
},
{
"id": "ring",
"kind": "shape",
"shape": "circle",
"fill": "surface",
"stroke": "c1",
"strokeWidth": "thin",
"elevation": 3,
"box": {
"col": 0,
"row": 1.3,
"cols": 5.2,
"rows": 10.7
},
"tall": {
"col": 1.5,
"row": 0.7,
"cols": 9,
"rows": 4.6
},
"enter": {
"primitive": "scaleSettle",
"spring": "heavy",
"order": 0
}
},
{
"id": "center",
"kind": "text",
"text": "{{center}}",
"role": "display",
"align": "center",
"maxLines": 2,
"box": {
"col": 0.7,
"row": 4.6,
"cols": 3.8,
"rows": 4.7
},
"tall": {
"col": 2.9,
"row": 1.8,
"cols": 6.2,
"rows": 2.4
},
"enter": {
"primitive": "maskReveal",
"order": 1
},
"emphasis": {
"primitive": "lightSweep"
},
"exit": {
"primitive": "exitLift"
}
},
{
"id": "link",
"kind": "shape",
"shape": "line",
"stroke": "c1",
"strokeWidth": "thin",
"box": {
"col": 5.3,
"row": 5.7,
"cols": 1.3,
"rows": 0.6
},
"tall": {
"col": 5.7,
"row": 5.45,
"cols": 0.6,
"rows": 1.1
},
"enter": {
"primitive": "lineDraw",
"order": 2
}
},
{
"id": "card",
"kind": "shape",
"shape": "rect",
"fill": "surface",
"radius": "lg",
"elevation": 2,
"repeat": {
"param": "spokes",
"flow": "column",
"gap": "md"
},
"box": {
"col": 6.7,
"row": 0,
"cols": 5.3,
"rows": 12
},
"tall": {
"col": 0,
"row": 6.7,
"cols": 12,
"rows": 5.3
},
"enter": {
"primitive": "fadeSlide",
"from": "right",
"order": 3
}
},
{
"id": "icon",
"kind": "icon",
"icon": "{{item.icon}}",
"color": "c1",
"repeat": {
"param": "spokes",
"flow": "column",
"gap": "md"
},
"box": {
"col": 7,
"row": 0,
"cols": 1,
"rows": 12
},
"tall": {
"col": 0.4,
"row": 6.7,
"cols": 1.6,
"rows": 5.3
},
"enter": {
"primitive": "scaleSettle",
"spring": "bouncy",
"order": 4
}
},
{
"id": "spoke",
"kind": "text",
"text": "{{item.title}}",
"role": "title",
"align": "start",
"maxLines": 2,
"repeat": {
"param": "spokes",
"flow": "column",
"gap": "md"
},
"box": {
"col": 8.3,
"row": 0,
"cols": 3.4,
"rows": 12
},
"tall": {
"col": 2.4,
"row": 6.7,
"cols": 9.2,
"rows": 5.3
},
"enter": {
"primitive": "fadeSlide",
"from": "right",
"order": 4
}
}
]
},
"name": "Integrations hub"
}
}
}Reutilízala: guarda data.motion.spec una vez con save_motion_spec (se comprueba como con validate_motion_spec) y cualquier escena podrá usar el visual «motion» con data.motion.specId y sus propios parámetros. Nombre de la spec: «Integrations hub».