alexsyvolap/filament-confetti

A fluent, zero-config confetti integration for Filament PHP. Add cinematic particle effects to your admin panel

Maintainers

Package info

github.com/alexsyvolap/filament-confetti

pkg:composer/alexsyvolap/filament-confetti

Fund package maintenance!

alexsyvolap

Statistics

Installs: 64

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

1.0.2 2026-05-22 12:44 UTC

This package is auto-updated.

Last update: 2026-05-22 12:45:59 UTC


README

Filament Confetti

A fluent, elegant, and zero-config Confetti integration for Filament PHP. Powered by the amazing canvas-confetti library, this package brings cinematic, hardware-accelerated particle effects to your Filament admin panel with a beautiful PHP Builder API.

PHP 8.1+ License MIT

Installation

composer require alexsyvolap/filament-confetti

Getting Started

1. Register the Plugin

use AlexSyvolap\FilamentConfetti\FilamentConfettiPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(FilamentConfettiPlugin::make());
}

Usage

The package provides a highly fluent, chaining API. You can trigger confetti from anywhere in your Filament app (Pages, Actions, Controllers, Livewire components).

Basic Usage

Just fire the default confetti explosion from the center of the screen

use AlexSyvolap\FilamentConfetti\Confetti;

Confetti::shoot();

Defaul Confetti

Positioning

You can shoot confetti from various screen positions

Confetti::left()->shoot();
Confetti::topRight()->shoot();
Confetti::bottom()->shoot();

Available positions: center(), top(), bottom(), left(), right(), topLeft(), topRight(), bottomLeft(), bottomRight().

Epic Presets 🚀

We ported the most popular cinematic effects so you can use them in one line of code:

Realistic Confetti

// Realistic 3D explosion with 5 physical waves
Confetti::realistic()->shoot();

Realistic Confetti

Show

// 15 seconds of falling snow
Confetti::snow()->shoot();

Show

Fireworks

// 15 seconds of random fireworks in the sky
Confetti::fireworks()->shoot();

Fireworks

Emoji

// Raining Emoji explosion!
Confetti::emoji('💸')->shoot();

Emoji

School Pride

// School Pride (fires from both bottom corners)
Confetti::colors(['#0057B7', '#FFDD00'])->schoolPride()->shoot();

School Pride

Multi-Shots (Crossfire)

You can chain multiple cannons together using the ->then() method:

Confetti::left()->count(150)
    ->then()
    ->right()->count(150)
    ->shoot();

Crossfire

Advanced Customization

You have 100% control over the physics engine. Customize shapes, gravity, colors, and more:

Confetti::center()
    ->count(300)
    ->spread(120)
    ->shapes(['star', 'circle'])
    ->colors(['#ff0000', '#00ff00', '#0000ff'])
    ->startVelocity(100)
    ->decay(0.8) // High friction (stops quickly in the air)
    ->gravity(0.5)
    ->flat(true) // 2D flat paper effect
    ->shoot();

Advanced Customization

Complex Animations (Loops)

Want to build your own custom timeline of explosions? Use Confetti::make() to retain the instance inside loops:

$confetti = Confetti::make();

for ($delay = 0; $delay < 3000; $delay += 500) {
    $confetti->center()->count(50)->delay($delay)->then();
}

$confetti->shoot();

Loops

Testing

composer test

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.