jcmccoders/laratheme
Laratheme adds multi-theme support to Laravel 11/12: switch active theme via config/env, auto-register view namespaces, generate new themes with make:theme, and resolve theme views and public assets (CSS/JS/images) from dedicated theme folders.
Laratheme es un paquete para Laravel que permite gestionar múltiples temas visuales (themes), facilitando la personalización de vistas y assets para tu aplicación.
make:theme para generar nuevos temas con estructura predefinidaRequiere PHP 8.2+ y Laravel 11+.
composer require jcmccoders/laratheme
php artisan vendor:publish --tag=theme-config
php artisan vendor:publish --tag=theme-stubs
Esto generará:
config/theme.php: configuración de Larathemeresources/themes/stubs: plantillas base para nuevos temasArchivo de configuración: config/theme.php
return [
'active' => env('THEME_ACTIVE', 'default'),
'paths' => [
'views' => env('THEME_VIEWS_PATH', resource_path('themes')),
'assets' => env('THEME_ASSETS_PATH', public_path('themes')),
'stubs' => env('THEME_STUBS_PATH', resource_path('themes/stubs')),
],
];
views: ubicación de las vistas por temaassets: ubicación pública de CSS, JS, imágenes, etc.stubs: plantillas para generar nuevos temasphp artisan make:theme nombre-del-tema
Esto creará la siguiente estructura:
resources/themes/nombre-del-tema/
├── welcome.blade.php
└── layouts/
└── app.blade.php
public/themes/nombre-del-tema/
├── css/app.css
├── js/app.js
└── image/
use Theme;
return Theme::view('welcome');
Theme::asset('css/app.css');
// → themes/tu-tema-activo/css/app.css
✅ Los assets deben estar en
public/themes.
config/
├── theme.php
src/
├── Console/Commands/MakeThemeCommand.php
├── Facades/Theme.php
├── Services/ThemeService.php
└── ThemeServiceProvider.php
stubs/
├── welcome.blade.php.stub
└── layouts/app.blade.php.stub
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más información.
Desarrollado por jcmccoders Contacto: jcmcgoojcmc@gmail.com
How can I help you explore Laravel packages today?