Magento's admin uses its own theme, Magento/backend. You can create a child admin theme to change branding, colours or layout details — useful for agencies and multi-brand businesses. For small changes, though, a module with a few layout tweaks is often simpler to maintain.
Step 1: Register the Admin Theme
<?php
declare(strict_types=1);
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::THEME,
'adminhtml/MageServices/backend',
__DIR__
);
<?xml version="1.0"?>
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>MageServices Backend</title>
<parent>Magento/backend</parent>
</theme>
Step 2: Apply the Theme With a Module
Admin themes are not selected in the admin. A module tells Magento to use your theme through di.xml:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Theme\Model\View\Design">
<arguments>
<argument name="themes" xsi:type="array">
<item name="adminhtml" xsi:type="string">MageServices/backend</item>
</argument>
</arguments>
</type>
</config>
Add Magento_Theme to the module's <sequence> in module.xml so your configuration loads after it.
Step 3: Override Styles
Admin styles are built with LESS. Add your changes in web/css/source/_theme.less — for example, a brand colour for primary buttons:
// app/design/adminhtml/MageServices/backend/web/css/source/_theme.less
@color-brand: #E8440A;
.action-primary,
.page-actions .page-actions-buttons > button.action-primary {
background-color: @color-brand;
border-color: darken(@color-brand, 8%);
}
Step 4: Replace the Admin Logo
Override the logo images in your theme, keeping the same file names as the parent theme so templates pick them up:
app/design/adminhtml/MageServices/backend/web/images/magento-logo.svg
app/design/adminhtml/MageServices/backend/web/images/magento-icon.svg
Step 5: Deploy
bin/magento setup:upgrade
bin/magento setup:static-content:deploy -f --area adminhtml
bin/magento cache:flush
Keep It Light
- Every admin override must be checked after Magento upgrades. Change as little as possible.
- Do not hide or restyle security-related admin features.
- For a different logo on the login page only, a small layout override in a module is often enough.
Changing the Admin Login Page Only
Many merchants only want their own logo on the admin login screen. That does not need a full admin theme. In a module, add view/adminhtml/layout/admin_login.xml and set the logo through the existing block's arguments, or reference the login container and add a small block with your own template. Because this touches one layout handle, it is far less likely to break during upgrades than a theme that overrides many templates.
Debugging Admin Theme Issues
- Theme not applied — confirm the module containing the di.xml is enabled and that
setup:upgraderegistered the theme in thethemetable with areaadminhtml. - Styles not updating — delete
pub/static/adminhtmlandvar/view_preprocessedin developer mode, then redeploy static content. - Broken admin after upgrade — temporarily remove the di.xml theme argument to fall back to
Magento/backend, then review your overrides against the new core files.
If your goal is a better admin experience for your team — faster product editing, custom grids or bulk tools — consider building admin features with UI components instead of restyling the whole admin.
Frequently Asked Questions
Can I choose the admin theme in Content > Design?
No. Admin themes are applied through di.xml in a module, not through the design configuration screen.
Will my admin theme survive upgrades?
Usually, if you only override a few styles and images. Template overrides need review after each upgrade.
Need help with this on your store?
Our Magento engineers can implement it for you, review your code or take on the whole project.
Written by the Magento Services engineering team — Magento 2, Adobe Commerce and Hyvä specialists since 2014. We write about problems we solve on real client stores.