Typings for the preset transition animation effects that come with the library's transition effect bank.

interface LibraryPresetTransitionEffects {
    ~from: {
        defaultConfig: {};
        effectCompositionFrequency: "on-first-play-only";
        immutableConfig: {
            commitsStyles: false;
        };
        composeEffect(keyframe: Keyframe): {
            forwardKeyframesGenerator: (() => {
                composite?: CompositeOperationOrAuto;
                easing?: string;
                offset?: null | number;
            }[]);
        };
    };
    ~to: {
        defaultConfig: {};
        effectCompositionFrequency: "on-every-play";
        immutableConfig: {};
        composeEffect(keyframe: Keyframe): {
            forwardKeyframesGenerator: (() => {}[]);
        };
    };
}

Properties

Properties

~from: {
    defaultConfig: {};
    effectCompositionFrequency: "on-first-play-only";
    immutableConfig: {
        commitsStyles: false;
    };
    composeEffect(keyframe: Keyframe): {
        forwardKeyframesGenerator: (() => {
            composite?: CompositeOperationOrAuto;
            easing?: string;
            offset?: null | number;
        }[]);
    };
} = ...

Element transitions from the specified Keyframe to its current state.

Type declaration

  • defaultConfig: {}
    • effectCompositionFrequency: "on-first-play-only"
    • immutableConfig: {
          commitsStyles: false;
      }
      • ReadonlycommitsStyles: false
    • composeEffect:function
      • Parameters

        • keyframe: Keyframe

          a single Keyframe object dictating the beginning state of the transition

        Returns {
            forwardKeyframesGenerator: (() => {
                composite?: CompositeOperationOrAuto;
                easing?: string;
                offset?: null | number;
            }[]);
        }

        • forwardKeyframesGenerator: (() => {
              composite?: CompositeOperationOrAuto;
              easing?: string;
              offset?: null | number;
          }[])
            • (): {
                  composite?: CompositeOperationOrAuto;
                  easing?: string;
                  offset?: null | number;
              }[]
            • Returns {
                  composite?: CompositeOperationOrAuto;
                  easing?: string;
                  offset?: null | number;
              }[]

        const { Transition } = webchalk.createAnimationClipFactories();

        // get element from DOM and set its styles (just to give some explicit values to look at)
        const square = document.querySelector('.square') as HTMLElement;
        square.style.opacity = '0.5';
        square.style.backgroundColor = 'black';
        square.style.width = '200px';

        // A = element, B = effect name, C = effect options, D = configuration (optional)

        // A B C D
        const clip1 = Transition(square, '~from', [{opacity: '0', backgroundColor: 'red', width: '0'}], {duration: 2000});
        // A B C D
        const clip2 = Transition(square, '~from', [{width: '5000px'}], {duration: 1000});

        (async () => {
        // The square instantly becomes invisible (0 opacity), turns red, and has 0 width. Then over 2 seconds, it
        // transitions back to its state before the transition (0.5 opacity, black background, and 200px width).
        await clip1.play();

        // The square instantly becomes 5000px. Then over 1 second, it transitions back to 200px width.
        await clip2.play();
        })();
    ~to: {
        defaultConfig: {};
        effectCompositionFrequency: "on-every-play";
        immutableConfig: {};
        composeEffect(keyframe: Keyframe): {
            forwardKeyframesGenerator: (() => {}[]);
        };
    } = ...

    Element transitions from its current state to the specified Keyframe.

    Type declaration

    • defaultConfig: {}
      • effectCompositionFrequency: "on-every-play"
      • immutableConfig: {}
        • composeEffect:function
          • Parameters

            • keyframe: Keyframe

              a single Keyframe object dictating the end state of the transition

            Returns {
                forwardKeyframesGenerator: (() => {}[]);
            }

            • forwardKeyframesGenerator: (() => {}[])
                • (): {}[]
                • Returns {}[]

            const { Transition } = webchalk.createAnimationClipFactories();

            // get element from DOM and set its styles (just to give some explicit values to look at)
            const square = document.querySelector('.square') as HTMLElement;
            square.style.opacity = '0.5';
            square.style.backgroundColor = 'black';
            square.style.width = '200px';

            // A = element, B = effect name, C = effect options, D = configuration (optional)

            // A B C D
            const clip1 = Transition(square, '~to', [{opacity: '0', backgroundColor: 'red', width: '0'}], {duration: 2000});
            // A B C D
            const clip2 = Transition(square, '~to', [{opacity: '1', width: '5000px'}], {duration: 1000});
            const clip3 = Transition(square, '~to', [{width: '200px'}], {duration: 0.5, removeInlineStylesOnFinish: true});

            (async () => {
            // Over 2 seconds, the square transitions to having 0 opacity, a red background color, and 0 width.
            await clip1.play();

            // Over 1 second, the square transitions to have 100% opacity and 5000px width.
            await clip2.play();

            // Over 0.5 seconds, the square transitions to having 200px.
            // Because of removeInlineStylesOnFinish, the inline styles related to this clip (i.e., just the width) will be
            // removed from the element in the HTML after the clip finishes. This is reasonable here since the very original
            // width of the square is 200px.
            await clip3.play();
            })();