PHPackages                             colorlibhq/adminlte-symfony - 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. [Admin Panels](/categories/admin)
4. /
5. colorlibhq/adminlte-symfony

ActiveSymfony-bundle[Admin Panels](/categories/admin)

colorlibhq/adminlte-symfony
===========================

Official AdminLTE 4 integration for Symfony — Bootstrap 5.3, AssetMapper, Twig Components, config-driven sidebar menu, dark mode, and an optional EasyAdmin theme.

v0.2.0(today)00MITPHPPHP &gt;=8.4

Since Jun 26Pushed todayCompare

[ Source](https://github.com/ColorlibHQ/adminlte-symfony)[ Packagist](https://packagist.org/packages/colorlibhq/adminlte-symfony)[ Docs](https://adminlte.io)[ RSS](/packages/colorlibhq-adminlte-symfony/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (18)Versions (2)Used By (0)

AdminLTE 4 for Symfony
======================

[](#adminlte-4-for-symfony)

**Official [AdminLTE 4](https://adminlte.io) integration for Symfony** — Bootstrap 5.3, AssetMapper, Twig Components, a config-driven sidebar menu, SSR-safe dark mode, and an optional theme for EasyAdmin.

[![Packagist](https://camo.githubusercontent.com/3128a01e239a1428ec530b35d2cc49c42f2ca1b2780052c737578691bd45432a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f6c6f726c696268712f61646d696e6c74652d73796d666f6e792e737667)](https://packagist.org/packages/colorlibhq/adminlte-symfony)[![Symfony 8.1+](https://camo.githubusercontent.com/b96c2a76b755fd5d17c8a4217fd23b3b25e5d1076995e68b8c9a78708510f42a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d382e312b2d3030303030302e7376673f6c6f676f3d73796d666f6e79266c6f676f436f6c6f723d7768697465)](https://symfony.com)[![PHP 8.4+](https://camo.githubusercontent.com/c90b4efafbe12e9170f3386518809781acbbe82e70a6c34e5065f6ce7b042dbb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e342b2d3737374242342e7376673f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://php.net)[![Bootstrap 5.3](https://camo.githubusercontent.com/4d34f4b1531e51aff0199abbf969b105a4eea922df46126e09fdfc3e25f8ae42/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f426f6f7473747261702d352e332d3739353242332e7376673f6c6f676f3d626f6f747374726170266c6f676f436f6c6f723d7768697465)](https://getbootstrap.com)[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](LICENSE)

---

### AdminLTE everywhere

[](#adminlte-everywhere)

[AdminLTE (core)](https://github.com/ColorlibHQ/AdminLTE) · [React / Next.js](https://github.com/ColorlibHQ/adminlte-react) · [Vue / Nuxt](https://github.com/ColorlibHQ/adminlte-vue) · [Laravel](https://github.com/ColorlibHQ/adminlte-laravel) · [Django](https://github.com/ColorlibHQ/adminlte-django) · **Symfony** · [Angular](https://github.com/ColorlibHQ/adminlte-angular) · [ASP.NET Core](https://github.com/ColorlibHQ/adminlte-aspnet)

---

Features
--------

[](#features)

- 🧩 **Twig Components** — ``, ``, … typed, documented, slot-aware.
- 🧭 **Config-driven sidebar menu** — one array in `config/packages/adminlte.yaml`, with automatic active-route detection and per-item security (`permission`).
- 🌗 **SSR-safe dark mode** — Bootstrap 5.3 `data-bs-theme`, set before first paint (no flash), persisted to `localStorage`, follows the OS while on `auto`.
- ⚡ **AssetMapper-first** — no Webpack Encore, no Node build required. CDN works out of the box; AssetMapper is the production path.
- 🎛️ **Optional EasyAdmin theme** — layer AdminLTE styling onto your EasyAdmin backend.
- 🧱 **Symfony-native** — `AbstractBundle`, autoconfigured services, PHP 8.4, strict types, PHPStan + php-cs-fixer.

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

[](#requirements)

PHP8.4+Symfony8.1+ (also 7.4 LTS once stabilised)EasyAdmin *(optional)*5.1+Installation
------------

[](#installation)

```
composer require colorlibhq/adminlte-symfony
```

With Symfony Flex the bundle is registered automatically. Otherwise add it to `config/bundles.php`:

```
return [
    // ...
    ColorlibHQ\AdminLteBundle\AdminLteBundle::class => ['all' => true],
];
```

Configuration
-------------

[](#configuration)

Create `config/packages/admin_lte.yaml` (Symfony underscores the bundle name, so the config key is `admin_lte`):

```
admin_lte:
    title: 'My Admin'
    title_short: 'MA'
    color_mode: auto            # light | dark | auto
    dashboard_route: app_dashboard

    logo:
        text: 'MyAdmin'
        image: '/build/logo.png'  # optional

    layout:
        fixed_sidebar: true
        sidebar_mini: true
        sidebar_collapsed: false

    footer:
        copyright: '© 2026 My Company'
        version: 'v1.0.0'

    menu:
        - { label: 'Dashboard', route: 'app_dashboard', icon: 'bi bi-speedometer2' }
        - { header: 'MANAGEMENT' }
        - label: 'Users'
          icon: 'bi bi-people'
          permission: 'ROLE_ADMIN'      # hidden unless granted (needs symfony/security-bundle)
          children:
              - { label: 'All users', route: 'app_user_index' }
              - { label: 'Create', route: 'app_user_new', badge: 'new', badge_class: 'text-bg-success' }
        - { label: 'Documentation', url: 'https://adminlte.io', icon: 'bi bi-book', target: '_blank' }
```

**Menu item keys:** `label`, `header`, `route`, `route_params`, `url`, `target`, `icon`, `badge`, `badge_class`, `permission`, `children`.

Usage
-----

[](#usage)

Extend the layout from any page (this is the Symfony-idiomatic equivalent of the other ports' `DashboardLayout`):

```
{% extends '@AdminLte/layout.html.twig' %}

{% block page_title %}Dashboard{% endblock %}

{% block body %}

        Built with AdminLTE 4 Twig Components.

{% endblock %}
```

A complete example lives in [`templates/demo/dashboard.html.twig`](templates/demo/dashboard.html.twig). Wire it up:

```
#[Route('/admin', name: 'app_dashboard')]
public function dashboard(): Response
{
    return $this->render('@AdminLte/demo/dashboard.html.twig');
}
```

### Components (35+)

[](#components-35)

**Layout** — `Sidebar`, `SidebarNavItem` *(recursive)*, `Topbar`, `Footer`, `ColorModeToggle`. The dashboard layout itself is `{% extends '@AdminLte/layout.html.twig' %}`.

**Widgets** — `Card`, `SmallBox`, `InfoBox`, `Alert`, `Callout`, `Progress`, `ProgressGroup`, `Timeline` + `TimelineItem`, `ProfileCard`, `DescriptionBlock`, `Breadcrumb`, `Ratings`, `Toast`, `Modal`, `Accordion` + `AccordionItem`, `Tabs`, `NavNotifications`, `NavMessages`, `NavTasks`, `CommandPalette` (⌘K).

**Forms** — `Button`, `Input`, `Select`, `Textarea`, `InputSwitch`, `InputColor`, `InputFile`.

Every component is a Twig Component:

```
…

  {# ⌘K palette, indexed from your sidebar menu #}
```

This matches the component inventory of the Vue/React ports. A few heavy plugin wrappers (charts, datatables, rich editors) remain optional add-ons.

Dark mode
---------

[](#dark-mode)

The `` script in [`_color_mode_script.html.twig`](templates/components/layout/_color_mode_script.html.twig) sets `data-bs-theme` **before the body paints** (no flash), persists the choice to `localStorage`, and tracks the OS preference while on `auto`. `` flips it via the exposed `window.adminlteToggleColorMode()`. A Stimulus alternative ships in `assets/controllers/color-mode_controller.js`.

Production assets (AssetMapper)
-------------------------------

[](#production-assets-assetmapper)

The CDN links in the layout's `stylesheets`/`javascripts` blocks make the bundle work with zero config. For production, serve assets locally:

```
php bin/console importmap:require bootstrap admin-lte bootstrap-icons/font/bootstrap-icons.min.css
```

```
// assets/app.js
import '@colorlibhq/adminlte-symfony/adminlte.js'; // Bootstrap + AdminLTE behaviour
```

Then override the layout blocks in your base template to emit `{{ importmap('app') }}` instead of the CDN tags.

EasyAdmin theme
---------------

[](#easyadmin-theme)

Layer AdminLTE onto an existing [EasyAdmin](https://github.com/EasyCorp/EasyAdminBundle) backend. Either copy the shipped override into your app:

```
templates/bundles/EasyAdminBundle/layout.html.twig   ←  copy from this bundle

```

…or load the assets from your `DashboardController`:

```
public function configureAssets(): Assets
{
    return Assets::new()
        ->addCssFile('https://cdn.jsdelivr.net/npm/admin-lte@4.0.2/dist/css/adminlte.min.css')
        ->addJsFile('https://cdn.jsdelivr.net/npm/admin-lte@4.0.2/dist/js/adminlte.min.js');
}
```

> **Note:** this is an initial integration that applies AdminLTE styling to EasyAdmin's own layout. A fully restructured AdminLTE shell (sidebar/topbar/config menu) for EasyAdmin is being rolled out incrementally.

Development
-----------

[](#development)

```
composer install
composer check   # php-cs-fixer (lint) + phpstan + phpunit
```

License
-------

[](#license)

[MIT](LICENSE) © Colorlib &amp; AdminLTE contributors.

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

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

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

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

---

Tags

symfonythemeAdminLTEbootstrapdashboardbackendadminSymfony Bundleeasyadmintwig-components

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/colorlibhq-adminlte-symfony/health.svg)

```
[![Health](https://phpackages.com/badges/colorlibhq-adminlte-symfony/health.svg)](https://phpackages.com/packages/colorlibhq-adminlte-symfony)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M376](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1615.6k12](/packages/2lenet-crudit-bundle)

PHPackages © 2026

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