Help guide

Event Tween node

Updated June 21, 2026

Product media placeholder

Replace this area with a screenshot or short walkthrough video during the media sweep.

Time-based tween triggered by a DOM event. `onEvent` starts the play pulse; optional `offEvent` reverses it (e.g. `mouseenter`/`mouseleave` for hover toggles). Compound: expanded into `eventListener + (eventListener?) + pulseTween + propertyAnimation` — no runtime class. Use this in place of CSS transitions when authoring graph-driven interactions. Channels accept EITHER the terse `{from, to, cssUnit?, ease?}` shape (hand-authored / AI-generated) OR the standard `{cssUnit?, keyframes: [{time, value, ease?}]}` shape (FVE-edited).

Type eventTweenCategory animationContext sharedDynamic ports noCompound yes

Inputs

PortTypeDescription
--No ports declared.

Outputs

PortTypeDescription
--No ports declared.

Parameters

ParameterTypeDefaultDescription
triggerelementSelector""CSS selector for the element that emits the DOM event. Click / hover events are bound to this element.
targetelementSelector""CSS selector for the element whose CSS properties are animated. Leave empty to animate the event source itself.
onEventdomEvent"click"DOM event name that drives the play pulse. Most common: `click`, `mouseenter`, `pointerdown`, `focus`. Pick from the list or type a custom event.
offEventdomEvent""Optional DOM event name that drives the reverse pulse. Leave empty for one-shot animations. Pair with `onEvent` for toggles: `mouseenter` / `mouseleave` for hover, `focus` / `blur` for focus rings.
durationfloat0.3Animation duration in seconds. The internal pulseTween clock advances 0→1 over this duration; channel keyframes interpolate across that 0..1 window.
easeeasingCurve"easeOutCubic"Easing curve applied to the pulseTween clock. Per-keyframe eases on individual channels stack on top of this overall curve.
channelspropertyAnimationChannels{"opacity":{"cssUnit":"none","keyframes":[{"time":0,"value":0},{"time":1,"value":1}]}}CSS properties to animate. Each channel = one CSS property + a keyframe list. Custom properties (`--name`) supported. Optional per-channel `template: "blur({value}px)"` wraps the float output into a CSS string (mutually exclusive with `cssUnit`).

Use cases

  • Hover toggles — `onEvent: mouseenter`, `offEvent: mouseleave`. Forward on enter, reverse on leave. Replaces `transition: <prop> Xs ease` CSS for graph-driven interactions.
  • One-shot click reveals — `onEvent: click`, omit `offEvent`. Animates from `from` to `to` once and stays. Pair with a downstream gate node if you need it to reset.
  • Modal / drawer open-close — set `trigger` to a button, `target` to the modal root, declare opacity / translate / clip-path channels. One node replaces 4-5 imperative wiring nodes.

Related nodes

Envelope

Use eventTween as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.

Generated source

Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-animation/

Was this guide helpful?

Sunny Arora

Written by

Sunny Arora

Get technical deep dives delivered to your inbox

Join creators and developers who get exclusive insights, tutorials, and behind-the-scenes content every week.

No spam. Unsubscribe anytime.

Continue Exploring

You might also enjoy