backpack/theme-coreuiv2
CoreUI v2 theme for Backpack for Laravel admin panels. Drop-in styling for CRUDs, lists, forms and dashboards, giving your backend a clean, modern look with minimal configuration. Install alongside Backpack to swap the default admin UI quickly.
composer require backpack/theme-coreuiv2
config/backpack/ui.php (publish Backpack's config if the file is missing) and change:
'view_namespace' => 'backpack::ui.coreuiv2', // was 'backpack::ui.tabler'
php artisan config:clear && php artisan view:clear
/admin. You should see the CoreUI v2 shell (dark sidebar, Bootstrap 4 markup) instead of Tabler.Where to look first: the installed blade files under vendor/backpack/theme-coreuiv2/resources/views/ — that is the actual UI you will be overriding. Read config/backpack/ui.php for the active theme plus asset/style/script hooks. Then skim the Backpack v6 upgrade guide, because the theme only restores the look; v6's behavioural changes still apply.
First real use case: upgrading a Backpack v5 app to v6 without a UI redesign, or starting a v6 project that must match an existing CoreUI v2 / Bootstrap 4 design system. If neither applies, use the default Tabler theme instead — this package is explicitly marked legacy.
Version to target: current line is 2.0.x (latest 2.0.6), which is the Backpack v6–compatible branch. Pin ^2.0 — do not assume the constraint tracks Backpack's own major.
php artisan backpack:crud Product scaffolds views under resources/views/admin/product/ that @extends('backpack::layouts.top_left') and use backpack::crud.* partials. Those work under either theme. The breakage starts the moment you hand-write Bootstrap 5 classes into them.backpack namespace is:
resources/views/vendor/backpack/ui/coreuiv2/...
Copy a file from vendor/backpack/theme-coreuiv2/resources/views/ui/coreuiv2/... into that path and edit the copy. This is also how you build a lightweight "app theme" — override layouts/top_left.blade.php, inc/sidebar_content.blade.php, inc/topbar_right_content.blade.php for logo/nav/branding, and leave view_namespace as backpack::ui.coreuiv2.config/backpack/ui.php (or base.php depending on minor version), or use the @yield('after_styles') / @yield('after_scripts') hooks in the layout stack. Avoid hard-coding <link> tags into every page.row, col-*, card, btn, form-control, mb-*/mt-* — but not ms-*/me-*/gap-*).2.0.6 refreshed stale classes in the theme's datatable views. If you copied datatable.blade.php / the crud/inc/datatable/* partials into resources/views/vendor/backpack/ui/coreuiv2/, diff them against the new vendor versions after upgrading — your copy is a frozen snapshot of the old (stale) markup.@extends a custom layout that itself extends the theme layout. This is the cleanest way to give one section of the admin a different chrome without forking the theme.backpack::crud.* and neutral partials so you can flip view_namespace back to backpack::ui.tabler on a branch and only fix the handful of views that leaked BS4 classes.ms-*, me-*, ps-*, pe-*, g-*, data-bs-*, form-floating, text-bg-*. Under this theme they silently no-op or misalign. Grep your custom views for those tokens and translate to BS4 (ml-*, mr-*, pl-*, pr-*, data-*).2.0.6 is a single PR ("Update stale datatable classes" by @pxpm) — treat patch bumps as low-risk but visible. Read the diff if your app depends on exact table markup, and re-check any datatable-related view overrides you maintain.view_namespace, php artisan config:clear && php artisan view:clear. If your deploy runs php artisan optimize, re-run it.ViewNotFoundException for backpack::ui.coreuiv2.* almost always means one of: theme not installed, typo in view_namespace, cached config, or your override file has a different filename/casing than the original. Check the path in vendor/backpack/theme-coreuiv2/resources/views/ first.APP_URL/asset URL is wrong. Check the theme README for its publish tag (some themes also support a CDN flag).vendor/backpack/theme-coreuiv2. composer update wipes it. Pin the version (^2.0) and override in resources/views/vendor/backpack/ui/coreuiv2/.backpack/crud, smoke-test /admin, the login page, and one full CRUD (list/create/edit/delete). If something 500s, diff the corresponding file in backpack/theme-tabler — the change is almost always exactly what you need to backport.config(['backpack.ui.view_namespace' => ...]) in middleware, but partial renders and cached fragments will bite you. Pick one theme per environment.php artisan view:clear and confirm the file sits under resources/views/vendor/backpack/ui/coreuiv2/... (not resources/views/vendor/backpack/... minus the ui.coreuiv2 segment)./admin and asserts 200 is enough to catch the usual upgrade breakage.packages/ with a path repository, then you can patch it freely and keep it under your own CI. Do that only after deciding you can't migrate to Tabler.How can I help you explore Laravel packages today?