theme.html 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049
  1. <!doctype html>
  2. <html lang="en">
  3. <!--begin::Head-->
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>AdminLTE 4 | Theme Customize</title>
  7. <!--begin::Accessibility Meta Tags-->
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  9. <meta name="color-scheme" content="light dark" />
  10. <meta name="theme-color" content="#007bff" media="(prefers-color-scheme: light)" />
  11. <meta name="theme-color" content="#1a1a1a" media="(prefers-color-scheme: dark)" />
  12. <!--end::Accessibility Meta Tags-->
  13. <!--begin::Primary Meta Tags-->
  14. <meta name="title" content="AdminLTE 4 | Theme Customize" />
  15. <meta name="author" content="ColorlibHQ" />
  16. <meta
  17. name="description"
  18. content="AdminLTE is a Free Bootstrap 5 Admin Dashboard, 30 example pages using Vanilla JS. Fully accessible with WCAG 2.1 AA compliance."
  19. />
  20. <meta
  21. name="keywords"
  22. content="bootstrap 5, bootstrap, bootstrap 5 admin dashboard, bootstrap 5 dashboard, bootstrap 5 charts, bootstrap 5 calendar, bootstrap 5 datepicker, bootstrap 5 tables, bootstrap 5 datatable, vanilla js datatable, colorlibhq, colorlibhq dashboard, colorlibhq admin dashboard, accessible admin panel, WCAG compliant"
  23. />
  24. <!--end::Primary Meta Tags-->
  25. <!--begin::Accessibility Features-->
  26. <!-- Skip links will be dynamically added by accessibility.js -->
  27. <meta name="supported-color-schemes" content="light dark" />
  28. <link rel="preload" href="../css/adminlte.css" as="style" />
  29. <!--end::Accessibility Features-->
  30. <!--begin::Fonts-->
  31. <link
  32. rel="stylesheet"
  33. href="https://cdn.jsdelivr.net/npm/@fontsource/source-sans-3@5.0.12/index.css"
  34. integrity="sha256-tXJfXfp6Ewt1ilPzLDtQnJV4hclT9XuaZUKyUvmyr+Q="
  35. crossorigin="anonymous"
  36. media="print"
  37. onload="this.media = 'all'"
  38. />
  39. <!--end::Fonts-->
  40. <!--begin::Third Party Plugin(OverlayScrollbars)-->
  41. <link
  42. rel="stylesheet"
  43. href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/styles/overlayscrollbars.min.css"
  44. crossorigin="anonymous"
  45. />
  46. <!--end::Third Party Plugin(OverlayScrollbars)-->
  47. <!--begin::Third Party Plugin(Bootstrap Icons)-->
  48. <link
  49. rel="stylesheet"
  50. href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css"
  51. crossorigin="anonymous"
  52. />
  53. <!--end::Third Party Plugin(Bootstrap Icons)-->
  54. <!--begin::Required Plugin(AdminLTE)-->
  55. <link rel="stylesheet" href="../css/adminlte.css" />
  56. <!--end::Required Plugin(AdminLTE)-->
  57. </head>
  58. <!--end::Head-->
  59. <!--begin::Body-->
  60. <body class="sidebar-expand-lg bg-body-tertiary">
  61. <!--begin::App Wrapper-->
  62. <div class="app-wrapper">
  63. <!--begin::Header-->
  64. <nav class="app-header navbar navbar-expand bg-body">
  65. <!--begin::Container-->
  66. <div class="container-fluid">
  67. <!--begin::Start Navbar Links-->
  68. <ul class="navbar-nav">
  69. <li class="nav-item">
  70. <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button">
  71. <i class="bi bi-list"></i>
  72. </a>
  73. </li>
  74. <li class="nav-item d-none d-md-block">
  75. <a href="#" class="nav-link">Home</a>
  76. </li>
  77. <li class="nav-item d-none d-md-block">
  78. <a href="#" class="nav-link">Contact</a>
  79. </li>
  80. </ul>
  81. <!--end::Start Navbar Links-->
  82. <!--begin::End Navbar Links-->
  83. <ul class="navbar-nav ms-auto">
  84. <!--begin::Navbar Search-->
  85. <li class="nav-item">
  86. <a class="nav-link" data-widget="navbar-search" href="#" role="button">
  87. <i class="bi bi-search"></i>
  88. </a>
  89. </li>
  90. <!--end::Navbar Search-->
  91. <!--begin::Messages Dropdown Menu-->
  92. <li class="nav-item dropdown">
  93. <a class="nav-link" data-bs-toggle="dropdown" href="#">
  94. <i class="bi bi-chat-text"></i>
  95. <span class="navbar-badge badge text-bg-danger">3</span>
  96. </a>
  97. <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
  98. <a href="#" class="dropdown-item">
  99. <!--begin::Message-->
  100. <div class="d-flex">
  101. <div class="flex-shrink-0">
  102. <img
  103. src="../assets/img/user1-128x128.jpg"
  104. alt="User Avatar"
  105. class="img-size-50 rounded-circle me-3"
  106. />
  107. </div>
  108. <div class="flex-grow-1">
  109. <h3 class="dropdown-item-title">
  110. Brad Diesel
  111. <span class="float-end fs-7 text-danger"
  112. ><i class="bi bi-star-fill"></i
  113. ></span>
  114. </h3>
  115. <p class="fs-7">Call me whenever you can...</p>
  116. <p class="fs-7 text-secondary">
  117. <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
  118. </p>
  119. </div>
  120. </div>
  121. <!--end::Message-->
  122. </a>
  123. <div class="dropdown-divider"></div>
  124. <a href="#" class="dropdown-item">
  125. <!--begin::Message-->
  126. <div class="d-flex">
  127. <div class="flex-shrink-0">
  128. <img
  129. src="../assets/img/user8-128x128.jpg"
  130. alt="User Avatar"
  131. class="img-size-50 rounded-circle me-3"
  132. />
  133. </div>
  134. <div class="flex-grow-1">
  135. <h3 class="dropdown-item-title">
  136. John Pierce
  137. <span class="float-end fs-7 text-secondary">
  138. <i class="bi bi-star-fill"></i>
  139. </span>
  140. </h3>
  141. <p class="fs-7">I got your message bro</p>
  142. <p class="fs-7 text-secondary">
  143. <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
  144. </p>
  145. </div>
  146. </div>
  147. <!--end::Message-->
  148. </a>
  149. <div class="dropdown-divider"></div>
  150. <a href="#" class="dropdown-item">
  151. <!--begin::Message-->
  152. <div class="d-flex">
  153. <div class="flex-shrink-0">
  154. <img
  155. src="../assets/img/user3-128x128.jpg"
  156. alt="User Avatar"
  157. class="img-size-50 rounded-circle me-3"
  158. />
  159. </div>
  160. <div class="flex-grow-1">
  161. <h3 class="dropdown-item-title">
  162. Nora Silvester
  163. <span class="float-end fs-7 text-warning">
  164. <i class="bi bi-star-fill"></i>
  165. </span>
  166. </h3>
  167. <p class="fs-7">The subject goes here</p>
  168. <p class="fs-7 text-secondary">
  169. <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
  170. </p>
  171. </div>
  172. </div>
  173. <!--end::Message-->
  174. </a>
  175. <div class="dropdown-divider"></div>
  176. <a href="#" class="dropdown-item dropdown-footer">See All Messages</a>
  177. </div>
  178. </li>
  179. <!--end::Messages Dropdown Menu-->
  180. <!--begin::Notifications Dropdown Menu-->
  181. <li class="nav-item dropdown">
  182. <a class="nav-link" data-bs-toggle="dropdown" href="#">
  183. <i class="bi bi-bell-fill"></i>
  184. <span class="navbar-badge badge text-bg-warning">15</span>
  185. </a>
  186. <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
  187. <span class="dropdown-item dropdown-header">15 Notifications</span>
  188. <div class="dropdown-divider"></div>
  189. <a href="#" class="dropdown-item">
  190. <i class="bi bi-envelope me-2"></i> 4 new messages
  191. <span class="float-end text-secondary fs-7">3 mins</span>
  192. </a>
  193. <div class="dropdown-divider"></div>
  194. <a href="#" class="dropdown-item">
  195. <i class="bi bi-people-fill me-2"></i> 8 friend requests
  196. <span class="float-end text-secondary fs-7">12 hours</span>
  197. </a>
  198. <div class="dropdown-divider"></div>
  199. <a href="#" class="dropdown-item">
  200. <i class="bi bi-file-earmark-fill me-2"></i> 3 new reports
  201. <span class="float-end text-secondary fs-7">2 days</span>
  202. </a>
  203. <div class="dropdown-divider"></div>
  204. <a href="#" class="dropdown-item dropdown-footer"> See All Notifications </a>
  205. </div>
  206. </li>
  207. <!--end::Notifications Dropdown Menu-->
  208. <!--begin::Fullscreen Toggle-->
  209. <li class="nav-item">
  210. <a class="nav-link" href="#" data-lte-toggle="fullscreen">
  211. <i data-lte-icon="maximize" class="bi bi-arrows-fullscreen"></i>
  212. <i data-lte-icon="minimize" class="bi bi-fullscreen-exit d-none"></i>
  213. </a>
  214. </li>
  215. <!--end::Fullscreen Toggle-->
  216. <!--begin::Color Mode Toggle (#6010)-->
  217. <li class="nav-item dropdown">
  218. <a
  219. class="nav-link"
  220. href="#"
  221. id="bd-theme"
  222. aria-label="Toggle color scheme"
  223. data-bs-toggle="dropdown"
  224. aria-expanded="false"
  225. >
  226. <i class="bi bi-sun-fill" data-lte-theme-icon="light"></i>
  227. <i class="bi bi-moon-fill d-none" data-lte-theme-icon="dark"></i>
  228. <i class="bi bi-circle-half d-none" data-lte-theme-icon="auto"></i>
  229. </a>
  230. <ul
  231. class="dropdown-menu dropdown-menu-end"
  232. aria-labelledby="bd-theme"
  233. style="--bs-dropdown-min-width: 8rem"
  234. >
  235. <li>
  236. <button
  237. type="button"
  238. class="dropdown-item d-flex align-items-center"
  239. data-bs-theme-value="light"
  240. aria-pressed="false"
  241. >
  242. <i class="bi bi-sun-fill me-2"></i>
  243. Light
  244. <i class="bi bi-check-lg ms-auto d-none"></i>
  245. </button>
  246. </li>
  247. <li>
  248. <button
  249. type="button"
  250. class="dropdown-item d-flex align-items-center"
  251. data-bs-theme-value="dark"
  252. aria-pressed="false"
  253. >
  254. <i class="bi bi-moon-fill me-2"></i>
  255. Dark
  256. <i class="bi bi-check-lg ms-auto d-none"></i>
  257. </button>
  258. </li>
  259. <li>
  260. <button
  261. type="button"
  262. class="dropdown-item d-flex align-items-center active"
  263. data-bs-theme-value="auto"
  264. aria-pressed="true"
  265. >
  266. <i class="bi bi-circle-half me-2"></i>
  267. Auto
  268. <i class="bi bi-check-lg ms-auto d-none"></i>
  269. </button>
  270. </li>
  271. </ul>
  272. </li>
  273. <!--end::Color Mode Toggle-->
  274. <!--begin::User Menu Dropdown-->
  275. <li class="nav-item dropdown user-menu">
  276. <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
  277. <img
  278. src="../assets/img/user2-160x160.jpg"
  279. class="user-image rounded-circle shadow"
  280. alt="User Image"
  281. />
  282. <span class="d-none d-md-inline">Alexander Pierce</span>
  283. </a>
  284. <ul class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
  285. <!--begin::User Image-->
  286. <li class="user-header text-bg-primary">
  287. <img
  288. src="../assets/img/user2-160x160.jpg"
  289. class="rounded-circle shadow"
  290. alt="User Image"
  291. />
  292. <p>
  293. Alexander Pierce - Web Developer
  294. <small>Member since Nov. 2023</small>
  295. </p>
  296. </li>
  297. <!--end::User Image-->
  298. <!--begin::Menu Body-->
  299. <li class="user-body">
  300. <!--begin::Row-->
  301. <div class="row">
  302. <div class="col-4 text-center">
  303. <a href="#">Followers</a>
  304. </div>
  305. <div class="col-4 text-center">
  306. <a href="#">Sales</a>
  307. </div>
  308. <div class="col-4 text-center">
  309. <a href="#">Friends</a>
  310. </div>
  311. </div>
  312. <!--end::Row-->
  313. </li>
  314. <!--end::Menu Body-->
  315. <!--begin::Menu Footer-->
  316. <li class="user-footer">
  317. <a href="#" class="btn btn-outline-secondary">Profile</a>
  318. <a href="#" class="btn btn-outline-danger float-end">Sign out</a>
  319. </li>
  320. <!--end::Menu Footer-->
  321. </ul>
  322. </li>
  323. <!--end::User Menu Dropdown-->
  324. </ul>
  325. <!--end::End Navbar Links-->
  326. </div>
  327. <!--end::Container-->
  328. </nav>
  329. <!--end::Header-->
  330. <!--begin::Sidebar-->
  331. <aside class="app-sidebar bg-primary shadow" data-bs-theme="dark">
  332. <!--begin::Sidebar Brand-->
  333. <div class="sidebar-brand">
  334. <!--begin::Brand Link-->
  335. <a href="../index.html" class="brand-link">
  336. <!--begin::Brand Image-->
  337. <img
  338. src="../assets/img/AdminLTELogo.png"
  339. alt="AdminLTE Logo"
  340. class="brand-image opacity-75 shadow"
  341. />
  342. <!--end::Brand Image-->
  343. <!--begin::Brand Text-->
  344. <span class="brand-text fw-light">AdminLTE 4</span>
  345. <!--end::Brand Text-->
  346. </a>
  347. <!--end::Brand Link-->
  348. </div>
  349. <!--end::Sidebar Brand-->
  350. <!--begin::Sidebar Wrapper-->
  351. <div class="sidebar-wrapper">
  352. <nav class="mt-2">
  353. <!--begin::Sidebar Menu-->
  354. <ul
  355. class="nav sidebar-menu flex-column"
  356. data-lte-toggle="treeview"
  357. role="menu"
  358. data-accordion="false"
  359. >
  360. <li class="nav-header">MULTI LEVEL EXAMPLE</li>
  361. <li class="nav-item">
  362. <a href="#" class="nav-link">
  363. <i class="nav-icon bi bi-circle-fill"></i>
  364. <p>Level 1</p>
  365. </a>
  366. </li>
  367. <li class="nav-item">
  368. <a href="#" class="nav-link">
  369. <i class="nav-icon bi bi-circle-fill"></i>
  370. <p>
  371. Level 1
  372. <i class="nav-arrow bi bi-chevron-right"></i>
  373. </p>
  374. </a>
  375. <ul class="nav nav-treeview">
  376. <li class="nav-item">
  377. <a href="#" class="nav-link">
  378. <i class="nav-icon bi bi-circle"></i>
  379. <p>Level 2</p>
  380. </a>
  381. </li>
  382. <li class="nav-item">
  383. <a href="#" class="nav-link">
  384. <i class="nav-icon bi bi-circle"></i>
  385. <p>
  386. Level 2
  387. <i class="nav-arrow bi bi-chevron-right"></i>
  388. </p>
  389. </a>
  390. <ul class="nav nav-treeview">
  391. <li class="nav-item">
  392. <a href="#" class="nav-link">
  393. <i class="nav-icon bi bi-record-circle-fill"></i>
  394. <p>Level 3</p>
  395. </a>
  396. </li>
  397. <li class="nav-item">
  398. <a href="#" class="nav-link">
  399. <i class="nav-icon bi bi-record-circle-fill"></i>
  400. <p>Level 3</p>
  401. </a>
  402. </li>
  403. <li class="nav-item">
  404. <a href="#" class="nav-link">
  405. <i class="nav-icon bi bi-record-circle-fill"></i>
  406. <p>Level 3</p>
  407. </a>
  408. </li>
  409. </ul>
  410. </li>
  411. <li class="nav-item">
  412. <a href="#" class="nav-link">
  413. <i class="nav-icon bi bi-circle"></i>
  414. <p>Level 2</p>
  415. </a>
  416. </li>
  417. </ul>
  418. </li>
  419. <li class="nav-item">
  420. <a href="#" class="nav-link">
  421. <i class="nav-icon bi bi-circle-fill"></i>
  422. <p>Level 1</p>
  423. </a>
  424. </li>
  425. </ul>
  426. <!--end::Sidebar Menu-->
  427. </nav>
  428. </div>
  429. <!--end::Sidebar Wrapper-->
  430. </aside>
  431. <!--end::Sidebar-->
  432. <!--begin::App Main-->
  433. <main class="app-main">
  434. <!--begin::App Content Header-->
  435. <div class="app-content-header">
  436. <!--begin::Container-->
  437. <div class="container-fluid">
  438. <!--begin::Row-->
  439. <div class="row">
  440. <!--begin::Col-->
  441. <div class="col-sm-6">
  442. <h3 class="mb-0">Theme Customize</h3>
  443. </div>
  444. <!--end::Col-->
  445. <!--begin::Col-->
  446. <div class="col-sm-6">
  447. <ol class="breadcrumb float-sm-end">
  448. <li class="breadcrumb-item"><a href="#">Home</a></li>
  449. <li class="breadcrumb-item active" aria-current="page">Theme Customize</li>
  450. </ol>
  451. </div>
  452. <!--end::Col-->
  453. </div>
  454. <!--end::Row-->
  455. </div>
  456. <!--end::Container-->
  457. </div>
  458. <!--end::App Content Header-->
  459. <!--begin::App Content-->
  460. <div class="app-content">
  461. <!--begin::Container-->
  462. <div class="container-fluid">
  463. <!--begin::Row-->
  464. <div class="row">
  465. <!--begin::Col-->
  466. <div class="col-12">
  467. <!--begin::Card-->
  468. <div class="card">
  469. <!--begin::Card Header-->
  470. <div class="card-header">
  471. <!--begin::Card Title-->
  472. <h3 class="card-title">Sidebar Theme</h3>
  473. <!--end::Card Title-->
  474. <!--begin::Card Toolbar-->
  475. <div class="card-tools">
  476. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  477. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  478. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  479. </button>
  480. <button
  481. type="button"
  482. class="btn btn-tool"
  483. data-lte-toggle="card-remove"
  484. title="Remove"
  485. >
  486. <i class="bi bi-x-lg"></i>
  487. </button>
  488. </div>
  489. <!--end::Card Toolbar-->
  490. </div>
  491. <!--end::Card Header-->
  492. <!--begin::Card Body-->
  493. <div class="card-body">
  494. <!--begin::Row-->
  495. <div class="row">
  496. <!--begin::Col-->
  497. <div class="col-md-3">
  498. <select
  499. id="sidebar-color-modes"
  500. class="form-select form-select-lg"
  501. aria-label="Sidebar Color Mode Select"
  502. >
  503. <option value="">---Select---</option>
  504. <option value="dark">Dark</option>
  505. <option value="light">Light</option>
  506. </select>
  507. </div>
  508. <!--end::Col-->
  509. <!--begin::Col-->
  510. <div class="col-md-3">
  511. <select
  512. id="sidebar-color"
  513. class="form-select form-select-lg"
  514. aria-label="Sidebar Color Select"
  515. >
  516. <option value="">---Select---</option>
  517. </select>
  518. </div>
  519. <!--end::Col-->
  520. <!--begin::Col-->
  521. <div class="col-md-6">
  522. <div id="sidebar-color-code" class="w-100"></div>
  523. </div>
  524. <!--end::Col-->
  525. </div>
  526. <!--end::Row-->
  527. </div>
  528. <!--end::Card Body-->
  529. <!--begin::Card Footer-->
  530. <div class="card-footer">
  531. Check more color in
  532. <a
  533. href="https://getbootstrap.com/docs/5.3/utilities/background/"
  534. target="_blank"
  535. class="link-primary"
  536. >Bootstrap Background Colors</a
  537. >
  538. </div>
  539. <!--end::Card Footer-->
  540. </div>
  541. <!--end::Card-->
  542. <!--begin::Card-->
  543. <div class="card mt-4">
  544. <!--begin::Card Header-->
  545. <div class="card-header">
  546. <!--begin::Card Title-->
  547. <h3 class="card-title">Navbar Theme</h3>
  548. <!--end::Card Title-->
  549. <!--begin::Card Toolbar-->
  550. <div class="card-tools">
  551. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  552. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  553. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  554. </button>
  555. <button
  556. type="button"
  557. class="btn btn-tool"
  558. data-lte-toggle="card-remove"
  559. title="Remove"
  560. >
  561. <i class="bi bi-x-lg"></i>
  562. </button>
  563. </div>
  564. <!--end::Card Toolbar-->
  565. </div>
  566. <!--end::Card Header-->
  567. <!--begin::Card Body-->
  568. <div class="card-body">
  569. <!--begin::Row-->
  570. <div class="row">
  571. <!--begin::Col-->
  572. <div class="col-md-3">
  573. <select
  574. id="navbar-color-modes"
  575. class="form-select form-select-lg"
  576. aria-label="Navbar Color Mode Select"
  577. >
  578. <option value="">---Select---</option>
  579. <option value="dark">Dark</option>
  580. <option value="light">Light</option>
  581. </select>
  582. </div>
  583. <!--end::Col-->
  584. <!--begin::Col-->
  585. <div class="col-md-3">
  586. <select
  587. id="navbar-color"
  588. class="form-select form-select-lg"
  589. aria-label="Navbar Color Select"
  590. >
  591. <option value="">---Select---</option>
  592. </select>
  593. </div>
  594. <!--end::Col-->
  595. <!--begin::Col-->
  596. <div class="col-md-6">
  597. <div id="navbar-color-code" class="w-100"></div>
  598. </div>
  599. <!--end::Col-->
  600. </div>
  601. <!--end::Row-->
  602. </div>
  603. <!--end::Card Body-->
  604. <!--begin::Card Footer-->
  605. <div class="card-footer">
  606. Check more color in
  607. <a
  608. href="https://getbootstrap.com/docs/5.3/utilities/background/"
  609. target="_blank"
  610. class="link-primary"
  611. >Bootstrap Background Colors</a
  612. >
  613. </div>
  614. <!--end::Card Footer-->
  615. </div>
  616. <!--end::Card-->
  617. <!--begin::Card-->
  618. <div class="card mt-4">
  619. <!--begin::Card Header-->
  620. <div class="card-header">
  621. <!--begin::Card Title-->
  622. <h3 class="card-title">Footer Theme</h3>
  623. <!--end::Card Title-->
  624. <!--begin::Card Toolbar-->
  625. <div class="card-tools">
  626. <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
  627. <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
  628. <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
  629. </button>
  630. <button
  631. type="button"
  632. class="btn btn-tool"
  633. data-lte-toggle="card-remove"
  634. title="Remove"
  635. >
  636. <i class="bi bi-x-lg"></i>
  637. </button>
  638. </div>
  639. <!--end::Card Toolbar-->
  640. </div>
  641. <!--end::Card Header-->
  642. <!--begin::Card Body-->
  643. <div class="card-body">
  644. <!--begin::Row-->
  645. <div class="row">
  646. <!--begin::Col-->
  647. <div class="col-md-3">
  648. <select
  649. id="footer-color-modes"
  650. class="form-select form-select-lg"
  651. aria-label="Footer Color Mode Select"
  652. >
  653. <option value="">---Select---</option>
  654. <option value="dark">Dark</option>
  655. <option value="light">Light</option>
  656. </select>
  657. </div>
  658. <!--end::Col-->
  659. <!--begin::Col-->
  660. <div class="col-md-3">
  661. <select
  662. id="footer-color"
  663. class="form-select form-select-lg"
  664. aria-label="Footer Color Select"
  665. >
  666. <option value="">---Select---</option>
  667. </select>
  668. </div>
  669. <!--end::Col-->
  670. <!--begin::Col-->
  671. <div class="col-md-6">
  672. <div id="footer-color-code" class="w-100"></div>
  673. </div>
  674. <!--end::Col-->
  675. </div>
  676. <!--end::Row-->
  677. </div>
  678. <!--end::Card Body-->
  679. <!--begin::Card Footer-->
  680. <div class="card-footer">
  681. Check more color in
  682. <a
  683. href="https://getbootstrap.com/docs/5.3/utilities/background/"
  684. target="_blank"
  685. class="link-primary"
  686. >Bootstrap Background Colors</a
  687. >
  688. </div>
  689. <!--end::Card Footer-->
  690. </div>
  691. <!--end::Card-->
  692. </div>
  693. <!--end::Col-->
  694. </div>
  695. <!--end::Row-->
  696. </div>
  697. <!--end::Container-->
  698. </div>
  699. <!--end::App Content-->
  700. </main>
  701. <!--end::App Main-->
  702. <!--begin::Footer-->
  703. <footer class="app-footer">
  704. <!--begin::To the end-->
  705. <div class="float-end d-none d-sm-inline">Anything you want</div>
  706. <!--end::To the end-->
  707. <!--begin::Copyright-->
  708. <strong>
  709. Copyright &copy; 2014-2026&nbsp;
  710. <a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
  711. </strong>
  712. All rights reserved.
  713. <!--end::Copyright-->
  714. </footer>
  715. <!--end::Footer-->
  716. </div>
  717. <!--end::App Wrapper-->
  718. <!--begin::Script-->
  719. <!--begin::Third Party Plugin(OverlayScrollbars)-->
  720. <script
  721. src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.11.0/browser/overlayscrollbars.browser.es6.min.js"
  722. crossorigin="anonymous"
  723. ></script>
  724. <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
  725. <script
  726. src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
  727. crossorigin="anonymous"
  728. ></script>
  729. <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
  730. <script
  731. src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.min.js"
  732. crossorigin="anonymous"
  733. ></script>
  734. <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
  735. <script src="../js/adminlte.js"></script>
  736. <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
  737. <script>
  738. const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
  739. const Default = {
  740. scrollbarTheme: 'os-theme-light',
  741. scrollbarAutoHide: 'leave',
  742. scrollbarClickScroll: true,
  743. };
  744. document.addEventListener('DOMContentLoaded', function () {
  745. const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
  746. // Disable OverlayScrollbars on mobile devices to prevent touch interference
  747. const isMobile = window.innerWidth <= 992;
  748. if (
  749. sidebarWrapper &&
  750. OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined &&
  751. !isMobile
  752. ) {
  753. OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
  754. scrollbars: {
  755. theme: Default.scrollbarTheme,
  756. autoHide: Default.scrollbarAutoHide,
  757. clickScroll: Default.scrollbarClickScroll,
  758. },
  759. });
  760. }
  761. });
  762. </script>
  763. <!--end::OverlayScrollbars Configure--><!--begin::Color Mode Toggle (#6010)-->
  764. <script>
  765. (() => {
  766. 'use strict';
  767. const STORAGE_KEY = 'lte-theme';
  768. const getStoredTheme = () => localStorage.getItem(STORAGE_KEY);
  769. const setStoredTheme = (theme) => localStorage.setItem(STORAGE_KEY, theme);
  770. const prefersDark = () => globalThis.matchMedia('(prefers-color-scheme: dark)').matches;
  771. const getPreferredTheme = () => {
  772. const stored = getStoredTheme();
  773. if (stored) return stored;
  774. return prefersDark() ? 'dark' : 'light';
  775. };
  776. const setTheme = (theme) => {
  777. const resolved = theme === 'auto' ? (prefersDark() ? 'dark' : 'light') : theme;
  778. document.documentElement.setAttribute('data-bs-theme', resolved);
  779. };
  780. setTheme(getPreferredTheme());
  781. const showActiveTheme = (theme) => {
  782. // Highlight the active dropdown option
  783. document.querySelectorAll('[data-bs-theme-value]').forEach((el) => {
  784. el.classList.remove('active');
  785. el.setAttribute('aria-pressed', 'false');
  786. const check = el.querySelector('.bi-check-lg');
  787. if (check) check.classList.add('d-none');
  788. });
  789. const active = document.querySelector(`[data-bs-theme-value="${theme}"]`);
  790. if (active) {
  791. active.classList.add('active');
  792. active.setAttribute('aria-pressed', 'true');
  793. const check = active.querySelector('.bi-check-lg');
  794. if (check) check.classList.remove('d-none');
  795. }
  796. // Sync the topbar trigger icon
  797. document.querySelectorAll('[data-lte-theme-icon]').forEach((icon) => {
  798. icon.classList.toggle('d-none', icon.dataset.lteThemeIcon !== theme);
  799. });
  800. };
  801. globalThis.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
  802. const stored = getStoredTheme();
  803. if (!stored || stored === 'auto') setTheme(getPreferredTheme());
  804. });
  805. document.addEventListener('DOMContentLoaded', () => {
  806. showActiveTheme(getPreferredTheme());
  807. document.querySelectorAll('[data-bs-theme-value]').forEach((toggle) => {
  808. toggle.addEventListener('click', () => {
  809. const theme = toggle.getAttribute('data-bs-theme-value');
  810. setStoredTheme(theme);
  811. setTheme(theme);
  812. showActiveTheme(theme);
  813. });
  814. });
  815. });
  816. })();
  817. </script>
  818. <!--end::Color Mode Toggle-->
  819. <script>
  820. document.addEventListener('DOMContentLoaded', () => {
  821. const appSidebar = document.querySelector('.app-sidebar');
  822. const sidebarColorModes = document.querySelector('#sidebar-color-modes');
  823. const sidebarColor = document.querySelector('#sidebar-color');
  824. const sidebarColorCode = document.querySelector('#sidebar-color-code');
  825. const themeBg = [
  826. 'bg-primary',
  827. 'bg-primary-subtle',
  828. 'bg-secondary',
  829. 'bg-secondary-subtle',
  830. 'bg-success',
  831. 'bg-success-subtle',
  832. 'bg-danger',
  833. 'bg-danger-subtle',
  834. 'bg-warning',
  835. 'bg-warning-subtle',
  836. 'bg-info',
  837. 'bg-info-subtle',
  838. 'bg-light',
  839. 'bg-light-subtle',
  840. 'bg-dark',
  841. 'bg-dark-subtle',
  842. 'bg-body-secondary',
  843. 'bg-body-tertiary',
  844. 'bg-body',
  845. 'bg-black',
  846. 'bg-white',
  847. 'bg-transparent',
  848. ];
  849. // loop through each option themeBg array
  850. document.querySelector('#sidebar-color').innerHTML = themeBg.map((bg) => {
  851. // return option element with value and text
  852. return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
  853. });
  854. let sidebarColorMode = '';
  855. let sidebarBg = '';
  856. function updateSidebar() {
  857. appSidebar.setAttribute('data-bs-theme', sidebarColorMode);
  858. sidebarColorCode.innerHTML = `<pre><code class="language-html">&lt;aside class="app-sidebar ${sidebarBg}" data-bs-theme="${sidebarColorMode}"&gt;...&lt;/aside&gt;</code></pre>`;
  859. }
  860. sidebarColorModes.addEventListener('input', (event) => {
  861. sidebarColorMode = event.target.value;
  862. updateSidebar();
  863. });
  864. sidebarColor.addEventListener('input', (event) => {
  865. sidebarBg = event.target.value;
  866. themeBg.forEach((className) => {
  867. appSidebar.classList.remove(className);
  868. });
  869. if (themeBg.includes(sidebarBg)) {
  870. appSidebar.classList.add(sidebarBg);
  871. }
  872. updateSidebar();
  873. });
  874. });
  875. document.addEventListener('DOMContentLoaded', () => {
  876. const appNavbar = document.querySelector('.app-header');
  877. const navbarColorModes = document.querySelector('#navbar-color-modes');
  878. const navbarColor = document.querySelector('#navbar-color');
  879. const navbarColorCode = document.querySelector('#navbar-color-code');
  880. const themeBg = [
  881. 'bg-primary',
  882. 'bg-primary-subtle',
  883. 'bg-secondary',
  884. 'bg-secondary-subtle',
  885. 'bg-success',
  886. 'bg-success-subtle',
  887. 'bg-danger',
  888. 'bg-danger-subtle',
  889. 'bg-warning',
  890. 'bg-warning-subtle',
  891. 'bg-info',
  892. 'bg-info-subtle',
  893. 'bg-light',
  894. 'bg-light-subtle',
  895. 'bg-dark',
  896. 'bg-dark-subtle',
  897. 'bg-body-secondary',
  898. 'bg-body-tertiary',
  899. 'bg-body',
  900. 'bg-black',
  901. 'bg-white',
  902. 'bg-transparent',
  903. ];
  904. // loop through each option themeBg array
  905. document.querySelector('#navbar-color').innerHTML = themeBg.map((bg) => {
  906. // return option element with value and text
  907. return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
  908. });
  909. let navbarColorMode = '';
  910. let navbarBg = '';
  911. function updateNavbar() {
  912. appNavbar.setAttribute('data-bs-theme', navbarColorMode);
  913. navbarColorCode.innerHTML = `<pre><code class="language-html">&lt;nav class="app-header navbar navbar-expand ${navbarBg}" data-bs-theme="${navbarColorMode}"&gt;...&lt;/nav&gt;</code></pre>`;
  914. }
  915. navbarColorModes.addEventListener('input', (event) => {
  916. navbarColorMode = event.target.value;
  917. updateNavbar();
  918. });
  919. navbarColor.addEventListener('input', (event) => {
  920. navbarBg = event.target.value;
  921. themeBg.forEach((className) => {
  922. appNavbar.classList.remove(className);
  923. });
  924. if (themeBg.includes(navbarBg)) {
  925. appNavbar.classList.add(navbarBg);
  926. }
  927. updateNavbar();
  928. });
  929. });
  930. document.addEventListener('DOMContentLoaded', () => {
  931. const appFooter = document.querySelector('.app-footer');
  932. const footerColorModes = document.querySelector('#footer-color-modes');
  933. const footerColor = document.querySelector('#footer-color');
  934. const footerColorCode = document.querySelector('#footer-color-code');
  935. const themeBg = [
  936. 'bg-primary',
  937. 'bg-primary-subtle',
  938. 'bg-secondary',
  939. 'bg-secondary-subtle',
  940. 'bg-success',
  941. 'bg-success-subtle',
  942. 'bg-danger',
  943. 'bg-danger-subtle',
  944. 'bg-warning',
  945. 'bg-warning-subtle',
  946. 'bg-info',
  947. 'bg-info-subtle',
  948. 'bg-light',
  949. 'bg-light-subtle',
  950. 'bg-dark',
  951. 'bg-dark-subtle',
  952. 'bg-body-secondary',
  953. 'bg-body-tertiary',
  954. 'bg-body',
  955. 'bg-black',
  956. 'bg-white',
  957. 'bg-transparent',
  958. ];
  959. // loop through each option themeBg array
  960. document.querySelector('#footer-color').innerHTML = themeBg.map((bg) => {
  961. // return option element with value and text
  962. return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
  963. });
  964. let footerColorMode = '';
  965. let footerBg = '';
  966. function updateFooter() {
  967. appFooter.setAttribute('data-bs-theme', footerColorMode);
  968. footerColorCode.innerHTML = `<pre><code class="language-html">&lt;footer class="app-footer ${footerBg}" data-bs-theme="${footerColorMode}"&gt;...&lt;/footer&gt;</code></pre>`;
  969. }
  970. footerColorModes.addEventListener('input', (event) => {
  971. footerColorMode = event.target.value;
  972. updateFooter();
  973. });
  974. footerColor.addEventListener('input', (event) => {
  975. footerBg = event.target.value;
  976. themeBg.forEach((className) => {
  977. appFooter.classList.remove(className);
  978. });
  979. if (themeBg.includes(footerBg)) {
  980. appFooter.classList.add(footerBg);
  981. }
  982. updateFooter();
  983. });
  984. });
  985. </script>
  986. <!--end::Script-->
  987. </body>
  988. <!--end::Body-->
  989. </html>