admin-lte 4.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +185 -111
- package/dist/UI/general.html +27 -3
- package/dist/UI/icons.html +27 -3
- package/dist/UI/timeline.html +27 -3
- package/dist/docs/browser-support.html +27 -3
- package/dist/docs/color-mode.html +27 -3
- package/dist/docs/components/main-header.html +27 -3
- package/dist/docs/components/main-sidebar.html +27 -3
- package/dist/docs/customization.html +27 -3
- package/dist/docs/deployment.html +27 -3
- package/dist/docs/faq.html +27 -3
- package/dist/docs/getting-started.html +27 -3
- package/dist/docs/how-to-contribute.html +27 -3
- package/dist/docs/integrations.html +27 -3
- package/dist/docs/introduction.html +27 -3
- package/dist/docs/javascript/accessibility.html +27 -3
- package/dist/docs/javascript/card-widget.html +27 -3
- package/dist/docs/javascript/direct-chat.html +27 -3
- package/dist/docs/javascript/fullscreen.html +27 -3
- package/dist/docs/javascript/layout.html +27 -3
- package/dist/docs/javascript/plugins-overview.html +27 -3
- package/dist/docs/javascript/pushmenu.html +27 -3
- package/dist/docs/javascript/treeview.html +27 -3
- package/dist/docs/layout-blueprint.html +27 -3
- package/dist/docs/layout.html +27 -3
- package/dist/docs/license.html +27 -3
- package/dist/docs/migration.html +27 -3
- package/dist/docs/recipes.html +27 -3
- package/dist/docs/rtl.html +27 -3
- package/dist/examples/lockscreen.html +26 -0
- package/dist/examples/login-v2.html +26 -0
- package/dist/examples/login.html +26 -0
- package/dist/examples/register-v2.html +26 -0
- package/dist/examples/register.html +26 -0
- package/dist/forms/elements.html +27 -3
- package/dist/forms/layout.html +27 -3
- package/dist/forms/validation.html +27 -3
- package/dist/forms/wizard.html +27 -3
- package/dist/generate/theme.html +26 -0
- package/dist/index.html +27 -3
- package/dist/index2.html +27 -3
- package/dist/index3.html +27 -3
- package/dist/js/adminlte.js +4 -1
- package/dist/js/adminlte.js.map +1 -1
- package/dist/js/adminlte.min.js +2 -2
- package/dist/js/adminlte.min.js.map +1 -1
- package/dist/layout/collapsed-sidebar-without-hover.html +27 -3
- package/dist/layout/collapsed-sidebar.html +27 -3
- package/dist/layout/fixed-complete.html +27 -3
- package/dist/layout/fixed-footer.html +27 -3
- package/dist/layout/fixed-header.html +27 -3
- package/dist/layout/fixed-sidebar.html +27 -3
- package/dist/layout/layout-custom-area.html +27 -3
- package/dist/layout/layout-rtl.html +27 -3
- package/dist/layout/logo-switch.html +26 -0
- package/dist/layout/sidebar-mini.html +27 -3
- package/dist/layout/unfixed-sidebar.html +27 -3
- package/dist/mailbox/compose.html +27 -3
- package/dist/mailbox/inbox.html +43 -11
- package/dist/mailbox/read.html +27 -3
- package/dist/pages/404.html +26 -0
- package/dist/pages/500.html +26 -0
- package/dist/pages/calendar.html +27 -3
- package/dist/pages/chat.html +27 -3
- package/dist/pages/faq.html +27 -3
- package/dist/pages/file-manager.html +27 -3
- package/dist/pages/invoice.html +27 -3
- package/dist/pages/kanban.html +27 -3
- package/dist/pages/maintenance.html +26 -0
- package/dist/pages/pricing.html +27 -3
- package/dist/pages/profile.html +27 -3
- package/dist/pages/projects.html +27 -3
- package/dist/pages/settings.html +27 -3
- package/dist/tables/data.html +27 -3
- package/dist/tables/simple.html +27 -3
- package/dist/widgets/cards.html +27 -3
- package/dist/widgets/info-box.html +27 -3
- package/dist/widgets/small-box.html +27 -3
- package/github-issue-response.md +40 -0
- package/package.json +14 -13
- package/src/ts/accessibility.ts +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [4.0.1] - 2026-06-11
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Official framework integrations announced** — AdminLTE 4 is now available as first-class packages for four ecosystems, maintained under ColorlibHQ:
|
|
15
|
+
- [adminlte-vue](https://github.com/ColorlibHQ/adminlte-vue) — Vue 3 & Nuxt, 45+ typed components, composables, SSR-safe theming, ⌘K command palette
|
|
16
|
+
- [adminlte-react](https://github.com/ColorlibHQ/adminlte-react) — React & Next.js (App Router / RSC), 30+ typed components, dark mode, ⌘K command palette
|
|
17
|
+
- [adminlte-django](https://github.com/ColorlibHQ/adminlte-django) — config-driven sidebar menu, 33+ components, themed `django.contrib.admin`, `{{ form }}` renderer
|
|
18
|
+
- [adminlte-laravel](https://github.com/ColorlibHQ/adminlte-laravel) — Blade integration, Vite-ready
|
|
19
|
+
- Social preview generator script (`scripts/social-preview.mjs`, dev-only — excluded from the npm package).
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- **#6043:** Stored color mode is now applied before first paint — no more light-mode flash when reloading a page in dark mode. (reported by @bsshreesha)
|
|
24
|
+
- **#6044:** Long subject/preview text in the mailbox inbox list is truncated instead of overflowing its container. (reported by @Oscurlo)
|
|
25
|
+
- **#6038:** `accessibility.js` no longer assigns `role="navigation"` to `<ul>`/`<ol>` elements, which broke list semantics and failed the Lighthouse accessibility audit. (reported by @lfiorini)
|
|
26
|
+
|
|
27
|
+
### Updated
|
|
28
|
+
|
|
29
|
+
- All dependencies bumped to latest; `axios` pinned via npm overrides to clear a transitive advisory. `npm audit` remains at **0 vulnerabilities**.
|
|
30
|
+
|
|
10
31
|
## [4.0.0] - 2026-05-19
|
|
11
32
|
|
|
12
33
|
### Added
|
package/README.md
CHANGED
|
@@ -1,143 +1,222 @@
|
|
|
1
|
-
# [AdminLTE
|
|
1
|
+
# [AdminLTE — Bootstrap 5 Admin Dashboard](https://adminlte.io)
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/admin-lte)
|
|
4
4
|
[](https://packagist.org/packages/almasaeed2010/adminlte)
|
|
5
5
|
[](https://www.jsdelivr.com/package/npm/admin-lte)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
7
|
[](https://discord.gg/jfdvjwFqfz)
|
|
7
8
|
[](https://app.netlify.com/sites/adminlte-v4/deploys)
|
|
8
9
|
|
|
9
|
-
**AdminLTE** is
|
|
10
|
-
|
|
10
|
+
**AdminLTE** is the most popular open-source admin dashboard template — fully responsive,
|
|
11
|
+
built on **[Bootstrap 5.3](https://getbootstrap.com/)** with vanilla JavaScript (no jQuery),
|
|
12
|
+
highly customizable, and easy to use. It fits every screen from small mobile devices to
|
|
13
|
+
large desktops, and it's MIT-licensed.
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
**[Live Demo](https://adminlte.io/themes/v4/)** ·
|
|
16
|
+
**[Documentation](https://adminlte.io/themes/v4/docs/introduction.html)** ·
|
|
17
|
+
**[Framework Editions](#framework-editions)** ·
|
|
18
|
+
**[Premium Templates](#premium-templates)**
|
|
13
19
|
|
|
14
|
-
|
|
20
|
+
<p align="center">
|
|
21
|
+
<a href="https://adminlte.io/themes/v4/">
|
|
22
|
+
<img alt="AdminLTE 4 dashboard — light mode" src=".github/assets/dashboard-light.png" width="49%">
|
|
23
|
+
</a>
|
|
24
|
+
<a href="https://adminlte.io/themes/v4/">
|
|
25
|
+
<img alt="AdminLTE 4 dashboard — dark mode" src=".github/assets/dashboard-dark.png" width="49%">
|
|
26
|
+
</a>
|
|
27
|
+
</p>
|
|
15
28
|
|
|
16
|
-
|
|
29
|
+
## Framework editions
|
|
17
30
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- Tables: Data Tables (Tabulator — jQuery-free)
|
|
21
|
-
- Pages: Profile, Settings, Invoice, Pricing, FAQ
|
|
22
|
-
- Errors: 404, 500, Maintenance
|
|
31
|
+
The same AdminLTE 4 dashboard, officially integrated for the framework you know best —
|
|
32
|
+
you're looking at the **HTML / Bootstrap** core:
|
|
23
33
|
|
|
24
|
-
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="https://github.com/ColorlibHQ/adminlte-react"><img height="36" alt="React" src="https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB"></a>
|
|
36
|
+
<a href="https://github.com/ColorlibHQ/adminlte-react"><img height="36" alt="Next.js" src="https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white"></a>
|
|
37
|
+
<a href="https://github.com/ColorlibHQ/adminlte-vue"><img height="36" alt="Vue" src="https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vuedotjs&logoColor=4FC08D"></a>
|
|
38
|
+
<a href="https://github.com/ColorlibHQ/adminlte-vue"><img height="36" alt="Nuxt" src="https://img.shields.io/badge/Nuxt-00DC82?style=for-the-badge&logo=nuxt&logoColor=white"></a>
|
|
39
|
+
<a href="https://github.com/ColorlibHQ/adminlte-laravel"><img height="36" alt="Laravel" src="https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge&logo=laravel&logoColor=white"></a>
|
|
40
|
+
<a href="https://github.com/ColorlibHQ/adminlte-django"><img height="36" alt="Django" src="https://img.shields.io/badge/Django-092E20?style=for-the-badge&logo=django&logoColor=white"></a>
|
|
41
|
+
</p>
|
|
25
42
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
43
|
+
| Edition | Repository | Live demo | Install |
|
|
44
|
+
|---|---|---|---|
|
|
45
|
+
| **HTML / Bootstrap** (this repo) | [AdminLTE](https://github.com/ColorlibHQ/AdminLTE) | [themes/v4](https://adminlte.io/themes/v4/) | `npm install admin-lte` |
|
|
46
|
+
| **React & Next.js** — 30+ typed components, RSC-ready, ⌘K palette | [adminlte-react](https://github.com/ColorlibHQ/adminlte-react) | [themes/next-react](https://adminlte.io/themes/next-react/) | see repo |
|
|
47
|
+
| **Vue 3 & Nuxt** — 45+ typed components, composables, SSR-safe theming | [adminlte-vue](https://github.com/ColorlibHQ/adminlte-vue) | [themes/vue-nuxt](https://adminlte.io/themes/vue-nuxt/) | see repo |
|
|
48
|
+
| **Laravel** — Blade components, config-driven menu, auth scaffolding | [adminlte-laravel](https://github.com/ColorlibHQ/adminlte-laravel) | [laravel.adminlte.io](https://laravel.adminlte.io/) | `composer require colorlibhq/adminlte-laravel` |
|
|
49
|
+
| **Django** — reusable app, menu filter pipeline, themed admin | [adminlte-django](https://github.com/ColorlibHQ/adminlte-django) | [django.adminlte.io](https://django.adminlte.io/) | `pip install django-adminlte4` |
|
|
31
50
|
|
|
32
|
-
|
|
51
|
+
Every edition ships the full AdminLTE 4 design — Bootstrap 5.3, dark mode, RTL — with
|
|
52
|
+
idiomatic integrations for its stack (components, routing, auth, theming).
|
|
33
53
|
|
|
34
|
-
|
|
35
|
-
- `table-head-fixed` respects dark mode (#6026)
|
|
36
|
-
- Fullscreen icon toggles `.d-none` instead of inline `display` so it works with any icon library (#6021)
|
|
37
|
-
- Sidebar (including brand) stays pinned when using `fixed-header` (#6020)
|
|
38
|
-
- Pie chart on `index2.html` no longer flickers on browser zoom (#6019)
|
|
39
|
-
- Color-mode toggle now visible by default in the topbar with localStorage persistence (#6010)
|
|
54
|
+
## Quick start
|
|
40
55
|
|
|
41
|
-
**
|
|
56
|
+
**CDN** — no build step:
|
|
42
57
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- npm `overrides` for `yaml` + `stylelint-config-twbs-bootstrap` so `npm install` runs without `--legacy-peer-deps` and reports **0 vulnerabilities**
|
|
58
|
+
```html
|
|
59
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/admin-lte@4/dist/css/adminlte.min.css">
|
|
60
|
+
<script src="https://cdn.jsdelivr.net/npm/admin-lte@4/dist/js/adminlte.min.js"></script>
|
|
61
|
+
```
|
|
48
62
|
|
|
49
|
-
**
|
|
63
|
+
**npm:**
|
|
50
64
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- jQuery no longer required; plugins are vanilla TypeScript
|
|
65
|
+
```bash
|
|
66
|
+
npm install admin-lte@4
|
|
67
|
+
```
|
|
55
68
|
|
|
56
|
-
|
|
69
|
+
**Composer:**
|
|
57
70
|
|
|
58
|
-
**Install:**
|
|
59
71
|
```bash
|
|
60
|
-
|
|
72
|
+
composer require almasaeed2010/adminlte
|
|
61
73
|
```
|
|
62
74
|
|
|
63
|
-
|
|
75
|
+
Then start from the [Getting Started guide](https://adminlte.io/themes/v4/docs/introduction.html)
|
|
76
|
+
or copy one of the demo pages.
|
|
64
77
|
|
|
65
|
-
|
|
66
|
-
prices. Visit <https://adminlte.io/premium> for more information.
|
|
78
|
+
### Developing AdminLTE itself
|
|
67
79
|
|
|
68
|
-
|
|
80
|
+
1. **Install dependencies:** `npm install`
|
|
81
|
+
2. **Start the dev server:** `npm start` *(opens http://localhost:3000 with live reload)*
|
|
82
|
+
3. **Build:** `npm run build` — or `npm run production` for the full lint + optimize + bundlewatch pipeline
|
|
69
83
|
|
|
70
|
-
|
|
71
|
-
|
|
84
|
+
<details>
|
|
85
|
+
<summary>All npm scripts</summary>
|
|
72
86
|
|
|
73
|
-
|
|
87
|
+
- `npm start` — development server with file watching
|
|
88
|
+
- `npm run build` — build all assets for development
|
|
89
|
+
- `npm run production` — full production build with linting and bundlewatch
|
|
90
|
+
- `npm run lint` — run all linters (JS, CSS, docs, lockfile)
|
|
91
|
+
- `npm run css` — build CSS only
|
|
92
|
+
- `npm run js` — build JavaScript only
|
|
74
93
|
|
|
75
|
-
|
|
94
|
+
</details>
|
|
76
95
|
|
|
77
|
-
|
|
96
|
+
## What's new in v4
|
|
78
97
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
98
|
+
The v4 line is a ground-up rewrite on Bootstrap 5.3 with **no jQuery**: 18 new demo pages
|
|
99
|
+
(Calendar, Kanban, Chat, File Manager, Mailbox, Wizard, Tabulator data tables, and more),
|
|
100
|
+
a documentation overhaul, and major dependency upgrades. See the
|
|
101
|
+
[CHANGELOG](CHANGELOG.md) for full details.
|
|
82
102
|
|
|
83
|
-
|
|
103
|
+
<details>
|
|
104
|
+
<summary>Highlights</summary>
|
|
84
105
|
|
|
85
|
-
|
|
106
|
+
**18 new demo pages**
|
|
86
107
|
|
|
87
|
-
|
|
88
|
-
|
|
108
|
+
- Apps: Calendar (FullCalendar), Kanban (SortableJS), Chat, File Manager, Projects, Mailbox (Inbox / Read / Compose)
|
|
109
|
+
- Forms: Wizard (4-step with validation)
|
|
110
|
+
- Tables: Data Tables (Tabulator — jQuery-free)
|
|
111
|
+
- Pages: Profile, Settings, Invoice, Pricing, FAQ
|
|
112
|
+
- Errors: 404, 500, Maintenance
|
|
89
113
|
|
|
90
|
-
|
|
114
|
+
**Documentation overhaul**
|
|
91
115
|
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
- `npm run css` - Build CSS only
|
|
97
|
-
- `npm run js` - Build JavaScript only
|
|
116
|
+
- New pages: Getting Started, Customization & Theming, RTL Support, Migration from v3, Layout Blueprint, Recipes, Deployment & Performance, Recommended Integrations, JavaScript Plugins Overview
|
|
117
|
+
- Rewritten Introduction with four labelled install paths (CDN / npm / source / Composer)
|
|
118
|
+
- FAQ rebuilt with hero, live search, section chips, and an accordion of 19 questions
|
|
119
|
+
- Split sidebar navigation: dashboard demo and docs each have their own nav
|
|
98
120
|
|
|
99
|
-
|
|
121
|
+
**Major dependency upgrades**
|
|
100
122
|
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
- Firefox (latest)
|
|
104
|
-
- Safari (latest)
|
|
105
|
-
- Edge (latest)
|
|
123
|
+
- ESLint 10, TypeScript 6, Stylelint 17, Astro 6.3, Bootstrap 5.3.8, Node 22 LTS in CI
|
|
124
|
+
- `npm install` runs clean with **0 vulnerabilities**
|
|
106
125
|
|
|
107
|
-
|
|
126
|
+
</details>
|
|
108
127
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
- **macOS** - Terminal, iTerm2
|
|
112
|
-
- **Linux** - Bash, Zsh, and other Unix shells
|
|
128
|
+
<details>
|
|
129
|
+
<summary>Breaking changes from v3</summary>
|
|
113
130
|
|
|
114
|
-
|
|
131
|
+
- Class renames: `.wrapper` → `.app-wrapper`, `.main-header` → `.app-header`, `.main-sidebar` → `.app-sidebar`, `.content-wrapper` → `.app-main`
|
|
132
|
+
- Data attributes: `data-toggle` → `data-bs-toggle`, `data-widget="pushmenu"` → `data-lte-toggle="sidebar"`, `data-widget="treeview"` → `data-lte-toggle="treeview"`
|
|
133
|
+
- Dark mode: `.dark-mode` body class → `data-bs-theme="dark"` attribute (Bootstrap 5.3 native)
|
|
134
|
+
- jQuery no longer required; plugins are vanilla TypeScript
|
|
115
135
|
|
|
116
|
-
|
|
136
|
+
See the dedicated [Migration from v3](https://adminlte.io/themes/v4/docs/migration.html) guide.
|
|
137
|
+
|
|
138
|
+
</details>
|
|
139
|
+
|
|
140
|
+
## Premium templates
|
|
141
|
+
|
|
142
|
+
AdminLTE will always be free and open source. When a project needs more —
|
|
143
|
+
app-ready pages, framework-native codebases, dedicated support — our team
|
|
144
|
+
hand-picks premium dashboards at **[adminlte.io/premium](https://adminlte.io/premium)**,
|
|
145
|
+
including editions built for the same stacks AdminLTE integrates with:
|
|
146
|
+
|
|
147
|
+
<table>
|
|
148
|
+
<tr>
|
|
149
|
+
<td align="center" width="50%">
|
|
150
|
+
<a href="https://dashboardpack.com/theme-details/admindek-html/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">
|
|
151
|
+
<img src=".github/assets/premium/admindek.png" alt="Admindek — feature-rich Bootstrap 5 dashboard with dark mode" width="100%">
|
|
152
|
+
</a>
|
|
153
|
+
<br>
|
|
154
|
+
<a href="https://dashboardpack.com/theme-details/admindek-html/?utm_source=github&utm_medium=readme&utm_campaign=adminlte"><strong>Admindek</strong></a>
|
|
155
|
+
<br>
|
|
156
|
+
<sub>The natural next step from AdminLTE: Bootstrap 5 + vanilla JS, 100+ components, dark/light modes, RTL, 10 color presets.<br>
|
|
157
|
+
Also for <a href="https://dashboardpack.com/theme-details/admindek-dashboard-laravel/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">Laravel</a> ·
|
|
158
|
+
<a href="https://dashboardpack.com/theme-details/admindek-nextjs/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">Next.js</a> ·
|
|
159
|
+
<a href="https://dashboardpack.com/theme-details/admindek-dashboard-angular/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">Angular</a></sub>
|
|
160
|
+
</td>
|
|
161
|
+
<td align="center" width="50%">
|
|
162
|
+
<a href="https://dashboardpack.com/theme-details/apex-dashboard-nextjs/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">
|
|
163
|
+
<img src=".github/assets/premium/apex.png" alt="Apex Dashboard — admin template available for Next.js, Laravel, Django and Angular" width="100%">
|
|
164
|
+
</a>
|
|
165
|
+
<br>
|
|
166
|
+
<a href="https://dashboardpack.com/theme-details/apex-dashboard-nextjs/?utm_source=github&utm_medium=readme&utm_campaign=adminlte"><strong>Apex Dashboard</strong></a>
|
|
167
|
+
<br>
|
|
168
|
+
<sub>5 dashboard variants, 20+ app pages, 125+ routes, full CRUD — in your backend's native stack.<br>
|
|
169
|
+
For <a href="https://dashboardpack.com/theme-details/apex-dashboard-nextjs/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">Next.js</a> ·
|
|
170
|
+
<a href="https://dashboardpack.com/theme-details/apex-dashboard-laravel/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">Laravel</a> ·
|
|
171
|
+
<a href="https://dashboardpack.com/theme-details/apex-dashboard-django/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">Django</a> ·
|
|
172
|
+
<a href="https://dashboardpack.com/theme-details/apex-dashboard-angular/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">Angular</a></sub>
|
|
173
|
+
</td>
|
|
174
|
+
</tr>
|
|
175
|
+
<tr>
|
|
176
|
+
<td align="center" width="50%">
|
|
177
|
+
<a href="https://dashboardpack.com/theme-details/zenith-dashboard-django/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">
|
|
178
|
+
<img src=".github/assets/premium/zenith.png" alt="Zenith — ultra-minimal admin dashboard, Django edition" width="100%">
|
|
179
|
+
</a>
|
|
180
|
+
<br>
|
|
181
|
+
<a href="https://dashboardpack.com/theme-details/zenith-dashboard-django/?utm_source=github&utm_medium=readme&utm_campaign=adminlte"><strong>Zenith Dashboard — Django</strong></a>
|
|
182
|
+
<br>
|
|
183
|
+
<sub>Achromatic, ultra-minimal design as a ready-to-run Django project: 50+ pages, 6 dashboards, live theme customizer.</sub>
|
|
184
|
+
</td>
|
|
185
|
+
<td align="center" width="50%">
|
|
186
|
+
<a href="https://dashboardpack.com/theme-details/haze-dashboard-nuxt/?utm_source=github&utm_medium=readme&utm_campaign=adminlte">
|
|
187
|
+
<img src=".github/assets/premium/haze.png" alt="Haze — Nuxt 4 admin dashboard with 92+ pages and 5 dashboards" width="100%">
|
|
188
|
+
</a>
|
|
189
|
+
<br>
|
|
190
|
+
<a href="https://dashboardpack.com/theme-details/haze-dashboard-nuxt/?utm_source=github&utm_medium=readme&utm_campaign=adminlte"><strong>Haze — Nuxt</strong></a>
|
|
191
|
+
<br>
|
|
192
|
+
<sub>Nuxt 4 + Nuxt UI v4 + Tailwind CSS v4. 92+ pages, 7 layouts, 5 dashboards, RTL, i18n, mock API layer.</sub>
|
|
193
|
+
</td>
|
|
194
|
+
</tr>
|
|
195
|
+
</table>
|
|
117
196
|
|
|
118
|
-
|
|
197
|
+
<p align="center">
|
|
198
|
+
<a href="https://adminlte.io/premium"><strong>View all premium templates →</strong></a>
|
|
199
|
+
</p>
|
|
119
200
|
|
|
120
|
-
|
|
201
|
+
## Browser & platform support
|
|
121
202
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
203
|
+
AdminLTE supports the latest versions of all modern browsers (Chrome, Firefox, Safari,
|
|
204
|
+
Edge) via Bootstrap 5.3.8. The build scripts run cross-platform — Windows (CMD,
|
|
205
|
+
PowerShell, Git Bash), macOS and Linux — using cross-platform npm utilities throughout.
|
|
125
206
|
|
|
126
|
-
|
|
127
|
-
- `node_modules/` directory
|
|
128
|
-
- Demo/example HTML files (index.html, index2.html, index3.html, etc.)
|
|
129
|
-
- Source files (`src/` directory)
|
|
130
|
-
- Development configuration files
|
|
207
|
+
## Security & production deployment
|
|
131
208
|
|
|
132
|
-
**
|
|
133
|
-
|
|
209
|
+
AdminLTE is a **UI template**. Deploy only the compiled production assets
|
|
210
|
+
(`dist/js/adminlte.min.js`, `dist/css/adminlte.min.css`) and your own application files —
|
|
211
|
+
never `node_modules/`, the demo HTML pages, or the `src/` directory.
|
|
134
212
|
|
|
135
|
-
**
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
213
|
+
> **About CVE-2021-36471:** this CVE is **disputed** and does not represent a
|
|
214
|
+
> vulnerability in AdminLTE — it refers to demo pages being accessible when example
|
|
215
|
+
> files are incorrectly deployed to production. AdminLTE v4 cleanly separates
|
|
216
|
+
> development demos from production assets.
|
|
139
217
|
|
|
140
|
-
For detailed
|
|
218
|
+
For detailed guidelines, authentication requirements, and best practices, see
|
|
219
|
+
[SECURITY.md](SECURITY.md).
|
|
141
220
|
|
|
142
221
|
## Sponsorship
|
|
143
222
|
|
|
@@ -153,7 +232,7 @@ Support AdminLTE development by becoming a sponsor or donor.
|
|
|
153
232
|
</a>
|
|
154
233
|
</p>
|
|
155
234
|
|
|
156
|
-
|
|
235
|
+
### Our sponsors
|
|
157
236
|
|
|
158
237
|
<p align="center">
|
|
159
238
|
<a href="https://github.com/spizzo14"><img src="https://unavatar.io/github/spizzo14?fallback=https%3A%2F%2Fraw.githubusercontent.com%2FJamesIves%2Fgithub-sponsors-readme-action%2Fdev%2F.github%2Fassets%2Fplaceholder.png" width="50" height="50" alt="User avatar: spizzo14" loading="lazy" /></a>
|
|
@@ -171,28 +250,23 @@ Support AdminLTE development by becoming a sponsor or donor.
|
|
|
171
250
|
|
|
172
251
|
## Contributing
|
|
173
252
|
|
|
174
|
-
|
|
175
|
-
- For your extra reference check [AdminLTE v4 Contribution Guide](https://github.com/ColorlibHQ/AdminLTE#contributing)
|
|
176
|
-
- First thing first, you should have bit knowledge about NodeJS.
|
|
177
|
-
- Github Knowledge.
|
|
178
|
-
- Install NodeJS LTS version.
|
|
179
|
-
- Clone this Repository to your machine and change to `master` branch.
|
|
180
|
-
- Go to Cloned Folder.
|
|
181
|
-
- In cli/bash run `npm install` it will install dependency from `package.json`.
|
|
182
|
-
- After installation completes, run `npm start`
|
|
183
|
-
- Cool, Send your changes in PR to `master` branch.
|
|
253
|
+
Contributions are highly welcome:
|
|
184
254
|
|
|
255
|
+
1. Install [Node.js](https://nodejs.org/) (LTS) and clone this repository (`master` branch).
|
|
256
|
+
2. `npm install`, then `npm start` to run the dev server.
|
|
257
|
+
3. Make your changes (run `npm run lint` before committing) and open a PR against `master`.
|
|
185
258
|
|
|
186
259
|
## License
|
|
187
260
|
|
|
188
|
-
AdminLTE is an open source project by [AdminLTE.io](https://adminlte.io)
|
|
189
|
-
AdminLTE.io reserves the right to change
|
|
261
|
+
AdminLTE is an open source project by [AdminLTE.io](https://adminlte.io) licensed under
|
|
262
|
+
[MIT](https://opensource.org/licenses/MIT). AdminLTE.io reserves the right to change
|
|
263
|
+
the license of future releases.
|
|
190
264
|
|
|
191
|
-
## Image
|
|
265
|
+
## Image credits
|
|
192
266
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
267
|
+
[Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd),
|
|
268
|
+
[Graphicsfuel](https://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/),
|
|
269
|
+
[Pickaface](https://pickaface.net/),
|
|
270
|
+
[Unsplash](https://unsplash.com/),
|
|
271
|
+
[Uifaces](http://uifaces.com/),
|
|
272
|
+
[Unavatar](https://unavatar.io/)
|
package/dist/UI/general.html
CHANGED
|
@@ -5,6 +5,32 @@
|
|
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
6
|
<title>AdminLTE 4 | General UI Elements</title>
|
|
7
7
|
|
|
8
|
+
<!--begin::Theme Init (prevents flash of incorrect theme on load, #6043)-->
|
|
9
|
+
<script>
|
|
10
|
+
(() => {
|
|
11
|
+
'use strict';
|
|
12
|
+
const STORAGE_KEY = 'lte-theme';
|
|
13
|
+
let stored = null;
|
|
14
|
+
try {
|
|
15
|
+
stored = localStorage.getItem(STORAGE_KEY);
|
|
16
|
+
} catch {
|
|
17
|
+
// localStorage may be unavailable (private mode, sandboxed iframe).
|
|
18
|
+
}
|
|
19
|
+
const prefersDark = globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
20
|
+
// Mirror the resolution in _scripts.astro: explicit "dark"/"light" win,
|
|
21
|
+
// otherwise ("auto" or unset) fall back to the OS preference.
|
|
22
|
+
let resolved = 'light';
|
|
23
|
+
if (stored === 'dark' || stored === 'light') {
|
|
24
|
+
resolved = stored;
|
|
25
|
+
} else if (prefersDark) {
|
|
26
|
+
resolved = 'dark';
|
|
27
|
+
}
|
|
28
|
+
document.documentElement.setAttribute('data-bs-theme', resolved);
|
|
29
|
+
document.documentElement.style.colorScheme = resolved;
|
|
30
|
+
})();
|
|
31
|
+
</script>
|
|
32
|
+
<!--end::Theme Init-->
|
|
33
|
+
|
|
8
34
|
<!--begin::Accessibility Meta Tags-->
|
|
9
35
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
10
36
|
<meta name="color-scheme" content="light dark" />
|
|
@@ -369,13 +395,11 @@
|
|
|
369
395
|
<!--end::Sidebar Brand-->
|
|
370
396
|
<!--begin::Sidebar Wrapper-->
|
|
371
397
|
<div class="sidebar-wrapper">
|
|
372
|
-
<nav class="mt-2">
|
|
398
|
+
<nav class="mt-2" aria-label="Main navigation">
|
|
373
399
|
<!--begin::Sidebar Menu-->
|
|
374
400
|
<ul
|
|
375
401
|
class="nav sidebar-menu flex-column"
|
|
376
402
|
data-lte-toggle="treeview"
|
|
377
|
-
role="navigation"
|
|
378
|
-
aria-label="Main navigation"
|
|
379
403
|
data-accordion="false"
|
|
380
404
|
id="navigation"
|
|
381
405
|
>
|
package/dist/UI/icons.html
CHANGED
|
@@ -5,6 +5,32 @@
|
|
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
6
|
<title>AdminLTE 4 | Icons</title>
|
|
7
7
|
|
|
8
|
+
<!--begin::Theme Init (prevents flash of incorrect theme on load, #6043)-->
|
|
9
|
+
<script>
|
|
10
|
+
(() => {
|
|
11
|
+
'use strict';
|
|
12
|
+
const STORAGE_KEY = 'lte-theme';
|
|
13
|
+
let stored = null;
|
|
14
|
+
try {
|
|
15
|
+
stored = localStorage.getItem(STORAGE_KEY);
|
|
16
|
+
} catch {
|
|
17
|
+
// localStorage may be unavailable (private mode, sandboxed iframe).
|
|
18
|
+
}
|
|
19
|
+
const prefersDark = globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
20
|
+
// Mirror the resolution in _scripts.astro: explicit "dark"/"light" win,
|
|
21
|
+
// otherwise ("auto" or unset) fall back to the OS preference.
|
|
22
|
+
let resolved = 'light';
|
|
23
|
+
if (stored === 'dark' || stored === 'light') {
|
|
24
|
+
resolved = stored;
|
|
25
|
+
} else if (prefersDark) {
|
|
26
|
+
resolved = 'dark';
|
|
27
|
+
}
|
|
28
|
+
document.documentElement.setAttribute('data-bs-theme', resolved);
|
|
29
|
+
document.documentElement.style.colorScheme = resolved;
|
|
30
|
+
})();
|
|
31
|
+
</script>
|
|
32
|
+
<!--end::Theme Init-->
|
|
33
|
+
|
|
8
34
|
<!--begin::Accessibility Meta Tags-->
|
|
9
35
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
10
36
|
<meta name="color-scheme" content="light dark" />
|
|
@@ -369,13 +395,11 @@
|
|
|
369
395
|
<!--end::Sidebar Brand-->
|
|
370
396
|
<!--begin::Sidebar Wrapper-->
|
|
371
397
|
<div class="sidebar-wrapper">
|
|
372
|
-
<nav class="mt-2">
|
|
398
|
+
<nav class="mt-2" aria-label="Main navigation">
|
|
373
399
|
<!--begin::Sidebar Menu-->
|
|
374
400
|
<ul
|
|
375
401
|
class="nav sidebar-menu flex-column"
|
|
376
402
|
data-lte-toggle="treeview"
|
|
377
|
-
role="navigation"
|
|
378
|
-
aria-label="Main navigation"
|
|
379
403
|
data-accordion="false"
|
|
380
404
|
id="navigation"
|
|
381
405
|
>
|
package/dist/UI/timeline.html
CHANGED
|
@@ -5,6 +5,32 @@
|
|
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
6
|
<title>AdminLTE 4 | Timeline Elements</title>
|
|
7
7
|
|
|
8
|
+
<!--begin::Theme Init (prevents flash of incorrect theme on load, #6043)-->
|
|
9
|
+
<script>
|
|
10
|
+
(() => {
|
|
11
|
+
'use strict';
|
|
12
|
+
const STORAGE_KEY = 'lte-theme';
|
|
13
|
+
let stored = null;
|
|
14
|
+
try {
|
|
15
|
+
stored = localStorage.getItem(STORAGE_KEY);
|
|
16
|
+
} catch {
|
|
17
|
+
// localStorage may be unavailable (private mode, sandboxed iframe).
|
|
18
|
+
}
|
|
19
|
+
const prefersDark = globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
20
|
+
// Mirror the resolution in _scripts.astro: explicit "dark"/"light" win,
|
|
21
|
+
// otherwise ("auto" or unset) fall back to the OS preference.
|
|
22
|
+
let resolved = 'light';
|
|
23
|
+
if (stored === 'dark' || stored === 'light') {
|
|
24
|
+
resolved = stored;
|
|
25
|
+
} else if (prefersDark) {
|
|
26
|
+
resolved = 'dark';
|
|
27
|
+
}
|
|
28
|
+
document.documentElement.setAttribute('data-bs-theme', resolved);
|
|
29
|
+
document.documentElement.style.colorScheme = resolved;
|
|
30
|
+
})();
|
|
31
|
+
</script>
|
|
32
|
+
<!--end::Theme Init-->
|
|
33
|
+
|
|
8
34
|
<!--begin::Accessibility Meta Tags-->
|
|
9
35
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
10
36
|
<meta name="color-scheme" content="light dark" />
|
|
@@ -369,13 +395,11 @@
|
|
|
369
395
|
<!--end::Sidebar Brand-->
|
|
370
396
|
<!--begin::Sidebar Wrapper-->
|
|
371
397
|
<div class="sidebar-wrapper">
|
|
372
|
-
<nav class="mt-2">
|
|
398
|
+
<nav class="mt-2" aria-label="Main navigation">
|
|
373
399
|
<!--begin::Sidebar Menu-->
|
|
374
400
|
<ul
|
|
375
401
|
class="nav sidebar-menu flex-column"
|
|
376
402
|
data-lte-toggle="treeview"
|
|
377
|
-
role="navigation"
|
|
378
|
-
aria-label="Main navigation"
|
|
379
403
|
data-accordion="false"
|
|
380
404
|
id="navigation"
|
|
381
405
|
>
|
|
@@ -5,6 +5,32 @@
|
|
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
6
|
<title>Browser Support | AdminLTE 4</title>
|
|
7
7
|
|
|
8
|
+
<!--begin::Theme Init (prevents flash of incorrect theme on load, #6043)-->
|
|
9
|
+
<script>
|
|
10
|
+
(() => {
|
|
11
|
+
'use strict';
|
|
12
|
+
const STORAGE_KEY = 'lte-theme';
|
|
13
|
+
let stored = null;
|
|
14
|
+
try {
|
|
15
|
+
stored = localStorage.getItem(STORAGE_KEY);
|
|
16
|
+
} catch {
|
|
17
|
+
// localStorage may be unavailable (private mode, sandboxed iframe).
|
|
18
|
+
}
|
|
19
|
+
const prefersDark = globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
20
|
+
// Mirror the resolution in _scripts.astro: explicit "dark"/"light" win,
|
|
21
|
+
// otherwise ("auto" or unset) fall back to the OS preference.
|
|
22
|
+
let resolved = 'light';
|
|
23
|
+
if (stored === 'dark' || stored === 'light') {
|
|
24
|
+
resolved = stored;
|
|
25
|
+
} else if (prefersDark) {
|
|
26
|
+
resolved = 'dark';
|
|
27
|
+
}
|
|
28
|
+
document.documentElement.setAttribute('data-bs-theme', resolved);
|
|
29
|
+
document.documentElement.style.colorScheme = resolved;
|
|
30
|
+
})();
|
|
31
|
+
</script>
|
|
32
|
+
<!--end::Theme Init-->
|
|
33
|
+
|
|
8
34
|
<!--begin::Accessibility Meta Tags-->
|
|
9
35
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
10
36
|
<meta name="color-scheme" content="light dark" />
|
|
@@ -365,13 +391,11 @@
|
|
|
365
391
|
<!--end::Sidebar Brand-->
|
|
366
392
|
<!--begin::Sidebar Wrapper-->
|
|
367
393
|
<div class="sidebar-wrapper">
|
|
368
|
-
<nav class="mt-2">
|
|
394
|
+
<nav class="mt-2" aria-label="Documentation navigation">
|
|
369
395
|
<!--begin::Sidebar Menu-->
|
|
370
396
|
<ul
|
|
371
397
|
class="nav sidebar-menu flex-column"
|
|
372
398
|
data-lte-toggle="treeview"
|
|
373
|
-
role="navigation"
|
|
374
|
-
aria-label="Documentation navigation"
|
|
375
399
|
data-accordion="false"
|
|
376
400
|
id="docs-navigation"
|
|
377
401
|
>
|