admin-lte 4.0.0-beta2 → 4.0.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.browserslistrc +9 -4
  2. package/.prettierrc +6 -0
  3. package/ACCESSIBILITY-COMPLIANCE.md +369 -0
  4. package/CHANGELOG.md +314 -0
  5. package/README.md +43 -7
  6. package/dist/css/adminlte.css +1417 -1269
  7. package/dist/css/adminlte.css.map +1 -1
  8. package/dist/css/adminlte.min.css +2 -2
  9. package/dist/css/adminlte.min.css.map +1 -1
  10. package/dist/css/adminlte.rtl.css +1437 -1263
  11. package/dist/css/adminlte.rtl.css.map +1 -1
  12. package/dist/css/adminlte.rtl.min.css +2 -2
  13. package/dist/css/adminlte.rtl.min.css.map +1 -1
  14. package/dist/js/adminlte.js +786 -345
  15. package/dist/js/adminlte.js.map +1 -1
  16. package/dist/js/adminlte.min.js +3 -3
  17. package/dist/js/adminlte.min.js.map +1 -1
  18. package/dist/pages/UI/general.html +1918 -889
  19. package/dist/pages/UI/icons.html +848 -450
  20. package/dist/pages/UI/timeline.html +926 -496
  21. package/dist/pages/docs/browser-support.html +855 -442
  22. package/dist/pages/docs/color-mode.html +1002 -549
  23. package/dist/pages/docs/components/main-header.html +1032 -543
  24. package/dist/pages/docs/components/main-sidebar.html +848 -441
  25. package/dist/pages/docs/faq.html +846 -438
  26. package/dist/pages/docs/how-to-contribute.html +918 -478
  27. package/dist/pages/docs/introduction.html +900 -465
  28. package/dist/pages/docs/javascript/treeview.html +853 -451
  29. package/dist/pages/docs/layout.html +867 -479
  30. package/dist/pages/docs/license.html +843 -440
  31. package/dist/pages/examples/lockscreen.html +141 -66
  32. package/dist/pages/examples/login-v2.html +169 -85
  33. package/dist/pages/examples/login.html +159 -80
  34. package/dist/pages/examples/register-v2.html +179 -88
  35. package/dist/pages/examples/register.html +164 -81
  36. package/dist/pages/forms/general.html +1255 -605
  37. package/dist/pages/generate/theme.html +861 -386
  38. package/dist/pages/index.html +1417 -801
  39. package/dist/pages/index2.html +1884 -1057
  40. package/dist/pages/index3.html +1215 -690
  41. package/dist/pages/layout/collapsed-sidebar.html +861 -446
  42. package/dist/pages/layout/fixed-complete.html +862 -0
  43. package/dist/pages/layout/fixed-footer.html +861 -0
  44. package/dist/pages/layout/fixed-header.html +861 -0
  45. package/dist/pages/layout/fixed-sidebar.html +861 -446
  46. package/dist/pages/layout/layout-custom-area.html +891 -464
  47. package/dist/pages/layout/layout-rtl.html +861 -446
  48. package/dist/pages/layout/logo-switch.html +498 -233
  49. package/dist/pages/layout/sidebar-mini.html +861 -446
  50. package/dist/pages/layout/unfixed-sidebar.html +859 -445
  51. package/dist/pages/tables/simple.html +1111 -692
  52. package/dist/pages/widgets/cards.html +1066 -550
  53. package/dist/pages/widgets/info-box.html +1084 -577
  54. package/dist/pages/widgets/small-box.html +946 -480
  55. package/eslint.config.js +81 -0
  56. package/package.json +40 -36
  57. package/src/scss/_accessibility.scss +292 -0
  58. package/src/scss/_app-footer.scss +8 -0
  59. package/src/scss/_app-header.scss +8 -0
  60. package/src/scss/_bootstrap-variables.scss +11 -9
  61. package/src/scss/_table.scss +1 -9
  62. package/src/scss/_variables.scss +2 -1
  63. package/src/scss/adminlte.scss +4 -1
  64. package/src/ts/accessibility.ts +533 -0
  65. package/src/ts/adminlte.ts +48 -9
  66. package/src/ts/card-widget.ts +1 -2
  67. package/src/ts/push-menu.ts +1 -2
  68. package/src/ts/util/index.ts +39 -7
  69. package/.astro/settings.json +0 -5
@@ -1,412 +1,887 @@
1
- <!DOCTYPE html>
2
- <html lang="en"> <!--begin::Head-->
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="../../../dist/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.10.1/styles/overlayscrollbars.min.css"
44
+ integrity="sha256-tZHrRjVqNSRyWg2wbppGnT833E/Ys0DHWGwT04GiqQg="
45
+ crossorigin="anonymous"
46
+ />
47
+ <!--end::Third Party Plugin(OverlayScrollbars)-->
48
+ <!--begin::Third Party Plugin(Bootstrap Icons)-->
49
+ <link
50
+ rel="stylesheet"
51
+ href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"
52
+ integrity="sha256-9kPW/n5nn53j4WMRYAxe9c1rCY96Oogo/MKSVdKzPmI="
53
+ crossorigin="anonymous"
54
+ />
55
+ <!--end::Third Party Plugin(Bootstrap Icons)-->
56
+ <!--begin::Required Plugin(AdminLTE)-->
57
+ <link rel="stylesheet" href="../../../dist/css/adminlte.css" />
58
+ <!--end::Required Plugin(AdminLTE)-->
59
+ </head>
60
+ <!--end::Head-->
61
+ <!--begin::Body-->
62
+ <body class="sidebar-expand-lg bg-body-tertiary">
63
+ <!--begin::App Wrapper-->
64
+ <div class="app-wrapper">
65
+ <!--begin::Header-->
66
+ <nav class="app-header navbar navbar-expand bg-body">
67
+ <!--begin::Container-->
68
+ <div class="container-fluid">
69
+ <!--begin::Start Navbar Links-->
70
+ <ul class="navbar-nav">
71
+ <li class="nav-item">
72
+ <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button">
73
+ <i class="bi bi-list"></i>
74
+ </a>
75
+ </li>
76
+ <li class="nav-item d-none d-md-block"><a href="#" class="nav-link">Home</a></li>
77
+ <li class="nav-item d-none d-md-block"><a href="#" class="nav-link">Contact</a></li>
78
+ </ul>
79
+ <!--end::Start Navbar Links-->
80
+ <!--begin::End Navbar Links-->
81
+ <ul class="navbar-nav ms-auto">
82
+ <!--begin::Navbar Search-->
83
+ <li class="nav-item">
84
+ <a class="nav-link" data-widget="navbar-search" href="#" role="button">
85
+ <i class="bi bi-search"></i>
86
+ </a>
87
+ </li>
88
+ <!--end::Navbar Search-->
89
+ <!--begin::Messages Dropdown Menu-->
90
+ <li class="nav-item dropdown">
91
+ <a class="nav-link" data-bs-toggle="dropdown" href="#">
92
+ <i class="bi bi-chat-text"></i>
93
+ <span class="navbar-badge badge text-bg-danger">3</span>
94
+ </a>
95
+ <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
96
+ <a href="#" class="dropdown-item">
97
+ <!--begin::Message-->
98
+ <div class="d-flex">
99
+ <div class="flex-shrink-0">
100
+ <img
101
+ src="../../../dist/assets/img/user1-128x128.jpg"
102
+ alt="User Avatar"
103
+ class="img-size-50 rounded-circle me-3"
104
+ />
105
+ </div>
106
+ <div class="flex-grow-1">
107
+ <h3 class="dropdown-item-title">
108
+ Brad Diesel
109
+ <span class="float-end fs-7 text-danger"
110
+ ><i class="bi bi-star-fill"></i
111
+ ></span>
112
+ </h3>
113
+ <p class="fs-7">Call me whenever you can...</p>
114
+ <p class="fs-7 text-secondary">
115
+ <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
116
+ </p>
117
+ </div>
118
+ </div>
119
+ <!--end::Message-->
120
+ </a>
121
+ <div class="dropdown-divider"></div>
122
+ <a href="#" class="dropdown-item">
123
+ <!--begin::Message-->
124
+ <div class="d-flex">
125
+ <div class="flex-shrink-0">
126
+ <img
127
+ src="../../../dist/assets/img/user8-128x128.jpg"
128
+ alt="User Avatar"
129
+ class="img-size-50 rounded-circle me-3"
130
+ />
131
+ </div>
132
+ <div class="flex-grow-1">
133
+ <h3 class="dropdown-item-title">
134
+ John Pierce
135
+ <span class="float-end fs-7 text-secondary">
136
+ <i class="bi bi-star-fill"></i>
137
+ </span>
138
+ </h3>
139
+ <p class="fs-7">I got your message bro</p>
140
+ <p class="fs-7 text-secondary">
141
+ <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
142
+ </p>
143
+ </div>
144
+ </div>
145
+ <!--end::Message-->
146
+ </a>
147
+ <div class="dropdown-divider"></div>
148
+ <a href="#" class="dropdown-item">
149
+ <!--begin::Message-->
150
+ <div class="d-flex">
151
+ <div class="flex-shrink-0">
152
+ <img
153
+ src="../../../dist/assets/img/user3-128x128.jpg"
154
+ alt="User Avatar"
155
+ class="img-size-50 rounded-circle me-3"
156
+ />
157
+ </div>
158
+ <div class="flex-grow-1">
159
+ <h3 class="dropdown-item-title">
160
+ Nora Silvester
161
+ <span class="float-end fs-7 text-warning">
162
+ <i class="bi bi-star-fill"></i>
163
+ </span>
164
+ </h3>
165
+ <p class="fs-7">The subject goes here</p>
166
+ <p class="fs-7 text-secondary">
167
+ <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
168
+ </p>
169
+ </div>
170
+ </div>
171
+ <!--end::Message-->
172
+ </a>
173
+ <div class="dropdown-divider"></div>
174
+ <a href="#" class="dropdown-item dropdown-footer">See All Messages</a>
175
+ </div>
176
+ </li>
177
+ <!--end::Messages Dropdown Menu-->
178
+ <!--begin::Notifications Dropdown Menu-->
179
+ <li class="nav-item dropdown">
180
+ <a class="nav-link" data-bs-toggle="dropdown" href="#">
181
+ <i class="bi bi-bell-fill"></i>
182
+ <span class="navbar-badge badge text-bg-warning">15</span>
183
+ </a>
184
+ <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
185
+ <span class="dropdown-item dropdown-header">15 Notifications</span>
186
+ <div class="dropdown-divider"></div>
187
+ <a href="#" class="dropdown-item">
188
+ <i class="bi bi-envelope me-2"></i> 4 new messages
189
+ <span class="float-end text-secondary fs-7">3 mins</span>
190
+ </a>
191
+ <div class="dropdown-divider"></div>
192
+ <a href="#" class="dropdown-item">
193
+ <i class="bi bi-people-fill me-2"></i> 8 friend requests
194
+ <span class="float-end text-secondary fs-7">12 hours</span>
195
+ </a>
196
+ <div class="dropdown-divider"></div>
197
+ <a href="#" class="dropdown-item">
198
+ <i class="bi bi-file-earmark-fill me-2"></i> 3 new reports
199
+ <span class="float-end text-secondary fs-7">2 days</span>
200
+ </a>
201
+ <div class="dropdown-divider"></div>
202
+ <a href="#" class="dropdown-item dropdown-footer"> See All Notifications </a>
203
+ </div>
204
+ </li>
205
+ <!--end::Notifications Dropdown Menu-->
206
+ <!--begin::Fullscreen Toggle-->
207
+ <li class="nav-item">
208
+ <a class="nav-link" href="#" data-lte-toggle="fullscreen">
209
+ <i data-lte-icon="maximize" class="bi bi-arrows-fullscreen"></i>
210
+ <i data-lte-icon="minimize" class="bi bi-fullscreen-exit" style="display: none"></i>
211
+ </a>
212
+ </li>
213
+ <!--end::Fullscreen Toggle-->
214
+ <!--begin::User Menu Dropdown-->
215
+ <li class="nav-item dropdown user-menu">
216
+ <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
217
+ <img
218
+ src="../../../dist/assets/img/user2-160x160.jpg"
219
+ class="user-image rounded-circle shadow"
220
+ alt="User Image"
221
+ />
222
+ <span class="d-none d-md-inline">Alexander Pierce</span>
223
+ </a>
224
+ <ul class="dropdown-menu dropdown-menu-lg dropdown-menu-end">
225
+ <!--begin::User Image-->
226
+ <li class="user-header text-bg-primary">
227
+ <img
228
+ src="../../../dist/assets/img/user2-160x160.jpg"
229
+ class="rounded-circle shadow"
230
+ alt="User Image"
231
+ />
232
+ <p>
233
+ Alexander Pierce - Web Developer
234
+ <small>Member since Nov. 2023</small>
235
+ </p>
236
+ </li>
237
+ <!--end::User Image-->
238
+ <!--begin::Menu Body-->
239
+ <li class="user-body">
240
+ <!--begin::Row-->
241
+ <div class="row">
242
+ <div class="col-4 text-center"><a href="#">Followers</a></div>
243
+ <div class="col-4 text-center"><a href="#">Sales</a></div>
244
+ <div class="col-4 text-center"><a href="#">Friends</a></div>
245
+ </div>
246
+ <!--end::Row-->
247
+ </li>
248
+ <!--end::Menu Body-->
249
+ <!--begin::Menu Footer-->
250
+ <li class="user-footer">
251
+ <a href="#" class="btn btn-default btn-flat">Profile</a>
252
+ <a href="#" class="btn btn-default btn-flat float-end">Sign out</a>
253
+ </li>
254
+ <!--end::Menu Footer-->
255
+ </ul>
256
+ </li>
257
+ <!--end::User Menu Dropdown-->
258
+ </ul>
259
+ <!--end::End Navbar Links-->
260
+ </div>
261
+ <!--end::Container-->
262
+ </nav>
263
+ <!--end::Header-->
264
+ <!--begin::Sidebar-->
265
+ <aside class="app-sidebar bg-primary shadow" data-bs-theme="dark">
266
+ <!--begin::Sidebar Brand-->
267
+ <div class="sidebar-brand">
268
+ <!--begin::Brand Link-->
269
+ <a href="../index.html" class="brand-link">
270
+ <!--begin::Brand Image-->
271
+ <img
272
+ src="../../../dist/assets/img/AdminLTELogo.png"
273
+ alt="AdminLTE Logo"
274
+ class="brand-image opacity-75 shadow"
275
+ />
276
+ <!--end::Brand Image-->
277
+ <!--begin::Brand Text-->
278
+ <span class="brand-text fw-light">AdminLTE 4</span>
279
+ <!--end::Brand Text-->
280
+ </a>
281
+ <!--end::Brand Link-->
282
+ </div>
283
+ <!--end::Sidebar Brand-->
284
+ <!--begin::Sidebar Wrapper-->
285
+ <div class="sidebar-wrapper">
286
+ <nav class="mt-2">
287
+ <!--begin::Sidebar Menu-->
288
+ <ul
289
+ class="nav sidebar-menu flex-column"
290
+ data-lte-toggle="treeview"
291
+ role="menu"
292
+ data-accordion="false"
293
+ >
294
+ <li class="nav-header">MULTI LEVEL EXAMPLE</li>
295
+ <li class="nav-item">
296
+ <a href="#" class="nav-link">
297
+ <i class="nav-icon bi bi-circle-fill"></i>
298
+ <p>Level 1</p>
299
+ </a>
300
+ </li>
301
+ <li class="nav-item">
302
+ <a href="#" class="nav-link">
303
+ <i class="nav-icon bi bi-circle-fill"></i>
304
+ <p>
305
+ Level 1
306
+ <i class="nav-arrow bi bi-chevron-right"></i>
307
+ </p>
308
+ </a>
309
+ <ul class="nav nav-treeview">
310
+ <li class="nav-item">
311
+ <a href="#" class="nav-link">
312
+ <i class="nav-icon bi bi-circle"></i>
313
+ <p>Level 2</p>
314
+ </a>
315
+ </li>
316
+ <li class="nav-item">
317
+ <a href="#" class="nav-link">
318
+ <i class="nav-icon bi bi-circle"></i>
319
+ <p>
320
+ Level 2
321
+ <i class="nav-arrow bi bi-chevron-right"></i>
322
+ </p>
323
+ </a>
324
+ <ul class="nav nav-treeview">
325
+ <li class="nav-item">
326
+ <a href="#" class="nav-link">
327
+ <i class="nav-icon bi bi-record-circle-fill"></i>
328
+ <p>Level 3</p>
329
+ </a>
330
+ </li>
331
+ <li class="nav-item">
332
+ <a href="#" class="nav-link">
333
+ <i class="nav-icon bi bi-record-circle-fill"></i>
334
+ <p>Level 3</p>
335
+ </a>
336
+ </li>
337
+ <li class="nav-item">
338
+ <a href="#" class="nav-link">
339
+ <i class="nav-icon bi bi-record-circle-fill"></i>
340
+ <p>Level 3</p>
341
+ </a>
342
+ </li>
343
+ </ul>
344
+ </li>
345
+ <li class="nav-item">
346
+ <a href="#" class="nav-link">
347
+ <i class="nav-icon bi bi-circle"></i>
348
+ <p>Level 2</p>
349
+ </a>
350
+ </li>
351
+ </ul>
352
+ </li>
353
+ <li class="nav-item">
354
+ <a href="#" class="nav-link">
355
+ <i class="nav-icon bi bi-circle-fill"></i>
356
+ <p>Level 1</p>
357
+ </a>
358
+ </li>
359
+ </ul>
360
+ <!--end::Sidebar Menu-->
361
+ </nav>
362
+ </div>
363
+ <!--end::Sidebar Wrapper-->
364
+ </aside>
365
+ <!--end::Sidebar-->
366
+ <!--begin::App Main-->
367
+ <main class="app-main">
368
+ <!--begin::App Content Header-->
369
+ <div class="app-content-header">
370
+ <!--begin::Container-->
371
+ <div class="container-fluid">
372
+ <!--begin::Row-->
373
+ <div class="row">
374
+ <!--begin::Col-->
375
+ <div class="col-sm-6"><h3 class="mb-0">Theme Customize</h3></div>
376
+ <!--end::Col-->
377
+ <!--begin::Col-->
378
+ <div class="col-sm-6">
379
+ <ol class="breadcrumb float-sm-end">
380
+ <li class="breadcrumb-item"><a href="#">Home</a></li>
381
+ <li class="breadcrumb-item active" aria-current="page">Theme Customize</li>
382
+ </ol>
383
+ </div>
384
+ <!--end::Col-->
385
+ </div>
386
+ <!--end::Row-->
387
+ </div>
388
+ <!--end::Container-->
389
+ </div>
390
+ <!--end::App Content Header-->
391
+ <!--begin::App Content-->
392
+ <div class="app-content">
393
+ <!--begin::Container-->
394
+ <div class="container-fluid">
395
+ <!--begin::Row-->
396
+ <div class="row">
397
+ <!--begin::Col-->
398
+ <div class="col-12">
399
+ <!--begin::Card-->
400
+ <div class="card">
401
+ <!--begin::Card Header-->
402
+ <div class="card-header">
403
+ <!--begin::Card Title-->
404
+ <h3 class="card-title">Sidebar Theme</h3>
405
+ <!--end::Card Title-->
406
+ <!--begin::Card Toolbar-->
407
+ <div class="card-tools">
408
+ <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
409
+ <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
410
+ <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
411
+ </button>
412
+ <button
413
+ type="button"
414
+ class="btn btn-tool"
415
+ data-lte-toggle="card-remove"
416
+ title="Remove"
417
+ >
418
+ <i class="bi bi-x-lg"></i>
419
+ </button>
420
+ </div>
421
+ <!--end::Card Toolbar-->
422
+ </div>
423
+ <!--end::Card Header-->
424
+ <!--begin::Card Body-->
425
+ <div class="card-body">
426
+ <!--begin::Row-->
427
+ <div class="row">
428
+ <!--begin::Col-->
429
+ <div class="col-md-3">
430
+ <select
431
+ id="sidebar-color-modes"
432
+ class="form-select form-select-lg"
433
+ aria-label="Sidebar Color Mode Select"
434
+ >
435
+ <option value="">---Select---</option>
436
+ <option value="dark">Dark</option>
437
+ <option value="light">Light</option>
438
+ </select>
439
+ </div>
440
+ <!--end::Col-->
441
+ <!--begin::Col-->
442
+ <div class="col-md-3">
443
+ <select
444
+ id="sidebar-color"
445
+ class="form-select form-select-lg"
446
+ aria-label="Sidebar Color Select"
447
+ >
448
+ <option value="">---Select---</option>
449
+ </select>
450
+ </div>
451
+ <!--end::Col-->
452
+ <!--begin::Col-->
453
+ <div class="col-md-6"><div id="sidebar-color-code" class="w-100"></div></div>
454
+ <!--end::Col-->
455
+ </div>
456
+ <!--end::Row-->
457
+ </div>
458
+ <!--end::Card Body-->
459
+ <!--begin::Card Footer-->
460
+ <div class="card-footer">
461
+ Check more color in
462
+ <a
463
+ href="https://getbootstrap.com/docs/5.3/utilities/background/"
464
+ target="_blank"
465
+ class="link-primary"
466
+ >Bootstrap Background Colors</a
467
+ >
468
+ </div>
469
+ <!--end::Card Footer-->
470
+ </div>
471
+ <!--end::Card-->
472
+ <!--begin::Card-->
473
+ <div class="card mt-4">
474
+ <!--begin::Card Header-->
475
+ <div class="card-header">
476
+ <!--begin::Card Title-->
477
+ <h3 class="card-title">Navbar Theme</h3>
478
+ <!--end::Card Title-->
479
+ <!--begin::Card Toolbar-->
480
+ <div class="card-tools">
481
+ <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
482
+ <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
483
+ <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
484
+ </button>
485
+ <button
486
+ type="button"
487
+ class="btn btn-tool"
488
+ data-lte-toggle="card-remove"
489
+ title="Remove"
490
+ >
491
+ <i class="bi bi-x-lg"></i>
492
+ </button>
493
+ </div>
494
+ <!--end::Card Toolbar-->
495
+ </div>
496
+ <!--end::Card Header-->
497
+ <!--begin::Card Body-->
498
+ <div class="card-body">
499
+ <!--begin::Row-->
500
+ <div class="row">
501
+ <!--begin::Col-->
502
+ <div class="col-md-3">
503
+ <select
504
+ id="navbar-color-modes"
505
+ class="form-select form-select-lg"
506
+ aria-label="Navbar Color Mode Select"
507
+ >
508
+ <option value="">---Select---</option>
509
+ <option value="dark">Dark</option>
510
+ <option value="light">Light</option>
511
+ </select>
512
+ </div>
513
+ <!--end::Col-->
514
+ <!--begin::Col-->
515
+ <div class="col-md-3">
516
+ <select
517
+ id="navbar-color"
518
+ class="form-select form-select-lg"
519
+ aria-label="Navbar Color Select"
520
+ >
521
+ <option value="">---Select---</option>
522
+ </select>
523
+ </div>
524
+ <!--end::Col-->
525
+ <!--begin::Col-->
526
+ <div class="col-md-6"><div id="navbar-color-code" class="w-100"></div></div>
527
+ <!--end::Col-->
528
+ </div>
529
+ <!--end::Row-->
530
+ </div>
531
+ <!--end::Card Body-->
532
+ <!--begin::Card Footer-->
533
+ <div class="card-footer">
534
+ Check more color in
535
+ <a
536
+ href="https://getbootstrap.com/docs/5.3/utilities/background/"
537
+ target="_blank"
538
+ class="link-primary"
539
+ >Bootstrap Background Colors</a
540
+ >
541
+ </div>
542
+ <!--end::Card Footer-->
543
+ </div>
544
+ <!--end::Card-->
545
+ <!--begin::Card-->
546
+ <div class="card mt-4">
547
+ <!--begin::Card Header-->
548
+ <div class="card-header">
549
+ <!--begin::Card Title-->
550
+ <h3 class="card-title">Footer Theme</h3>
551
+ <!--end::Card Title-->
552
+ <!--begin::Card Toolbar-->
553
+ <div class="card-tools">
554
+ <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse">
555
+ <i data-lte-icon="expand" class="bi bi-plus-lg"></i>
556
+ <i data-lte-icon="collapse" class="bi bi-dash-lg"></i>
557
+ </button>
558
+ <button
559
+ type="button"
560
+ class="btn btn-tool"
561
+ data-lte-toggle="card-remove"
562
+ title="Remove"
563
+ >
564
+ <i class="bi bi-x-lg"></i>
565
+ </button>
566
+ </div>
567
+ <!--end::Card Toolbar-->
568
+ </div>
569
+ <!--end::Card Header-->
570
+ <!--begin::Card Body-->
571
+ <div class="card-body">
572
+ <!--begin::Row-->
573
+ <div class="row">
574
+ <!--begin::Col-->
575
+ <div class="col-md-3">
576
+ <select
577
+ id="footer-color-modes"
578
+ class="form-select form-select-lg"
579
+ aria-label="Footer Color Mode Select"
580
+ >
581
+ <option value="">---Select---</option>
582
+ <option value="dark">Dark</option>
583
+ <option value="light">Light</option>
584
+ </select>
585
+ </div>
586
+ <!--end::Col-->
587
+ <!--begin::Col-->
588
+ <div class="col-md-3">
589
+ <select
590
+ id="footer-color"
591
+ class="form-select form-select-lg"
592
+ aria-label="Footer Color Select"
593
+ >
594
+ <option value="">---Select---</option>
595
+ </select>
596
+ </div>
597
+ <!--end::Col-->
598
+ <!--begin::Col-->
599
+ <div class="col-md-6"><div id="footer-color-code" class="w-100"></div></div>
600
+ <!--end::Col-->
601
+ </div>
602
+ <!--end::Row-->
603
+ </div>
604
+ <!--end::Card Body-->
605
+ <!--begin::Card Footer-->
606
+ <div class="card-footer">
607
+ Check more color in
608
+ <a
609
+ href="https://getbootstrap.com/docs/5.3/utilities/background/"
610
+ target="_blank"
611
+ class="link-primary"
612
+ >Bootstrap Background Colors</a
613
+ >
614
+ </div>
615
+ <!--end::Card Footer-->
616
+ </div>
617
+ <!--end::Card-->
618
+ </div>
619
+ <!--end::Col-->
620
+ </div>
621
+ <!--end::Row-->
622
+ </div>
623
+ <!--end::Container-->
624
+ </div>
625
+ <!--end::App Content-->
626
+ </main>
627
+ <!--end::App Main-->
628
+ <!--begin::Footer-->
629
+ <footer class="app-footer">
630
+ <!--begin::To the end-->
631
+ <div class="float-end d-none d-sm-inline">Anything you want</div>
632
+ <!--end::To the end-->
633
+ <!--begin::Copyright-->
634
+ <strong>
635
+ Copyright &copy; 2014-2025&nbsp;
636
+ <a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
637
+ </strong>
638
+ All rights reserved.
639
+ <!--end::Copyright-->
640
+ </footer>
641
+ <!--end::Footer-->
642
+ </div>
643
+ <!--end::App Wrapper-->
644
+ <!--begin::Script-->
645
+ <!--begin::Third Party Plugin(OverlayScrollbars)-->
646
+ <script
647
+ src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.10.1/browser/overlayscrollbars.browser.es6.min.js"
648
+ integrity="sha256-dghWARbRe2eLlIJ56wNB+b760ywulqK3DzZYEpsg2fQ="
649
+ crossorigin="anonymous"
650
+ ></script>
651
+ <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
652
+ <script
653
+ src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js"
654
+ integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r"
655
+ crossorigin="anonymous"
656
+ ></script>
657
+ <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
658
+ <script
659
+ src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js"
660
+ integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy"
661
+ crossorigin="anonymous"
662
+ ></script>
663
+ <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
664
+ <script src="../../../dist/js/adminlte.js"></script>
665
+ <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
666
+ <script>
667
+ const SELECTOR_SIDEBAR_WRAPPER = '.sidebar-wrapper';
668
+ const Default = {
669
+ scrollbarTheme: 'os-theme-light',
670
+ scrollbarAutoHide: 'leave',
671
+ scrollbarClickScroll: true,
672
+ };
673
+ document.addEventListener('DOMContentLoaded', function () {
674
+ const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
675
+ if (sidebarWrapper && OverlayScrollbarsGlobal?.OverlayScrollbars !== undefined) {
676
+ OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
677
+ scrollbars: {
678
+ theme: Default.scrollbarTheme,
679
+ autoHide: Default.scrollbarAutoHide,
680
+ clickScroll: Default.scrollbarClickScroll,
681
+ },
682
+ });
683
+ }
684
+ });
685
+ </script>
686
+ <!--end::OverlayScrollbars Configure-->
687
+ <script>
688
+ document.addEventListener('DOMContentLoaded', () => {
689
+ const appSidebar = document.querySelector('.app-sidebar');
690
+ const sidebarColorModes = document.querySelector('#sidebar-color-modes');
691
+ const sidebarColor = document.querySelector('#sidebar-color');
692
+ const sidebarColorCode = document.querySelector('#sidebar-color-code');
3
693
 
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6
- <title>AdminLTE 4 | Theme Customize</title><!--begin::Primary Meta Tags-->
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
- <meta name="title" content="AdminLTE 4 | Theme Customize">
9
- <meta name="author" content="ColorlibHQ">
10
- <meta name="description" content="AdminLTE is a Free Bootstrap 5 Admin Dashboard, 30 example pages using Vanilla JS.">
11
- <meta name="keywords" 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"><!--end::Primary Meta Tags--><!--begin::Fonts-->
12
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/source-sans-3@5.0.12/index.css" integrity="sha256-tXJfXfp6Ewt1ilPzLDtQnJV4hclT9XuaZUKyUvmyr+Q=" crossorigin="anonymous"><!--end::Fonts--><!--begin::Third Party Plugin(OverlayScrollbars)-->
13
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.3.0/styles/overlayscrollbars.min.css" integrity="sha256-dSokZseQNT08wYEWiz5iLI8QPlKxG+TswNRD8k35cpg=" crossorigin="anonymous"><!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Third Party Plugin(Bootstrap Icons)-->
14
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.0/font/bootstrap-icons.min.css" integrity="sha256-Qsx5lrStHZyR9REqhUF8iQt73X06c8LGIUPzpOhwRrI=" crossorigin="anonymous"><!--end::Third Party Plugin(Bootstrap Icons)--><!--begin::Required Plugin(AdminLTE)-->
15
- <link rel="stylesheet" href="../../../dist/css/adminlte.css"><!--end::Required Plugin(AdminLTE)-->
16
- </head> <!--end::Head--> <!--begin::Body-->
694
+ const themeBg = [
695
+ 'bg-primary',
696
+ 'bg-primary-subtle',
697
+ 'bg-secondary',
698
+ 'bg-secondary-subtle',
699
+ 'bg-success',
700
+ 'bg-success-subtle',
701
+ 'bg-danger',
702
+ 'bg-danger-subtle',
703
+ 'bg-warning',
704
+ 'bg-warning-subtle',
705
+ 'bg-info',
706
+ 'bg-info-subtle',
707
+ 'bg-light',
708
+ 'bg-light-subtle',
709
+ 'bg-dark',
710
+ 'bg-dark-subtle',
711
+ 'bg-body-secondary',
712
+ 'bg-body-tertiary',
713
+ 'bg-body',
714
+ 'bg-black',
715
+ 'bg-white',
716
+ 'bg-transparent',
717
+ ];
17
718
 
18
- <body class="sidebar-expand-lg bg-body-tertiary"> <!--begin::App Wrapper-->
19
- <div class="app-wrapper"> <!--begin::Header-->
20
- <nav class="app-header navbar navbar-expand bg-body"> <!--begin::Container-->
21
- <div class="container-fluid"> <!--begin::Start Navbar Links-->
22
- <ul class="navbar-nav">
23
- <li class="nav-item"> <a class="nav-link" data-lte-toggle="sidebar" href="#" role="button"> <i class="bi bi-list"></i> </a> </li>
24
- <li class="nav-item d-none d-md-block"> <a href="#" class="nav-link">Home</a> </li>
25
- <li class="nav-item d-none d-md-block"> <a href="#" class="nav-link">Contact</a> </li>
26
- </ul> <!--end::Start Navbar Links--> <!--begin::End Navbar Links-->
27
- <ul class="navbar-nav ms-auto"> <!--begin::Navbar Search-->
28
- <li class="nav-item"> <a class="nav-link" data-widget="navbar-search" href="#" role="button"> <i class="bi bi-search"></i> </a> </li> <!--end::Navbar Search--> <!--begin::Messages Dropdown Menu-->
29
- <li class="nav-item dropdown"> <a class="nav-link" data-bs-toggle="dropdown" href="#"> <i class="bi bi-chat-text"></i> <span class="navbar-badge badge text-bg-danger">3</span> </a>
30
- <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end"> <a href="#" class="dropdown-item"> <!--begin::Message-->
31
- <div class="d-flex">
32
- <div class="flex-shrink-0"> <img src="../../../dist/assets/img/user1-128x128.jpg" alt="User Avatar" class="img-size-50 rounded-circle me-3"> </div>
33
- <div class="flex-grow-1">
34
- <h3 class="dropdown-item-title">
35
- Brad Diesel
36
- <span class="float-end fs-7 text-danger"><i class="bi bi-star-fill"></i></span>
37
- </h3>
38
- <p class="fs-7">Call me whenever you can...</p>
39
- <p class="fs-7 text-secondary"> <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
40
- </p>
41
- </div>
42
- </div> <!--end::Message-->
43
- </a>
44
- <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <!--begin::Message-->
45
- <div class="d-flex">
46
- <div class="flex-shrink-0"> <img src="../../../dist/assets/img/user8-128x128.jpg" alt="User Avatar" class="img-size-50 rounded-circle me-3"> </div>
47
- <div class="flex-grow-1">
48
- <h3 class="dropdown-item-title">
49
- John Pierce
50
- <span class="float-end fs-7 text-secondary"> <i class="bi bi-star-fill"></i> </span>
51
- </h3>
52
- <p class="fs-7">I got your message bro</p>
53
- <p class="fs-7 text-secondary"> <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
54
- </p>
55
- </div>
56
- </div> <!--end::Message-->
57
- </a>
58
- <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <!--begin::Message-->
59
- <div class="d-flex">
60
- <div class="flex-shrink-0"> <img src="../../../dist/assets/img/user3-128x128.jpg" alt="User Avatar" class="img-size-50 rounded-circle me-3"> </div>
61
- <div class="flex-grow-1">
62
- <h3 class="dropdown-item-title">
63
- Nora Silvester
64
- <span class="float-end fs-7 text-warning"> <i class="bi bi-star-fill"></i> </span>
65
- </h3>
66
- <p class="fs-7">The subject goes here</p>
67
- <p class="fs-7 text-secondary"> <i class="bi bi-clock-fill me-1"></i> 4 Hours Ago
68
- </p>
69
- </div>
70
- </div> <!--end::Message-->
71
- </a>
72
- <div class="dropdown-divider"></div> <a href="#" class="dropdown-item dropdown-footer">See All Messages</a>
73
- </div>
74
- </li> <!--end::Messages Dropdown Menu--> <!--begin::Notifications Dropdown Menu-->
75
- <li class="nav-item dropdown"> <a class="nav-link" data-bs-toggle="dropdown" href="#"> <i class="bi bi-bell-fill"></i> <span class="navbar-badge badge text-bg-warning">15</span> </a>
76
- <div class="dropdown-menu dropdown-menu-lg dropdown-menu-end"> <span class="dropdown-item dropdown-header">15 Notifications</span>
77
- <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="bi bi-envelope me-2"></i> 4 new messages
78
- <span class="float-end text-secondary fs-7">3 mins</span> </a>
79
- <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="bi bi-people-fill me-2"></i> 8 friend requests
80
- <span class="float-end text-secondary fs-7">12 hours</span> </a>
81
- <div class="dropdown-divider"></div> <a href="#" class="dropdown-item"> <i class="bi bi-file-earmark-fill me-2"></i> 3 new reports
82
- <span class="float-end text-secondary fs-7">2 days</span> </a>
83
- <div class="dropdown-divider"></div> <a href="#" class="dropdown-item dropdown-footer">
84
- See All Notifications
85
- </a>
86
- </div>
87
- </li> <!--end::Notifications Dropdown Menu--> <!--begin::Fullscreen Toggle-->
88
- <li class="nav-item"> <a class="nav-link" href="#" data-lte-toggle="fullscreen"> <i data-lte-icon="maximize" class="bi bi-arrows-fullscreen"></i> <i data-lte-icon="minimize" class="bi bi-fullscreen-exit" style="display: none;"></i> </a> </li> <!--end::Fullscreen Toggle--> <!--begin::User Menu Dropdown-->
89
- <li class="nav-item dropdown user-menu"> <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"> <img src="../../../dist/assets/img/user2-160x160.jpg" class="user-image rounded-circle shadow" alt="User Image"> <span class="d-none d-md-inline">Alexander Pierce</span> </a>
90
- <ul class="dropdown-menu dropdown-menu-lg dropdown-menu-end"> <!--begin::User Image-->
91
- <li class="user-header text-bg-primary"> <img src="../../../dist/assets/img/user2-160x160.jpg" class="rounded-circle shadow" alt="User Image">
92
- <p>
93
- Alexander Pierce - Web Developer
94
- <small>Member since Nov. 2023</small>
95
- </p>
96
- </li> <!--end::User Image--> <!--begin::Menu Body-->
97
- <li class="user-body"> <!--begin::Row-->
98
- <div class="row">
99
- <div class="col-4 text-center"> <a href="#">Followers</a> </div>
100
- <div class="col-4 text-center"> <a href="#">Sales</a> </div>
101
- <div class="col-4 text-center"> <a href="#">Friends</a> </div>
102
- </div> <!--end::Row-->
103
- </li> <!--end::Menu Body--> <!--begin::Menu Footer-->
104
- <li class="user-footer"> <a href="#" class="btn btn-default btn-flat">Profile</a> <a href="#" class="btn btn-default btn-flat float-end">Sign out</a> </li> <!--end::Menu Footer-->
105
- </ul>
106
- </li> <!--end::User Menu Dropdown-->
107
- </ul> <!--end::End Navbar Links-->
108
- </div> <!--end::Container-->
109
- </nav> <!--end::Header--> <!--begin::Sidebar-->
110
- <aside class="app-sidebar bg-primary shadow" data-bs-theme="dark"> <!--begin::Sidebar Brand-->
111
- <div class="sidebar-brand"> <!--begin::Brand Link--> <a href="../index.html" class="brand-link"> <!--begin::Brand Image--> <img src="../../../dist/assets/img/AdminLTELogo.png" alt="AdminLTE Logo" class="brand-image opacity-75 shadow"> <!--end::Brand Image--> <!--begin::Brand Text--> <span class="brand-text fw-light">AdminLTE 4</span> <!--end::Brand Text--> </a> <!--end::Brand Link--> </div> <!--end::Sidebar Brand--> <!--begin::Sidebar Wrapper-->
112
- <div class="sidebar-wrapper">
113
- <nav class="mt-2"> <!--begin::Sidebar Menu-->
114
- <ul class="nav sidebar-menu flex-column" data-lte-toggle="treeview" role="menu" data-accordion="false">
115
- <li class="nav-header">MULTI LEVEL EXAMPLE</li>
116
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-circle-fill"></i>
117
- <p>Level 1</p>
118
- </a> </li>
119
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-circle-fill"></i>
120
- <p>
121
- Level 1
122
- <i class="nav-arrow bi bi-chevron-right"></i>
123
- </p>
124
- </a>
125
- <ul class="nav nav-treeview">
126
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-circle"></i>
127
- <p>Level 2</p>
128
- </a> </li>
129
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-circle"></i>
130
- <p>
131
- Level 2
132
- <i class="nav-arrow bi bi-chevron-right"></i>
133
- </p>
134
- </a>
135
- <ul class="nav nav-treeview">
136
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-record-circle-fill"></i>
137
- <p>Level 3</p>
138
- </a> </li>
139
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-record-circle-fill"></i>
140
- <p>Level 3</p>
141
- </a> </li>
142
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-record-circle-fill"></i>
143
- <p>Level 3</p>
144
- </a> </li>
145
- </ul>
146
- </li>
147
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-circle"></i>
148
- <p>Level 2</p>
149
- </a> </li>
150
- </ul>
151
- </li>
152
- <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon bi bi-circle-fill"></i>
153
- <p>Level 1</p>
154
- </a> </li>
155
- </ul> <!--end::Sidebar Menu-->
156
- </nav>
157
- </div> <!--end::Sidebar Wrapper-->
158
- </aside> <!--end::Sidebar--> <!--begin::App Main-->
159
- <main class="app-main"> <!--begin::App Content Header-->
160
- <div class="app-content-header"> <!--begin::Container-->
161
- <div class="container-fluid"> <!--begin::Row-->
162
- <div class="row"> <!--begin::Col-->
163
- <div class="col-sm-6">
164
- <h3 class="mb-0">Theme Customize</h3>
165
- </div> <!--end::Col--> <!--begin::Col-->
166
- <div class="col-sm-6">
167
- <ol class="breadcrumb float-sm-end">
168
- <li class="breadcrumb-item"><a href="#">Home</a></li>
169
- <li class="breadcrumb-item active" aria-current="page">
170
- Theme Customize
171
- </li>
172
- </ol>
173
- </div> <!--end::Col-->
174
- </div> <!--end::Row-->
175
- </div> <!--end::Container-->
176
- </div> <!--end::App Content Header--> <!--begin::App Content-->
177
- <div class="app-content"> <!--begin::Container-->
178
- <div class="container-fluid"> <!--begin::Row-->
179
- <div class="row"> <!--begin::Col-->
180
- <div class="col-12"> <!--begin::Card-->
181
- <div class="card"> <!--begin::Card Header-->
182
- <div class="card-header"> <!--begin::Card Title-->
183
- <h3 class="card-title">Sidebar Theme</h3> <!--end::Card Title--> <!--begin::Card Toolbar-->
184
- <div class="card-tools"> <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse"> <i data-lte-icon="expand" class="bi bi-plus-lg"></i> <i data-lte-icon="collapse" class="bi bi-dash-lg"></i> </button> <button type="button" class="btn btn-tool" data-lte-toggle="card-remove" title="Remove"> <i class="bi bi-x-lg"></i> </button> </div> <!--end::Card Toolbar-->
185
- </div> <!--end::Card Header--> <!--begin::Card Body-->
186
- <div class="card-body"> <!--begin::Row-->
187
- <div class="row"> <!--begin::Col-->
188
- <div class="col-md-3"> <select id="sidebar-color-modes" class="form-select form-select-lg" aria-label="Sidebar Color Mode Select">
189
- <option value="">---Select---</option>
190
- <option value="dark">Dark</option>
191
- <option value="light">Light</option>
192
- </select> </div> <!--end::Col--> <!--begin::Col-->
193
- <div class="col-md-3"> <select id="sidebar-color" class="form-select form-select-lg" aria-label="Sidebar Color Select">
194
- <option value="">---Select---</option>
195
- </select> </div> <!--end::Col--> <!--begin::Col-->
196
- <div class="col-md-6">
197
- <div id="sidebar-color-code" class="w-100"></div>
198
- </div> <!--end::Col-->
199
- </div> <!--end::Row-->
200
- </div> <!--end::Card Body--> <!--begin::Card Footer-->
201
- <div class="card-footer">
202
- Check more color in
203
- <a href="https://getbootstrap.com/docs/5.3/utilities/background/" target="_blank" class="link-primary">Bootstrap Background Colors</a>
204
- </div> <!--end::Card Footer-->
205
- </div> <!--end::Card--> <!--begin::Card-->
206
- <div class="card mt-4"> <!--begin::Card Header-->
207
- <div class="card-header"> <!--begin::Card Title-->
208
- <h3 class="card-title">Navbar Theme</h3> <!--end::Card Title--> <!--begin::Card Toolbar-->
209
- <div class="card-tools"> <button type="button" class="btn btn-tool" data-lte-toggle="card-collapse"> <i data-lte-icon="expand" class="bi bi-plus-lg"></i> <i data-lte-icon="collapse" class="bi bi-dash-lg"></i> </button> <button type="button" class="btn btn-tool" data-lte-toggle="card-remove" title="Remove"> <i class="bi bi-x-lg"></i> </button> </div> <!--end::Card Toolbar-->
210
- </div> <!--end::Card Header--> <!--begin::Card Body-->
211
- <div class="card-body"> <!--begin::Row-->
212
- <div class="row"> <!--begin::Col-->
213
- <div class="col-md-3"> <select id="navbar-color-modes" class="form-select form-select-lg" aria-label="Navbar Color Mode Select">
214
- <option value="">---Select---</option>
215
- <option value="dark">Dark</option>
216
- <option value="light">Light</option>
217
- </select> </div> <!--end::Col--> <!--begin::Col-->
218
- <div class="col-md-3"> <select id="navbar-color" class="form-select form-select-lg" aria-label="Navbar Color Select">
219
- <option value="">---Select---</option>
220
- </select> </div> <!--end::Col--> <!--begin::Col-->
221
- <div class="col-md-6">
222
- <div id="navbar-color-code" class="w-100"></div>
223
- </div> <!--end::Col-->
224
- </div> <!--end::Row-->
225
- </div> <!--end::Card Body--> <!--begin::Card Footer-->
226
- <div class="card-footer">
227
- Check more color in
228
- <a href="https://getbootstrap.com/docs/5.3/utilities/background/" target="_blank" class="link-primary">Bootstrap Background Colors</a>
229
- </div> <!--end::Card Footer-->
230
- </div> <!--end::Card-->
231
- </div> <!--end::Col-->
232
- </div> <!--end::Row-->
233
- </div> <!--end::Container-->
234
- </div> <!--end::App Content-->
235
- </main> <!--end::App Main--> <!--begin::Footer-->
236
- <footer class="app-footer"> <!--begin::To the end-->
237
- <div class="float-end d-none d-sm-inline">Anything you want</div> <!--end::To the end--> <!--begin::Copyright--> <strong>
238
- Copyright &copy; 2014-2024&nbsp;
239
- <a href="https://adminlte.io" class="text-decoration-none">AdminLTE.io</a>.
240
- </strong>
241
- All rights reserved.
242
- <!--end::Copyright-->
243
- </footer> <!--end::Footer-->
244
- </div> <!--end::App Wrapper--> <!--begin::Script--> <!--begin::Third Party Plugin(OverlayScrollbars)-->
245
- <script src="https://cdn.jsdelivr.net/npm/overlayscrollbars@2.3.0/browser/overlayscrollbars.browser.es6.min.js" integrity="sha256-H2VM7BKda+v2Z4+DRy69uknwxjyDRhszjXFhsL4gD3w=" crossorigin="anonymous"></script> <!--end::Third Party Plugin(OverlayScrollbars)--><!--begin::Required Plugin(popperjs for Bootstrap 5)-->
246
- <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha256-whL0tQWoY1Ku1iskqPFvmZ+CHsvmRWx/PIoEvIeWh4I=" crossorigin="anonymous"></script> <!--end::Required Plugin(popperjs for Bootstrap 5)--><!--begin::Required Plugin(Bootstrap 5)-->
247
- <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.min.js" integrity="sha256-YMa+wAM6QkVyz999odX7lPRxkoYAan8suedu4k2Zur8=" crossorigin="anonymous"></script> <!--end::Required Plugin(Bootstrap 5)--><!--begin::Required Plugin(AdminLTE)-->
248
- <script src="../../../dist/js/adminlte.js"></script> <!--end::Required Plugin(AdminLTE)--><!--begin::OverlayScrollbars Configure-->
249
- <script>
250
- const SELECTOR_SIDEBAR_WRAPPER = ".sidebar-wrapper";
251
- const Default = {
252
- scrollbarTheme: "os-theme-light",
253
- scrollbarAutoHide: "leave",
254
- scrollbarClickScroll: true,
255
- };
256
- document.addEventListener("DOMContentLoaded", function() {
257
- const sidebarWrapper = document.querySelector(SELECTOR_SIDEBAR_WRAPPER);
258
- if (
259
- sidebarWrapper &&
260
- typeof OverlayScrollbarsGlobal?.OverlayScrollbars !== "undefined"
261
- ) {
262
- OverlayScrollbarsGlobal.OverlayScrollbars(sidebarWrapper, {
263
- scrollbars: {
264
- theme: Default.scrollbarTheme,
265
- autoHide: Default.scrollbarAutoHide,
266
- clickScroll: Default.scrollbarClickScroll,
267
- },
268
- });
269
- }
719
+ // loop through each option themeBg array
720
+ document.querySelector('#sidebar-color').innerHTML = themeBg.map((bg) => {
721
+ // return option element with value and text
722
+ return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
270
723
  });
271
- </script> <!--end::OverlayScrollbars Configure-->
272
- <script>
273
- document.addEventListener("DOMContentLoaded", () => {
274
- const appSidebar = document.querySelector(".app-sidebar");
275
- const sidebarColorModes = document.querySelector(
276
- "#sidebar-color-modes",
277
- );
278
- const sidebarColor = document.querySelector("#sidebar-color");
279
- const sidebarColorCode = document.querySelector("#sidebar-color-code");
280
724
 
281
- const themeBg = [
282
- "bg-primary",
283
- "bg-primary-subtle",
284
- "bg-secondary",
285
- "bg-secondary-subtle",
286
- "bg-success",
287
- "bg-success-subtle",
288
- "bg-danger",
289
- "bg-danger-subtle",
290
- "bg-warning",
291
- "bg-warning-subtle",
292
- "bg-info",
293
- "bg-info-subtle",
294
- "bg-light",
295
- "bg-light-subtle",
296
- "bg-dark",
297
- "bg-dark-subtle",
298
- "bg-body-secondary",
299
- "bg-body-tertiary",
300
- "bg-body",
301
- "bg-black",
302
- "bg-white",
303
- "bg-transparent",
304
- ];
725
+ let sidebarColorMode = '';
726
+ let sidebarBg = '';
305
727
 
306
- // loop through each option themeBg array
307
- document.querySelector("#sidebar-color").innerHTML = themeBg.map(
308
- (bg) => {
309
- // return option element with value and text
310
- return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
311
- },
312
- );
728
+ function updateSidebar() {
729
+ appSidebar.setAttribute('data-bs-theme', sidebarColorMode);
313
730
 
314
- let sidebarColorMode = "";
315
- let sidebarBg = "";
731
+ sidebarColorCode.innerHTML = `<pre><code class="language-html">&lt;aside class="app-sidebar ${sidebarBg}" data-bs-theme="${sidebarColorMode}"&gt;...&lt;/aside&gt;</code></pre>`;
732
+ }
316
733
 
317
- function updateSidebar() {
318
- appSidebar.setAttribute("data-bs-theme", sidebarColorMode);
734
+ sidebarColorModes.addEventListener('input', (event) => {
735
+ sidebarColorMode = event.target.value;
736
+ updateSidebar();
737
+ });
319
738
 
320
- sidebarColorCode.innerHTML = `<pre><code class="language-html">&lt;aside class="app-sidebar ${sidebarBg}" data-bs-theme="${sidebarColorMode}"&gt;...&lt;/aside&gt;</code></pre>`;
321
- }
739
+ sidebarColor.addEventListener('input', (event) => {
740
+ sidebarBg = event.target.value;
322
741
 
323
- sidebarColorModes.addEventListener("input", (event) => {
324
- sidebarColorMode = event.target.value;
325
- updateSidebar();
326
- });
742
+ themeBg.forEach((className) => {
743
+ appSidebar.classList.remove(className);
744
+ });
327
745
 
328
- sidebarColor.addEventListener("input", (event) => {
329
- sidebarBg = event.target.value;
746
+ if (themeBg.includes(sidebarBg)) {
747
+ appSidebar.classList.add(sidebarBg);
748
+ }
330
749
 
331
- themeBg.forEach((className) => {
332
- appSidebar.classList.remove(className);
333
- });
750
+ updateSidebar();
751
+ });
752
+ });
753
+
754
+ document.addEventListener('DOMContentLoaded', () => {
755
+ const appNavbar = document.querySelector('.app-header');
756
+ const navbarColorModes = document.querySelector('#navbar-color-modes');
757
+ const navbarColor = document.querySelector('#navbar-color');
758
+ const navbarColorCode = document.querySelector('#navbar-color-code');
334
759
 
335
- if (themeBg.includes(sidebarBg)) {
336
- appSidebar.classList.add(sidebarBg);
337
- }
760
+ const themeBg = [
761
+ 'bg-primary',
762
+ 'bg-primary-subtle',
763
+ 'bg-secondary',
764
+ 'bg-secondary-subtle',
765
+ 'bg-success',
766
+ 'bg-success-subtle',
767
+ 'bg-danger',
768
+ 'bg-danger-subtle',
769
+ 'bg-warning',
770
+ 'bg-warning-subtle',
771
+ 'bg-info',
772
+ 'bg-info-subtle',
773
+ 'bg-light',
774
+ 'bg-light-subtle',
775
+ 'bg-dark',
776
+ 'bg-dark-subtle',
777
+ 'bg-body-secondary',
778
+ 'bg-body-tertiary',
779
+ 'bg-body',
780
+ 'bg-black',
781
+ 'bg-white',
782
+ 'bg-transparent',
783
+ ];
338
784
 
339
- updateSidebar();
340
- });
785
+ // loop through each option themeBg array
786
+ document.querySelector('#navbar-color').innerHTML = themeBg.map((bg) => {
787
+ // return option element with value and text
788
+ return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
341
789
  });
342
790
 
343
- document.addEventListener("DOMContentLoaded", () => {
344
- const appNavbar = document.querySelector(".app-header");
345
- const navbarColorModes = document.querySelector("#navbar-color-modes");
346
- const navbarColor = document.querySelector("#navbar-color");
347
- const navbarColorCode = document.querySelector("#navbar-color-code");
791
+ let navbarColorMode = '';
792
+ let navbarBg = '';
348
793
 
349
- const themeBg = [
350
- "bg-primary",
351
- "bg-primary-subtle",
352
- "bg-secondary",
353
- "bg-secondary-subtle",
354
- "bg-success",
355
- "bg-success-subtle",
356
- "bg-danger",
357
- "bg-danger-subtle",
358
- "bg-warning",
359
- "bg-warning-subtle",
360
- "bg-info",
361
- "bg-info-subtle",
362
- "bg-light",
363
- "bg-light-subtle",
364
- "bg-dark",
365
- "bg-dark-subtle",
366
- "bg-body-secondary",
367
- "bg-body-tertiary",
368
- "bg-body",
369
- "bg-black",
370
- "bg-white",
371
- "bg-transparent",
372
- ];
794
+ function updateNavbar() {
795
+ appNavbar.setAttribute('data-bs-theme', navbarColorMode);
796
+ 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>`;
797
+ }
373
798
 
374
- // loop through each option themeBg array
375
- document.querySelector("#navbar-color").innerHTML = themeBg.map(
376
- (bg) => {
377
- // return option element with value and text
378
- return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
379
- },
380
- );
799
+ navbarColorModes.addEventListener('input', (event) => {
800
+ navbarColorMode = event.target.value;
801
+ updateNavbar();
802
+ });
381
803
 
382
- let navbarColorMode = "";
383
- let navbarBg = "";
804
+ navbarColor.addEventListener('input', (event) => {
805
+ navbarBg = event.target.value;
384
806
 
385
- function updateNavbar() {
386
- appNavbar.setAttribute("data-bs-theme", navbarColorMode);
387
- 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>`;
388
- }
807
+ themeBg.forEach((className) => {
808
+ appNavbar.classList.remove(className);
809
+ });
389
810
 
390
- navbarColorModes.addEventListener("input", (event) => {
391
- navbarColorMode = event.target.value;
392
- updateNavbar();
393
- });
811
+ if (themeBg.includes(navbarBg)) {
812
+ appNavbar.classList.add(navbarBg);
813
+ }
394
814
 
395
- navbarColor.addEventListener("input", (event) => {
396
- navbarBg = event.target.value;
815
+ updateNavbar();
816
+ });
817
+ });
397
818
 
398
- themeBg.forEach((className) => {
399
- appNavbar.classList.remove(className);
400
- });
819
+ document.addEventListener('DOMContentLoaded', () => {
820
+ const appFooter = document.querySelector('.app-footer');
821
+ const footerColorModes = document.querySelector('#footer-color-modes');
822
+ const footerColor = document.querySelector('#footer-color');
823
+ const footerColorCode = document.querySelector('#footer-color-code');
401
824
 
402
- if (themeBg.includes(navbarBg)) {
403
- appNavbar.classList.add(navbarBg);
404
- }
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
+ ];
405
849
 
406
- updateNavbar();
407
- });
850
+ // loop through each option themeBg array
851
+ document.querySelector('#footer-color').innerHTML = themeBg.map((bg) => {
852
+ // return option element with value and text
853
+ return `<option value="${bg}" class="text-${bg}">${bg}</option>`;
408
854
  });
409
- </script> <!--end::Script-->
410
- </body><!--end::Body-->
411
855
 
412
- </html>
856
+ let footerColorMode = '';
857
+ let footerBg = '';
858
+
859
+ function updateFooter() {
860
+ appFooter.setAttribute('data-bs-theme', footerColorMode);
861
+ footerColorCode.innerHTML = `<pre><code class="language-html">&lt;footer class="app-footer ${footerBg}" data-bs-theme="${footerColorMode}"&gt;...&lt;/footer&gt;</code></pre>`;
862
+ }
863
+
864
+ footerColorModes.addEventListener('input', (event) => {
865
+ footerColorMode = event.target.value;
866
+ updateFooter();
867
+ });
868
+
869
+ footerColor.addEventListener('input', (event) => {
870
+ footerBg = event.target.value;
871
+
872
+ themeBg.forEach((className) => {
873
+ appFooter.classList.remove(className);
874
+ });
875
+
876
+ if (themeBg.includes(footerBg)) {
877
+ appFooter.classList.add(footerBg);
878
+ }
879
+
880
+ updateFooter();
881
+ });
882
+ });
883
+ </script>
884
+ <!--end::Script-->
885
+ </body>
886
+ <!--end::Body-->
887
+ </html>