tsParticles - v4.3.2
    Preparing search index...

    Container plugin interface for extending container behavior

    interface IContainerPlugin {
        canvasClear?: () => boolean;
        canvasPaint?: () => boolean;
        checkParticlePosition?: (
            particle: Particle,
            position: ICoordinates,
            tryCount: number,
        ) => boolean;
        clearDraw?: (
            context: OffscreenCanvasRenderingContext2D,
            delta: IDelta,
        ) => void;
        clickPositionValid?: (position: ICoordinates) => boolean;
        destroy?: () => void;
        draw?: (context: OffscreenCanvasRenderingContext2D, delta: IDelta) => void;
        drawParticle?: (
            context: OffscreenCanvasRenderingContext2D,
            particle: Particle,
            delta: IDelta,
        ) => void;
        drawParticleCleanup?: (
            context: OffscreenCanvasRenderingContext2D,
            particle: Particle,
            delta: IDelta,
        ) => void;
        drawParticleSetup?: (
            context: OffscreenCanvasRenderingContext2D,
            particle: Particle,
            delta: IDelta,
        ) => void;
        drawParticleTransform?: (data: IShapeDrawData) => void;
        drawSettingsCleanup?: (
            context: OffscreenCanvasRenderingContext2D,
            delta: IDelta,
        ) => void;
        drawSettingsSetup?: (
            context: OffscreenCanvasRenderingContext2D,
            delta: IDelta,
        ) => void;
        export?: (
            type: string,
            data: Record<string, unknown>,
        ) => Promise<ExportResult>;
        init?: () => Promise<void>;
        layer?: DrawLayer;
        particleBounce?: (
            particle: Particle,
            delta: IDelta,
            direction: OutModeDirection,
        ) => boolean;
        particleCreated?: (particle: Particle) => void;
        particleDestroyed?: (particle: Particle, override?: boolean) => void;
        particleFillColor?: (
            particle: Particle,
        ) => string | IRangeColor | undefined;
        particlePosition?: (
            position?: ICoordinates,
            particle?: Particle,
        ) => ICoordinates | undefined;
        particleReset?: (particle: Particle) => void;
        particlesDensityCount?: () => number;
        particlesInitialization?: () => boolean;
        particlesSetup?: () => void;
        particleStrokeColor?: (
            particle: Particle,
        ) => string | IRangeColor | undefined;
        particleUpdate?: (particle: Particle, delta: IDelta) => void;
        pause?: () => void;
        play?: () => void;
        postParticleUpdate?: (particle: Particle, delta: IDelta) => void;
        postUpdate?: (delta: IDelta) => void;
        preInit?: () => Promise<void>;
        redrawInit?: () => Promise<void>;
        resize?: () => void;
        start?: () => Promise<void>;
        stop?: () => void;
        update?: (delta: IDelta) => void;
        updateActualOptions?: () => boolean;
    }
    Index

    Properties

    canvasClear?: () => boolean

    Handles canvas clearing, returns true if handled

    canvasPaint?: () => boolean

    Handles canvas painting, returns true if handled

    checkParticlePosition?: (
        particle: Particle,
        position: ICoordinates,
        tryCount: number,
    ) => boolean

    Checks if a particle position is valid, with retry count

    clearDraw?: (context: OffscreenCanvasRenderingContext2D, delta: IDelta) => void

    Clears plugin-specific drawings from the canvas

    clickPositionValid?: (position: ICoordinates) => boolean

    Validates a click position

    destroy?: () => void

    Cleans up plugin resources

    draw?: (context: OffscreenCanvasRenderingContext2D, delta: IDelta) => void

    Draws plugin content on the canvas

    drawParticle?: (
        context: OffscreenCanvasRenderingContext2D,
        particle: Particle,
        delta: IDelta,
    ) => void

    Draws a particle managed by the plugin

    drawParticleCleanup?: (
        context: OffscreenCanvasRenderingContext2D,
        particle: Particle,
        delta: IDelta,
    ) => void

    Cleanup after drawing a particle

    drawParticleSetup?: (
        context: OffscreenCanvasRenderingContext2D,
        particle: Particle,
        delta: IDelta,
    ) => void

    Setup before drawing a particle

    drawParticleTransform?: (data: IShapeDrawData) => void

    Applies canvas transform before drawing a particle

    drawSettingsCleanup?: (
        context: OffscreenCanvasRenderingContext2D,
        delta: IDelta,
    ) => void

    Cleanup after drawing settings

    drawSettingsSetup?: (
        context: OffscreenCanvasRenderingContext2D,
        delta: IDelta,
    ) => void

    Setup before drawing settings

    export?: (type: string, data: Record<string, unknown>) => Promise<ExportResult>

    Exports the container content

    init?: () => Promise<void>

    Initializes the plugin

    layer?: DrawLayer

    Primary draw layer for this plugin. When set, identifies the plugin's main rendering layer. The actual layer assignment in RenderManager.initPlugins is based on ALL hook methods the plugin implements (e.g., drawSettingsSetup→CanvasSetup, canvasPaint→BackgroundMask, drawSettingsCleanup/clearDraw→CanvasCleanup), so a plugin can be active on multiple layers.

    This property serves as documentation of the plugin's primary rendering role and is used as a fallback for layers that have no dedicated hook method.

    DrawLayer

    particleBounce?: (
        particle: Particle,
        delta: IDelta,
        direction: OutModeDirection,
    ) => boolean

    Handles particle bounce with the given direction

    particleCreated?: (particle: Particle) => void

    Called when a particle is created

    particleDestroyed?: (particle: Particle, override?: boolean) => void

    Called when a particle is destroyed

    particleFillColor?: (particle: Particle) => string | IRangeColor | undefined

    Returns the fill color for a particle

    particlePosition?: (
        position?: ICoordinates,
        particle?: Particle,
    ) => ICoordinates | undefined

    Returns a custom position for a particle

    particleReset?: (particle: Particle) => void

    Resets a particle state

    particlesDensityCount?: () => number

    Returns the particle density count

    particlesInitialization?: () => boolean

    Handles particle initialization, returns true if handled

    particlesSetup?: () => void

    Sets up particles for the container

    particleStrokeColor?: (particle: Particle) => string | IRangeColor | undefined

    Returns the stroke color for a particle

    particleUpdate?: (particle: Particle, delta: IDelta) => void

    Updates a particle each frame

    pause?: () => void

    Pauses the plugin

    play?: () => void

    Resumes the plugin

    postParticleUpdate?: (particle: Particle, delta: IDelta) => void

    Called after each particle update

    postUpdate?: (delta: IDelta) => void

    Called after all updates

    preInit?: () => Promise<void>

    Called before initialization

    redrawInit?: () => Promise<void>

    Reinitializes for redraw

    resize?: () => void

    Handles container resize

    start?: () => Promise<void>

    Starts the plugin

    stop?: () => void

    Stops the plugin

    update?: (delta: IDelta) => void

    Updates the plugin each frame

    updateActualOptions?: () => boolean

    Updates actual options, returns true if options changed