Os keyframes definem valores específicos de propriedades em momentos específicos, com interpolação entre eles para criar animações suaves.
| Propriedade | Tipo | Necessário | Exemplo | Faixa de Valores | Descrição |
|---|---|---|---|---|---|
| id | string | true | - | - | O identificador único do keyframe. |
| time | number | true | - | - | O tempo em que o keyframe ocorre, em segundos (relativo ao tempo de início do elemento). |
| stateObj | object | true | - | - | O objeto de estado contendo valores de propriedades neste keyframe. Pode incluir qualquer propriedade animável como x, y, rotação, scaleX, scaleY, alpha, etc. |
| cp1 | object | false | - | - | O primeiro ponto de controle para easing da curva Bezier. As coordenadas são normalizadas (intervalo 0-1). Exemplo: {x: 0.25, y: 0.1} |
| cp2 | object | false | - | - | O segundo ponto de controle para easing da curva Bezier. As coordenadas são normalizadas (intervalo 0-1). Exemplo: {x: 0.25, y: 1} |
As propriedades cp1 e cp2 definem uma curva Bezier cúbica para easing personalizado entre keyframes:
cp1: {x: 0.42, y: 0}, cp2: {x: 0.58, y: 1}cp1: {x: 0.42, y: 0}, cp2: {x: 1, y: 1}cp1: {x: 0, y: 0}, cp2: {x: 0.58, y: 1}{
"id": "39ecb75a-3490-43bd-84c2-72366c2f39f2",
"type": "Image",
"start": 0,
"duration": 5,
"trackIndex": 0,
"x": 0,
"y": 0,
"blendMode": "normal",
"anchorX": 1302,
"anchorY": 2312,
"rotation": 0,
"scaleX": 0.23356401384083045,
"scaleY": 0.23356401384083045,
"alpha": 1,
"skewX": 0,
"skewY": 0,
"keyframes": [
{
"id": "800350bd-4a24-4440-904c-ec08a8159508",
"time": 0,
"stateObj": {
"alpha": 0
},
"cp1": {
"x": 0.25,
"y": 0.1
},
"cp2": {
"x": 0.25,
"y": 1
}
},
{
"id": "ce3f9b10-2b9e-4266-8cdb-77167f9f16aa",
"time": 3,
"stateObj": {
"alpha": 1
},
"cp1": {
"x": 0.25,
"y": 0
},
"cp2": {
"x": 0.25,
"y": 0.9
}
}
],
"externalUrl": "https://images.pexels.com/photos/30465303/pexels-photo-30465303.jpeg",
"ext": "jpeg"
}
Quando um elemento tem múltiplos métodos de animação aplicados:
keyframes) - animações de propriedades padrãoanimations) - animações avançadas como expressões, caminhos, sequênciasSe a mesma propriedade é animada por múltiplos métodos, a ordem de prioridade é:
Isso permite que animações avançadas substituam valores de keyframe quando necessário.
time dos keyframes são relativos ao tempo de start do elemento, não ao tempo absoluto da linha do tempo.stateObj.cp1 e cp2.fill, stroke) são interpoladas no espaço RGB.