定制 & 主题设计

AdminLTE 继承了 Bootstrap 5.3 的 CSS 自定义属性主题模型,并在此基础上添加了自己的 SCSS 变量层。您可以通过两种方式自定义外观:

  1. CSS 自定义属性 —— 快速,无需构建步骤,适用于预编译的 CSS。
  2. SCSS 变量 —— 较慢(需要构建),但允许您更改任何内容,包括网格 breakpoint 和侧边栏宽度。
使用 CSS 变量的快速见效方式

Bootstrap 和 AdminLTE 在 :root 上暴露了数十个 CSS 自定义属性。在您自己的样式表中覆盖主题样式,无需重新构建:

:root,
[data-bs-theme="light"] {
  --bs-primary: #6610f2;        /* 将 Bootstrap 的蓝色替换为紫色 */
  --bs-primary-rgb: 102, 16, 242;
  --bs-body-bg: #f3f4f6;
}

[data-bs-theme="dark"] {
  --bs-body-bg: #14171c;        /* 比 Bootstrap 的默认颜色更深 */
  --bs-body-color: #e9ecef;
}

基于 var(--bs-primary) 构建的组件(AdminLTE 的大部分界面元素)会自动应用这些更改。

值得了解的常用变量
变量 默认值 控制内容
--bs-primary #0d6efd 品牌色,用于激活的侧边栏项、主要按钮
--bs-body-bg #fff(亮色)/ #212529(暗色) 页面背景
--bs-body-color #212529 默认文字颜色
--bs-border-color #dee2e6 所有细边框
--bs-border-radius .375rem 卡片、按钮、输入框的默认圆角
--bs-border-radius-lg .5rem 较大圆角,用于模态框
--bs-font-sans-serif system-ui, ... 默认字体栈

完整列表请参见 Bootstrap CSS 变量

SCSS 变量

如果您是从源码构建(克隆了仓库或通过 npm + 自己的打包工具安装),请编辑 src/scss/_variables.scss 并重新编译。

最常用的自定义变量及其默认值:

// 侧边栏
$lte-sidebar-width:          250px;       // 缩小至约 70px 的迷你尺寸
$lte-sidebar-breakpoint:     lg;          // 侧边栏开始变为 off-canvas 模式的 breakpoint
$lte-sidebar-padding-x:      .5rem;
$lte-sidebar-padding-y:      .5rem;

// 侧边栏颜色(浅色主题)
$lte-sidebar-color:          $gray-800;
$lte-sidebar-hover-bg:       rgba($black, .1);
$lte-sidebar-active-color:   $black;
$lte-sidebar-menu-active-bg: rgba($black, .1);

// 页眉
$lte-app-header-height:      $nav-link-height + ($lte-app-header-link-padding-y * 2);
$lte-app-header-bottom-border-color: var(--#{$prefix}border-color);

// 过渡
$lte-transition-speed:       .3s;
$lte-transition-fn:          ease-in-out;

Bootstrap 自身的变量(按钮颜色、字体大小、间距比例、breakpoint)位于 src/scss/_bootstrap-variables.scss。所有值都使用了 !default,因此在导入之前在您自己的 SCSS 文件中覆盖它们:

// my-theme.scss

// 1. 你覆盖优先
$primary:                #6610f2;
$lte-sidebar-width:      280px;
$border-radius:          .25rem;

// 2. 然后导入 AdminLTE(它会导入 Bootstrap)
@import "node_modules/admin-lte/src/scss/adminlte";
重新编译 SCSS

如果您克隆了仓库,构建流程已经配置好:

npm install
npm run css           # 一次性构建 → dist/css/
npm run watch-css-main  # 开发过程中保存时自动重新构建

对于将 AdminLTE 作为依赖项的项目,将您的打包工具指向 node_modules/admin-lte/src/scss/adminlte.scss。示例:

// Vite / Rollup / Webpack
import "admin-lte/src/scss/adminlte.scss"
自定义侧边栏品牌标识

.sidebar-brand 元素可以包含文本、图片,或两者兼有。标记:

<div class="sidebar-brand">
  <a href="/" class="brand-link">
    <img src="/assets/logo.svg" alt="Logo" class="brand-image opacity-75 shadow" />
    <span class="brand-text fw-light">我的仪表盘</span>
  </a>
</div>

要在侧边栏折叠为迷你状态时切换 Logo,AdminLTE 提供了内置模式——请查看 Logo 切换布局演示 了解标记方式。

暗色模式自定义

AdminLTE 遵循 Bootstrap 5.3 的 data-bs-theme 属性系统。要自定义暗色模式颜色,请将变量限定在 [data-bs-theme="dark"] 下:

[data-bs-theme="dark"] {
  --bs-primary: #4dabf7;          /* 浅色主色调适用于深色背景 */
  --lte-sidebar-color: #e9ecef;
  --lte-sidebar-active-color: #fff;
}

颜色模式页面涵盖了切换该属性的切换按钮标记和 JavaScript。

自定义侧边栏配色方案

AdminLTE 默认提供亮色模式的侧边栏样式,但演示中在 .app-sidebar 上应用了 data-bs-theme="dark",以在亮色页面上获得暗色侧边栏变体。您可以自由组合:

<!-- 浅色页面,深色侧边栏(演示模式) -->
<body class="bg-body-tertiary">
  <aside class="app-sidebar bg-body-secondary shadow" data-bs-theme="dark">
    ...
  </aside>
</body>
<!-- 亮色页面,亮色侧边栏 -->
<body class="bg-body-tertiary">
  <aside class="app-sidebar bg-body shadow border-end">
    ...
  </aside>
</body>
紧凑模式

.app-wrapper 上添加 .compact-mode(或向上任意层级)可减少整个布局的内边距——适用于数据密集型的仪表盘。紧凑模式的尺寸来自 _variables.scss 中的 *-compact 变量。

<div class="app-wrapper compact-mode">
  <!-- 页眉、侧边栏和主要内容间距更紧密 -->
</div>
何时重新编译 vs. 运行时覆盖
自定义项 CSS 变量 SCSS 重新编译
品牌色
主体/文字颜色
圆角
侧边栏宽度 ❌ (不是 CSS 变量)
breakpoint 更改
间距比例
字体大小 部分支持 ✅(完全控制)

尽可能使用 CSS 变量进行所有自定义——这样可以在 AdminLTE 升级时避免合并冲突。将 SCSS 覆盖保留用于 CSS 变量无法覆盖的结构性更改(侧边栏宽度、breakpoint)。