alexsyvolap / filament-confetti
A fluent, zero-config confetti integration for Filament PHP. Add cinematic particle effects to your admin panel
Fund package maintenance!
Requires
- php: ^8.1
- filament/filament: ^3.0 || ^4.0 || ^5.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.7|^4.0
- pestphp/pest-plugin-arch: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
README
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.
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();
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();
Show
// 15 seconds of falling snow Confetti::snow()->shoot();
Fireworks
// 15 seconds of random fireworks in the sky Confetti::fireworks()->shoot();
Emoji
// Raining Emoji explosion! Confetti::emoji('💸')->shoot();
School Pride
// School Pride (fires from both bottom corners) Confetti::colors(['#0057B7', '#FFDD00'])->schoolPride()->shoot();
Multi-Shots (Crossfire)
You can chain multiple cannons together using the ->then() method:
Confetti::left()->count(150) ->then() ->right()->count(150) ->shoot();
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();
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();
Testing
composer test
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- Alex Syvolap
- Canvas Confetti by Kiril Vatev
License
The MIT License (MIT). Please see License File for more information.









