<sk-keyframe>

← prev index next →

One waypoint of an animation — the property values the animated element should have at a single moment in the timeline.

Remarks

A keyframe belongs to the SkenraAnimatable animation family as a child of an sk-animation: the animation interpolates between its keyframes to drive the host's properties. Each keyframe pins one instant of the timeline.

Key attributes. offset places the keyframe in the timeline as a fraction from 0 (start) to 1 (end). Every other attribute is a value for one animatable property of the animation's host at that offset — and that set is open: a keyframe can carry any animatable property (x, base-color, quaternion, …), which is why it has no fixed list of named properties. The host determines what is animatable — node transforms on a node, colors on a material.

Related. Keyframes live inside an sk-animation; a lone keyframe at offset="1" makes a "to" animation from the host's current value. The properties a keyframe may set are the animatable properties of whatever SkenraAnimatablehosts the animation.

Serve these docs to run the live example. WebGPU needs a secure context — open this page via grunt serve rather than double-clicking the file. The Markup tab works from disk.

Attributes

AttributeTypeDefaultDescription
offset <number> — attribute only
easing <easing-function> — attribute only
composite <composite-operation> ("replace" | "add" | "accumulate") — attribute only
h <angle> 0 attribute only
p <angle> 0 attribute only
b <angle> 0 attribute only
azimuth <angle> — attribute only
elevation <angle> — attribute only
wind-direction <angle> — attribute only
x <number> — attribute only
y <number> — attribute only
z <number> — attribute only
w <number> — attribute only
sx <number> — attribute only
sy <number> — attribute only
sz <number> — attribute only
radius <number> — attribute only
progress <number> — attribute only
intensity <number> — attribute only
base-color <color> — attribute only
base-color-darken-factor <number> — attribute only
color <color> — attribute only
stop-offset <number> — attribute only
stop-color <color> — attribute only
interpolation <stop-interpolation> ("step" | "linear" | "smooth") — attribute only
wind-speed <number> — attribute only
vertical-amplitude <number> — attribute only
horizontal-amplitude <number> — attribute only
anchor <field-anchor> ("center-line" | "edge") — attribute only
angle <angle> — attribute only
axis <orientation-axis> ("+x" | "-x" | "+y" | "-y" | "+z" | "-z") — attribute only
backdrop-blend-mode <backdrop-blend-mode> ("normal" | "multiply" | "screen" | "plus-lighter") — attribute only
base-color-source <id-ref> — reference by id
base-color-source-blend-mode <blend-mode> ("normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity" | "plus-lighter") — attribute only
blend-sharpness <number> — attribute only
bottom-radius <number> — attribute only
cap-field-mode <cap-field-mode> ("none" | "match") — attribute only
cap-progress-mode <cap-progress-mode> ("body-only" | "inclusive") — attribute only
cast-shadow <boolean> — attribute only
cell-size <number> — attribute only
clamp <boolean> — attribute only
cloner <id-ref> — reference by id
clone-scale <number> — attribute only
compute-node <id-ref> — reference by id
contrast <number> — attribute only
cull-mode <cull-mode> ("front" | "back" | "none") — attribute only
db <angle> — attribute only
dh <angle> — attribute only
distance <number> — attribute only
distribution <spline-distribution> ("control-points" | "tessellated" | "arc-length-spaced") — attribute only
dot-spacing <number> — attribute only
dp <angle> — attribute only
d-quaternion <quaternion> ({ <number>, <number>, <number>, <number> }) — attribute only
dsx <number> — attribute only
dsy <number> — attribute only
dsz <number> — attribute only
dx <number> — attribute only
dy <number> — attribute only
dz <number> — attribute only
extent <number> — attribute only
far <number> — attribute only
field <id-ref> — reference by id
field-weight-range <field-weight-range> ([<number>, <number>]) — attribute only
fine <number> — attribute only
focal-length <number> — attribute only
frequency <number> — attribute only
head-length <number> — attribute only
head-pos <3d-position> ([<number>, <number>, <number>]) — attribute only
head-radius <number> — attribute only
height <number> — attribute only
hemisphere <boolean> — attribute only
high-color <color> — attribute only
highlight-dot-density <number> — attribute only
illumination-max-scale <number> — attribute only
illumination-min-scale <number> — attribute only
inner-radius <number> — attribute only
inner-size <number> — attribute only
intensity-field <id-ref> — reference by id
is-closed <boolean> — attribute only
jitter <number> — attribute only
levels <number> — attribute only
line-cap <stroke-line-cap> ("butt" | "round" | "square") — attribute only
line-join <stroke-line-join> ("miter" | "round" | "bevel") — attribute only
low-color <color> — attribute only
major-radius <number> — attribute only
material <id-ref> — reference by id
max-dot <number> — attribute only
mesh <id-ref> — reference by id
min-dot <number> — attribute only
minor-radius <number> — attribute only
mode <viewport-position-mode> ("px" | "percent" | "anchor") — attribute only
morph-progress <number> — attribute only
mottle <number> — attribute only
mottle-scale <number> — attribute only
near <number> — attribute only
on-fraction — — attribute only
orientation <orientation-axis> ("+x" | "-x" | "+y" | "-y" | "+z" | "-z") — attribute only
origin <id-ref> — reference by id
outer-radius <number> — attribute only
outer-size <number> — attribute only
pattern <ordered-dither-pattern> ("bayer2" | "bayer4" | "bayer8" | "bayer16" | "white-noise") — attribute only
pen-down <number> — attribute only
pen-up <number> — attribute only
persistence <number> — attribute only
quaternion <quaternion> ({ <number>, <number>, <number>, <number> }) — attribute only
remap-curve <remap-curve> — attribute only
remap-phase <number> — attribute only
scale <number> — attribute only
seed <number> — attribute only
seed-period <number> — attribute only
segment-length <number> — attribute only
sensor-width <number> — attribute only
shadow-dot-density <number> — attribute only
shaft-length <number> — attribute only
shaft-radius <number> — attribute only
shape <dither-shape> ("circle" | "square" | "diamond" | "line") — attribute only
size-jitter <number> — attribute only
size-jitter-scale <number> — attribute only
size-x <number> — attribute only
size-y <number> — attribute only
size-z <number> — attribute only
softness <number> — attribute only
softness-space <field-space> ("fraction" | "screen" | "world") — attribute only
solid-type <platonic-solid> ("tetrahedron" | "hexahedron" | "octahedron" | "icosahedron") — attribute only
source <id-ref> — reference by id
speck <number> — attribute only
spline <id-ref> — reference by id
strength <number> — attribute only
swell <number> — attribute only
tangential <boolean> — attribute only
target <id-ref> — attribute only
texture-scale <number> — attribute only
threshold <number> — attribute only
threshold-space <field-space> ("fraction" | "screen" | "world") — attribute only
tile <raster-tile> ("none" | "repeat") — attribute only
time-scale <number> — attribute only
tonemap <id-ref> — reference by id
tonemap-blend-mode <blend-mode> ("normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity" | "plus-lighter") — attribute only
tooth <number> — attribute only
tooth-scale <number> — attribute only
top-radius <number> — attribute only
up-node <id-ref> — reference by id
up-reference <id-ref> — reference by id
value <number> — attribute only
values <number-list> (<number>[,<number>]*) — attribute only
wavy <number> — attribute only
wavy-scale <number> — attribute only
width <number> — attribute only
width-profile <width-profile> ({ <width-profile-basis> }) — attribute only
width-space <stroke-space> ("screen" | "world") — attribute only