Styled transitions with minimal boilerplate, typically for page transitions in single page apps.
See README or example for usage.
Uses elm-animations and Cmd.tick for animation logic.
Extended type for the parent model holding the transition.
Empty transition state, as initial value in the model.
Timeline of the transition
Build the timeline:
exitDuration => message => enterDuration
Default timeline for this transition: exit of 50ms then enter of 200ms.
Update exit duration of timeline.
Update enter duration of timeline.
Transition msg, to be wrapped in your own msg type.
Start the transition with the following parameters:
tagger to wrap Transit's Msg into your app's Msg type (consistent with tick signature, saves you one Cmd.map)timeline to setup transitionparent is the model storing the Transition, to update with new transition stateReturns a tuple that you can directly emit from your update.
Where all the logic happens. Run transition steps, and triggers timeline's parent message when needed.
tagger to wrap Transit's msg into app's Msg type, has to be same type of timeline.msg,msg is the Transit message to process,parent is the model storing the Transition, for transition state update.Animation frame subscription. Must be called by your component's subscription function.
Extract current animation value (a float between 0 and 1).
Extract current animation step.
Transition step: Exit -> send message -> Enter -> Done.
Opaque type for transition state storage.