rizzo-css 0.0.12 → 0.0.13

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 (230) hide show
  1. package/.env.example +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +17 -3
  4. package/bin/rizzo-css.js +93 -43
  5. package/package.json +5 -3
  6. package/scaffold/astro-app/README.md +13 -2
  7. package/scaffold/astro-app/src/components/Accordion.astro +178 -0
  8. package/scaffold/astro-app/src/components/Alert.astro +131 -0
  9. package/scaffold/astro-app/src/components/Avatar.astro +59 -0
  10. package/scaffold/astro-app/src/components/Badge.astro +24 -0
  11. package/scaffold/astro-app/src/components/Breadcrumb.astro +61 -0
  12. package/scaffold/astro-app/src/components/Button.astro +3 -0
  13. package/scaffold/astro-app/src/components/Card.astro +18 -0
  14. package/scaffold/astro-app/src/components/Checkbox.astro +38 -0
  15. package/scaffold/astro-app/src/components/CodeBlock.astro +393 -0
  16. package/scaffold/astro-app/src/components/CopyToClipboard.astro +219 -0
  17. package/scaffold/astro-app/src/components/Divider.astro +37 -0
  18. package/scaffold/astro-app/src/components/Dropdown.astro +807 -0
  19. package/scaffold/astro-app/src/components/FormGroup.astro +59 -0
  20. package/scaffold/astro-app/src/components/FrameworkSwitcher.astro +72 -0
  21. package/scaffold/astro-app/src/components/Input.astro +59 -0
  22. package/scaffold/astro-app/src/components/Modal.astro +212 -0
  23. package/scaffold/astro-app/src/components/Navbar.astro +701 -0
  24. package/scaffold/astro-app/src/components/Pagination.astro +240 -0
  25. package/scaffold/astro-app/src/components/ProgressBar.astro +65 -0
  26. package/scaffold/astro-app/src/components/Radio.astro +38 -0
  27. package/scaffold/astro-app/src/components/Search.astro +1259 -0
  28. package/scaffold/astro-app/src/components/Select.astro +49 -0
  29. package/scaffold/astro-app/src/components/Settings.astro +382 -0
  30. package/scaffold/astro-app/src/components/Spinner.astro +30 -0
  31. package/scaffold/astro-app/src/components/Table.astro +181 -0
  32. package/scaffold/astro-app/src/components/Tabs.astro +223 -0
  33. package/scaffold/astro-app/src/components/Textarea.astro +58 -0
  34. package/scaffold/astro-app/src/components/ThemeSwitcher.astro +504 -0
  35. package/scaffold/astro-app/src/components/Toast.astro +30 -0
  36. package/scaffold/astro-app/src/components/Tooltip.astro +32 -0
  37. package/scaffold/astro-app/src/components/icons/Brush.astro +10 -0
  38. package/scaffold/astro-app/src/components/icons/Cake.astro +11 -0
  39. package/scaffold/astro-app/src/components/icons/Check.astro +29 -0
  40. package/scaffold/astro-app/src/components/icons/Cherry.astro +11 -0
  41. package/scaffold/astro-app/src/components/icons/ChevronDown.astro +29 -0
  42. package/scaffold/astro-app/src/components/icons/Circle.astro +29 -0
  43. package/scaffold/astro-app/src/components/icons/Close.astro +30 -0
  44. package/scaffold/astro-app/src/components/icons/Cmd.astro +26 -0
  45. package/scaffold/astro-app/src/components/icons/Copy.astro +30 -0
  46. package/scaffold/astro-app/src/components/icons/Eye.astro +30 -0
  47. package/scaffold/astro-app/src/components/icons/Filter.astro +29 -0
  48. package/scaffold/astro-app/src/components/icons/Flame.astro +28 -0
  49. package/scaffold/astro-app/src/components/icons/Flower.astro +11 -0
  50. package/scaffold/astro-app/src/components/icons/Gear.astro +30 -0
  51. package/scaffold/astro-app/src/components/icons/Heart.astro +28 -0
  52. package/scaffold/astro-app/src/components/icons/IceCream.astro +31 -0
  53. package/scaffold/astro-app/src/components/icons/Leaf.astro +29 -0
  54. package/scaffold/astro-app/src/components/icons/Lemon.astro +11 -0
  55. package/scaffold/astro-app/src/components/icons/Moon.astro +29 -0
  56. package/scaffold/astro-app/src/components/icons/Owl.astro +34 -0
  57. package/scaffold/astro-app/src/components/icons/Palette.astro +33 -0
  58. package/scaffold/astro-app/src/components/icons/Rainbow.astro +31 -0
  59. package/scaffold/astro-app/src/components/icons/Search.astro +30 -0
  60. package/scaffold/astro-app/src/components/icons/Shield.astro +28 -0
  61. package/scaffold/astro-app/src/components/icons/Snowflake.astro +34 -0
  62. package/scaffold/astro-app/src/components/icons/Sort.astro +30 -0
  63. package/scaffold/astro-app/src/components/icons/Sun.astro +29 -0
  64. package/scaffold/astro-app/src/components/icons/Sunset.astro +10 -0
  65. package/scaffold/astro-app/src/components/icons/Zap.astro +9 -0
  66. package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +53 -0
  67. package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +34 -0
  68. package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +29 -0
  69. package/scaffold/astro-app/src/components/icons/devicons/Git.astro +24 -0
  70. package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +27 -0
  71. package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +25 -0
  72. package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +47 -0
  73. package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +33 -0
  74. package/scaffold/astro-app/src/components/icons/devicons/React.astro +27 -0
  75. package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +25 -0
  76. package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +26 -0
  77. package/scaffold/astro-app/src/config/frameworks.ts +26 -0
  78. package/scaffold/astro-app/src/config/themes.ts +54 -0
  79. package/scaffold/astro-app/src/layouts/DocsLayout.astro +204 -0
  80. package/scaffold/astro-app/src/layouts/Layout.astro +11 -2
  81. package/scaffold/astro-app/src/pages/components/accordion.astro +172 -0
  82. package/scaffold/astro-app/src/pages/components/alert.astro +250 -0
  83. package/scaffold/astro-app/src/pages/components/avatar.astro +102 -0
  84. package/scaffold/astro-app/src/pages/components/badge.astro +119 -0
  85. package/scaffold/astro-app/src/pages/components/breadcrumb.astro +124 -0
  86. package/scaffold/astro-app/src/pages/components/button.astro +74 -0
  87. package/scaffold/astro-app/src/pages/components/cards.astro +247 -0
  88. package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +49 -0
  89. package/scaffold/astro-app/src/pages/components/divider.astro +74 -0
  90. package/scaffold/astro-app/src/pages/components/dropdown.astro +394 -0
  91. package/scaffold/astro-app/src/pages/components/forms.astro +367 -0
  92. package/scaffold/astro-app/src/pages/components/icons.astro +246 -0
  93. package/scaffold/astro-app/src/pages/components/modal.astro +152 -0
  94. package/scaffold/astro-app/src/pages/components/navbar.astro +80 -0
  95. package/scaffold/astro-app/src/pages/components/pagination.astro +126 -0
  96. package/scaffold/astro-app/src/pages/components/progress-bar.astro +94 -0
  97. package/scaffold/astro-app/src/pages/components/search.astro +155 -0
  98. package/scaffold/astro-app/src/pages/components/settings.astro +78 -0
  99. package/scaffold/astro-app/src/pages/components/spinner.astro +81 -0
  100. package/scaffold/astro-app/src/pages/components/table.astro +144 -0
  101. package/scaffold/astro-app/src/pages/components/tabs.astro +220 -0
  102. package/scaffold/astro-app/src/pages/components/theme-switcher.astro +67 -0
  103. package/scaffold/astro-app/src/pages/components/toast.astro +157 -0
  104. package/scaffold/astro-app/src/pages/components/tooltip.astro +209 -0
  105. package/scaffold/astro-app/src/pages/components.astro +290 -0
  106. package/scaffold/astro-app/src/pages/docs/accessibility.astro +9 -0
  107. package/scaffold/astro-app/src/pages/docs/colors.astro +9 -0
  108. package/scaffold/astro-app/src/pages/docs/design-system.astro +9 -0
  109. package/scaffold/astro-app/src/pages/docs/getting-started.astro +9 -0
  110. package/scaffold/astro-app/src/pages/docs/index.astro +15 -0
  111. package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +14 -0
  112. package/scaffold/astro-app/src/pages/docs/theming.astro +10 -0
  113. package/scaffold/astro-app/src/pages/index.astro +5 -11
  114. package/scaffold/svelte-app/README.md +9 -2
  115. package/scaffold/svelte-app/src/app.html +1 -1
  116. package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +128 -0
  117. package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +85 -0
  118. package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +39 -0
  119. package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +31 -0
  120. package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +49 -0
  121. package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +27 -0
  122. package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +17 -0
  123. package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +37 -0
  124. package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +79 -0
  125. package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +28 -0
  126. package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +254 -0
  127. package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +51 -0
  128. package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +59 -0
  129. package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +157 -0
  130. package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +93 -0
  131. package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +58 -0
  132. package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +38 -0
  133. package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +51 -0
  134. package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +14 -0
  135. package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +158 -0
  136. package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +117 -0
  137. package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +59 -0
  138. package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +315 -0
  139. package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +33 -0
  140. package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +19 -0
  141. package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +29 -0
  142. package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +29 -0
  143. package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +29 -0
  144. package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +30 -0
  145. package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +27 -0
  146. package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +30 -0
  147. package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +30 -0
  148. package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +29 -0
  149. package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +30 -0
  150. package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +31 -0
  151. package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +29 -0
  152. package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +34 -0
  153. package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +33 -0
  154. package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +31 -0
  155. package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +30 -0
  156. package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +34 -0
  157. package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +30 -0
  158. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +45 -0
  159. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +28 -0
  160. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +23 -0
  161. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +18 -0
  162. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +21 -0
  163. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +19 -0
  164. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +44 -0
  165. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +24 -0
  166. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +21 -0
  167. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +19 -0
  168. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +20 -0
  169. package/scaffold/svelte-app/src/lib/rizzo/index.ts +33 -0
  170. package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +239 -0
  171. package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +99 -0
  172. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +53 -0
  173. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +114 -0
  174. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +92 -0
  175. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +60 -0
  176. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +55 -0
  177. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +55 -0
  178. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +173 -0
  179. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +12 -0
  180. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +92 -0
  181. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +26 -0
  182. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +105 -0
  183. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +161 -0
  184. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +375 -0
  185. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +246 -0
  186. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +8 -0
  187. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +50 -0
  188. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +79 -0
  189. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +44 -0
  190. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +95 -0
  191. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +147 -0
  192. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +158 -0
  193. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +41 -0
  194. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +116 -0
  195. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +152 -0
  196. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +181 -0
  197. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +6 -0
  198. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +136 -0
  199. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +57 -0
  200. package/scaffold/svelte-app/src/routes/+page.svelte +2 -2
  201. package/scaffold/svelte-app/src/routes/components/+page.svelte +4 -0
  202. package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +7 -0
  203. package/scaffold/vanilla/README.md +11 -4
  204. package/scaffold/vanilla/components/accordion.html +187 -0
  205. package/scaffold/vanilla/components/alert.html +187 -0
  206. package/scaffold/vanilla/components/avatar.html +187 -0
  207. package/scaffold/vanilla/components/badge.html +187 -0
  208. package/scaffold/vanilla/components/breadcrumb.html +187 -0
  209. package/scaffold/vanilla/components/button.html +187 -0
  210. package/scaffold/vanilla/components/cards.html +187 -0
  211. package/scaffold/vanilla/components/copy-to-clipboard.html +187 -0
  212. package/scaffold/vanilla/components/divider.html +187 -0
  213. package/scaffold/vanilla/components/dropdown.html +187 -0
  214. package/scaffold/vanilla/components/forms.html +187 -0
  215. package/scaffold/vanilla/components/icons.html +187 -0
  216. package/scaffold/vanilla/components/index.html +212 -0
  217. package/scaffold/vanilla/components/modal.html +187 -0
  218. package/scaffold/vanilla/components/navbar.html +187 -0
  219. package/scaffold/vanilla/components/pagination.html +187 -0
  220. package/scaffold/vanilla/components/progress-bar.html +187 -0
  221. package/scaffold/vanilla/components/search.html +187 -0
  222. package/scaffold/vanilla/components/settings.html +187 -0
  223. package/scaffold/vanilla/components/spinner.html +187 -0
  224. package/scaffold/vanilla/components/table.html +187 -0
  225. package/scaffold/vanilla/components/tabs.html +187 -0
  226. package/scaffold/vanilla/components/theme-switcher.html +187 -0
  227. package/scaffold/vanilla/components/toast.html +187 -0
  228. package/scaffold/vanilla/components/tooltip.html +187 -0
  229. package/scaffold/vanilla/index.html +16 -6
  230. package/scaffold/vanilla/js/main.js +4 -3
@@ -0,0 +1,187 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="{{DATA_THEME}}">{{THEME_LIST_COMMENT}}
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>{{TITLE}}</title>
7
+ <!-- Theme flash prevention: apply saved theme/settings before first paint (same as main site) -->
8
+ <script>
9
+ (function() {
10
+ try {
11
+ var savedTheme = localStorage.getItem('theme');
12
+ var defaultDark = '{{DEFAULT_DARK}}';
13
+ var defaultLight = '{{DEFAULT_LIGHT}}';
14
+ var resolvedTheme;
15
+ if (!savedTheme) {
16
+ var initialTheme = document.documentElement.getAttribute('data-theme');
17
+ resolvedTheme = (initialTheme && initialTheme !== 'system') ? initialTheme : (window.matchMedia('(prefers-color-scheme: dark)').matches ? defaultDark : defaultLight);
18
+ } else if (savedTheme === 'system') {
19
+ resolvedTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? defaultDark : defaultLight;
20
+ } else {
21
+ resolvedTheme = savedTheme;
22
+ }
23
+ document.documentElement.setAttribute('data-theme', resolvedTheme);
24
+ var savedFontScale = localStorage.getItem('fontSizeScale');
25
+ if (savedFontScale) {
26
+ document.documentElement.style.setProperty('--font-size-scale', savedFontScale);
27
+ }
28
+ if (localStorage.getItem('reducedMotion') === 'true') {
29
+ document.documentElement.classList.add('reduced-motion');
30
+ }
31
+ if (localStorage.getItem('highContrast') === 'true') {
32
+ document.documentElement.classList.add('high-contrast');
33
+ }
34
+ var savedScrollbarStyle = localStorage.getItem('scrollbarStyle') || 'thin';
35
+ if (savedScrollbarStyle === 'thick') {
36
+ document.documentElement.classList.add('scrollbar-thick');
37
+ } else if (savedScrollbarStyle === 'hidden') {
38
+ document.documentElement.classList.add('scrollbar-hidden', 'hide-scrollbars');
39
+ }
40
+ if (!savedScrollbarStyle && localStorage.getItem('hideScrollbars') === 'true') {
41
+ document.documentElement.classList.add('scrollbar-hidden', 'hide-scrollbars');
42
+ localStorage.setItem('scrollbarStyle', 'hidden');
43
+ }
44
+ } catch (e) {}
45
+ })();
46
+ </script>
47
+ <link rel="stylesheet" href="../{{LINK_HREF}}" />
48
+ </head>
49
+ <body>
50
+ <a href="#main-content" class="skip-link">Skip to main content</a>
51
+ <header class="container flex flex-wrap items-center justify-between gap-4" style="padding-top: var(--spacing-4); padding-bottom: var(--spacing-4); border-bottom: 1px solid var(--border);">
52
+ <a href="#" class="font-semibold" style="font-size: var(--font-size-lg); color: var(--text); text-decoration: none;">{{TITLE}}</a>
53
+ <div class="flex items-center gap-3 flex-wrap">
54
+ <label for="theme-select" class="sr-only">Theme</label>
55
+ <select id="theme-select" class="form-control" style="width: auto; min-width: 12rem;" aria-label="Theme">
56
+ <option value="system">System</option>
57
+ <optgroup label="Dark themes">
58
+ <option value="github-dark-classic">GitHub Dark Classic</option>
59
+ <option value="shades-of-purple">Shades of Purple</option>
60
+ <option value="sandstorm-classic">Sandstorm Classic</option>
61
+ <option value="rocky-blood-orange">Rocky Blood Orange</option>
62
+ <option value="minimal-dark-neon-yellow">Minimal Dark Neon Yellow</option>
63
+ <option value="hack-the-box">Hack The Box</option>
64
+ <option value="pink-cat-boo">Pink Cat Boo</option>
65
+ </optgroup>
66
+ <optgroup label="Light themes">
67
+ <option value="github-light">GitHub Light</option>
68
+ <option value="red-velvet-cupcake">Red Velvet Cupcake</option>
69
+ <option value="orangy-one-light">Orangy One Light</option>
70
+ <option value="sunflower">Sunflower</option>
71
+ <option value="green-breeze-light">Green Breeze Light</option>
72
+ <option value="cute-pink">Cute Pink</option>
73
+ <option value="semi-light-purple">Semi Light Purple</option>
74
+ </optgroup>
75
+ </select>
76
+ <button type="button" class="btn btn-outline" aria-label="Open settings" onclick="window.openSettings && window.openSettings()">Settings</button>
77
+ </div>
78
+ </header>
79
+
80
+ <!-- Settings panel (same structure as main site; CSS from Rizzo) -->
81
+ <div class="settings" data-settings aria-hidden="true">
82
+ <div class="settings__overlay" data-settings-overlay aria-hidden="true"></div>
83
+ <div class="settings__panel" role="dialog" aria-modal="true" aria-labelledby="settings-title" aria-hidden="true">
84
+ <div class="settings__header">
85
+ <h2 id="settings-title" class="settings__title">Settings</h2>
86
+ <button type="button" class="settings__close" aria-label="Close settings" data-settings-close>
87
+ <svg width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2"><line x1="4" y1="4" x2="12" y2="12"></line><line x1="12" y1="4" x2="4" y2="12"></line></svg>
88
+ </button>
89
+ </div>
90
+ <div class="settings__content">
91
+ <section class="settings__section">
92
+ <h3 class="settings__section-title">Theme</h3>
93
+ <div class="settings__control">
94
+ <label for="settings-theme" class="settings__label">Theme</label>
95
+ <select id="settings-theme" class="form-control" aria-label="Theme" data-settings-theme style="width: 100%;">
96
+ <option value="system">System</option>
97
+ <optgroup label="Dark themes">
98
+ <option value="github-dark-classic">GitHub Dark Classic</option>
99
+ <option value="shades-of-purple">Shades of Purple</option>
100
+ <option value="sandstorm-classic">Sandstorm Classic</option>
101
+ <option value="rocky-blood-orange">Rocky Blood Orange</option>
102
+ <option value="minimal-dark-neon-yellow">Minimal Dark Neon Yellow</option>
103
+ <option value="hack-the-box">Hack The Box</option>
104
+ <option value="pink-cat-boo">Pink Cat Boo</option>
105
+ </optgroup>
106
+ <optgroup label="Light themes">
107
+ <option value="github-light">GitHub Light</option>
108
+ <option value="red-velvet-cupcake">Red Velvet Cupcake</option>
109
+ <option value="orangy-one-light">Orangy One Light</option>
110
+ <option value="sunflower">Sunflower</option>
111
+ <option value="green-breeze-light">Green Breeze Light</option>
112
+ <option value="cute-pink">Cute Pink</option>
113
+ <option value="semi-light-purple">Semi Light Purple</option>
114
+ </optgroup>
115
+ </select>
116
+ </div>
117
+ </section>
118
+ <section class="settings__section">
119
+ <h3 class="settings__section-title">Font Size</h3>
120
+ <div class="settings__control">
121
+ <label for="font-size-slider" class="settings__label">
122
+ <span class="settings__label-text">Adjust text size</span>
123
+ <span class="settings__label-value" data-font-size-value>100%</span>
124
+ </label>
125
+ <input type="range" id="font-size-slider" class="settings__slider" min="0.75" max="1.5" step="0.05" value="1" aria-label="Font size" data-font-size-slider style="--slider-progress: 50%;" />
126
+ <div class="settings__slider-labels"><span>Small</span><span>Default</span><span>Large</span></div>
127
+ </div>
128
+ </section>
129
+ <section class="settings__section">
130
+ <h3 class="settings__section-title">Accessibility</h3>
131
+ <div class="settings__control">
132
+ <label class="settings__checkbox-label">
133
+ <input type="checkbox" class="settings__checkbox" data-reduced-motion aria-label="Reduce motion" />
134
+ <span>Reduce motion</span>
135
+ </label>
136
+ <p class="settings__help-text">Minimize animations and transitions</p>
137
+ </div>
138
+ <div class="settings__control">
139
+ <label class="settings__checkbox-label">
140
+ <input type="checkbox" class="settings__checkbox" data-high-contrast aria-label="High contrast" />
141
+ <span>High contrast</span>
142
+ </label>
143
+ <p class="settings__help-text">Increase contrast for better visibility</p>
144
+ </div>
145
+ <div class="settings__control">
146
+ <div class="settings__label"><span class="settings__label-text">Scrollbar style</span></div>
147
+ <div class="settings__radio-group" role="radiogroup" aria-label="Scrollbar style">
148
+ <label class="settings__radio-label">
149
+ <input type="radio" name="scrollbar-style" value="thin" class="settings__radio" data-scrollbar-style aria-label="Thin scrollbar" checked />
150
+ <span>Thin</span>
151
+ </label>
152
+ <label class="settings__radio-label">
153
+ <input type="radio" name="scrollbar-style" value="thick" class="settings__radio" data-scrollbar-style aria-label="Thick scrollbar" />
154
+ <span>Thick</span>
155
+ </label>
156
+ <label class="settings__radio-label">
157
+ <input type="radio" name="scrollbar-style" value="hidden" class="settings__radio" data-scrollbar-style aria-label="Hidden scrollbars" />
158
+ <span>Hidden</span>
159
+ </label>
160
+ </div>
161
+ <p class="settings__help-text">Choose your preferred scrollbar appearance</p>
162
+ </div>
163
+ </section>
164
+ </div>
165
+ </div>
166
+ </div>
167
+
168
+
169
+
170
+
171
+
172
+
173
+ <main id="main-content" class="flex flex-col items-center justify-center text-center min-h-screen" style="padding: var(--spacing-12) var(--spacing-4); min-height: calc(100vh - 4rem);">
174
+ <h1 style="font-size: var(--font-size-3xl); margin: 0 0 var(--spacing-4) 0; color: var(--text);">Tooltip</h1>
175
+ <p style="color: var(--text-dim); margin-bottom: var(--spacing-4);">Read the full docs for this component on the main site:</p>
176
+ <p><a href="https://rizzo-css.vercel.app/docs/components/tooltip" target="_blank" rel="noopener noreferrer" class="btn btn-primary">https://rizzo-css.vercel.app/docs/components/tooltip</a></p>
177
+ <p style="margin-top: var(--spacing-8);"><a href="index.html" class="btn btn-outline">← Component list</a> <a href="../index.html" class="btn btn-outline">Home</a></p>
178
+ </main>
179
+
180
+
181
+
182
+
183
+
184
+
185
+ <script src="../js/main.js"></script>
186
+ </body>
187
+ </html>
@@ -9,12 +9,12 @@
9
9
  (function() {
10
10
  try {
11
11
  var savedTheme = localStorage.getItem('theme');
12
- var defaultDark = 'github-dark-classic';
13
- var defaultLight = 'github-light';
12
+ var defaultDark = '{{DEFAULT_DARK}}';
13
+ var defaultLight = '{{DEFAULT_LIGHT}}';
14
14
  var resolvedTheme;
15
15
  if (!savedTheme) {
16
16
  var initialTheme = document.documentElement.getAttribute('data-theme');
17
- resolvedTheme = initialTheme || (window.matchMedia('(prefers-color-scheme: dark)').matches ? defaultDark : defaultLight);
17
+ resolvedTheme = (initialTheme && initialTheme !== 'system') ? initialTheme : (window.matchMedia('(prefers-color-scheme: dark)').matches ? defaultDark : defaultLight);
18
18
  } else if (savedTheme === 'system') {
19
19
  resolvedTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? defaultDark : defaultLight;
20
20
  } else {
@@ -165,13 +165,18 @@
165
165
  </div>
166
166
  </div>
167
167
 
168
+
169
+
170
+
171
+
172
+
168
173
  <main id="main-content" class="flex flex-col items-center justify-center text-center min-h-screen" style="padding: var(--spacing-12) var(--spacing-4); min-height: calc(100vh - 4rem);">
169
174
  <span class="badge badge--primary badge--sm mb-4">Vanilla JS + Rizzo CSS</span>
170
175
  <h1 style="font-size: clamp(2.5rem, 8vw, 4rem); font-weight: 800; line-height: 1.1; margin: 0 0 var(--spacing-4) 0; color: var(--text);">Build something great</h1>
171
176
  <p style="font-size: var(--font-size-xl); color: var(--text-dim); max-width: 42ch; margin: 0 0 var(--spacing-8) 0; line-height: var(--line-height-relaxed);">Same design system as Astro and Svelte — 14 themes, 24 components, full keyboard and screen reader support.</p>
172
177
  <div class="flex flex-wrap justify-center gap-4 mb-12">
173
- <a href="https://rizzo-css.vercel.app/docs/getting-started" class="btn btn-primary" target="_blank" rel="noopener noreferrer">Get started</a>
174
- <a href="https://rizzo-css.vercel.app/docs/components" class="btn btn-outline" target="_blank" rel="noopener noreferrer">Components</a>
178
+ <a href="components/index.html" class="btn btn-primary">Component showcase</a>
179
+ <a href="https://rizzo-css.vercel.app/docs/getting-started" class="btn btn-outline" target="_blank" rel="noopener noreferrer">Get started (docs)</a>
175
180
  <button type="button" class="btn btn-outline" onclick="window.showToast && window.showToast('Hello from Rizzo!', { variant: 'success' });">Show toast</button>
176
181
  </div>
177
182
  <div class="flex flex-wrap justify-center gap-3 mb-16">
@@ -180,10 +185,15 @@
180
185
  <span class="badge badge--info">WCAG AA</span>
181
186
  </div>
182
187
  <footer style="margin-top: auto; padding-top: var(--spacing-8); color: var(--text-dim); font-size: var(--font-size-sm);">
183
- <a href="https://rizzo-css.vercel.app" class="text-accent" style="color: var(--accent);">Rizzo CSS</a> — design system for the web
188
+ <a href="https://rizzo-css.vercel.app" style="color: var(--accent);">Rizzo CSS</a> — design system for the web. <a href="https://rizzo-css.vercel.app/docs" target="_blank" rel="noopener noreferrer">Full docs</a>.
184
189
  </footer>
185
190
  </main>
186
191
 
192
+
193
+
194
+
195
+
196
+
187
197
  <script src="js/main.js"></script>
188
198
  </body>
189
199
  </html>
@@ -120,8 +120,8 @@
120
120
 
121
121
  // --- Theme (applyTheme, sync selects, system listener) ---
122
122
  var KEY = 'theme';
123
- var defaultDark = 'github-dark-classic';
124
- var defaultLight = 'github-light';
123
+ var defaultDark = '{{DEFAULT_DARK}}';
124
+ var defaultLight = '{{DEFAULT_LIGHT}}';
125
125
  function resolveSystem() {
126
126
  return window.matchMedia('(prefers-color-scheme: dark)').matches ? defaultDark : defaultLight;
127
127
  }
@@ -138,7 +138,8 @@
138
138
  function syncThemeSelects() {
139
139
  var stored = null;
140
140
  try { stored = localStorage.getItem(KEY); } catch (e) {}
141
- var value = stored || 'system';
141
+ var currentAttr = document.documentElement.getAttribute('data-theme');
142
+ var value = stored || currentAttr || 'system';
142
143
  var headerSelect = document.getElementById('theme-select');
143
144
  var settingsSelect = document.getElementById('settings-theme');
144
145
  if (headerSelect) headerSelect.value = value;