# How it works
Themes Manager will prepend theme views paths to the existing Laravel View Finder locations. This way you can easily override any default view (even any third package published views).
Suppose you request to display welcome.blade.php
view
return view('welcome');
- View will be searched into the current active theme
resources/views
folder - If the view is not found in active theme then search into parents themes recursively
- If the view is still not found then search laravel default view folder
resources/views
Error and Package views
Themes Manager allows you to override error and package views (published in resources/views/vendor by Laravel). See Usage > Views section to find how.
# Theme structure
themes
├── vendorName
│ ├── themeName
│ │ ├── lang
│ │ │ ├── en
│ │ ├── public
│ │ │ ├── css
│ │ │ ├── js
│ │ │ ├── img
│ │ └── resources
│ │ │ ├── views
│ │ │ │ ├── layouts
│ │ │ │ │ └── app.blade.php
│ │ │ │ │ └── guest.blade.php
│ │ └── composer.json
│ └── ...
└── ...
Use artisan to create a new Theme
Best way to create a new Theme is to use theme:make
artisan command. See here how to use it.
Note that composer.json
file is required and must contains following data (here is an example for a theme named maestro):
{
"name": "hexadog/maestro",
"description": "Hexadog default theme",
"type": "laravel-theme",
"version": "1.0",
"minimum-stability": "stable",
"authors": [
{
"name": "Gaetan",
"email": "gaetan@hexadog.com"
}
],
"extra": {
"theme": {
"parent": "",
"active": true
}
}
}