### FAQ

Frequently Asked Questions

# How can we help?

Quick answers to the 21 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

4 questions

What is AdminLTE, exactly?
A free, MIT-licensed admin dashboard template. It's a set of HTML, CSS, and JavaScript files built on top of Bootstrap 5.3 — not a framework, not an npm component library. You drop it into your project, modify the markup to suit your app, and ship.
Do I need a build step to use it?
No. The Getting Started guide shows the CDN-only approach — copy four `<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?
Bootstrap 5.3.x. The current `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?
You don't need jQuery — AdminLTE 4's JavaScript is vanilla. If your existing app already uses jQuery, it'll coexist fine. But none of AdminLTE 4's own plugins call into jQuery, and there are no `$.fn.xxx()` plugin shims.

## Framework integrations

3 questions

Can AdminLTE be used with WordPress?
Yes — it's just HTML/CSS/JS. The typical path is to build a custom WordPress theme that wraps AdminLTE's markup around `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?
All workable. AdminLTE is a server-rendered template — copy the demo pages into your views/templates, replace static content with your framework's template variables, and wire up routes/auth as usual. Community Composer/Packagist packages exist for Laravel and Symfony, though they typically lag the upstream version — verify they ship v4 before you depend on them.
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

3 questions

How do I change the primary colour?

Override `--bs-primary` (and its RGB counterpart) on `:root`:

    :root {
      --bs-primary: #6610f2;
      --bs-primary-rgb: 102, 16, 242;
    }

For deeper control (sidebar width, breakpoints, spacing scale), see Customization & Theming.

How do I add a date picker / multi-select / rich text editor?
AdminLTE deliberately doesn't bundle these — they'd bloat the framework. The Recommended Integrations page lists best-in-class third-party libraries (Flatpickr, Tom Select, Quill, etc.) with copy-paste install snippets.
Can I use FontAwesome instead of Bootstrap Icons?
Yes. Bootstrap Icons is the default in the demos because it's MIT, ships with Bootstrap, and is SVG-based — but nothing in AdminLTE's CSS or JS requires it. Drop in FontAwesome's stylesheet and replace `<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?
Watch the GitHub repo (Releases-only mode) or subscribe to the RSS feed at `https://github.com/ColorlibHQ/AdminLTE/releases.atom`.
Where's the AdminLTE 3 documentation?
Still online at adminlte.io/docs/3.2 and earlier versions are linked there. The v3 branch on GitHub continues to receive critical bug fixes; new features land in v4 only.
How do I upgrade from v3 to v4?
See the dedicated Migration from v3 guide. The short version: class names changed (`.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?
Yes — MIT licensed. You can use it in commercial products, SaaS apps, client work, anything. The only requirement is preserving the copyright notice in the source files (`adminlte.css` / `adminlte.js`). You don't need to display attribution in the UI.
Do I need to credit AdminLTE in my app?
No. The MIT license requires you to keep the licence notice in the source files you distribute — that's it. You don't have to mention AdminLTE in the rendered UI, your About page, or your README.
Can I sell a product made with AdminLTE?
Yes. The MIT license explicitly permits this. You can also resell modified versions of AdminLTE itself (theme marketplaces frequently do this) — just preserve the original copyright notice.

## Troubleshooting

5 questions

The sidebar doesn't collapse when I click the hamburger menu.
Check that the PushMenu plugin is loaded. It's bundled into `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.
The included Color Mode toggle writes to `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.
Bootstrap modal closes when I press Escape, but the AdminLTE sidebar closes too.
Fixed in v4.0.0 (#5993). If you're still seeing this, you're on an older RC — update to the latest.
My custom SCSS doesn't override AdminLTE's defaults.
Put your overrides before the `@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.
We use an npm `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.

Open a Discussion Browse Documentation