PHPackages                             awe-ux/moonshine-theme - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. awe-ux/moonshine-theme

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

awe-ux/moonshine-theme
======================

Moonshine theme switcher

2.1.1(1y ago)10348↓100%2[1 issues](https://github.com/awe-ux/moonshine-theme-switcher/issues)MITPHPPHP ^8.1

Since Oct 8Pushed 1y ago2 watchersCompare

[ Source](https://github.com/awe-ux/moonshine-theme-switcher)[ Packagist](https://packagist.org/packages/awe-ux/moonshine-theme)[ RSS](/packages/awe-ux-moonshine-theme/feed)WikiDiscussions 2.x Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (12)Used By (0)

Theme switcher for [MoonShine Laravel admin panel](https://moonshine-laravel.com)
=================================================================================

[](#theme-switcher-for-moonshine-laravel-admin-panel)

Requirements
------------

[](#requirements)

- MoonShine v3.0+

MoonShineChangeLog2.0+1.0+3.0+2.0+Description
-----------

[](#description)

#### This package is designed to be able to change the standard design theme to a minimalistic one.

[](#this-package-is-designed-to-be-able-to-change-the-standard-design-theme-to-a-minimalistic-one)

#### In the file `config.php` you have the option to change the name, value and lifetime of the cookie, change the connection of the minimalistic.css file, set your own colors for a minimalistic theme

[](#in-the-file-configphp-you-have-the-option-to-change-the-name-value-and-lifetime-of-the-cookie-change-the-connection-of-the-minimalisticcss-file-set-your-own-colors-for-a-minimalistic-theme)

Installation
------------

[](#installation)

```
composer require awe-ux/moonshine-theme
```

Publish provider
----------------

[](#publish-provider)

```
php artisan vendor:publish --provider='AweUx\MoonshineTheme\Providers\ThemeServiceProvider'
```

After publishing, you will be able to find the config file `moonshine-theme.php` in the directory `config` of your project.

Reset cache after publish provider
----------------------------------

[](#reset-cache-after-publish-provider)

```
php artisan optimize:clear
```

Usage
-----

[](#usage)

Wrap your `Layout` in `ThemeSwitcher::layoutBuilder(Layout $layout): Layout` in your `MoonShineLayout`.

```
use AweUx\MoonshineTheme\Classes\ThemeSwitcher;

final class MoonShineLayout extends AppLayout
{
    public static function build(): Layout
    {
        return ThemeSwitcher::layoutBuilder(parent::build());
    }
```

#### If you use custom `Layout`, you must adhere to the following structure in method `build()` and wrap `Layout` in `ThemeSwitcher::layoutBuilder()`.

[](#if-you-use-custom-layout-you-must-adhere-to-the-following-structure-in-method-build-and-wrap-layout-in-themeswitcherlayoutbuilder)

```
 public function build(): Layout
    {
        return ThemeSwitcher::layoutBuilder(
            Layout::make([
                Html::make([
                    $this->getHeadComponent(),
                    Body::make([
                        Wrapper::make([
                            $this->getSidebarComponent(),
                            Div::make([
                                Flash::make(),
                                $this->getHeaderComponent(),
                                Content::make([
                                    Title::make($this->getPage()->getTitle())->class('mb-6'),
                                    Components::make(
                                        $this->getPage()->getComponents()
                                    ),
                                ]),
                                $this->getFooterComponent(),
                            ])->class('layout-page'),
                        ]),
                    ]),
                ])
                    ->customAttributes([
                        'lang' => $this->getHeadLang(),
                    ])
                    ->withAlpineJs()
                    ->withThemes(),
            ])
        );
    }
```

For add button-switcher in header, you need to override the `getHeaderComponent()` method in `MoonshineLayout`. Use `ThemeSwitcher::make(Closure|string $label): ActionButton`.

```
protected function getHeaderComponent(): Header
    {
        return Header::make([
            Breadcrumbs::make($this->getPage()->getBreadcrumbs())->prepend($this->getHomeUrl(), icon: 'home'),
            Search::make(),
            ThemeSwitcher::make('Change theme'),
            When::make(
                fn(): bool => $this->isUseNotifications(),
                static fn(): array => [Notifications::make()]
            ),
            Locales::make(),
        ]);
    }
```

#### `ThemeSwitcher::make() - ActionButton`. You can use all ActionButton methods for it.

[](#themeswitchermake---actionbutton-you-can-use-all-actionbutton-methods-for-it)

Warning

`ThemeSwitcher::make()->async()` not working, don't use this method.

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance44

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.7% 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 ~14 days

Recently: every ~36 days

Total

12

Last Release

425d ago

Major Versions

1.0.5 → 2.0.12024-10-15

1.x-dev → 2.12025-02-04

### Community

Maintainers

![](https://www.gravatar.com/avatar/d5f7d33f4c0891e9a00f713a89c09360ab01eb97a17dd7f5c2bb9652a01659b9?d=identicon)[awe-ux](/maintainers/awe-ux)

---

Top Contributors

[![awe-ux](https://avatars.githubusercontent.com/u/183701152?v=4)](https://github.com/awe-ux "awe-ux (12 commits)")[![DissNik](https://avatars.githubusercontent.com/u/12373059?v=4)](https://github.com/DissNik "DissNik (1 commits)")[![lee-to](https://avatars.githubusercontent.com/u/1861327?v=4)](https://github.com/lee-to "lee-to (1 commits)")

---

Tags

thememoonshine

### Embed Badge

![Health badge](/badges/awe-ux-moonshine-theme/health.svg)

```
[![Health](https://phpackages.com/badges/awe-ux-moonshine-theme/health.svg)](https://phpackages.com/packages/awe-ux-moonshine-theme)
```

###  Alternatives

[tgmpa/tgm-plugin-activation

TGM Plugin Activation is a PHP library that allows you to easily require or recommend plugins for your WordPress themes (and plugins).

1.8k222.5k13](/packages/tgmpa-tgm-plugin-activation)[qirolab/laravel-themer

A Laravel theme manager, that will help you organize and maintain your themes inside Laravel projects.

402240.2k8](/packages/qirolab-laravel-themer)[freemius/wordpress-sdk

Freemius WordPress SDK

303101.4k4](/packages/freemius-wordpress-sdk)[david-griffiths/nova-dark-theme

A dark theme for Laravel Nova

71576.9k](/packages/david-griffiths-nova-dark-theme)[appsero/client

Appsero Client

25431.7k9](/packages/appsero-client)[sulu/theme-bundle

The Sulu Bundle which provides theming functionality.

23300.4k1](/packages/sulu-theme-bundle)

PHPackages © 2026

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