admin-lte 4.7.0 → 4.8.0

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 (55) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/css/adminlte-colors-v3.css +164 -9
  3. package/dist/css/adminlte-colors-v3.css.map +1 -1
  4. package/dist/css/adminlte-colors-v3.min.css +2 -2
  5. package/dist/css/adminlte-colors-v3.min.css.map +1 -1
  6. package/dist/css/adminlte-colors-v3.rtl.css +164 -9
  7. package/dist/css/adminlte-colors-v3.rtl.css.map +1 -1
  8. package/dist/css/adminlte-colors-v3.rtl.min.css +2 -2
  9. package/dist/css/adminlte-colors-v3.rtl.min.css.map +1 -1
  10. package/dist/css/adminlte-colors.css +1 -1
  11. package/dist/css/adminlte-colors.css.map +1 -1
  12. package/dist/css/adminlte-colors.min.css +1 -1
  13. package/dist/css/adminlte-colors.min.css.map +1 -1
  14. package/dist/css/adminlte-colors.rtl.css +1 -1
  15. package/dist/css/adminlte-colors.rtl.css.map +1 -1
  16. package/dist/css/adminlte-colors.rtl.min.css +1 -1
  17. package/dist/css/adminlte-colors.rtl.min.css.map +1 -1
  18. package/dist/css/adminlte-docs.css +1 -1
  19. package/dist/css/adminlte-docs.css.map +1 -1
  20. package/dist/css/adminlte-docs.min.css +1 -1
  21. package/dist/css/adminlte-docs.min.css.map +1 -1
  22. package/dist/css/adminlte-docs.rtl.css +1 -1
  23. package/dist/css/adminlte-docs.rtl.css.map +1 -1
  24. package/dist/css/adminlte-docs.rtl.min.css +1 -1
  25. package/dist/css/adminlte-docs.rtl.min.css.map +1 -1
  26. package/dist/css/adminlte-select2.css +1 -1
  27. package/dist/css/adminlte-select2.css.map +1 -1
  28. package/dist/css/adminlte-select2.min.css +1 -1
  29. package/dist/css/adminlte-select2.min.css.map +1 -1
  30. package/dist/css/adminlte-select2.rtl.css +1 -1
  31. package/dist/css/adminlte-select2.rtl.css.map +1 -1
  32. package/dist/css/adminlte-select2.rtl.min.css +1 -1
  33. package/dist/css/adminlte-select2.rtl.min.css.map +1 -1
  34. package/dist/css/adminlte.css +1 -1
  35. package/dist/css/adminlte.css.map +1 -1
  36. package/dist/css/adminlte.min.css +1 -1
  37. package/dist/css/adminlte.min.css.map +1 -1
  38. package/dist/css/adminlte.rtl.css +1 -1
  39. package/dist/css/adminlte.rtl.css.map +1 -1
  40. package/dist/css/adminlte.rtl.min.css +1 -1
  41. package/dist/css/adminlte.rtl.min.css.map +1 -1
  42. package/dist/js/adminlte.esm.js +1 -1
  43. package/dist/js/adminlte.esm.min.js +1 -1
  44. package/dist/js/adminlte.js +1 -1
  45. package/dist/js/adminlte.min.js +1 -1
  46. package/package.json +1 -1
  47. package/src/scss/adminlte-colors-v3.scss +1 -1
  48. package/src/scss/adminlte-colors.scss +1 -1
  49. package/src/scss/adminlte-docs.scss +1 -1
  50. package/src/scss/adminlte-select2.scss +1 -1
  51. package/src/scss/adminlte.scss +1 -1
  52. package/src/scss/colors/_colors.scss +34 -0
  53. package/src/scss/colors/_primary.scss +28 -8
  54. package/src/scss/colors/_variables.scss +18 -0
  55. package/src/ts/adminlte.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to AdminLTE will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [4.8.0] - 2026-08-19
9
+
10
+ ### Added
11
+
12
+ - **`data-lte-contrast="aa"` — WCAG AA text on the AdminLTE 3 palette, without changing a single colour.** The v3 sheet reproduces v3's YIQ text rule faithfully, and that rule assigns white text to eight colours that do not reach 4.5:1 for normal text: `teal` (2.13:1), `cyan` (3.04), `green` (3.13), `olive` (3.51), `lightblue` (3.67), `fuchsia` (3.79), `pink` (3.82) and `blue` (3.98). The attribute — on `<html>`, `<body>` or any container — flips exactly those eight to the ink that passes (5.28:1 to 9.86:1), leaving every background byte-identical, and covers everywhere the palette paints text on its own colour: `.text-bg-*`, `.bg-gradient-*`, `.card-*` headers, `.direct-chat-*` and the button, badge and pill text `data-lte-primary` produces. It has to be true black: AdminLTE 3's own dark ink `#1f2d3d` clears 4.5:1 on only two of the eight, so the colours that already carry dark text (`lime`, `orange`, `yellow`) keep `#1f2d3d` and are left alone. Rules are emitted per colour only where the palette's own rule falls short, so the designed palette — every colour AA with white by construction — emits nothing and the switch costs it nothing. **UI → Colors** and **Theme Customize** gained a toggle that also re-pairs a flipped sidebar or header with `data-bs-theme="light"` so its nav links follow (#6110, reported by @johnnyq).
13
+
14
+ ### Fixed
15
+
16
+ - **`data-lte-primary` gave Bootstrap's `info` white text on the v3 sheet.** The primary presets applied the active sheet's contrast rule to Bootstrap's own theme colours too, and v3's YIQ test puts `#0dcaf0` at 149.8 against a threshold of 150 — one tenth of a point from dark text — so `data-lte-primary="info"` produced white on cyan at 1.96:1 while `.btn-info` on the same page stayed black. Bootstrap's theme colours now keep Bootstrap's own contrast rule; the palette colours keep the sheet's.
17
+
8
18
  ## [4.7.0] - 2026-08-18
9
19
 
10
20
  ### Added
@@ -1,6 +1,6 @@
1
1
  @charset "UTF-8";
2
2
  /*!
3
- * AdminLTE v4.7.0 — AdminLTE 3 color palette (legacy)
3
+ * AdminLTE v4.8.0 — AdminLTE 3 color palette (legacy)
4
4
  * Opt-in. The extended colours exactly as AdminLTE 3 shipped them — same
5
5
  * names, same values, same text-colour rule (Bootstrap 4's YIQ brightness
6
6
  * test, so lightblue, olive and teal take white text as they did) — with
@@ -1531,6 +1531,111 @@
1531
1531
  background-color: #2c3136 !important;
1532
1532
  }
1533
1533
 
1534
+ [data-lte-contrast=aa] .text-bg-lightblue,
1535
+ [data-lte-contrast=aa] .bg-gradient-lightblue {
1536
+ color: #000 !important;
1537
+ }
1538
+ [data-lte-contrast=aa] .card-lightblue,
1539
+ [data-lte-contrast=aa] .bg-lightblue,
1540
+ [data-lte-contrast=aa] .text-bg-lightblue {
1541
+ --lte-card-variant-color: #000;
1542
+ --lte-card-variant-color-rgb: 0, 0, 0;
1543
+ }
1544
+ [data-lte-contrast=aa] .direct-chat-lightblue {
1545
+ --lte-direct-chat-color: #000;
1546
+ }
1547
+ [data-lte-contrast=aa] .text-bg-olive,
1548
+ [data-lte-contrast=aa] .bg-gradient-olive {
1549
+ color: #000 !important;
1550
+ }
1551
+ [data-lte-contrast=aa] .card-olive,
1552
+ [data-lte-contrast=aa] .bg-olive,
1553
+ [data-lte-contrast=aa] .text-bg-olive {
1554
+ --lte-card-variant-color: #000;
1555
+ --lte-card-variant-color-rgb: 0, 0, 0;
1556
+ }
1557
+ [data-lte-contrast=aa] .direct-chat-olive {
1558
+ --lte-direct-chat-color: #000;
1559
+ }
1560
+ [data-lte-contrast=aa] .text-bg-fuchsia,
1561
+ [data-lte-contrast=aa] .bg-gradient-fuchsia {
1562
+ color: #000 !important;
1563
+ }
1564
+ [data-lte-contrast=aa] .card-fuchsia,
1565
+ [data-lte-contrast=aa] .bg-fuchsia,
1566
+ [data-lte-contrast=aa] .text-bg-fuchsia {
1567
+ --lte-card-variant-color: #000;
1568
+ --lte-card-variant-color-rgb: 0, 0, 0;
1569
+ }
1570
+ [data-lte-contrast=aa] .direct-chat-fuchsia {
1571
+ --lte-direct-chat-color: #000;
1572
+ }
1573
+ [data-lte-contrast=aa] .text-bg-blue,
1574
+ [data-lte-contrast=aa] .bg-gradient-blue {
1575
+ color: #000 !important;
1576
+ }
1577
+ [data-lte-contrast=aa] .card-blue,
1578
+ [data-lte-contrast=aa] .bg-blue,
1579
+ [data-lte-contrast=aa] .text-bg-blue {
1580
+ --lte-card-variant-color: #000;
1581
+ --lte-card-variant-color-rgb: 0, 0, 0;
1582
+ }
1583
+ [data-lte-contrast=aa] .direct-chat-blue {
1584
+ --lte-direct-chat-color: #000;
1585
+ }
1586
+ [data-lte-contrast=aa] .text-bg-pink,
1587
+ [data-lte-contrast=aa] .bg-gradient-pink {
1588
+ color: #000 !important;
1589
+ }
1590
+ [data-lte-contrast=aa] .card-pink,
1591
+ [data-lte-contrast=aa] .bg-pink,
1592
+ [data-lte-contrast=aa] .text-bg-pink {
1593
+ --lte-card-variant-color: #000;
1594
+ --lte-card-variant-color-rgb: 0, 0, 0;
1595
+ }
1596
+ [data-lte-contrast=aa] .direct-chat-pink {
1597
+ --lte-direct-chat-color: #000;
1598
+ }
1599
+ [data-lte-contrast=aa] .text-bg-green,
1600
+ [data-lte-contrast=aa] .bg-gradient-green {
1601
+ color: #000 !important;
1602
+ }
1603
+ [data-lte-contrast=aa] .card-green,
1604
+ [data-lte-contrast=aa] .bg-green,
1605
+ [data-lte-contrast=aa] .text-bg-green {
1606
+ --lte-card-variant-color: #000;
1607
+ --lte-card-variant-color-rgb: 0, 0, 0;
1608
+ }
1609
+ [data-lte-contrast=aa] .direct-chat-green {
1610
+ --lte-direct-chat-color: #000;
1611
+ }
1612
+ [data-lte-contrast=aa] .text-bg-teal,
1613
+ [data-lte-contrast=aa] .bg-gradient-teal {
1614
+ color: #000 !important;
1615
+ }
1616
+ [data-lte-contrast=aa] .card-teal,
1617
+ [data-lte-contrast=aa] .bg-teal,
1618
+ [data-lte-contrast=aa] .text-bg-teal {
1619
+ --lte-card-variant-color: #000;
1620
+ --lte-card-variant-color-rgb: 0, 0, 0;
1621
+ }
1622
+ [data-lte-contrast=aa] .direct-chat-teal {
1623
+ --lte-direct-chat-color: #000;
1624
+ }
1625
+ [data-lte-contrast=aa] .text-bg-cyan,
1626
+ [data-lte-contrast=aa] .bg-gradient-cyan {
1627
+ color: #000 !important;
1628
+ }
1629
+ [data-lte-contrast=aa] .card-cyan,
1630
+ [data-lte-contrast=aa] .bg-cyan,
1631
+ [data-lte-contrast=aa] .text-bg-cyan {
1632
+ --lte-card-variant-color: #000;
1633
+ --lte-card-variant-color-rgb: 0, 0, 0;
1634
+ }
1635
+ [data-lte-contrast=aa] .direct-chat-cyan {
1636
+ --lte-direct-chat-color: #000;
1637
+ }
1638
+
1534
1639
  .bg-opacity-10 {
1535
1640
  --bs-bg-opacity: 0.1;
1536
1641
  }
@@ -1647,10 +1752,12 @@
1647
1752
  --bs-link-color-rgb: var(--bs-info-rgb);
1648
1753
  --bs-link-hover-color: #0aa2c0;
1649
1754
  --bs-link-hover-color-rgb: 10, 162, 192;
1650
- --lte-primary-hover: #0baccc;
1651
- --lte-primary-hover-border: #0aa2c0;
1652
- --lte-primary-active: #0aa2c0;
1653
- --lte-primary-active-border: #0a98b4;
1755
+ --lte-primary-hover: #31d2f2;
1756
+ --lte-primary-hover-border: #25cff2;
1757
+ --lte-primary-active: #3dd5f3;
1758
+ --lte-primary-active-border: #25cff2;
1759
+ --lte-primary-color: #000;
1760
+ --lte-primary-color-rgb: 0, 0, 0;
1654
1761
  }
1655
1762
 
1656
1763
  [data-lte-primary=warning] {
@@ -1667,8 +1774,8 @@
1667
1774
  --lte-primary-hover-border: #ffc720;
1668
1775
  --lte-primary-active: #ffcd39;
1669
1776
  --lte-primary-active-border: #ffc720;
1670
- --lte-primary-color: #1f2d3d;
1671
- --lte-primary-color-rgb: 31, 45, 61;
1777
+ --lte-primary-color: #000;
1778
+ --lte-primary-color-rgb: 0, 0, 0;
1672
1779
  }
1673
1780
 
1674
1781
  [data-lte-primary=danger] {
@@ -1701,8 +1808,8 @@
1701
1808
  --lte-primary-hover-border: #f9fafb;
1702
1809
  --lte-primary-active: #f9fafb;
1703
1810
  --lte-primary-active-border: #f9fafb;
1704
- --lte-primary-color: #1f2d3d;
1705
- --lte-primary-color-rgb: 31, 45, 61;
1811
+ --lte-primary-color: #000;
1812
+ --lte-primary-color-rgb: 0, 0, 0;
1706
1813
  }
1707
1814
 
1708
1815
  [data-lte-primary=dark] {
@@ -2191,6 +2298,54 @@
2191
2298
  --bs-link-hover-color-rgb: 158, 160, 163;
2192
2299
  }
2193
2300
 
2301
+ [data-lte-contrast=aa][data-lte-primary=lightblue],
2302
+ [data-lte-contrast=aa] [data-lte-primary=lightblue] {
2303
+ --lte-primary-color: #000;
2304
+ --lte-primary-color-rgb: 0, 0, 0;
2305
+ }
2306
+
2307
+ [data-lte-contrast=aa][data-lte-primary=olive],
2308
+ [data-lte-contrast=aa] [data-lte-primary=olive] {
2309
+ --lte-primary-color: #000;
2310
+ --lte-primary-color-rgb: 0, 0, 0;
2311
+ }
2312
+
2313
+ [data-lte-contrast=aa][data-lte-primary=fuchsia],
2314
+ [data-lte-contrast=aa] [data-lte-primary=fuchsia] {
2315
+ --lte-primary-color: #000;
2316
+ --lte-primary-color-rgb: 0, 0, 0;
2317
+ }
2318
+
2319
+ [data-lte-contrast=aa][data-lte-primary=blue],
2320
+ [data-lte-contrast=aa] [data-lte-primary=blue] {
2321
+ --lte-primary-color: #000;
2322
+ --lte-primary-color-rgb: 0, 0, 0;
2323
+ }
2324
+
2325
+ [data-lte-contrast=aa][data-lte-primary=pink],
2326
+ [data-lte-contrast=aa] [data-lte-primary=pink] {
2327
+ --lte-primary-color: #000;
2328
+ --lte-primary-color-rgb: 0, 0, 0;
2329
+ }
2330
+
2331
+ [data-lte-contrast=aa][data-lte-primary=green],
2332
+ [data-lte-contrast=aa] [data-lte-primary=green] {
2333
+ --lte-primary-color: #000;
2334
+ --lte-primary-color-rgb: 0, 0, 0;
2335
+ }
2336
+
2337
+ [data-lte-contrast=aa][data-lte-primary=teal],
2338
+ [data-lte-contrast=aa] [data-lte-primary=teal] {
2339
+ --lte-primary-color: #000;
2340
+ --lte-primary-color-rgb: 0, 0, 0;
2341
+ }
2342
+
2343
+ [data-lte-contrast=aa][data-lte-primary=cyan],
2344
+ [data-lte-contrast=aa] [data-lte-primary=cyan] {
2345
+ --lte-primary-color: #000;
2346
+ --lte-primary-color-rgb: 0, 0, 0;
2347
+ }
2348
+
2194
2349
  /* stylelint-disable-next-line no-duplicate-selectors */
2195
2350
  [data-lte-primary] .btn-primary {
2196
2351
  --bs-btn-color: var(--lte-primary-color);