FAQ
How can we help?
Quick answers to the 26 questions we get asked most often. Use the search to jump to anything, or click a topic below.
No questions match your search. Try a different keyword or open a Discussion.
Getting started
5 questions
What is AdminLTE, exactly?
Do I need a build step to use it?
<link> tags and four <script> tags into your HTML and you're done. The npm-based workflow is there if you want to customise SCSS variables or tree-shake the JavaScript.Which Bootstrap version does v4 require?
package.json pins 5.3.8 — older 5.3 minors should work but aren't tested. Bootstrap 5.0 / 5.1 / 5.2 will not work (the color-mode and data-bs-theme system landed in 5.3).Can I use AdminLTE 4 with jQuery?
$.fn.xxx() plugin shims.The v3
plugins/ folder is gone too. Every widget it bundled has a vanilla-JS successor — see the plugin replacement table for the full mapping (Select2 → Tom Select, DataTables → Tabulator, Summernote → Quill, and so on).Does AdminLTE 4 support Select2?
forms/advanced.html demos all of it, including a paginated remote-data field with request cancellation, and there's a line-by-line API mapping if you're porting existing code.Select2 itself is still maintained (4.1.0 shipped in 2026), but it is still a jQuery plugin — its UMD wrapper hard-requires jQuery and there is no jQuery-free build. Bundling it would put jQuery back into a framework whose entire v4 premise is not needing it, and none of the official Vue/React/Django/Laravel ports could consume it.
If you're locked into Select2 anyway, AdminLTE ships an optional styling-only compatibility sheet — see Select2 compatibility theme. You bring the plugin; it makes Select2 match Bootstrap 5.3, dark mode and modals included. No jQuery is added to AdminLTE.
Framework integrations
3 questions
Can AdminLTE be used with WordPress?
wp_head(), wp_footer(), and WordPress's loops. AdminLTE doesn't ship a WordPress-specific build; the work of porting nav-walker classes and authentication forms is yours.Laravel? Symfony? Yii? Django? Rails?
React, Vue, Svelte, Angular?
Workable but less natural. AdminLTE's JavaScript plugins use DOM lifecycle hooks (DOMContentLoaded, MutationObserver patterns) which fight with framework reconciliation. If you're using a SPA framework, consider:
- Using AdminLTE only for CSS — keep the visual style, but write your own React/Vue components for the interactive parts.
- Or pick a component library built for your framework (PrimeReact, Vuetify, etc.).
We don't recommend wrapping AdminLTE's jQuery-era plugins in SPA framework components — it's a maintenance burden that outweighs the visual win.
Customization
4 questions
How do I change the primary colour?
Bootstrap compiles $primary into its components, so overriding --bs-primary alone repaints .text-primary and .bg-primary but leaves .btn-primary, pagination, checkboxes and the focus ring blue. Two things actually work:
With Sass — set $primary before importing AdminLTE and everything is compiled with it:
$primary: #6610f2;
@import "admin-lte/src/scss/adminlte";
Without a build step — load the opt-in palette sheet and name your colour on <html>; it rewires the components that bake the hex:
<link rel="stylesheet" href="css/adminlte-colors.css">
<html lang="en" data-lte-primary="indigo">
A brand colour outside the palette needs only --bs-primary plus that attribute — see Colors & Skins. For sidebar width, breakpoints and the spacing scale, see Customization & Theming.
Where did the v3 colours go — bg-navy, bg-teal, the sidebar skins? Can I add my brand colour?
They live in an opt-in stylesheet, dist/css/adminlte-colors.css (≈ 8 kB gzipped), so they cost nothing unless you load it: fourteen redesigned colours — every one readable with white text — with the full .bg-*, .text-bg-*, .card-*, .callout-*, .bg-gradient-* families. A sidebar "skin" is just <aside class="app-sidebar text-bg-navy" data-bs-theme="dark">.
Want the AdminLTE 3 colours exactly as they were? Load dist/css/adminlte-colors-v3.css instead — the 18 v3 colours under their original names and values, same class families. Your own colour is a one-liner in Sass, $lte-palette-custom: ("brand": #0f766e). To make one of them Bootstrap's primary — buttons, links, pagination, form focus — add data-lte-primary="teal" to <html>. Everything — palette, presets, the brand-colour checker — is on Colors; try skins live on the Colors demo or the Theme Customize page.
How do I add a date picker / multi-select / rich text editor?
Can I use FontAwesome instead of Bootstrap Icons?
<i class="bi bi-x"> with <i class="fas fa-x"> throughout.Versions and updates
3 questions
How do I get notified of new versions?
https://github.com/ColorlibHQ/AdminLTE/releases.atom.Where's the AdminLTE 3 documentation?
How do I upgrade from v3 to v4?
.wrapper → .app-wrapper), data-toggle → data-bs-toggle, dark mode uses data-bs-theme instead of .dark-mode, and jQuery isn't required anymore.Licensing
3 questions
Is AdminLTE free for commercial use?
adminlte.css / adminlte.js). You don't need to display attribution in the UI.Do I need to credit AdminLTE in my app?
Can I sell a product made with AdminLTE?
Troubleshooting
8 questions
The sidebar doesn't collapse when I click the hamburger menu.
adminlte.js — make sure the script tag is on the page and after the markup it operates on. Also verify your hamburger button has data-lte-toggle="sidebar" (not data-widget="pushmenu", which is the v3 attribute).Dark mode doesn't persist after refresh.
localStorage under the key lte-theme. If you're using a different toggle implementation, make sure it both sets document.documentElement.setAttribute('data-bs-theme', ...) and writes to localStorage on change.My own theming keeps getting overwritten by AdminLTE.
<html data-lte-color-mode="off">. ColorMode then never writes data-bs-theme — not on load, not on a toggle click, not when the OS preference changes — so your own switcher (or a custom Bootstrap theme name) stays in control. If you only need a server-rendered default instead, render data-bs-theme on <html> and it is respected as long as the visitor hasn't picked a theme themselves. See Color Mode.Bootstrap modal closes when I press Escape, but the AdminLTE sidebar closes too.
Printing adds the URL after every link and a box around buttons.
<html data-lte-print="plain"> (it works on any container too) and both go away, while text stays black on white. See the Recipes page.The sidebar and header no longer print.
<html data-lte-print="app"> to print the whole layout again, or Bootstrap's .d-print-flex / .d-print-block to bring back one piece of it.My custom SCSS doesn't override AdminLTE's defaults.
@import of AdminLTE's SCSS. AdminLTE uses !default on its variables, which means the first declaration wins. See Customization & Theming for the import order.
npm install fails with peer dependency errors.
overrides block in package.json to keep peers happy — make sure you're on npm 8.3+ which respects them. If you're on an older npm, install with --legacy-peer-deps.Still need help?
Open a discussion on GitHub or browse the documentation for more in-depth answers.