PHPackages                             esanj/layout-master - 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. [Templating &amp; Views](/categories/templating)
4. /
5. esanj/layout-master

ActiveLibrary[Templating &amp; Views](/categories/templating)

esanj/layout-master
===================

The ultimate template for web applications

v0.0.7(3w ago)047MITJavaScriptPHP ^8.2|^8.3|^8.4

Since Oct 1Pushed 3w agoCompare

[ Source](https://github.com/eSanjDev/ms-package-layout-master-vuexy)[ Packagist](https://packagist.org/packages/esanj/layout-master)[ RSS](/packages/esanj-layout-master/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (6)Versions (8)Used By (0)

🌟 Esanj Layout Master (Vuexy)
=============================

[](#-esanj-layout-master-vuexy)

A Laravel **scaffolding** package that drops a ready‑made, Vuexy‑inspired admin layout into your app: a master Blade layout, header/menu/footer sections, reusable components, a permission‑aware dynamic menu, and the Vite/SCSS build configuration.

Everything is **published into your project** so you fully own and can customize it. The package itself only ships the files and one install command — it registers no routes or runtime views.

**Supports:** Laravel 10 · 11 · 12 · 13 — PHP 8.2+

---

✨ Features
----------

[](#-features)

- 🎨 Pre‑built Vuexy master layout with header, horizontal menu, and footer.
- 🧩 Dynamic **JSON menu** with unlimited nested submenus, icons, badges, and per‑item permissions.
- 🔒 Permission‑aware menu links powered by **`esanj/managers`**.
- 🧱 Reusable Blade components: ``, ``, ``, ``.
- ⚡ Vite + SCSS build config, with auto‑discovered per‑page JS/SCSS.

---

⚠️ Important: this is a Vuexy *scaffold*, not the full theme
------------------------------------------------------------

[](#️-important-this-is-a-vuexy-scaffold-not-the-full-theme)

This package provides the **layout, components, menu, and build config** — plus a handful of source assets (`config.js`, `main.js`, `demo.css`, CodeMirror SCSS). It does **not** bundle the full Vuexy theme source.

The published `head`/`scripts` sections and `vite.config.js` reference the Vuexy theme tree at `resources/assets/vendor/...` (core SCSS, fonts, and JS libs like Bootstrap, SweetAlert2, Select2, …). **You must supply that `resources/assets/vendor/` tree yourself** (from your Vuexy purchase). Without it, `npm run build`/`dev`will fail on missing files.

> In short: install this package **into a project that already has the Vuexy assets**, or add them before building.

---

📋 Requirements
--------------

[](#-requirements)

- PHP 8.2+
- Laravel 10–13
- **`esanj/managers`** (installed automatically) — the layout assumes an authenticated **manager** (`manager` guard) and uses its permissions for menu visibility and the logout route.
- Node.js + npm (for the Vite asset build).

---

📦 Installation
--------------

[](#-installation)

```
composer require esanj/layout-master
php artisan layout-master:install
```

The installer asks before overwriting any existing `package.json` / `vite.config.js` / `postcss.config.js`, then publishes everything. Use `--force` to overwrite without prompts:

```
php artisan layout-master:install --force
```

Then build the front‑end:

```
npm install
npm run dev      # or: npm run build
```

---

🗂️ What gets published
----------------------

[](#️-what-gets-published)

Publish tagFrom (package)To (your app)Contents`esanj-layout-master-views``resources/views``resources/views``layouts/master`, `sections/*`, `components/*``esanj-layout-master-menu``resources/menu``resources/menu``admin.json` (the menu definition)`esanj-layout-master-assets``resources/assets``resources/assets``css/demo.css`, `js/*`, `scss/*``esanj-layout-master-public``public``public/assets/vendor/layout-master``images/logo-esanj.png`, `images/null.png``esanj-layout-master-static``static`project root`package.json`, `vite.config.js`, `postcss.config.js``esanj-layout-master-components``Components``app/View/Components``Menu.php`, `SubMenu.php``layout-master:install` publishes all of these at once. You can also publish a single group:

```
php artisan vendor:publish --tag=esanj-layout-master-views
```

---

⚙️ Using the layout
-------------------

[](#️-using-the-layout)

Make your pages extend `layouts.master` and fill in the sections:

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

@section('title', 'Dashboard')

@section('vendor-style')
    @vite(['resources/assets/vendor/libs/apex-charts/apex-charts.scss'])
@endsection

@section('page-style')
    @vite(['resources/assets/vendor/scss/pages/dashboard.scss'])
@endsection

@section('content')
    Welcome to the dashboard
@endsection

@section('vendor-script')
    @vite(['resources/assets/vendor/libs/apex-charts/apexcharts.js'])
@endsection

@section('page-script')
    @vite(['resources/assets/js/pages/dashboard.js'])
@endsection
```

Available sections: `title`, `vendor-style`, `page-style`, `content`, `vendor-script`, `page-script`. The navbar, menu, and footer are included for you.

> The page `` is `@yield('title') | {{ trans('app.brand_name') }}`, so define `brand_name` in your app's `lang/{locale}/app.php` (or change the title in `resources/views/layouts/master.blade.php`).

---

🗂️ The menu system
------------------

[](#️-the-menu-system)

The menu is a JSON file at **`resources/menu/admin.json`** with a top‑level `menu` array:

```
{
    "menu": [
        {
            "url": "/admin",
            "name": "Dashboard",
            "icon": "menu-icon icon-base ti tabler-smart-home",
            "slug": "admin.dashboard"
        },
        {
            "name": "Managers",
            "icon": "menu-icon icon-base ti tabler-users",
            "slug": "managers",
            "badge": ["primary", "3"],
            "submenu": [
                {
                    "url": "/admin/managers/create",
                    "name": "Create New Manager",
                    "slug": "managers.create",
                    "permission": "managers.create"
                },
                {
                    "url": "/admin/managers",
                    "name": "Managers List",
                    "slug": "managers.index",
                    "permission": "managers.list"
                }
            ]
        }
    ]
}
```

Item fields:

FieldRequiredPurpose`name`yesLabel. Passed through `__()`, so it can be a translation key.`url`noLink target (`url()` is applied). Omit for a parent that only opens a submenu.`icon`noFull CSS classes for the icon.`slug`noMatched against the **current route name** to mark the item active.`permission`noIf set, the item shows only when the manager has this permission (`esanj/managers`).`target`noe.g. `"_blank"` for external links.`badge`no`["color", "text"]`, e.g. `["primary", "3"]`.`submenu`noArray of child items (nested to any depth).> 🔒 The menu requires an authenticated manager. A parent whose children are **all** hidden by permissions is hidden too.

---

🧩 Components
------------

[](#-components)

After publishing, these components are available in any Blade view:

ComponentPurpose``Renders the permission‑filtered main menu.``Renders a submenu (used internally by ``).``A Bootstrap alert. Types: success/danger/warning/info/primary/secondary/dark.``Shows validation errors for a field (and `field.*`).The master layout also renders a **flash alert** automatically when you flash a `message`:

```
return back()->with('message', ['type' => 'success', 'content' => 'Saved successfully!']);
```

---

🎨 Customizing
-------------

[](#-customizing)

- **Views/sections:** edit the published files in `resources/views/` (e.g. `sections/navbar.blade.php`, `layouts/master.blade.php`).
- **Logo:** replace `public/assets/vendor/layout-master/images/logo-esanj.png`, or edit the path in `sections/navbar.blade.php`.
- **Theme defaults** (primary color, default theme, RTL, …): `resources/assets/js/config.js`.
- **Menu:** edit `resources/menu/admin.json`.
- **Build inputs:** `vite.config.js` (auto‑includes `resources/assets/js/*`, `js/pages/*`, and the Vuexy `vendor/`, `packages/` trees).

> 📖 For a complete, beginner‑friendly, step‑by‑step walkthrough — adding a page, wiring a menu item, building assets, and customizing — see **[docs/GUIDE.md](docs/GUIDE.md)**.

---

🪪 License
---------

[](#-license)

MIT © eSanjDev

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance95

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~42 days

Recently: every ~56 days

Total

7

Last Release

23d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c908dfdf092a072c4bc678b161b053e20d00f90e9e9ba2c18ecddef6b848f1a4?d=identicon)[esanj](/maintainers/esanj)

---

Top Contributors

[![itsalifadaei](https://avatars.githubusercontent.com/u/34383343?v=4)](https://github.com/itsalifadaei "itsalifadaei (20 commits)")

### Embed Badge

![Health badge](/badges/esanj-layout-master/health.svg)

```
[![Health](https://phpackages.com/badges/esanj-layout-master/health.svg)](https://phpackages.com/packages/esanj-layout-master)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.1k](/packages/craftcms-cms)[moonshine/moonshine

Laravel administration panel

1.3k253.1k81](/packages/moonshine-moonshine)[illuminate/view

The Illuminate View package.

13047.0M2.2k](/packages/illuminate-view)[tallstackui/tallstackui

TallStackUI is a powerful suite of Blade components that elevate your workflow of Livewire applications.

725173.0k14](/packages/tallstackui-tallstackui)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45444.2k1](/packages/pressbooks-pressbooks)[hasinhayder/tyro-dashboard

Tyro Dashboard - Beautiful admin dashboard for managing Tyro roles, privileges, users, and settings

5443.8k](/packages/hasinhayder-tyro-dashboard)

PHPackages © 2026

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