andresouza7 / halloween-theme-filament
A spooky Halloween theme plugin for Filament with animated ghosts, jumpscares, and festive effects.
Package info
github.com/andresouza7/halloween-theme-filament
Language:JavaScript
pkg:composer/andresouza7/halloween-theme-filament
Requires
- php: ^8.1|^8.2|^8.3
- filament/filament: ^3.0|^4.0
- spatie/laravel-package-tools: ^1.16
README
A spooky Halloween theme plugin for Filament that adds animated ghosts, jumpscares, and a festive pumpkin button to your admin panel.
Features
- 👻 Animated Ghosts: Floating ghosts that spawn when dark mode is enabled
- 😱 Jumpscares: Random jumpscare videos for a spooky surprise
- 🎃 Pumpkin Button: Interactive pumpkin that encourages users to enable dark mode
- 🌙 Theme-Aware: Automatically enables/disables effects based on the theme switcher
Installation
1. Add the package to your project
If using as a local package:
{
"repositories": [
{
"type": "path",
"url": "./packages/halloween-theme"
}
],
"require": {
"ueap/halloween-theme": "@dev"
}
}
Then run:
composer update ueap/halloween-theme
2. Publish Assets
Publish the JavaScript files, images, and videos to your public directory:
php artisan vendor:publish --tag=halloween-theme-js php artisan vendor:publish --tag=halloween-theme-images php artisan vendor:publish --tag=halloween-theme-videos
Or publish all at once:
php artisan vendor:publish --tag=halloween-theme-js --tag=halloween-theme-images --tag=halloween-theme-videos
3. Register the Plugin
The plugin is automatically registered via Laravel's package discovery. The service provider will:
- Register JavaScript assets (jumpscare, phantom, watchtheme)
- Configure navigation items to remove icons
- Only load assets for authenticated users (skips login page)
Usage
The plugin works automatically once installed. When users switch to dark mode, the Halloween effects will activate:
- Ghosts will spawn every 3 seconds
- The pumpkin button appears in light mode to encourage switching to dark mode
- Clicking the pumpkin in dark mode triggers a jumpscare
Customization
Adjusting Ghost Behavior
Edit resources/js/phantom.js:
const maxGhosts = 3 // Maximum number of ghosts on screen const chaseCooldown = 30 * 1000 // Time between ghost chases
Adjusting Jumpscare Timing
Edit resources/js/jumpscare.js:
const delay = 40000 + Math.random() * 50000; // Random delay between jumpscares
Route Name Configuration
If your Filament panel uses a different ID than app, update the route check in HalloweenThemeServiceProvider.php:
if ($user && !request()->routeIs('filament.YOUR_PANEL_ID.auth.login')) { // ... }
Assets
The plugin includes:
- JavaScript:
jumpscare.js,phantom.js,watchtheme.js - Images:
fantasma.png,bats.png,pumpkin.png - Videos:
jumpscare1.mp4,jumpscare2.mp4,jumpscare3.mp4,jumpscare4.mp4
Requirements
- PHP ^8.1
- Filament ^3.0 or ^4.0
- Laravel package with theme switcher
License
MIT