Skip to content

RUNE-1004: Story Shared-Sprite Transition Proposed

Updated2026-08-23

Summary

transition draws a visual bridge between two existing named sprite instances. It does not create, replace, rename, hide, or destroy either identity.

Form

yaml
- transition@openDetails:
    from: $card1
    to: $detailPanel
    sizing: auto
  with: $smooth

- wait: $openDetails

from and to reference existing sprites. When animated and named, transition@name creates a waitable completion source; wait: $name waits for that source from the visible completion-source scope.

Semantics

transition is only the visual bridge:

  • it validates that both source and target sprites exist
  • it interpolates position
  • it cross-fades source and target visual presence by default
  • it uses sizing to decide how size mismatch is represented
  • it has no lifecycle side effects

Authors should express source or target visibility changes with explicit set or destroy actions around the transition.

yaml
- set:
    detailPanel.opacity: 0

- transition@openDetails:
    from: $card1
    to: $detailPanel
    sizing: clip
  with: $smooth

- wait: $openDetails

- set:
    card1.opacity: 0
    detailPanel.opacity: 1

Sizing

sizingMeaningBest for
autosprite preference or fallback to resizedefault authoring
resizeinterpolate real x/y/w/h and redraw at each sampled sizevector shapes, rounded rects, bars, panels
scalescale a visual snapshot to the target rectimages, thumbnails, video clips, complex snapshots
clipkeep target at real size and reveal with clippingtext-heavy panels, drawers, detail views
noneinterpolate position and cross-fade onlylabels, callouts, weak visual links

Default sizing is auto. Without sprite metadata, auto falls back to resize.

Rationale

Shared-sprite transitions are about continuity between two identities, such as a card becoming visually connected to a detail panel. Keeping lifecycle policy out of transition avoids hidden state changes and keeps visibility decisions readable in the script.

Document provenance

Author
@devkanro
Created
2026-05-07
Audited at
2026-08-24 @ ce1dbcb4b5e0161eab69faeb97507a50808b69eb
Dependencies
RUNE-1000, RUNE-1001, RUNE-1003

Rune Project brings Rune Story authoring together with the Rune Engine rendering foundation.