alizharb/laravel-themer
| Install | |
|---|---|
composer require alizharb/laravel-themer |
|
| Latest Version: | 1.3.0 |
| PHP: | ^8.2 |
| License: | MIT |
| Last Updated: | Mar 1, 2026 |
| Links: | GitHub · Packagist |
Laravel Themer 🎨
Laravel Themer is a robust, enterprise-grade theme management package for Laravel applications. It provides a seamless way to manage themes, including asset publishing, view overrides, Livewire 4 integration, and modular support. Designed for modern TALL stack applications, it simplifies the creation of multi-themed applications without the complexity.
✨ Features
- 🏗️ Independent Vite Builds: Per-theme
package.jsonandvite.config.jsfor total asset isolation. - 📦 NPM Workspaces: Zero-config workspace integration for shared dependencies and optimized storage.
- ⚡ Asset Shortcuts: Launch dev servers or build theme assets directly via
theme:devandtheme:build. - 🛠️ Theme Management: Create, clone, safe-delete, and activate themes with consistent
--themesupport. - 🚀 Zero-IO Production Cache: High-performance architecture that evaluates deep inheritance chains and serializes them into a single fast-boot PHP array.
- ✨ Interactive Wizards: Beautiful CLI prompts for generating and activating themes using
laravel/prompts. - 🌈 Rich Metadata: Support for
screenshots,tags, and management flags (removable,disableable) intheme.json. - ⚡ Livewire 4 Integration: First-class support for Livewire components and layouts with theme-aware resolution.
- 🎨 View Overrides: Intelligent view resolution cascading from Active Theme -> Parent Theme -> Application.
- 🚀 Auto-Blade Discovery: Automatic registration of theme-specific Blade components and inheritance.
- 🏷️ Theme Versioning: Support for version metadata in
theme.jsonfor easier dependency mapping. - 🚦 Ephemeral Switching: Temporarily switch themes for specific tasks using
Themer::forTheme(). - 🛣️ Route Middleware: Enforce specific themes for routes or groups via
middleware('theme:name'). - 🧩 Modular Support: Native integration with
laravel-modularincluding dependency verification intheme:check. - 🛡️ Hierarchy Guard: Built-in validation to detect circular dependencies, missing parents, and asset health.
- 🔧 Artisan Commands: A comprehensive suite of commands (
make,npm,dev,build,clone,delete,list,check,cache,lint) to natively manage themes.
📚 Documentation
For full documentation, please visit alizharb.github.io/laravel-themer or browse the docs/ directory.
📦 Installation
Install the package via Composer:
composer require alizharb/laravel-themer
Quick Start (Recommended)
Run the installation command to automatically set up Laravel Themer:
php artisan themer:install
This interactive command will:
- ✅ Publish the configuration file (
config/themer.php) - ✅ Create the themes directory (default:
themes/) - ✅ Optionally configure
vite.config.jswith thethemerLoaderfor automatic theme asset bundling
Manual Configuration
If you prefer manual setup or need more control, see the Installation Guide for detailed instructions on:
- Publishing configuration files
- Setting up Vite integration
- Configuring theme paths and discovery rules
🔗 Related Packages
Laravel Themer is part of a comprehensive modular ecosystem for Laravel applications:
| Package | Description |
|---|---|
| laravel-modular | Framework-agnostic modular architecture with zero-config autoloading and 29+ Artisan command overrides. Required for modular theme discovery. |
| laravel-modular-livewire | Official Livewire 4 bridge providing automatic component discovery and registration within modules. |
| laravel-modular-filament | Official Filament v5 bridge enabling admin panel integration with automatic resource discovery in modules. |
| laravel-hooks | Universal extensibility and plugin system for Laravel 12+ applications with WordPress-style hooks and filters. |
| filament-themer-luncher | A comprehensive Filament v5 interface for managing, switching, and backing up themes. |
| filament-modular-luncher | A powerful Filament v5 manager for listing, toggling, and managing system modules. |
These packages work seamlessly together to provide a complete modular development experience.
📖 Usage
Creating a Theme
Generate a new theme with a standard directory structure:
php artisan theme:make "Dark Theme"
Managing Dependencies
Install packages into a theme workspace directly from the root:
php artisan theme:npm --theme=dark-theme install lodash
Developing Assets
Launch a dedicated Vite dev server for your theme:
php artisan theme:dev --theme=dark-theme
Cloning & Deletion
Safe and fast lifecycle management:
# Duplicate an existing theme
php artisan theme:clone "Summer Edition" --theme=dark-theme
# Safe removal (respects 'removable' flag)
php artisan theme:delete --theme=summer-edition
Activating a Theme
Switch the active theme globally:
php artisan theme:activate dark-theme
Livewire Integration
The package automatically registers Livewire components within your theme.
php artisan make:livewire Header --theme=dark-theme
🧪 Testing
We strictly enforce testing. Use the provided test suite to verify your themes:
vendor/bin/pest
💖 Sponsors
We would like to extend our thanks to the following sponsors for funding Laravel Themer development. If you are interested in becoming a sponsor, please visit the Laravel Themer GitHub Sponsors page.
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING for details.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
🌟 Acknowledgments
- Laravel: For creating the most elegant PHP framework.
- Spatie: For setting the standard on Laravel package development.
🔒 Security
If you discover any security-related issues, please email Ali Harb at harbzali@gmail.com.
📄 License
The MIT License (MIT). Please see License File for more information.
Made with ❤️ by Ali Harb