# Themes In this section we'll teach you how to create a new theme, reference a theme view, and add theme options for your particular theme. - [Create a Theme](#create-theme) - [Theme Views](#theme-views) - [Theme Options](#theme-options) - [Theme Assets](#theme-assets) --- ## Create a Theme In order to create a theme, you will need to create a new folder inside of `resources/views/themes`. Let's call this folder `sample-theme`. Then inside of this folder we need a matching filename called `sample-theme.json`: ```json { "name": "Sample Theme", "version": "1.0" } ``` Now, if you visit `/admin/themes`, you'll see this new theme available to activate. > You may see a broken image in the admin if you do not have an image for that theme. Inside of your theme folder you will need a `.jpg` file with the same name as the folder `sample-theme.jpg` (recommended 800x500px) ## Theme Views After activating a theme you can render any view `file.blade.php` or `file.php` by calling `theme::file`. For instance, if we created a new file inside our sample theme at `resources/views/themes/sample-theme/home.blade.php` we could then return the view in a controller like so: ```php public function home(){ return view('theme::home'); } ``` Or, you could do this inside of your route file: ```php Route::view('/', 'theme::home'); ``` ## Theme Options Every theme can include options such as logo, color scheme, etc... You can choose to program any amount of options into your theme. In order to create an *options* page for your theme you need to create a new file inside your theme folder called `options.blade.php`. As an example take a look at the Tailwind theme options located at `resources/views/themes/tailwind/options.blade.php`, you will see a snippet similar to: ```php