Transition Element

Transitions create smooth visual effects between two consecutive video or image elements.

Time Constraints

  • Overlap Required: Transitions work by overlapping the end of one element (preNodeId) with the start of another (postNodeId)
  • Maximum Duration: The transition duration cannot exceed the available overlap time between the two elements
  • Positioning: The transition's start time should align with the overlap period

Transition Duration Limits

The maximum duration for a transition is determined by:

maxDuration = min(
  availableEndTime_of_preNode,
  availableStartTime_of_postNode
)

If you set a duration longer than this, the transition may not render correctly.

PropTypeRequiredExampleValue RangeDescription
preNodeIdstringtrue--The unique identifier of the preceding element where the transition starts.
postNodeIdstringtrue--The unique identifier of the following element where the transition ends.
transitionTypestringtrue-directionalwarp, directionalwipe, Bounce, BowTieHorizontal, BowTieVertical, ButterflyWaveScrawler, CircleCrop, ColourDistance, CrazyParametricFun, Directional, DoomScreenTransition, Dreamy, DreamyZoom, GridFlip, InvertedPageCurl, LinearBlur, Mosaic, PolkaDotsCurtain, Radial, SimpleZoom, StereoViewer, Swirl, WaterDrop, ZoomInCircles, angular, burn, cannabisleaf, circle, colorphase, crosshatch, crosswarp, cube, displacement, doorway, fade, fadecolor, fadegrayscale, flyeye, heart, hexagonalize, kaleidoscope, luma, luminance_melt, morph, multiply_blend, pinwheel, pixelize, polar_function, ripple, rotate_scale_fade, squareswire, squeeze, swap, undulatingBurnOut, wind, windowblinds, windowslice, wipeDown, wipeLeft, wipeRight, wipeUpThe type of transition effect applied. Names are case-sensitive.

Important Notes:

  • The preNodeId and postNodeId must reference existing elements in the view array
  • Case Sensitivity: Transition type names are case-sensitive. Use exact names as listed above
  • Naming Convention: Some transitions use PascalCase (e.g., Bounce, CircleCrop), others use lowercase (e.g., fade, wipeLeft). Use the exact names as shown
  • Duration Limit: Ensure the transition duration doesn't exceed the overlap time between elements
  • The transition element itself doesn't need a trackIndex - it derives timing from the referenced elements

Example Use Cases:

  • A fade transition provides a classic cross-dissolve between two videos
  • wipeLeft creates a sliding wipe effect from right to left
  • Bounce adds a playful elastic bounce during the transition
  • Custom transitions like directionalwarp create distortion effects

Example: Video Transition

Two videos with a 2-second transition overlap:

transitionElement.json
1{ 2"view": [ 3 { 4 "id": "435862f1-2358-464d-b379-26f4b63b12e3", 5 "type": "Video", 6 "start": 0, 7 "duration": 10.218542, 8 "trackIndex": 0, 9 "externalUrl": "https://example.com/video1.mp4", 10 "ext": "mp4" 11 }, 12 { 13 "id": "2b82ffe3-7c6e-4d28-9c11-9e3de94c5a49", 14 "type": "Video", 15 "start": 8.218542, 16 "duration": 15, 17 "trackIndex": 0, 18 "externalUrl": "https://example.com/video2.mp4", 19 "ext": "mp4" 20 } 21], 22"transition": [ 23 { 24 "id": "52b20852-e260-41aa-afab-70c22e20f62b", 25 "type": "Transition", 26 "start": 8.218542, 27 "duration": 2, 28 "preNodeId": "435862f1-2358-464d-b379-26f4b63b12e3", 29 "postNodeId": "2b82ffe3-7c6e-4d28-9c11-9e3de94c5a49", 30 "transitionType": "directionalwarp" 31 } 32] 33} 34