rizzo-css 0.0.53 → 0.0.55

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 (252) hide show
  1. package/README.md +13 -8
  2. package/bin/rizzo-css.js +522 -120
  3. package/dist/rizzo.min.css +40 -16
  4. package/package.json +5 -4
  5. package/scaffold/astro/AlertDialog.astro +86 -0
  6. package/scaffold/astro/AspectRatio.astro +22 -0
  7. package/scaffold/astro/ButtonGroup.astro +16 -0
  8. package/scaffold/astro/Collapsible.astro +69 -0
  9. package/scaffold/astro/ContextMenu.astro +58 -0
  10. package/scaffold/astro/CopyToClipboard.astro +4 -0
  11. package/scaffold/astro/Dashboard.astro +74 -0
  12. package/scaffold/astro/Empty.astro +23 -0
  13. package/scaffold/astro/HoverCard.astro +64 -0
  14. package/scaffold/astro/Kbd.astro +14 -0
  15. package/scaffold/astro/Label.astro +24 -0
  16. package/scaffold/astro/Modal.astro +17 -2
  17. package/scaffold/astro/Popover.astro +62 -0
  18. package/scaffold/astro/ResizableHandle.astro +16 -0
  19. package/scaffold/astro/ResizablePane.astro +20 -0
  20. package/scaffold/astro/ResizablePaneGroup.astro +84 -0
  21. package/scaffold/astro/ScrollArea.astro +19 -0
  22. package/scaffold/astro/Separator.astro +18 -0
  23. package/scaffold/astro/Settings.astro +10 -2
  24. package/scaffold/astro/Sheet.astro +90 -0
  25. package/scaffold/astro/Skeleton.astro +16 -0
  26. package/scaffold/astro/Slider.astro +75 -0
  27. package/scaffold/astro/SoundEffects.astro +1 -0
  28. package/scaffold/astro/Switch.astro +37 -0
  29. package/scaffold/astro/Tabs.astro +1 -1
  30. package/scaffold/astro/ThemeSwitcher.astro +11 -4
  31. package/scaffold/astro/Toggle.astro +35 -0
  32. package/scaffold/astro/ToggleGroup.astro +24 -0
  33. package/scaffold/astro/base/README-RIZZO.md +55 -0
  34. package/scaffold/{astro-core → astro/base}/src/pages/index.astro +1 -1
  35. package/scaffold/astro/variants/dashboard/src/layouts/Layout.astro +85 -0
  36. package/scaffold/astro/variants/dashboard/src/pages/index.astro +110 -0
  37. package/scaffold/astro/variants/docs/src/layouts/Layout.astro +81 -0
  38. package/scaffold/astro/variants/docs/src/pages/docs/getting-started.astro +36 -0
  39. package/scaffold/astro/variants/docs/src/pages/index.astro +38 -0
  40. package/scaffold/{astro-core → astro/variants/full}/README-RIZZO.md +2 -1
  41. package/scaffold/astro/variants/full/astro.config.mjs +5 -0
  42. package/scaffold/astro/variants/full/dist/_noop-middleware.mjs +3 -0
  43. package/scaffold/astro/variants/full/dist/chunks/astro/server_9Mzx7luy.mjs +6023 -0
  44. package/scaffold/astro/variants/full/dist/chunks/astro_BOYUKg7r.mjs +1 -0
  45. package/scaffold/astro/variants/full/dist/favicon.svg +18 -0
  46. package/scaffold/astro/variants/full/dist/manifest_DXpJmqSX.mjs +154 -0
  47. package/scaffold/astro/variants/full/dist/noop-entrypoint.mjs +3 -0
  48. package/scaffold/astro/variants/full/dist/pages/index.astro.mjs +87 -0
  49. package/scaffold/astro/variants/full/dist/renderers.mjs +3 -0
  50. package/scaffold/astro/variants/full/gitignore +24 -0
  51. package/scaffold/astro/variants/full/node_modules/.astro/data-store.json +1 -0
  52. package/scaffold/astro/variants/full/node_modules/.vite/deps/_metadata.json +31 -0
  53. package/scaffold/astro/variants/full/node_modules/.vite/deps/astro___aria-query.js +6776 -0
  54. package/scaffold/astro/variants/full/node_modules/.vite/deps/astro___aria-query.js.map +7 -0
  55. package/scaffold/astro/variants/full/node_modules/.vite/deps/astro___axobject-query.js +3754 -0
  56. package/scaffold/astro/variants/full/node_modules/.vite/deps/astro___axobject-query.js.map +7 -0
  57. package/scaffold/astro/variants/full/node_modules/.vite/deps/astro___cssesc.js +99 -0
  58. package/scaffold/astro/variants/full/node_modules/.vite/deps/astro___cssesc.js.map +7 -0
  59. package/scaffold/astro/variants/full/node_modules/.vite/deps/chunk-BUSYA2B4.js +8 -0
  60. package/scaffold/astro/variants/full/node_modules/.vite/deps/chunk-BUSYA2B4.js.map +7 -0
  61. package/scaffold/astro/variants/full/node_modules/.vite/deps/package.json +3 -0
  62. package/scaffold/astro/variants/full/package.json +13 -0
  63. package/scaffold/astro/variants/full/public/.gitkeep +0 -0
  64. package/scaffold/astro/variants/full/public/favicon.svg +18 -0
  65. package/scaffold/astro/variants/full/src/components/rizzo/CopyToClipboard.astro +157 -0
  66. package/scaffold/astro/variants/full/src/components/rizzo/icons/Check.astro +29 -0
  67. package/scaffold/astro/variants/full/src/components/rizzo/icons/Copy.astro +30 -0
  68. package/scaffold/astro/variants/full/src/layouts/Layout.astro +34 -0
  69. package/scaffold/astro/variants/full/src/pages/index.astro +107 -0
  70. package/scaffold/astro/variants/full/tsconfig.json +5 -0
  71. package/scaffold/landing/index.html +13 -0
  72. package/scaffold/minimal/index.html +13 -0
  73. package/scaffold/shared/navbar-vanilla.html +59 -0
  74. package/scaffold/shared/sound-effects-inline.js +6 -1
  75. package/scaffold/starter/index.html +13 -0
  76. package/scaffold/svelte/AlertDialog.svelte +55 -0
  77. package/scaffold/svelte/AspectRatio.svelte +21 -0
  78. package/scaffold/svelte/BackToTop.svelte +1 -0
  79. package/scaffold/svelte/ButtonGroup.svelte +16 -0
  80. package/scaffold/svelte/Collapsible.svelte +57 -0
  81. package/scaffold/svelte/ContextMenu.svelte +60 -0
  82. package/scaffold/svelte/Dashboard.svelte +87 -0
  83. package/scaffold/svelte/Empty.svelte +36 -0
  84. package/scaffold/svelte/HoverCard.svelte +55 -0
  85. package/scaffold/svelte/Kbd.svelte +13 -0
  86. package/scaffold/svelte/Label.svelte +19 -0
  87. package/scaffold/svelte/Popover.svelte +59 -0
  88. package/scaffold/svelte/ResizableHandle.svelte +13 -0
  89. package/scaffold/svelte/ResizablePane.svelte +16 -0
  90. package/scaffold/svelte/ResizablePaneGroup.svelte +92 -0
  91. package/scaffold/svelte/ScrollArea.svelte +18 -0
  92. package/scaffold/svelte/Separator.svelte +14 -0
  93. package/scaffold/svelte/Sheet.svelte +62 -0
  94. package/scaffold/svelte/Skeleton.svelte +19 -0
  95. package/scaffold/svelte/Slider.svelte +57 -0
  96. package/scaffold/svelte/SoundEffects.svelte +3 -0
  97. package/scaffold/svelte/Switch.svelte +35 -0
  98. package/scaffold/svelte/Tabs.svelte +1 -1
  99. package/scaffold/svelte/Toggle.svelte +41 -0
  100. package/scaffold/svelte/ToggleGroup.svelte +30 -0
  101. package/scaffold/svelte/base/README-RIZZO.md +55 -0
  102. package/scaffold/{svelte-core → svelte/base}/src/routes/+page.svelte +1 -1
  103. package/scaffold/svelte/base/static/.gitkeep +0 -0
  104. package/scaffold/svelte/index.ts +21 -0
  105. package/scaffold/svelte/variants/dashboard/src/routes/+layout.svelte +64 -0
  106. package/scaffold/svelte/variants/dashboard/src/routes/+page.svelte +104 -0
  107. package/scaffold/svelte/variants/docs/src/routes/+layout.svelte +60 -0
  108. package/scaffold/svelte/variants/docs/src/routes/+page.svelte +34 -0
  109. package/scaffold/svelte/variants/docs/src/routes/docs/getting-started/+page.svelte +31 -0
  110. package/scaffold/{svelte-core → svelte/variants/full}/README-RIZZO.md +2 -1
  111. package/scaffold/svelte/variants/full/gitignore +10 -0
  112. package/scaffold/svelte/variants/full/package.json +20 -0
  113. package/scaffold/svelte/variants/full/src/app.d.ts +11 -0
  114. package/scaffold/svelte/variants/full/src/app.html +16 -0
  115. package/scaffold/svelte/variants/full/src/routes/+layout.svelte +1 -0
  116. package/scaffold/svelte/variants/full/src/routes/+page.svelte +105 -0
  117. package/scaffold/svelte/variants/full/static/.gitkeep +0 -0
  118. package/scaffold/svelte/variants/full/svelte.config.js +10 -0
  119. package/scaffold/svelte/variants/full/tsconfig.json +11 -0
  120. package/scaffold/vanilla/README-RIZZO.md +7 -6
  121. package/scaffold/vanilla/components/accordion.html +71 -64
  122. package/scaffold/vanilla/components/alert-dialog.html +640 -0
  123. package/scaffold/vanilla/components/alert.html +71 -64
  124. package/scaffold/vanilla/components/aspect-ratio.html +640 -0
  125. package/scaffold/vanilla/components/avatar.html +71 -64
  126. package/scaffold/vanilla/components/back-to-top.html +71 -64
  127. package/scaffold/vanilla/components/badge.html +71 -64
  128. package/scaffold/vanilla/components/breadcrumb.html +71 -64
  129. package/scaffold/vanilla/components/button-group.html +640 -0
  130. package/scaffold/vanilla/components/button.html +71 -64
  131. package/scaffold/vanilla/components/cards.html +71 -64
  132. package/scaffold/vanilla/components/collapsible.html +640 -0
  133. package/scaffold/vanilla/components/context-menu.html +640 -0
  134. package/scaffold/vanilla/components/copy-to-clipboard.html +71 -64
  135. package/scaffold/vanilla/components/dashboard.html +640 -0
  136. package/scaffold/vanilla/components/divider.html +71 -64
  137. package/scaffold/vanilla/components/docs-sidebar.html +71 -64
  138. package/scaffold/vanilla/components/dropdown.html +71 -64
  139. package/scaffold/vanilla/components/empty.html +640 -0
  140. package/scaffold/vanilla/components/font-switcher.html +71 -64
  141. package/scaffold/vanilla/components/footer.html +71 -64
  142. package/scaffold/vanilla/components/forms.html +71 -64
  143. package/scaffold/vanilla/components/hover-card.html +640 -0
  144. package/scaffold/vanilla/components/icons.html +71 -64
  145. package/scaffold/vanilla/components/index.html +91 -64
  146. package/scaffold/vanilla/components/kbd.html +640 -0
  147. package/scaffold/vanilla/components/label.html +640 -0
  148. package/scaffold/vanilla/components/modal.html +71 -64
  149. package/scaffold/vanilla/components/navbar.html +71 -64
  150. package/scaffold/vanilla/components/pagination.html +71 -64
  151. package/scaffold/vanilla/components/popover.html +640 -0
  152. package/scaffold/vanilla/components/progress-bar.html +71 -64
  153. package/scaffold/vanilla/components/resizable.html +640 -0
  154. package/scaffold/vanilla/components/scroll-area.html +640 -0
  155. package/scaffold/vanilla/components/search.html +71 -64
  156. package/scaffold/vanilla/components/separator.html +640 -0
  157. package/scaffold/vanilla/components/settings.html +71 -64
  158. package/scaffold/vanilla/components/sheet.html +640 -0
  159. package/scaffold/vanilla/components/skeleton.html +640 -0
  160. package/scaffold/vanilla/components/slider.html +640 -0
  161. package/scaffold/vanilla/components/sound-effects.html +71 -64
  162. package/scaffold/vanilla/components/spinner.html +71 -64
  163. package/scaffold/vanilla/components/switch.html +640 -0
  164. package/scaffold/vanilla/components/table.html +71 -64
  165. package/scaffold/vanilla/components/tabs.html +71 -64
  166. package/scaffold/vanilla/components/theme-switcher.html +71 -64
  167. package/scaffold/vanilla/components/toast.html +71 -64
  168. package/scaffold/vanilla/components/toggle-group.html +640 -0
  169. package/scaffold/vanilla/components/toggle.html +640 -0
  170. package/scaffold/vanilla/components/tooltip.html +71 -64
  171. package/scaffold/vanilla/index.html +73 -66
  172. package/scaffold/vanilla/variants/dashboard/index.html +45 -0
  173. package/scaffold/vanilla/variants/docs/index.html +36 -0
  174. package/scaffold/vanilla/variants/full/components/accordion.html +592 -0
  175. package/scaffold/vanilla/variants/full/components/alert.html +592 -0
  176. package/scaffold/vanilla/variants/full/components/avatar.html +592 -0
  177. package/scaffold/vanilla/variants/full/components/back-to-top.html +592 -0
  178. package/scaffold/vanilla/variants/full/components/badge.html +592 -0
  179. package/scaffold/vanilla/variants/full/components/breadcrumb.html +592 -0
  180. package/scaffold/vanilla/variants/full/components/button.html +592 -0
  181. package/scaffold/vanilla/variants/full/components/cards.html +592 -0
  182. package/scaffold/vanilla/variants/full/components/copy-to-clipboard.html +592 -0
  183. package/scaffold/vanilla/variants/full/components/dashboard.html +592 -0
  184. package/scaffold/vanilla/variants/full/components/divider.html +592 -0
  185. package/scaffold/vanilla/variants/full/components/docs-sidebar.html +592 -0
  186. package/scaffold/vanilla/variants/full/components/dropdown.html +592 -0
  187. package/scaffold/vanilla/variants/full/components/font-switcher.html +592 -0
  188. package/scaffold/vanilla/variants/full/components/footer.html +592 -0
  189. package/scaffold/vanilla/variants/full/components/forms.html +592 -0
  190. package/scaffold/vanilla/variants/full/components/icons.html +592 -0
  191. package/scaffold/vanilla/variants/full/components/index.html +625 -0
  192. package/scaffold/vanilla/variants/full/components/modal.html +592 -0
  193. package/scaffold/vanilla/variants/full/components/navbar.html +592 -0
  194. package/scaffold/vanilla/variants/full/components/pagination.html +592 -0
  195. package/scaffold/vanilla/variants/full/components/progress-bar.html +592 -0
  196. package/scaffold/vanilla/variants/full/components/search.html +592 -0
  197. package/scaffold/vanilla/variants/full/components/settings.html +592 -0
  198. package/scaffold/vanilla/variants/full/components/skeleton.html +592 -0
  199. package/scaffold/vanilla/variants/full/components/sound-effects.html +592 -0
  200. package/scaffold/vanilla/variants/full/components/spinner.html +592 -0
  201. package/scaffold/vanilla/variants/full/components/switch.html +592 -0
  202. package/scaffold/vanilla/variants/full/components/table.html +592 -0
  203. package/scaffold/vanilla/variants/full/components/tabs.html +592 -0
  204. package/scaffold/vanilla/variants/full/components/theme-switcher.html +592 -0
  205. package/scaffold/vanilla/variants/full/components/toast.html +592 -0
  206. package/scaffold/vanilla/variants/full/components/tooltip.html +592 -0
  207. package/scaffold/vanilla/variants/full/index.html +682 -0
  208. package/scaffold/vanilla/variants/full/js/main.js +989 -0
  209. package/scaffold/astro-core/.astro/content-assets.mjs +0 -1
  210. package/scaffold/astro-core/.astro/content-modules.mjs +0 -1
  211. package/scaffold/astro-core/.astro/content.d.ts +0 -199
  212. package/scaffold/astro-core/.astro/types.d.ts +0 -2
  213. package/scaffold/astro-core/.env.example +0 -3
  214. package/scaffold/svelte-core/.env.example +0 -3
  215. /package/scaffold/{astro-core → astro/base}/astro.config.mjs +0 -0
  216. /package/scaffold/{astro-core → astro/base}/dist/.gitkeep +0 -0
  217. /package/scaffold/{astro-core → astro/base}/dist/_noop-middleware.mjs +0 -0
  218. /package/scaffold/{astro-core → astro/base}/dist/chunks/astro/server_9Mzx7luy.mjs +0 -0
  219. /package/scaffold/{astro-core → astro/base}/dist/chunks/astro_BOYUKg7r.mjs +0 -0
  220. /package/scaffold/{astro-core → astro/base}/dist/favicon.svg +0 -0
  221. /package/scaffold/{astro-core → astro/base}/dist/manifest_DXpJmqSX.mjs +0 -0
  222. /package/scaffold/{astro-core → astro/base}/dist/noop-entrypoint.mjs +0 -0
  223. /package/scaffold/{astro-core → astro/base}/dist/pages/index.astro.mjs +0 -0
  224. /package/scaffold/{astro-core → astro/base}/dist/renderers.mjs +0 -0
  225. /package/scaffold/{astro-core → astro/base}/gitignore +0 -0
  226. /package/scaffold/{astro-core → astro/base}/node_modules/.astro/data-store.json +0 -0
  227. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/_metadata.json +0 -0
  228. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/astro___aria-query.js +0 -0
  229. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/astro___aria-query.js.map +0 -0
  230. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/astro___axobject-query.js +0 -0
  231. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/astro___axobject-query.js.map +0 -0
  232. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/astro___cssesc.js +0 -0
  233. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/astro___cssesc.js.map +0 -0
  234. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/chunk-BUSYA2B4.js +0 -0
  235. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/chunk-BUSYA2B4.js.map +0 -0
  236. /package/scaffold/{astro-core → astro/base}/node_modules/.vite/deps/package.json +0 -0
  237. /package/scaffold/{astro-core → astro/base}/package.json +0 -0
  238. /package/scaffold/{astro-core → astro/base}/public/.gitkeep +0 -0
  239. /package/scaffold/{astro-core → astro/base}/public/favicon.svg +0 -0
  240. /package/scaffold/{astro-core → astro/base}/src/components/rizzo/CopyToClipboard.astro +0 -0
  241. /package/scaffold/{astro-core → astro/base}/src/components/rizzo/icons/Check.astro +0 -0
  242. /package/scaffold/{astro-core → astro/base}/src/components/rizzo/icons/Copy.astro +0 -0
  243. /package/scaffold/{astro-core → astro/base}/src/layouts/Layout.astro +0 -0
  244. /package/scaffold/{astro-core → astro/base}/tsconfig.json +0 -0
  245. /package/scaffold/{svelte-core/static → astro/variants/full/dist}/.gitkeep +0 -0
  246. /package/scaffold/{svelte-core → svelte/base}/gitignore +0 -0
  247. /package/scaffold/{svelte-core → svelte/base}/package.json +0 -0
  248. /package/scaffold/{svelte-core → svelte/base}/src/app.d.ts +0 -0
  249. /package/scaffold/{svelte-core → svelte/base}/src/app.html +0 -0
  250. /package/scaffold/{svelte-core → svelte/base}/src/routes/+layout.svelte +0 -0
  251. /package/scaffold/{svelte-core → svelte/base}/svelte.config.js +0 -0
  252. /package/scaffold/{svelte-core → svelte/base}/tsconfig.json +0 -0
@@ -23,6 +23,9 @@
23
23
  if (!target) return;
24
24
  soundEffects = target.checked;
25
25
  localStorage?.setItem('soundEffects', target.checked ? 'true' : 'false');
26
+ if (target.checked && typeof window !== 'undefined') {
27
+ window.dispatchEvent(new CustomEvent('rizzo-sound-effects-change'));
28
+ }
26
29
  }
27
30
  </script>
28
31
 
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ interface Props {
3
+ id?: string;
4
+ name?: string;
5
+ checked?: boolean;
6
+ disabled?: boolean;
7
+ label?: string;
8
+ class?: string;
9
+ }
10
+ let {
11
+ id,
12
+ name,
13
+ checked = $bindable(false),
14
+ disabled = false,
15
+ label,
16
+ class: className = '',
17
+ }: Props = $props();
18
+ </script>
19
+
20
+ <label class="switch {className}" for={id}>
21
+ <input
22
+ type="checkbox"
23
+ {id}
24
+ {name}
25
+ bind:checked
26
+ {disabled}
27
+ class="switch__input"
28
+ role="switch"
29
+ aria-checked={checked}
30
+ />
31
+ <span class="switch__track" aria-hidden="true">
32
+ <span class="switch__thumb"></span>
33
+ </span>
34
+ {#if label}<span class="switch__label">{label}</span>{/if}
35
+ </label>
@@ -92,7 +92,7 @@
92
92
  onkeydown={(e) => handleKeydown(e, index)}
93
93
  >
94
94
  {#if tab.icon}
95
- <img src={tab.icon} alt="" class="tabs__tab-icon" width="20" height="20" />
95
+ <img src={tab.icon} alt="" class="tabs__tab-icon" width="20" height="20" loading="lazy" aria-hidden="true" />
96
96
  {/if}
97
97
  {tab.label}
98
98
  </span>
@@ -0,0 +1,41 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ interface Props {
5
+ pressed?: boolean;
6
+ disabled?: boolean;
7
+ type?: 'button' | 'submit' | 'reset';
8
+ value?: string;
9
+ ariaLabel?: string;
10
+ class?: string;
11
+ children?: Snippet;
12
+ }
13
+
14
+ let {
15
+ pressed = $bindable(false),
16
+ disabled = false,
17
+ type = 'button',
18
+ value,
19
+ ariaLabel,
20
+ class: className = '',
21
+ children,
22
+ }: Props = $props();
23
+
24
+ const pressedClass = $derived(pressed ? 'toggle--pressed' : '');
25
+ function handleClick() {
26
+ if (!disabled) pressed = !pressed;
27
+ }
28
+ </script>
29
+
30
+ <button
31
+ {type}
32
+ class="toggle {pressedClass} {className}"
33
+ aria-pressed={pressed}
34
+ {disabled}
35
+ {value}
36
+ aria-label={ariaLabel}
37
+ data-toggle
38
+ onclick={handleClick}
39
+ >
40
+ {@render children?.()}
41
+ </button>
@@ -0,0 +1,30 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+
4
+ interface Props {
5
+ type?: 'single' | 'multiple';
6
+ orientation?: 'horizontal' | 'vertical';
7
+ class?: string;
8
+ children?: Snippet;
9
+ }
10
+
11
+ let {
12
+ type = 'single',
13
+ orientation = 'horizontal',
14
+ class: className = '',
15
+ children,
16
+ }: Props = $props();
17
+
18
+ const orientationClass = $derived(orientation === 'vertical' ? 'toggle-group--vertical' : '');
19
+ const role = $derived(type === 'single' ? 'radiogroup' : 'group');
20
+ </script>
21
+
22
+ <div
23
+ class="toggle-group {orientationClass} {className}"
24
+ role={role}
25
+ aria-label="Toggle group"
26
+ data-toggle-group
27
+ data-toggle-type={type}
28
+ >
29
+ {@render children?.()}
30
+ </div>
@@ -0,0 +1,55 @@
1
+ # SvelteKit + Rizzo CSS
2
+
3
+ ```
4
+ /\___/\
5
+ __( o o )__
6
+ ( =^= )
7
+ _/ ~ \_
8
+ / \_____/ \
9
+ ____ ___ _____________ ____ ____ ____
10
+ | _ \|_ _|__ /__ / _ \ / ___/ ___/ ___|
11
+ | |_) || | / / / / | | | | | \___ \___ \
12
+ | _ < | | / /_ / /| |_| | | |___ ___) |__) |
13
+ |_| \_\___/____/____\___/ \____|____/____/
14
+ Design system · Vanilla · Astro · Svelte
15
+ ```
16
+
17
+ SvelteKit project with Rizzo CSS. Scaffolded with `npx rizzo-css init` when you chose **Create new** and Svelte, then **Landing**, **Docs**, **Dashboard**, or **Full**. **Full** = clone of the docs site. **Landing** / **Docs** / **Dashboard** = base + component picker (all 56 or pick). Same template choice for **Add to existing** (`npx rizzo-css add`).
18
+
19
+ ## Setup
20
+
21
+ 1. Copy environment example (optional):
22
+ ```bash
23
+ cp .env.example .env
24
+ ```
25
+
26
+ 2. Install dependencies:
27
+ ```bash
28
+ pnpm install
29
+ # or: npm install
30
+ ```
31
+
32
+ 3. Start the dev server:
33
+ ```bash
34
+ pnpm dev
35
+ ```
36
+
37
+ ## Project structure
38
+
39
+ - `svelte.config.js` — SvelteKit configuration
40
+ - `src/app.html` — HTML shell with Rizzo CSS and theme (edit `data-theme` for default)
41
+ - `src/routes/+layout.svelte` — Root layout
42
+ - `src/routes/+page.svelte` — Home page
43
+ - **Navbar** — Flat links (Docs, Components, Blocks, Themes, Colors); Search and Settings in the scaffold
44
+ - `static/css/rizzo.min.css` — Rizzo CSS bundle (added by CLI; font URLs point to `/assets/fonts/`)
45
+ - `static/assets/fonts/` — Rizzo font files (added by CLI)
46
+ - `README-RIZZO.md` — This file (scaffold docs; does not replace your project README)
47
+ - `LICENSE-RIZZO` — Rizzo CSS license (does not replace your project LICENSE)
48
+
49
+ ## Commands
50
+
51
+ - `pnpm dev` — Start dev server
52
+ - `pnpm build` — Build for production
53
+ - `pnpm preview` — Preview production build
54
+
55
+ Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
@@ -32,7 +32,7 @@
32
32
  </div>
33
33
  <div class="home__card home__card--featured">
34
34
  <span class="home__card-icon" aria-hidden="true">Components</span>
35
- <h3>34 ready components</h3>
35
+ <h3>All components</h3>
36
36
  <p>Navbar, Settings, Theme Switcher, Font Switcher, Modal, Dropdown, Tabs, Forms, and more — all accessible and themeable.</p>
37
37
  </div>
38
38
  </div>
File without changes
@@ -41,4 +41,25 @@ export { default as DocsSidebar } from './DocsSidebar.svelte';
41
41
  export { default as Navbar } from './Navbar.svelte';
42
42
  export { default as Settings } from './Settings.svelte';
43
43
  export { default as Search } from './Search.svelte';
44
+ export { default as Skeleton } from './Skeleton.svelte';
45
+ export { default as Switch } from './Switch.svelte';
44
46
  export { default as BackToTop } from './BackToTop.svelte';
47
+ export { default as Label } from './Label.svelte';
48
+ export { default as Kbd } from './Kbd.svelte';
49
+ export { default as Collapsible } from './Collapsible.svelte';
50
+ export { default as AlertDialog } from './AlertDialog.svelte';
51
+ export { default as AspectRatio } from './AspectRatio.svelte';
52
+ export { default as ButtonGroup } from './ButtonGroup.svelte';
53
+ export { default as Empty } from './Empty.svelte';
54
+ export { default as Separator } from './Separator.svelte';
55
+ export { default as Slider } from './Slider.svelte';
56
+ export { default as Sheet } from './Sheet.svelte';
57
+ export { default as Popover } from './Popover.svelte';
58
+ export { default as Toggle } from './Toggle.svelte';
59
+ export { default as ToggleGroup } from './ToggleGroup.svelte';
60
+ export { default as ScrollArea } from './ScrollArea.svelte';
61
+ export { default as HoverCard } from './HoverCard.svelte';
62
+ export { default as ContextMenu } from './ContextMenu.svelte';
63
+ export { default as ResizablePaneGroup } from './ResizablePaneGroup.svelte';
64
+ export { default as ResizablePane } from './ResizablePane.svelte';
65
+ export { default as ResizableHandle } from './ResizableHandle.svelte';
@@ -0,0 +1,64 @@
1
+ <script lang="ts">
2
+ let { children } = $props();
3
+ </script>
4
+
5
+ <div class="dashboard">
6
+ <aside class="dashboard__sidebar" aria-label="Dashboard navigation">
7
+ <nav class="dashboard__nav">
8
+ <a href="/" class="dashboard__nav-link dashboard__nav-link--active" aria-current="page">Dashboard</a>
9
+ <a href="/" class="dashboard__nav-link">Items</a>
10
+ <a href="/" class="dashboard__nav-link">Settings</a>
11
+ </nav>
12
+ </aside>
13
+ <main id="main-content" class="dashboard__main">
14
+ {@render children()}
15
+ </main>
16
+ </div>
17
+
18
+ <style>
19
+ .dashboard {
20
+ display: flex;
21
+ min-height: 100vh;
22
+ }
23
+ .dashboard__sidebar {
24
+ width: 16rem;
25
+ flex-shrink: 0;
26
+ border-right: 1px solid var(--border);
27
+ padding: var(--spacing-4);
28
+ background: var(--background-alt);
29
+ }
30
+ .dashboard__nav {
31
+ display: flex;
32
+ flex-direction: column;
33
+ gap: var(--spacing-1);
34
+ }
35
+ .dashboard__nav-link {
36
+ display: block;
37
+ padding: var(--spacing-2) var(--spacing-3);
38
+ border-radius: var(--radius-md);
39
+ color: var(--text);
40
+ text-decoration: none;
41
+ }
42
+ .dashboard__nav-link:hover {
43
+ background: var(--background);
44
+ }
45
+ .dashboard__nav-link--active {
46
+ background: var(--accent);
47
+ color: var(--accent-text);
48
+ }
49
+ .dashboard__main {
50
+ flex: 1;
51
+ padding: var(--spacing-6);
52
+ overflow: auto;
53
+ }
54
+ @media (max-width: 768px) {
55
+ .dashboard {
56
+ flex-direction: column;
57
+ }
58
+ .dashboard__sidebar {
59
+ width: 100%;
60
+ border-right: none;
61
+ border-bottom: 1px solid var(--border);
62
+ }
63
+ }
64
+ </style>
@@ -0,0 +1,104 @@
1
+ <div class="dashboard-page">
2
+ <header class="dashboard-page__header">
3
+ <h1 class="dashboard-page__title">Dashboard</h1>
4
+ <p class="dashboard-page__subtitle">Overview of your app. Replace this with your own content.</p>
5
+ </header>
6
+
7
+ <section class="dashboard-page__stats" aria-labelledby="stats-heading">
8
+ <h2 id="stats-heading" class="sr-only">Key metrics</h2>
9
+ <div class="dashboard-page__stats-grid">
10
+ <div class="card dashboard-page__stat">
11
+ <div class="card__body">
12
+ <span class="card__label">Total users</span>
13
+ <span class="card__value">1,234</span>
14
+ </div>
15
+ </div>
16
+ <div class="card dashboard-page__stat">
17
+ <div class="card__body">
18
+ <span class="card__label">Revenue</span>
19
+ <span class="card__value">$12,345</span>
20
+ </div>
21
+ </div>
22
+ <div class="card dashboard-page__stat">
23
+ <div class="card__body">
24
+ <span class="card__label">Active</span>
25
+ <span class="card__value">89%</span>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </section>
30
+
31
+ <section class="dashboard-page__table" aria-labelledby="table-heading">
32
+ <h2 id="table-heading" class="dashboard-page__section-title">Recent activity</h2>
33
+ <div class="table-wrapper">
34
+ <table class="table">
35
+ <caption class="sr-only">Recent activity list</caption>
36
+ <thead>
37
+ <tr class="table__row">
38
+ <th scope="col" class="table__cell table__cell--header">Name</th>
39
+ <th scope="col" class="table__cell table__cell--header">Status</th>
40
+ <th scope="col" class="table__cell table__cell--header">Date</th>
41
+ </tr>
42
+ </thead>
43
+ <tbody>
44
+ <tr class="table__row">
45
+ <td class="table__cell">Item one</td>
46
+ <td class="table__cell"><span class="badge badge--success">Done</span></td>
47
+ <td class="table__cell">Today</td>
48
+ </tr>
49
+ <tr class="table__row">
50
+ <td class="table__cell">Item two</td>
51
+ <td class="table__cell"><span class="badge badge--warning">Pending</span></td>
52
+ <td class="table__cell">Yesterday</td>
53
+ </tr>
54
+ <tr class="table__row">
55
+ <td class="table__cell">Item three</td>
56
+ <td class="table__cell"><span class="badge badge--error">Failed</span></td>
57
+ <td class="table__cell">Jan 15</td>
58
+ </tr>
59
+ </tbody>
60
+ </table>
61
+ </div>
62
+ </section>
63
+ </div>
64
+
65
+ <style>
66
+ .dashboard-page__header {
67
+ margin-bottom: var(--spacing-6);
68
+ }
69
+ .dashboard-page__title {
70
+ font-size: var(--text-2xl);
71
+ font-weight: 700;
72
+ margin: 0 0 var(--spacing-1);
73
+ }
74
+ .dashboard-page__subtitle {
75
+ color: var(--text-dim);
76
+ margin: 0;
77
+ }
78
+ .dashboard-page__stats-grid {
79
+ display: grid;
80
+ grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
81
+ gap: var(--spacing-4);
82
+ margin-bottom: var(--spacing-6);
83
+ }
84
+ .dashboard-page__stat :global(.card__body) {
85
+ display: flex;
86
+ flex-direction: column;
87
+ gap: var(--spacing-1);
88
+ }
89
+ .dashboard-page__stat :global(.card__label) {
90
+ font-size: var(--text-sm);
91
+ color: var(--text-dim);
92
+ }
93
+ .dashboard-page__stat :global(.card__value) {
94
+ font-size: var(--text-xl);
95
+ font-weight: 600;
96
+ }
97
+ .dashboard-page__section-title {
98
+ font-size: var(--text-lg);
99
+ margin: 0 0 var(--spacing-4);
100
+ }
101
+ .table-wrapper {
102
+ overflow-x: auto;
103
+ }
104
+ </style>
@@ -0,0 +1,60 @@
1
+ <script lang="ts">
2
+ let { children } = $props();
3
+ </script>
4
+
5
+ <div class="docs-layout">
6
+ <aside class="docs-layout__sidebar" aria-label="Documentation navigation">
7
+ <nav class="docs-layout__nav">
8
+ <a href="/" class="docs-layout__nav-link">Home</a>
9
+ <a href="/docs/getting-started" class="docs-layout__nav-link">Getting started</a>
10
+ </nav>
11
+ </aside>
12
+ <main id="main-content" class="docs-layout__main">
13
+ {@render children()}
14
+ </main>
15
+ </div>
16
+
17
+ <style>
18
+ .docs-layout {
19
+ display: flex;
20
+ min-height: 100vh;
21
+ }
22
+ .docs-layout__sidebar {
23
+ width: 16rem;
24
+ flex-shrink: 0;
25
+ border-right: 1px solid var(--border);
26
+ padding: var(--spacing-4);
27
+ background: var(--background-alt);
28
+ }
29
+ .docs-layout__nav {
30
+ display: flex;
31
+ flex-direction: column;
32
+ gap: var(--spacing-1);
33
+ }
34
+ .docs-layout__nav-link {
35
+ display: block;
36
+ padding: var(--spacing-2) var(--spacing-3);
37
+ border-radius: var(--radius-md);
38
+ color: var(--text);
39
+ text-decoration: none;
40
+ }
41
+ .docs-layout__nav-link:hover {
42
+ background: var(--background);
43
+ }
44
+ .docs-layout__main {
45
+ flex: 1;
46
+ padding: var(--spacing-6);
47
+ max-width: 65ch;
48
+ overflow: auto;
49
+ }
50
+ @media (max-width: 768px) {
51
+ .docs-layout {
52
+ flex-direction: column;
53
+ }
54
+ .docs-layout__sidebar {
55
+ width: 100%;
56
+ border-right: none;
57
+ border-bottom: 1px solid var(--border);
58
+ }
59
+ }
60
+ </style>
@@ -0,0 +1,34 @@
1
+ <div class="docs-home">
2
+ <h1 class="docs-home__title">Documentation</h1>
3
+ <p class="docs-home__intro">
4
+ Welcome to your docs. Add more pages under <code>src/routes/docs/</code> and link them from the sidebar.
5
+ </p>
6
+ <ul class="docs-home__list">
7
+ <li><a href="/docs/getting-started">Getting started</a></li>
8
+ </ul>
9
+ </div>
10
+
11
+ <style>
12
+ .docs-home__title {
13
+ font-size: var(--text-2xl);
14
+ margin: 0 0 var(--spacing-4);
15
+ }
16
+ .docs-home__intro {
17
+ margin: 0 0 var(--spacing-4);
18
+ color: var(--text-dim);
19
+ }
20
+ .docs-home__intro :global(code) {
21
+ padding: var(--spacing-1) var(--spacing-2);
22
+ border-radius: var(--radius-sm);
23
+ background: var(--background-alt);
24
+ font-size: var(--text-sm);
25
+ }
26
+ .docs-home__list {
27
+ list-style: none;
28
+ margin: 0;
29
+ padding: 0;
30
+ }
31
+ .docs-home__list li {
32
+ margin-bottom: var(--spacing-2);
33
+ }
34
+ </style>
@@ -0,0 +1,31 @@
1
+ <article class="docs-page">
2
+ <h1 class="docs-page__title">Getting started</h1>
3
+ <p>This is a sample doc page. Edit <code>src/routes/docs/getting-started/+page.svelte</code> and add your own content.</p>
4
+ <h2>Next steps</h2>
5
+ <ul>
6
+ <li>Add more pages in <code>src/routes/docs/</code></li>
7
+ <li>Update the sidebar links in <code>src/routes/+layout.svelte</code></li>
8
+ <li>Add the DocsSidebar component via <code>npx rizzo-css add DocsSidebar</code> for a richer nav</li>
9
+ </ul>
10
+ </article>
11
+
12
+ <style>
13
+ .docs-page__title {
14
+ font-size: var(--text-2xl);
15
+ margin: 0 0 var(--spacing-4);
16
+ }
17
+ .docs-page :global(h2) {
18
+ font-size: var(--text-lg);
19
+ margin: var(--spacing-6) 0 var(--spacing-2);
20
+ }
21
+ .docs-page :global(ul) {
22
+ margin: 0 0 var(--spacing-4);
23
+ padding-left: var(--spacing-6);
24
+ }
25
+ .docs-page :global(code) {
26
+ padding: var(--spacing-1) var(--spacing-2);
27
+ border-radius: var(--radius-sm);
28
+ background: var(--background-alt);
29
+ font-size: var(--text-sm);
30
+ }
31
+ </style>
@@ -14,7 +14,7 @@
14
14
  Design system · Vanilla · Astro · Svelte
15
15
  ```
16
16
 
17
- SvelteKit project with Rizzo CSS. Scaffolded with `npx rizzo-css init --framework svelte --template core` or **manual**. When you choose **Core**, the CLI copies all 33 Rizzo components (Button, Modal, Navbar, Search, Settings, ThemeSwitcher, etc.) into this project so they work together; **Manual** lets you pick which of those to include (all are pre-selected by default).
17
+ SvelteKit project with Rizzo CSS. Scaffolded with `npx rizzo-css init` when you chose **Create new** and Svelte, then **Full** template. **Full** = clone of the Rizzo docs site (no component picker). **Landing** / **Docs** / **Dashboard** = base + component picker (all 56 or pick). Same template choice for **Add to existing** (`npx rizzo-css add`).
18
18
 
19
19
  ## Setup
20
20
 
@@ -40,6 +40,7 @@ SvelteKit project with Rizzo CSS. Scaffolded with `npx rizzo-css init --framewor
40
40
  - `src/app.html` — HTML shell with Rizzo CSS and theme (edit `data-theme` for default)
41
41
  - `src/routes/+layout.svelte` — Root layout
42
42
  - `src/routes/+page.svelte` — Home page
43
+ - **Navbar** — Flat links (Docs, Components, Blocks, Themes, Colors); Search and Settings in the scaffold
43
44
  - `static/css/rizzo.min.css` — Rizzo CSS bundle (added by CLI; font URLs point to `/assets/fonts/`)
44
45
  - `static/assets/fonts/` — Rizzo font files (added by CLI)
45
46
  - `README-RIZZO.md` — This file (scaffold docs; does not replace your project README)
@@ -0,0 +1,10 @@
1
+ node_modules
2
+ .output
3
+ .vercel
4
+ .netlify
5
+ /.svelte-kit
6
+ /build
7
+ .DS_Store
8
+ .env
9
+ .env.*
10
+ !.env.example
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "{{PROJECT_NAME}}",
3
+ "type": "module",
4
+ "version": "0.0.1",
5
+ "scripts": {
6
+ "dev": "vite dev",
7
+ "build": "vite build",
8
+ "preview": "vite preview",
9
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
10
+ },
11
+ "devDependencies": {
12
+ "@sveltejs/adapter-auto": "^7.0.0",
13
+ "@sveltejs/kit": "^2.50.2",
14
+ "@sveltejs/vite-plugin-svelte": "^6.2.4",
15
+ "svelte": "^5.49.2",
16
+ "svelte-check": "^4.3.6",
17
+ "typescript": "^5.9.3",
18
+ "vite": "^7.3.1"
19
+ }
20
+ }
@@ -0,0 +1,11 @@
1
+ // See https://svelte.dev/docs/kit/types#app.d.ts
2
+ declare global {
3
+ namespace App {
4
+ // interface Error {}
5
+ // interface Locals {}
6
+ // interface PageData {}
7
+ // interface PageState {}
8
+ // interface Platform {}
9
+ }
10
+ }
11
+ export {};
@@ -0,0 +1,16 @@
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
+ <script>
7
+ (function(){try{var s=localStorage.getItem('theme');var d='{{DEFAULT_DARK}}';var l='{{DEFAULT_LIGHT}}';var initial=document.documentElement.getAttribute('data-theme');var r=!s?((initial&&initial!=='system')?initial:(matchMedia('(prefers-color-scheme: dark)').matches?d:l)):s==='system'?(matchMedia('(prefers-color-scheme: dark)').matches?d:l):s;document.documentElement.setAttribute('data-theme',r);}catch(e){}})();
8
+ </script>
9
+ <link rel="stylesheet" href="/css/rizzo.min.css" />
10
+ {{RIZZO_SOUND_SCRIPT}}
11
+ %sveltekit.head%
12
+ </head>
13
+ <body data-sveltekit-preload-data="hover">
14
+ <div style="display: contents">%sveltekit.body%</div>
15
+ </body>
16
+ </html>