PHPackages                             madan2056/yapptheme - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. madan2056/yapptheme

ActiveLibrary[Framework](/categories/framework)

madan2056/yapptheme
===================

Theme support for Laravel 8/9 with assets, theme extends etc.

1131PHP

Since Jan 11Pushed 3y agoCompare

[ Source](https://github.com/madan2056/yapptheme)[ Packagist](https://packagist.org/packages/madan2056/yapptheme)[ RSS](/packages/madan2056-yapptheme/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Theme support for Laravel
=========================

[](#theme-support-for-laravel)

Inspired by [bigecko/laravel-theme](https://github.com/harryxu/laravel-theme). Themes are stored inside default laravel's resources folder

Requirements
============

[](#requirements)

This package requires **PHP 7.3** or event 8.\* and **Laravel** 8 or 9.

Currently, supported only for webpack with `laravel-mix`.

Installation
============

[](#installation)

You can install this package via composer using:

```
composer require yaap/theme
```

or manually add line to `composer.json`

```
{
  "require": {
    "yaap/theme": "^4.0"
  }
}
```

Optionally, publish config using artisan CLI (if you want to overwrite default config).

```
php artisan vendor:publish --provider="YAAP\Theme\ThemeServiceProvider"
```

Configuration
=============

[](#configuration)

Package config
--------------

[](#package-config)

```
return [

    /*
    |--------------------------------------------------------------------------
    | Path to directory with themes
    |--------------------------------------------------------------------------
    |
    | The directory with your themes.
    |
    */

    'path' => base_path('themes'),

    /*
    |--------------------------------------------------------------------------
    | Path to directory with assets build
    |--------------------------------------------------------------------------
    |
    | The directory with assets build in public directory.
    |
    */

    'assets_path' => 'themes',

    /*
    |--------------------------------------------------------------------------
    | A pieces of theme collections
    |--------------------------------------------------------------------------
    |
    | Inside a theme path we need to set up directories to
    | keep "layouts", "assets" and "partials".
    |
    */

    'containerDir' => [
        'assets' => 'assets',
        'lang' => 'lang',
        'layout' => 'layouts',
        'partial' => 'partials',
        'view' => 'views',
    ],
];
```

Theme config
------------

[](#theme-config)

Config in theme folder

```
return [

    /*
    |--------------------------------------------------------------------------
    | Theme name
    |--------------------------------------------------------------------------
    |
    | Use in assets publishing etc.
    |
    */

    'name' => '%theme_name%',

    /*
    |--------------------------------------------------------------------------
    | Inherit from another theme
    |--------------------------------------------------------------------------
    |
    | Set up inherit from another if the file is not exists.
    |
    */

    'inherit' => null,

];
```

Usage
=====

[](#usage)

Create theme with artisan CLI
-----------------------------

[](#create-theme-with-artisan-cli)

The first time you have to create theme `default` structure, using the artisan command:

```
php artisan theme:create default
```

In order to seed `webpack.mix.js` with custom rules add `--with-mix` option

```
php artisan theme:create default --with-mix
```

To delete an existing theme, use the command:

```
php artisan theme:destroy default
```

Structure
---------

[](#structure)

Here is an example of the folder structure of project with theme

```
project-root
├── app/

├── public/
|   ├── index.php
|   └── themes/
|       └── default/
|           ├── js/
|           |   └── app.js
|           ├── css/
|           |   └── styles.css
|           └── images/
|               └── icon.png
├── resources/

├── themes/
|   ├── default/
|   |   ├── assets/
|   |   ├── lang/
|   |   ├── layouts/
|   |   ├── partials/
|   |   ├── views/
|   |   |   └── hello.blade.php
|   |   └── config.php
|   ├── admin/
|   ├── views/
|       ├── emails/
|       |   └── notify.blade.php
|       └── hello.blade.php

```

Init theme
==========

[](#init-theme)

```
Theme::init($name)
```

This will add to views find path:

- themes/{$name}
- themes/{$name}/views

Lang files will be added as well:

- themes/{$name}/lang

Making view
-----------

[](#making-view)

```
View::make('hello');
View::make('emails.notify');
```

Assets
------

[](#assets)

Use laravel mix for assets.

In header

```

```

and in footer

```

```

Blade templates
---------------

[](#blade-templates)

```
@extends('layouts.master')

@include('partials.header')

@section('content')

        HOME

@stop

@include('partials.footer')

```

Fallback capability
-------------------

[](#fallback-capability)

You still able to use default `View::make('emails.notify')` which is stored outside the themes directory.

Can I hire you guys?
====================

[](#can-i-hire-you-guys)

Yes! Say hi:

We will be happy to work with you! Other [work we’ve done](https://hexide-digital.com/)

Follow us
---------

[](#follow-us)

Stay up to date with the latest Vuestic news! Follow us on [LinkedIn](https://www.linkedin.com/company/hexide-digital)or [Facebook](https://www.facebook.com/hexide.digital)

License
=======

[](#license)

[MIT](https://github.com/epicmaxco/vuestic-admin/blob/master/LICENSE) license.

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity23

Early-stage or recently created project

 Bus Factor1

Top contributor holds 71.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/0d5cbb0bb7280dcf04e0b98a0166c88a47bb875bd77d8e82af986057951de738?d=identicon)[madan2056](/maintainers/madan2056)

---

Top Contributors

[![yaapis](https://avatars.githubusercontent.com/u/390195?v=4)](https://github.com/yaapis "yaapis (42 commits)")[![Oleksandr-Moik](https://avatars.githubusercontent.com/u/50796878?v=4)](https://github.com/Oleksandr-Moik "Oleksandr-Moik (5 commits)")[![sroutier](https://avatars.githubusercontent.com/u/3011606?v=4)](https://github.com/sroutier "sroutier (5 commits)")[![snipe](https://avatars.githubusercontent.com/u/197404?v=4)](https://github.com/snipe "snipe (4 commits)")[![madan2056](https://avatars.githubusercontent.com/u/5183082?v=4)](https://github.com/madan2056 "madan2056 (2 commits)")[![terion-name](https://avatars.githubusercontent.com/u/1060205?v=4)](https://github.com/terion-name "terion-name (1 commits)")

### Embed Badge

![Health badge](/badges/madan2056-yapptheme/health.svg)

```
[![Health](https://phpackages.com/badges/madan2056-yapptheme/health.svg)](https://phpackages.com/packages/madan2056-yapptheme)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M190](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M255](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M591](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M119](/packages/cakephp-chronos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
