@fiestaboard/ui 1.6.3

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 (201) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +153 -0
  3. package/dist/components/board/board-display.d.ts +35 -0
  4. package/dist/components/board/board-display.js +514 -0
  5. package/dist/components/board/board-display.js.map +1 -0
  6. package/dist/components/board/board-teaser.d.ts +10 -0
  7. package/dist/components/board/board-teaser.js +110 -0
  8. package/dist/components/board/board-teaser.js.map +1 -0
  9. package/dist/components/board/scaled-board-display.d.ts +37 -0
  10. package/dist/components/board/scaled-board-display.js +118 -0
  11. package/dist/components/board/scaled-board-display.js.map +1 -0
  12. package/dist/components/board/static-board-display.d.ts +17 -0
  13. package/dist/components/board/static-board-display.js +140 -0
  14. package/dist/components/board/static-board-display.js.map +1 -0
  15. package/dist/components/chrome/board-icon.d.ts +11 -0
  16. package/dist/components/chrome/board-icon.js +31 -0
  17. package/dist/components/chrome/board-icon.js.map +1 -0
  18. package/dist/components/chrome/board-selector.d.ts +30 -0
  19. package/dist/components/chrome/board-selector.js +37 -0
  20. package/dist/components/chrome/board-selector.js.map +1 -0
  21. package/dist/components/chrome/fiesta-icon.d.ts +28 -0
  22. package/dist/components/chrome/fiesta-icon.js +129 -0
  23. package/dist/components/chrome/fiesta-icon.js.map +1 -0
  24. package/dist/components/chrome/fiesta-logo.d.ts +6 -0
  25. package/dist/components/chrome/fiesta-logo.js +20 -0
  26. package/dist/components/chrome/fiesta-logo.js.map +1 -0
  27. package/dist/components/chrome/language-selector.d.ts +21 -0
  28. package/dist/components/chrome/language-selector.js +29 -0
  29. package/dist/components/chrome/language-selector.js.map +1 -0
  30. package/dist/components/chrome/main-content.d.ts +28 -0
  31. package/dist/components/chrome/main-content.js +33 -0
  32. package/dist/components/chrome/main-content.js.map +1 -0
  33. package/dist/components/chrome/page-header.d.ts +23 -0
  34. package/dist/components/chrome/page-header.js +69 -0
  35. package/dist/components/chrome/page-header.js.map +1 -0
  36. package/dist/components/chrome/page-layout.d.ts +10 -0
  37. package/dist/components/chrome/page-layout.js +17 -0
  38. package/dist/components/chrome/page-layout.js.map +1 -0
  39. package/dist/components/chrome/page-toolbar.d.ts +7 -0
  40. package/dist/components/chrome/page-toolbar.js +21 -0
  41. package/dist/components/chrome/page-toolbar.js.map +1 -0
  42. package/dist/components/chrome/sidebar.d.ts +83 -0
  43. package/dist/components/chrome/sidebar.js +318 -0
  44. package/dist/components/chrome/sidebar.js.map +1 -0
  45. package/dist/components/chrome/skip-to-content.d.ts +8 -0
  46. package/dist/components/chrome/skip-to-content.js +15 -0
  47. package/dist/components/chrome/skip-to-content.js.map +1 -0
  48. package/dist/components/chrome/theme-toggle.d.ts +22 -0
  49. package/dist/components/chrome/theme-toggle.js +28 -0
  50. package/dist/components/chrome/theme-toggle.js.map +1 -0
  51. package/dist/components/seasons/aurora-canvas.d.ts +22 -0
  52. package/dist/components/seasons/aurora-canvas.js +88 -0
  53. package/dist/components/seasons/aurora-canvas.js.map +1 -0
  54. package/dist/components/seasons/sidebar-aurora-horizontal.d.ts +3 -0
  55. package/dist/components/seasons/sidebar-aurora-horizontal.js +47 -0
  56. package/dist/components/seasons/sidebar-aurora-horizontal.js.map +1 -0
  57. package/dist/components/seasons/sidebar-aurora.d.ts +3 -0
  58. package/dist/components/seasons/sidebar-aurora.js +57 -0
  59. package/dist/components/seasons/sidebar-aurora.js.map +1 -0
  60. package/dist/components/ui/accordion.d.ts +16 -0
  61. package/dist/components/ui/accordion.js +55 -0
  62. package/dist/components/ui/accordion.js.map +1 -0
  63. package/dist/components/ui/alert-dialog.d.ts +16 -0
  64. package/dist/components/ui/alert-dialog.js +78 -0
  65. package/dist/components/ui/alert-dialog.js.map +1 -0
  66. package/dist/components/ui/alert.d.ts +9 -0
  67. package/dist/components/ui/alert.js +41 -0
  68. package/dist/components/ui/alert.js.map +1 -0
  69. package/dist/components/ui/aurora.d.ts +9 -0
  70. package/dist/components/ui/aurora.js +105 -0
  71. package/dist/components/ui/aurora.js.map +1 -0
  72. package/dist/components/ui/badge.d.ts +9 -0
  73. package/dist/components/ui/badge.js +35 -0
  74. package/dist/components/ui/badge.js.map +1 -0
  75. package/dist/components/ui/box.d.ts +20 -0
  76. package/dist/components/ui/box.js +14 -0
  77. package/dist/components/ui/box.js.map +1 -0
  78. package/dist/components/ui/button.d.ts +10 -0
  79. package/dist/components/ui/button.js +52 -0
  80. package/dist/components/ui/button.js.map +1 -0
  81. package/dist/components/ui/card.d.ts +11 -0
  82. package/dist/components/ui/card.js +57 -0
  83. package/dist/components/ui/card.js.map +1 -0
  84. package/dist/components/ui/checkbox.d.ts +4 -0
  85. package/dist/components/ui/checkbox.js +16 -0
  86. package/dist/components/ui/checkbox.js.map +1 -0
  87. package/dist/components/ui/code.d.ts +8 -0
  88. package/dist/components/ui/code.js +15 -0
  89. package/dist/components/ui/code.js.map +1 -0
  90. package/dist/components/ui/collapsible.d.ts +8 -0
  91. package/dist/components/ui/collapsible.js +28 -0
  92. package/dist/components/ui/collapsible.js.map +1 -0
  93. package/dist/components/ui/dialog.d.ts +17 -0
  94. package/dist/components/ui/dialog.js +77 -0
  95. package/dist/components/ui/dialog.js.map +1 -0
  96. package/dist/components/ui/dropdown-menu.d.ts +32 -0
  97. package/dist/components/ui/dropdown-menu.js +129 -0
  98. package/dist/components/ui/dropdown-menu.js.map +1 -0
  99. package/dist/components/ui/empty-state.d.ts +23 -0
  100. package/dist/components/ui/empty-state.js +49 -0
  101. package/dist/components/ui/empty-state.js.map +1 -0
  102. package/dist/components/ui/flex.d.ts +24 -0
  103. package/dist/components/ui/flex.js +61 -0
  104. package/dist/components/ui/flex.js.map +1 -0
  105. package/dist/components/ui/grid.d.ts +20 -0
  106. package/dist/components/ui/grid.js +77 -0
  107. package/dist/components/ui/grid.js.map +1 -0
  108. package/dist/components/ui/heading.d.ts +18 -0
  109. package/dist/components/ui/heading.js +26 -0
  110. package/dist/components/ui/heading.js.map +1 -0
  111. package/dist/components/ui/input.d.ts +4 -0
  112. package/dist/components/ui/input.js +16 -0
  113. package/dist/components/ui/input.js.map +1 -0
  114. package/dist/components/ui/label.d.ts +4 -0
  115. package/dist/components/ui/label.js +15 -0
  116. package/dist/components/ui/label.js.map +1 -0
  117. package/dist/components/ui/list.d.ts +25 -0
  118. package/dist/components/ui/list.js +46 -0
  119. package/dist/components/ui/list.js.map +1 -0
  120. package/dist/components/ui/react-bits/decrypted-text.d.ts +14 -0
  121. package/dist/components/ui/react-bits/decrypted-text.js +88 -0
  122. package/dist/components/ui/react-bits/decrypted-text.js.map +1 -0
  123. package/dist/components/ui/react-bits/fade-content.d.ts +11 -0
  124. package/dist/components/ui/react-bits/fade-content.js +48 -0
  125. package/dist/components/ui/react-bits/fade-content.js.map +1 -0
  126. package/dist/components/ui/scroll-area.d.ts +5 -0
  127. package/dist/components/ui/scroll-area.js +39 -0
  128. package/dist/components/ui/scroll-area.js.map +1 -0
  129. package/dist/components/ui/select.d.ts +26 -0
  130. package/dist/components/ui/select.js +132 -0
  131. package/dist/components/ui/select.js.map +1 -0
  132. package/dist/components/ui/sheet.d.ts +29 -0
  133. package/dist/components/ui/sheet.js +114 -0
  134. package/dist/components/ui/sheet.js.map +1 -0
  135. package/dist/components/ui/skeleton.d.ts +2 -0
  136. package/dist/components/ui/skeleton.js +14 -0
  137. package/dist/components/ui/skeleton.js.map +1 -0
  138. package/dist/components/ui/slider.d.ts +9 -0
  139. package/dist/components/ui/slider.js +39 -0
  140. package/dist/components/ui/slider.js.map +1 -0
  141. package/dist/components/ui/stack.d.ts +16 -0
  142. package/dist/components/ui/stack.js +44 -0
  143. package/dist/components/ui/stack.js.map +1 -0
  144. package/dist/components/ui/switch.d.ts +4 -0
  145. package/dist/components/ui/switch.js +24 -0
  146. package/dist/components/ui/switch.js.map +1 -0
  147. package/dist/components/ui/table.d.ts +13 -0
  148. package/dist/components/ui/table.js +54 -0
  149. package/dist/components/ui/table.js.map +1 -0
  150. package/dist/components/ui/tabs.d.ts +7 -0
  151. package/dist/components/ui/tabs.js +37 -0
  152. package/dist/components/ui/tabs.js.map +1 -0
  153. package/dist/components/ui/text-link.d.ts +9 -0
  154. package/dist/components/ui/text-link.js +15 -0
  155. package/dist/components/ui/text-link.js.map +1 -0
  156. package/dist/components/ui/text.d.ts +22 -0
  157. package/dist/components/ui/text.js +48 -0
  158. package/dist/components/ui/text.js.map +1 -0
  159. package/dist/components/ui/textarea.d.ts +3 -0
  160. package/dist/components/ui/textarea.js +15 -0
  161. package/dist/components/ui/textarea.js.map +1 -0
  162. package/dist/components/ui/tooltip.d.ts +16 -0
  163. package/dist/components/ui/tooltip.js +38 -0
  164. package/dist/components/ui/tooltip.js.map +1 -0
  165. package/dist/fonts.css +16 -0
  166. package/dist/index.d.ts +66 -0
  167. package/dist/index.js +59 -0
  168. package/dist/lib/board-characters.d.ts +55 -0
  169. package/dist/lib/board-characters.js +151 -0
  170. package/dist/lib/board-characters.js.map +1 -0
  171. package/dist/lib/board-colors.d.ts +48 -0
  172. package/dist/lib/board-colors.js +93 -0
  173. package/dist/lib/board-colors.js.map +1 -0
  174. package/dist/lib/board-dimensions.d.ts +41 -0
  175. package/dist/lib/board-dimensions.js +38 -0
  176. package/dist/lib/board-dimensions.js.map +1 -0
  177. package/dist/lib/board-metrics.d.ts +19 -0
  178. package/dist/lib/board-metrics.js +22 -0
  179. package/dist/lib/board-metrics.js.map +1 -0
  180. package/dist/lib/seasons-drafts.d.ts +26 -0
  181. package/dist/lib/seasons-drafts.js +106 -0
  182. package/dist/lib/seasons-drafts.js.map +1 -0
  183. package/dist/lib/seasons.d.ts +52 -0
  184. package/dist/lib/seasons.js +59 -0
  185. package/dist/lib/seasons.js.map +1 -0
  186. package/dist/lib/select-items.d.ts +29 -0
  187. package/dist/lib/select-items.js +35 -0
  188. package/dist/lib/select-items.js.map +1 -0
  189. package/dist/lib/utils.d.ts +2 -0
  190. package/dist/lib/utils.js +11 -0
  191. package/dist/lib/utils.js.map +1 -0
  192. package/dist/seasons/christmas.css +64 -0
  193. package/dist/seasons/easter.css +62 -0
  194. package/dist/seasons/fathers-day.css +62 -0
  195. package/dist/seasons/halloween.css +69 -0
  196. package/dist/seasons/mothers-day.css +63 -0
  197. package/dist/seasons/new-year.css +66 -0
  198. package/dist/seasons/pride.css +68 -0
  199. package/dist/seasons/thanksgiving.css +64 -0
  200. package/dist/theme.css +1174 -0
  201. package/package.json +108 -0
@@ -0,0 +1,63 @@
1
+ /* mothers-day — draft seasonal theme. Styles activate only when the
2
+ .mothers-day-season class is stamped on <html> (Storybook Season selector).
3
+ Not consulted by getActiveSeason() until promoted to SEASONS.
4
+
5
+ Design intent: elegant warm rose — deep rose through blush with a
6
+ soft cream-gold accent; garden-rose rather than candy pink. Dark
7
+ sidebar is a muted rosewood-plum so white text and the rose aurora
8
+ stay legible. */
9
+
10
+ /* Page-icon SVG gradient stops */
11
+ .mothers-day-season {
12
+ --icon-g1: #b03060; /* deep rose */
13
+ --icon-g2: #d1608a; /* rose */
14
+ --icon-g3: #e79ab0; /* blush */
15
+ --icon-g4: #d8b98a; /* cream gold */
16
+ --icon-g5: #c76a94; /* rose mauve */
17
+ --icon-g6: #b03060; /* deep rose (loop) */
18
+ }
19
+
20
+ /* "Fiesta" logo word — deep garden-rose ombré (the blush and cream-gold
21
+ accents stay in the icon ramp/aurora): the light sidebar animates rose,
22
+ cream, and mauve stops under the wordmark, so every logo stop holds
23
+ ≥1.5:1 against all of them (lowest: #c2436f at 1.60:1) where blush and
24
+ cream would vanish into their sidebar twins. */
25
+ .mothers-day-season .logo-fiesta-text {
26
+ background: linear-gradient(90deg, #b03060, #c2436f, #a83365, #8e2a55, #b03060);
27
+ -webkit-background-clip: text;
28
+ -webkit-text-fill-color: transparent;
29
+ background-clip: text;
30
+ }
31
+
32
+ /* Light mode sidebar: rose-garden gradient stops (mechanics unchanged) */
33
+ .mothers-day-season:not(.dark) .sidebar-gradient,
34
+ .mothers-day-season:not(.dark) .sidebar-gradient-horizontal {
35
+ --sidebar-fiesta-red: #d98ba0; /* rose */
36
+ --sidebar-fiesta-orange: #e6cfa8; /* soft cream */
37
+ --sidebar-fiesta-purple: #b586a8; /* mauve */
38
+ }
39
+
40
+ /* Dark mode sidebar: muted rosewood-plum base; aurora provides the color */
41
+ .dark.mothers-day-season .sidebar-gradient,
42
+ .dark.mothers-day-season .sidebar-gradient-horizontal {
43
+ background: #1c1016;
44
+ animation: none;
45
+ color: oklch(1 0 0);
46
+ --sidebar-foreground: oklch(1 0 0);
47
+ --sidebar-accent: oklch(1 0 0 / 14%);
48
+ --sidebar-accent-foreground: oklch(1 0 0);
49
+ --sidebar-border: oklch(1 0 0 / 10%);
50
+ --foreground: oklch(1 0 0);
51
+ --muted-foreground: oklch(1 0 0 / 75%);
52
+ }
53
+
54
+ /* Reduced motion: authored here rather than inherited — these selectors
55
+ out-specific the base .sidebar-gradient rules in theme.css, so a future
56
+ edit that re-declares animation above would silently escape the base
57
+ @media block. Keeping the guard in-file makes that impossible. */
58
+ @media (prefers-reduced-motion: reduce) {
59
+ .mothers-day-season .sidebar-gradient,
60
+ .mothers-day-season .sidebar-gradient-horizontal {
61
+ animation: none;
62
+ }
63
+ }
@@ -0,0 +1,66 @@
1
+ /* new-year — draft seasonal theme. Styles activate only when the
2
+ .new-year-season class is stamped on <html> (Storybook Season selector).
3
+ Not consulted by getActiveSeason() until promoted to SEASONS.
4
+
5
+ Design intent: midnight countdown — champagne gold and silver sparkle
6
+ against a deep midnight-blue base, with a violet firework accent. The
7
+ aurora becomes the fireworks over a night sky. */
8
+
9
+ /* Logo: champagne gold → sparkle white → deep pewter → midnight violet.
10
+ Stops are split bright/deep on purpose: the light sidebar animates all
11
+ three stops under the wordmark, so every stop holds ≥1.5:1 against all
12
+ of them (lowest: #ffd700 at 1.52:1) while gold and sparkle-white pop
13
+ on the midnight base. */
14
+ .new-year-season .logo-fiesta-text {
15
+ background: linear-gradient(90deg, #ffd700, #f5da6e, #f0f0f5, #626c82, #5c4db8);
16
+ -webkit-background-clip: text;
17
+ -webkit-text-fill-color: transparent;
18
+ background-clip: text;
19
+ }
20
+
21
+ /* Page-icon gradient: gold fading through silver into midnight blue */
22
+ .new-year-season {
23
+ --icon-g1: #ffd700;
24
+ --icon-g2: #f5da6e;
25
+ --icon-g3: #d8dde8;
26
+ --icon-g4: #a9b6d0;
27
+ --icon-g5: #5b6fd4;
28
+ --icon-g6: #2c3e8c;
29
+ }
30
+
31
+ /* Dark mode sidebar: flat deep midnight blue — the WebGL aurora
32
+ (gold/silver/violet palette) supplies the fireworks. */
33
+ .dark.new-year-season .sidebar-gradient,
34
+ .dark.new-year-season .sidebar-gradient-horizontal {
35
+ background: #090b1e;
36
+ animation: none;
37
+ color: oklch(1 0 0);
38
+ --sidebar-foreground: oklch(1 0 0);
39
+ --sidebar-accent: oklch(1 0 0 / 14%);
40
+ --sidebar-accent-foreground: oklch(1 0 0);
41
+ --sidebar-border: oklch(1 0 0 / 10%);
42
+ --foreground: oklch(1 0 0);
43
+ --muted-foreground: oklch(1 0 0 / 75%);
44
+ }
45
+
46
+ /* Light mode sidebar: retint the flowing gradient stops to antique gold,
47
+ brushed silver, and periwinkle dusk (black text verified ≥4.5:1 on all
48
+ three stops; periwinkle #8790c9 is 6.86:1). Silver sits at #a9b2c1 —
49
+ any lighter and the champagne-gold wordmark stops reading against it. */
50
+ .new-year-season:not(.dark) .sidebar-gradient,
51
+ .new-year-season:not(.dark) .sidebar-gradient-horizontal {
52
+ --sidebar-fiesta-red: #c4ad62;
53
+ --sidebar-fiesta-orange: #a9b2c1;
54
+ --sidebar-fiesta-purple: #8790c9;
55
+ }
56
+
57
+ /* Reduced motion: authored here rather than inherited — these selectors
58
+ out-specific the base .sidebar-gradient rules in theme.css, so a future
59
+ edit that re-declares animation above would silently escape the base
60
+ @media block. Keeping the guard in-file makes that impossible. */
61
+ @media (prefers-reduced-motion: reduce) {
62
+ .new-year-season .sidebar-gradient,
63
+ .new-year-season .sidebar-gradient-horizontal {
64
+ animation: none;
65
+ }
66
+ }
@@ -0,0 +1,68 @@
1
+ /* pride — the LIVE season (June). Activates when the app shell stamps
2
+ .pride-month on <html> (see lib/seasons.tsx PRIDE_SEASON.htmlClass; the
3
+ class name predates the .<id>-season draft convention and is kept for
4
+ app compatibility). Same structure as every draft season file: icon
5
+ gradient override, logo gradient, dark sidebar base, light retint.
6
+
7
+ Note: --brand is deliberately season-invariant — seasons retheme the
8
+ chrome (logo, icon gradient, sidebar) while the brand accent stays the
9
+ Fiesta orange everywhere else.
10
+
11
+ Known limitation (accepted): in light mode the rainbow wordmark sits on
12
+ the base brand gradient, and the red/orange stripes drop under 1.5:1
13
+ against the coral stop. The six-stripe flag is canonical and is not
14
+ retinted per-surface; the wordmark is a brand logotype (WCAG 1.4.3
15
+ logotype exemption). Draft seasons instead split their logo stops
16
+ deep/bright to clear their light sidebars — see any seasons/<id>.css. */
17
+
18
+ /* Page-icon gradient: the six-stop rainbow */
19
+ .pride-month {
20
+ --icon-g1: #e40303;
21
+ --icon-g2: #ff8c00;
22
+ --icon-g3: #ffed00;
23
+ --icon-g4: #008026;
24
+ --icon-g5: #004dff;
25
+ --icon-g6: #750787;
26
+ }
27
+
28
+ /* "Fiesta" logo word — rainbow from the --icon-g* override (single source) */
29
+ .pride-month .logo-fiesta-text {
30
+ background: linear-gradient(
31
+ 90deg,
32
+ var(--icon-g1),
33
+ var(--icon-g2),
34
+ var(--icon-g3),
35
+ var(--icon-g4),
36
+ var(--icon-g5),
37
+ var(--icon-g6)
38
+ );
39
+ -webkit-background-clip: text;
40
+ -webkit-text-fill-color: transparent;
41
+ background-clip: text;
42
+ }
43
+
44
+ /* Dark mode sidebar: dark base so the WebGL aurora is the visual.
45
+ Light mode keeps the original gradient — the aurora canvas overlays it. */
46
+ .dark.pride-month .sidebar-gradient,
47
+ .dark.pride-month .sidebar-gradient-horizontal {
48
+ background: #0e0b18;
49
+ animation: none;
50
+ color: oklch(1 0 0);
51
+ --sidebar-foreground: oklch(1 0 0);
52
+ --sidebar-accent: oklch(1 0 0 / 14%);
53
+ --sidebar-accent-foreground: oklch(1 0 0);
54
+ --sidebar-border: oklch(1 0 0 / 10%);
55
+ --foreground: oklch(1 0 0);
56
+ --muted-foreground: oklch(1 0 0 / 75%);
57
+ }
58
+
59
+ /* Reduced motion: authored here rather than inherited — these selectors
60
+ out-specific the base .sidebar-gradient rules in theme.css, so a future
61
+ edit that re-declares animation above would silently escape the base
62
+ @media block. Keeping the guard in-file makes that impossible. */
63
+ @media (prefers-reduced-motion: reduce) {
64
+ .pride-month .sidebar-gradient,
65
+ .pride-month .sidebar-gradient-horizontal {
66
+ animation: none;
67
+ }
68
+ }
@@ -0,0 +1,64 @@
1
+ /* thanksgiving — draft seasonal theme. Styles activate only when the
2
+ .thanksgiving-season class is stamped on <html> (Storybook Season selector).
3
+ Not consulted by getActiveSeason() until promoted to SEASONS.
4
+
5
+ Design intent: a harvest table at golden hour — harvest gold pouring into
6
+ burnt sienna and warm amber, over a dark roasted-umber base so the aurora
7
+ glows like hearth light. Cozy, warm, nothing shouty. */
8
+
9
+ /* Logo: golden hour pouring into roasted russet — bright harvest golds
10
+ into deep umber. Stops are split bright/deep on purpose: the light
11
+ sidebar animates all three stops under the wordmark, so every stop
12
+ holds ≥1.5:1 against all of them (lowest: #f6c56a at 1.54:1) while the
13
+ golds keep the hearth glow on the dark base. */
14
+ .thanksgiving-season .logo-fiesta-text {
15
+ background: linear-gradient(90deg, #ffd88a, #f6c56a, #8a4a20, #6f3413);
16
+ -webkit-background-clip: text;
17
+ -webkit-text-fill-color: transparent;
18
+ background-clip: text;
19
+ }
20
+
21
+ /* Page-icon gradient: sienna into amber into harvest gold and back to russet */
22
+ .thanksgiving-season {
23
+ --icon-g1: #a0522d;
24
+ --icon-g2: #c9682a;
25
+ --icon-g3: #e0a030;
26
+ --icon-g4: #eec659;
27
+ --icon-g5: #b5651d;
28
+ --icon-g6: #8c3b1b;
29
+ }
30
+
31
+ /* Dark mode sidebar: flat dark roasted umber — the WebGL aurora
32
+ (amber/sienna/cream palette) supplies the warmth and movement. */
33
+ .dark.thanksgiving-season .sidebar-gradient,
34
+ .dark.thanksgiving-season .sidebar-gradient-horizontal {
35
+ background: #170e08;
36
+ animation: none;
37
+ color: oklch(1 0 0);
38
+ --sidebar-foreground: oklch(1 0 0);
39
+ --sidebar-accent: oklch(1 0 0 / 14%);
40
+ --sidebar-accent-foreground: oklch(1 0 0);
41
+ --sidebar-border: oklch(1 0 0 / 10%);
42
+ --foreground: oklch(1 0 0);
43
+ --muted-foreground: oklch(1 0 0 / 75%);
44
+ }
45
+
46
+ /* Light mode sidebar: retint the flowing gradient stops to burnt sienna,
47
+ harvest gold, and toasted russet (black text stays ≥4.5:1 on these). */
48
+ .thanksgiving-season:not(.dark) .sidebar-gradient,
49
+ .thanksgiving-season:not(.dark) .sidebar-gradient-horizontal {
50
+ --sidebar-fiesta-red: #b96a3e;
51
+ --sidebar-fiesta-orange: #cf9c4f;
52
+ --sidebar-fiesta-purple: #a3703f;
53
+ }
54
+
55
+ /* Reduced motion: authored here rather than inherited — these selectors
56
+ out-specific the base .sidebar-gradient rules in theme.css, so a future
57
+ edit that re-declares animation above would silently escape the base
58
+ @media block. Keeping the guard in-file makes that impossible. */
59
+ @media (prefers-reduced-motion: reduce) {
60
+ .thanksgiving-season .sidebar-gradient,
61
+ .thanksgiving-season .sidebar-gradient-horizontal {
62
+ animation: none;
63
+ }
64
+ }