blobs
Version:
Random blob generation and animation
41 lines (40 loc) • 1.3 kB
TypeScript
import { Point } from "../internal/types";
import { BlobOptions, CanvasOptions } from "./blobs";
interface Keyframe {
duration: number;
delay?: number;
timingFunction?: "linear" | "easeEnd" | "easeStart" | "ease" | "elasticEnd0" | "elasticEnd1" | "elasticEnd2" | "elasticEnd3";
callback?: () => void;
canvasOptions?: {
offsetX?: number;
offsetY?: number;
};
}
export interface CanvasKeyframe extends Keyframe {
blobOptions: {
seed: number | string;
randomness: number;
extraPoints: number;
size: number;
};
}
export interface CanvasCustomKeyframe extends Keyframe {
points: Point[];
}
export interface Animation {
renderFrame: () => Path2D;
transition: (...keyframes: (CanvasKeyframe | CanvasCustomKeyframe)[]) => void;
play: () => void;
pause: () => void;
playPause: () => void;
}
export interface TimestampProvider {
(): number;
}
export interface WiggleOptions {
speed: number;
delay?: number;
}
export declare const canvasPath: (timestampProvider?: () => number) => Animation;
export declare const wigglePreset: (animation: Animation, blobOptions: BlobOptions, canvasOptions: CanvasOptions, wiggleOptions: WiggleOptions) => void;
export {};