rizzo-css 0.0.16 → 0.0.18

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 (259) hide show
  1. package/README.md +4 -4
  2. package/bin/rizzo-css.js +473 -164
  3. package/dist/rizzo.min.css +4 -1
  4. package/package.json +9 -4
  5. package/scaffold/astro-minimal/.env.example +3 -0
  6. package/scaffold/astro-minimal/README.md +36 -0
  7. package/scaffold/astro-minimal/package.json +13 -0
  8. package/scaffold/astro-minimal/src/layouts/Layout.astro +28 -0
  9. package/scaffold/astro-minimal/src/pages/index.astro +10 -0
  10. package/scaffold/svelte-minimal/.env.example +3 -0
  11. package/scaffold/svelte-minimal/README.md +37 -0
  12. package/scaffold/svelte-minimal/package.json +20 -0
  13. package/scaffold/svelte-minimal/src/app.d.ts +11 -0
  14. package/scaffold/svelte-minimal/src/app.html +15 -0
  15. package/scaffold/svelte-minimal/src/routes/+layout.svelte +1 -0
  16. package/scaffold/svelte-minimal/src/routes/+page.svelte +5 -0
  17. package/scaffold/svelte-minimal/svelte.config.js +10 -0
  18. package/scaffold/svelte-minimal/tsconfig.json +11 -0
  19. package/scaffold/vanilla/README.md +4 -4
  20. package/scaffold/vanilla/components/accordion.html +18 -0
  21. package/scaffold/vanilla/components/alert.html +18 -0
  22. package/scaffold/vanilla/components/avatar.html +18 -0
  23. package/scaffold/vanilla/components/badge.html +18 -0
  24. package/scaffold/vanilla/components/breadcrumb.html +18 -0
  25. package/scaffold/vanilla/components/button.html +18 -0
  26. package/scaffold/vanilla/components/cards.html +18 -0
  27. package/scaffold/vanilla/components/copy-to-clipboard.html +18 -0
  28. package/scaffold/vanilla/components/divider.html +18 -0
  29. package/scaffold/vanilla/components/dropdown.html +18 -0
  30. package/scaffold/vanilla/components/forms.html +18 -0
  31. package/scaffold/vanilla/components/icons.html +18 -0
  32. package/scaffold/vanilla/components/index.html +18 -0
  33. package/scaffold/vanilla/components/modal.html +18 -0
  34. package/scaffold/vanilla/components/navbar.html +18 -0
  35. package/scaffold/vanilla/components/pagination.html +18 -0
  36. package/scaffold/vanilla/components/progress-bar.html +18 -0
  37. package/scaffold/vanilla/components/search.html +18 -0
  38. package/scaffold/vanilla/components/settings.html +18 -0
  39. package/scaffold/vanilla/components/spinner.html +18 -0
  40. package/scaffold/vanilla/components/table.html +18 -0
  41. package/scaffold/vanilla/components/tabs.html +18 -0
  42. package/scaffold/vanilla/components/theme-switcher.html +18 -0
  43. package/scaffold/vanilla/components/toast.html +18 -0
  44. package/scaffold/vanilla/components/tooltip.html +18 -0
  45. package/scaffold/vanilla/index.html +18 -0
  46. package/scaffold/astro-app/README.md +0 -43
  47. package/scaffold/astro-app/package.json +0 -1
  48. package/scaffold/astro-app/src/components/Accordion.astro +0 -178
  49. package/scaffold/astro-app/src/components/Alert.astro +0 -131
  50. package/scaffold/astro-app/src/components/Avatar.astro +0 -59
  51. package/scaffold/astro-app/src/components/Badge.astro +0 -24
  52. package/scaffold/astro-app/src/components/Breadcrumb.astro +0 -61
  53. package/scaffold/astro-app/src/components/Button.astro +0 -3
  54. package/scaffold/astro-app/src/components/Card.astro +0 -18
  55. package/scaffold/astro-app/src/components/Checkbox.astro +0 -38
  56. package/scaffold/astro-app/src/components/CodeBlock.astro +0 -393
  57. package/scaffold/astro-app/src/components/CopyToClipboard.astro +0 -219
  58. package/scaffold/astro-app/src/components/Divider.astro +0 -37
  59. package/scaffold/astro-app/src/components/DocsSidebar.astro +0 -51
  60. package/scaffold/astro-app/src/components/Dropdown.astro +0 -807
  61. package/scaffold/astro-app/src/components/FormGroup.astro +0 -59
  62. package/scaffold/astro-app/src/components/FrameworkSwitcher.astro +0 -72
  63. package/scaffold/astro-app/src/components/Input.astro +0 -59
  64. package/scaffold/astro-app/src/components/Modal.astro +0 -212
  65. package/scaffold/astro-app/src/components/Navbar.astro +0 -623
  66. package/scaffold/astro-app/src/components/Pagination.astro +0 -240
  67. package/scaffold/astro-app/src/components/ProgressBar.astro +0 -65
  68. package/scaffold/astro-app/src/components/Radio.astro +0 -38
  69. package/scaffold/astro-app/src/components/Search.astro +0 -1259
  70. package/scaffold/astro-app/src/components/Select.astro +0 -49
  71. package/scaffold/astro-app/src/components/Settings.astro +0 -382
  72. package/scaffold/astro-app/src/components/Spinner.astro +0 -30
  73. package/scaffold/astro-app/src/components/Table.astro +0 -181
  74. package/scaffold/astro-app/src/components/Tabs.astro +0 -223
  75. package/scaffold/astro-app/src/components/Textarea.astro +0 -58
  76. package/scaffold/astro-app/src/components/ThemeIcon.astro +0 -50
  77. package/scaffold/astro-app/src/components/ThemeSwitcher.astro +0 -504
  78. package/scaffold/astro-app/src/components/Toast.astro +0 -30
  79. package/scaffold/astro-app/src/components/Tooltip.astro +0 -32
  80. package/scaffold/astro-app/src/components/icons/Brush.astro +0 -10
  81. package/scaffold/astro-app/src/components/icons/Cake.astro +0 -11
  82. package/scaffold/astro-app/src/components/icons/Check.astro +0 -29
  83. package/scaffold/astro-app/src/components/icons/Cherry.astro +0 -11
  84. package/scaffold/astro-app/src/components/icons/ChevronDown.astro +0 -29
  85. package/scaffold/astro-app/src/components/icons/Circle.astro +0 -29
  86. package/scaffold/astro-app/src/components/icons/Close.astro +0 -30
  87. package/scaffold/astro-app/src/components/icons/Cmd.astro +0 -26
  88. package/scaffold/astro-app/src/components/icons/Copy.astro +0 -30
  89. package/scaffold/astro-app/src/components/icons/Eye.astro +0 -30
  90. package/scaffold/astro-app/src/components/icons/Filter.astro +0 -29
  91. package/scaffold/astro-app/src/components/icons/Flame.astro +0 -28
  92. package/scaffold/astro-app/src/components/icons/Flower.astro +0 -11
  93. package/scaffold/astro-app/src/components/icons/Gear.astro +0 -30
  94. package/scaffold/astro-app/src/components/icons/Heart.astro +0 -28
  95. package/scaffold/astro-app/src/components/icons/IceCream.astro +0 -31
  96. package/scaffold/astro-app/src/components/icons/Leaf.astro +0 -29
  97. package/scaffold/astro-app/src/components/icons/Lemon.astro +0 -11
  98. package/scaffold/astro-app/src/components/icons/Moon.astro +0 -29
  99. package/scaffold/astro-app/src/components/icons/Owl.astro +0 -34
  100. package/scaffold/astro-app/src/components/icons/Palette.astro +0 -33
  101. package/scaffold/astro-app/src/components/icons/Rainbow.astro +0 -31
  102. package/scaffold/astro-app/src/components/icons/Search.astro +0 -30
  103. package/scaffold/astro-app/src/components/icons/Shield.astro +0 -28
  104. package/scaffold/astro-app/src/components/icons/Snowflake.astro +0 -34
  105. package/scaffold/astro-app/src/components/icons/Sort.astro +0 -30
  106. package/scaffold/astro-app/src/components/icons/Sun.astro +0 -29
  107. package/scaffold/astro-app/src/components/icons/Sunset.astro +0 -10
  108. package/scaffold/astro-app/src/components/icons/Zap.astro +0 -9
  109. package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +0 -53
  110. package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +0 -34
  111. package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +0 -29
  112. package/scaffold/astro-app/src/components/icons/devicons/Git.astro +0 -24
  113. package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +0 -27
  114. package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +0 -25
  115. package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +0 -47
  116. package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +0 -33
  117. package/scaffold/astro-app/src/components/icons/devicons/React.astro +0 -27
  118. package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +0 -25
  119. package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +0 -26
  120. package/scaffold/astro-app/src/config/frameworks.ts +0 -26
  121. package/scaffold/astro-app/src/config/themes.ts +0 -54
  122. package/scaffold/astro-app/src/layouts/DocsLayout.astro +0 -263
  123. package/scaffold/astro-app/src/layouts/Layout.astro +0 -41
  124. package/scaffold/astro-app/src/pages/components/accordion.astro +0 -172
  125. package/scaffold/astro-app/src/pages/components/alert.astro +0 -250
  126. package/scaffold/astro-app/src/pages/components/avatar.astro +0 -102
  127. package/scaffold/astro-app/src/pages/components/badge.astro +0 -119
  128. package/scaffold/astro-app/src/pages/components/breadcrumb.astro +0 -124
  129. package/scaffold/astro-app/src/pages/components/button.astro +0 -74
  130. package/scaffold/astro-app/src/pages/components/cards.astro +0 -247
  131. package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +0 -49
  132. package/scaffold/astro-app/src/pages/components/divider.astro +0 -74
  133. package/scaffold/astro-app/src/pages/components/dropdown.astro +0 -394
  134. package/scaffold/astro-app/src/pages/components/forms.astro +0 -367
  135. package/scaffold/astro-app/src/pages/components/icons.astro +0 -246
  136. package/scaffold/astro-app/src/pages/components/modal.astro +0 -152
  137. package/scaffold/astro-app/src/pages/components/navbar.astro +0 -80
  138. package/scaffold/astro-app/src/pages/components/pagination.astro +0 -126
  139. package/scaffold/astro-app/src/pages/components/progress-bar.astro +0 -94
  140. package/scaffold/astro-app/src/pages/components/search.astro +0 -155
  141. package/scaffold/astro-app/src/pages/components/settings.astro +0 -78
  142. package/scaffold/astro-app/src/pages/components/spinner.astro +0 -81
  143. package/scaffold/astro-app/src/pages/components/table.astro +0 -144
  144. package/scaffold/astro-app/src/pages/components/tabs.astro +0 -220
  145. package/scaffold/astro-app/src/pages/components/theme-switcher.astro +0 -69
  146. package/scaffold/astro-app/src/pages/components/toast.astro +0 -157
  147. package/scaffold/astro-app/src/pages/components/tooltip.astro +0 -209
  148. package/scaffold/astro-app/src/pages/components.astro +0 -290
  149. package/scaffold/astro-app/src/pages/docs/accessibility.astro +0 -9
  150. package/scaffold/astro-app/src/pages/docs/colors.astro +0 -9
  151. package/scaffold/astro-app/src/pages/docs/design-system.astro +0 -9
  152. package/scaffold/astro-app/src/pages/docs/getting-started.astro +0 -9
  153. package/scaffold/astro-app/src/pages/docs/index.astro +0 -15
  154. package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +0 -14
  155. package/scaffold/astro-app/src/pages/docs/theming.astro +0 -10
  156. package/scaffold/astro-app/src/pages/index.astro +0 -24
  157. package/scaffold/svelte-app/README.md +0 -39
  158. package/scaffold/svelte-app/package.json +0 -22
  159. package/scaffold/svelte-app/src/app.d.ts +0 -28
  160. package/scaffold/svelte-app/src/app.html +0 -21
  161. package/scaffold/svelte-app/src/lib/assets/favicon.svg +0 -1
  162. package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +0 -128
  163. package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +0 -85
  164. package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +0 -39
  165. package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +0 -31
  166. package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +0 -49
  167. package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +0 -27
  168. package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +0 -17
  169. package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +0 -37
  170. package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +0 -79
  171. package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +0 -28
  172. package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +0 -254
  173. package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +0 -51
  174. package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +0 -59
  175. package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +0 -157
  176. package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +0 -93
  177. package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +0 -58
  178. package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +0 -38
  179. package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +0 -51
  180. package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +0 -14
  181. package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +0 -158
  182. package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +0 -117
  183. package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +0 -59
  184. package/scaffold/svelte-app/src/lib/rizzo/ThemeIcon.svelte +0 -54
  185. package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +0 -315
  186. package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +0 -33
  187. package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +0 -19
  188. package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +0 -29
  189. package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +0 -29
  190. package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +0 -29
  191. package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +0 -30
  192. package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +0 -27
  193. package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +0 -30
  194. package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +0 -30
  195. package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +0 -29
  196. package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +0 -30
  197. package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +0 -31
  198. package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +0 -29
  199. package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +0 -34
  200. package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +0 -33
  201. package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +0 -31
  202. package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +0 -30
  203. package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +0 -34
  204. package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +0 -30
  205. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +0 -45
  206. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +0 -28
  207. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +0 -23
  208. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +0 -18
  209. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +0 -21
  210. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +0 -19
  211. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +0 -44
  212. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +0 -24
  213. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +0 -21
  214. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +0 -19
  215. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +0 -20
  216. package/scaffold/svelte-app/src/lib/rizzo/index.ts +0 -35
  217. package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +0 -239
  218. package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +0 -99
  219. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +0 -53
  220. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +0 -114
  221. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +0 -92
  222. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +0 -60
  223. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +0 -55
  224. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +0 -55
  225. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +0 -173
  226. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +0 -12
  227. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +0 -92
  228. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +0 -26
  229. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +0 -105
  230. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +0 -161
  231. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +0 -375
  232. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +0 -246
  233. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +0 -8
  234. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +0 -50
  235. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +0 -79
  236. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +0 -44
  237. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +0 -95
  238. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +0 -147
  239. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +0 -158
  240. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +0 -41
  241. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +0 -116
  242. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +0 -152
  243. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +0 -189
  244. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +0 -6
  245. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +0 -136
  246. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +0 -57
  247. package/scaffold/svelte-app/src/routes/+layout.svelte +0 -10
  248. package/scaffold/svelte-app/src/routes/+page.svelte +0 -31
  249. package/scaffold/svelte-app/src/routes/components/+page.svelte +0 -4
  250. package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +0 -7
  251. package/scaffold/svelte-app/static/robots.txt +0 -3
  252. package/scaffold/svelte-app/svelte.config.js +0 -13
  253. package/scaffold/svelte-app/tsconfig.json +0 -21
  254. package/scaffold/svelte-app/vite.config.ts +0 -6
  255. /package/scaffold/{astro-app → astro-minimal}/astro.config.mjs +0 -0
  256. /package/scaffold/{astro-app → astro-minimal}/public/.gitkeep +0 -0
  257. /package/scaffold/{astro-app → astro-minimal}/public/favicon.svg +0 -0
  258. /package/scaffold/{astro-app → astro-minimal}/tsconfig.json +0 -0
  259. /package/scaffold/{svelte-app → svelte-minimal}/static/.gitkeep +0 -0
@@ -1,250 +0,0 @@
1
- ---
2
- import DocsLayout from '../../layouts/DocsLayout.astro';
3
- import CodeBlock from '../../components/CodeBlock.astro';
4
- ---
5
-
6
- <DocsLayout title="Alert Component — Astro" description="Accessible alert component with variants and dismissible functionality">
7
-
8
- <p class="docs__read-docs">Read the full docs for this component at <a href="https://rizzo-css.vercel.app/docs/components/alert" target="_blank" rel="noopener noreferrer">https://rizzo-css.vercel.app/docs/components/alert</a>.</p>
9
-
10
- <section>
11
- <h2>Alert Component</h2>
12
- <p>An accessible alert component for displaying important messages to users. Supports success, error, warning, and info variants with optional dismissible functionality.</p>
13
- </section>
14
-
15
- <section>
16
- <h2>Variants</h2>
17
- <p>Alerts come in four semantic variants that use theme-aware colors. Click the buttons below to see them in action:</p>
18
-
19
- <div class="example">
20
- <div class="example-title">Live Examples</div>
21
- <div style="display: flex; flex-wrap: wrap; gap: var(--spacing-3); margin-bottom: var(--spacing-4);">
22
- <button class="btn btn-success" onclick="showAlert('success', 'Success! Your changes have been saved successfully.')">Show Success Alert</button>
23
- <button class="btn btn-error" onclick="showAlert('error', 'Error! Something went wrong. Please try again.')">Show Error Alert</button>
24
- <button class="btn btn-warning" onclick="showAlert('warning', 'Warning! This action cannot be undone.')">Show Warning Alert</button>
25
- <button class="btn btn-info" onclick="showAlert('info', 'Info: New features are available in the latest update.')">Show Info Alert</button>
26
- </div>
27
- <div id="alert-examples-container" class="alert-examples-container" style="min-height: 1px; margin-top: var(--spacing-4);"></div>
28
- </div>
29
- </section>
30
-
31
- <section>
32
- <h2>Auto-Dismiss</h2>
33
- <p>Alerts can automatically dismiss after a set duration:</p>
34
-
35
- <div class="example">
36
- <div class="example-title">Auto-Dismiss Examples</div>
37
- <div style="display: flex; flex-wrap: wrap; gap: var(--spacing-3); margin-bottom: var(--spacing-4);">
38
- <button class="btn btn-primary" onclick="showAlert('success', 'This alert will auto-dismiss in 3 seconds', true, 3000, 'alert-auto-dismiss-container')">3 Second Auto-Dismiss</button>
39
- <button class="btn btn-primary" onclick="showAlert('info', 'This alert will auto-dismiss in 5 seconds', true, 5000, 'alert-auto-dismiss-container')">5 Second Auto-Dismiss</button>
40
- <button class="btn btn-primary" onclick="showAlert('warning', 'This alert will auto-dismiss in 7 seconds', true, 7000, 'alert-auto-dismiss-container')">7 Second Auto-Dismiss</button>
41
- </div>
42
- <div id="alert-auto-dismiss-container" class="alert-examples-container" style="min-height: 1px; margin-top: var(--spacing-4);"></div>
43
- </div>
44
- </section>
45
-
46
- <section>
47
- <h2>Usage</h2>
48
- <CodeBlock code={`---
49
- import Alert from '../../components/Alert.astro';
50
- ---
51
-
52
- <!-- Basic alert -->
53
- <Alert variant="success">
54
- Your changes have been saved.
55
- </Alert>
56
-
57
- <!-- Dismissible alert -->
58
- <Alert variant="error" dismissible>
59
- An error occurred. Please try again.
60
- </Alert>
61
-
62
- <!-- Auto-dismiss alert -->
63
- <Alert variant="success" dismissible autoDismiss={5000}>
64
- This alert will automatically dismiss in 5 seconds.
65
- </Alert>`} language="astro" />
66
- </section>
67
-
68
- <section>
69
- <h2>Props</h2>
70
- <ul>
71
- <li><code>variant</code> (string, optional) - Alert variant: <code>"success"</code>, <code>"error"</code>, <code>"warning"</code>, or <code>"info"</code> (default: <code>"info"</code>)</li>
72
- <li><code>dismissible</code> (boolean, optional) - Whether the alert can be dismissed (default: <code>false</code>)</li>
73
- <li><code>autoDismiss</code> (number, optional) - Auto-dismiss duration in milliseconds. Set to <code>0</code> to disable (default: <code>0</code>). Common values: <code>3000</code> (3s), <code>5000</code> (5s), <code>7000</code> (7s)</li>
74
- <li><code>id</code> (string, optional) - Unique ID for the alert. If not provided, a random ID will be generated</li>
75
- <li><code>class</code> (string, optional) - Additional CSS classes</li>
76
- </ul>
77
- </section>
78
-
79
- <section>
80
- <h2>Features</h2>
81
- <ul>
82
- <li>Four semantic variants (success, error, warning, info)</li>
83
- <li>Theme-aware colors using semantic variables</li>
84
- <li>Dismissible functionality with smooth animations</li>
85
- <li><strong>Auto-dismiss functionality</strong> - Automatically dismiss after a set duration</li>
86
- <li>Full keyboard accessibility (Enter/Space to dismiss)</li>
87
- <li>ARIA attributes for screen readers (<code>role="alert"</code>, <code>aria-live="polite"</code>)</li>
88
- <li>Screen reader announcements when dismissed</li>
89
- <li>Respects <code>prefers-reduced-motion</code></li>
90
- <li>Focus management for close button</li>
91
- </ul>
92
-
93
- <h3>Toast Notifications</h3>
94
- <p>For toast notifications (fixed position alerts), see the <a href="/docs/components/toast">Toast Component documentation</a>.</p>
95
- </section>
96
-
97
- <section>
98
- <h2>Accessibility</h2>
99
- <p>The Alert component includes comprehensive accessibility features:</p>
100
- <ul>
101
- <li><strong>ARIA Roles:</strong> Uses <code>role="alert"</code> for important messages</li>
102
- <li><strong>Live Regions:</strong> <code>aria-live="polite"</code> for screen reader announcements</li>
103
- <li><strong>Labels:</strong> Each variant has an appropriate <code>aria-label</code></li>
104
- <li><strong>Keyboard Support:</strong> Close button responds to Enter/Space keys</li>
105
- <li><strong>Focus Management:</strong> Close button has visible focus indicators</li>
106
- <li><strong>Screen Reader Feedback:</strong> Announces when alerts are dismissed</li>
107
- </ul>
108
- <p><strong>Svelte & Vanilla:</strong> <a href="/docs/svelte/components/alert">Svelte</a> · Vanilla: same HTML and BEM as in Usage above; add minimal JS for dismiss.</p>
109
- </section>
110
- </DocsLayout>
111
-
112
- <script is:inline>
113
- // Make function available globally immediately
114
- function showAlert(variant, message, dismissible, autoDismiss, containerId) {
115
- if (!message) return;
116
-
117
- variant = variant || 'info';
118
- dismissible = dismissible !== undefined ? dismissible : true;
119
- autoDismiss = autoDismiss !== undefined ? autoDismiss : 0;
120
- containerId = containerId || 'alert-examples-container';
121
-
122
- // Find the specific alert container
123
- var container = document.getElementById(containerId);
124
- if (!container) {
125
- // Fallback to first container with class
126
- container = document.querySelector('.alert-examples-container');
127
- }
128
-
129
- if (!container) {
130
- console.error('Alert container not found:', containerId);
131
- return;
132
- }
133
-
134
- var alertId = 'alert-' + Math.random().toString(36).substr(2, 9);
135
- var alertEl = document.createElement('div');
136
- alertEl.id = alertId;
137
- alertEl.className = 'alert alert--' + variant;
138
- alertEl.setAttribute('role', 'alert');
139
- alertEl.setAttribute('aria-live', 'polite');
140
-
141
- // Ensure alert is visible and has proper display
142
- alertEl.style.display = 'flex';
143
- alertEl.style.visibility = 'visible';
144
- alertEl.style.opacity = '1';
145
-
146
- var content = document.createElement('div');
147
- content.className = 'alert__content';
148
- // Extract variant label and message - remove duplicate variant label from message
149
- var variantLabel = variant.charAt(0).toUpperCase() + variant.slice(1);
150
- var variantPrefix = variantLabel + '!';
151
- var variantPrefixWithColon = variantLabel + ':';
152
-
153
- // Remove variant label from the beginning of the message if it exists
154
- var cleanMessage = message;
155
- if (message.toLowerCase().startsWith(variantPrefix.toLowerCase())) {
156
- cleanMessage = message.substring(variantPrefix.length).trim();
157
- } else if (message.toLowerCase().startsWith(variantPrefixWithColon.toLowerCase())) {
158
- cleanMessage = message.substring(variantPrefixWithColon.length).trim();
159
- }
160
-
161
- // Show just the variant label in bold, then the clean message
162
- content.innerHTML = '<strong>' + variantPrefix + '</strong> ' + cleanMessage;
163
- // Ensure content is visible
164
- content.style.color = 'inherit';
165
- content.style.display = 'block';
166
- content.style.visibility = 'visible';
167
- content.style.opacity = '1';
168
- alertEl.appendChild(content);
169
-
170
- var closeBtn = null;
171
- if (dismissible) {
172
- closeBtn = document.createElement('button');
173
- closeBtn.type = 'button';
174
- closeBtn.className = 'alert__close';
175
- closeBtn.setAttribute('aria-label', 'Dismiss alert');
176
- closeBtn.innerHTML = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"></line><line x1="12" y1="4" x2="4" y2="12"></line></svg>';
177
- // Ensure close button is visible
178
- closeBtn.style.color = 'inherit';
179
- closeBtn.style.opacity = '0.8';
180
- closeBtn.style.display = 'flex';
181
- closeBtn.style.visibility = 'visible';
182
- alertEl.appendChild(closeBtn);
183
- }
184
-
185
- container.appendChild(alertEl);
186
-
187
- // Force CSS to apply after element is in DOM - especially important for warning variant
188
- requestAnimationFrame(function() {
189
- // Force reflow to apply CSS classes
190
- alertEl.offsetHeight;
191
-
192
- // Get computed styles
193
- var computedStyle = window.getComputedStyle(alertEl);
194
- var textColor = computedStyle.color;
195
- var bgColor = computedStyle.backgroundColor;
196
-
197
- // For warning alerts, ensure theme variable text color is applied
198
- if (variant === 'warning') {
199
- // Use CSS variable for theming support
200
- alertEl.style.color = 'var(--warning-text)';
201
- content.style.color = 'var(--warning-text)';
202
- if (closeBtn) {
203
- closeBtn.style.color = 'var(--warning-text)';
204
- closeBtn.style.opacity = '0.9';
205
- }
206
- } else {
207
- // For other variants, just ensure color is inherited
208
- if (textColor && textColor !== 'transparent' && textColor !== 'rgba(0, 0, 0, 0)') {
209
- content.style.color = textColor;
210
- } else {
211
- content.style.color = 'inherit';
212
- }
213
- }
214
-
215
- // Double-check content is visible
216
- var contentStyle = window.getComputedStyle(content);
217
- if (contentStyle.display === 'none' || contentStyle.visibility === 'hidden' || contentStyle.opacity === '0') {
218
- content.style.display = 'block';
219
- content.style.visibility = 'visible';
220
- content.style.opacity = '1';
221
- }
222
- });
223
-
224
- var closeAlert = function() {
225
- alertEl.style.opacity = '0';
226
- alertEl.style.transform = 'translateY(-10px)';
227
- setTimeout(function() {
228
- if (alertEl && alertEl.parentNode) {
229
- alertEl.remove();
230
- }
231
- }, 200);
232
- };
233
-
234
- if (closeBtn) {
235
- closeBtn.addEventListener('click', closeAlert);
236
-
237
- if (autoDismiss > 0) {
238
- var timeoutId = setTimeout(closeAlert, autoDismiss);
239
- closeBtn.addEventListener('click', function() {
240
- clearTimeout(timeoutId);
241
- });
242
- }
243
- } else if (autoDismiss > 0) {
244
- setTimeout(closeAlert, autoDismiss);
245
- }
246
- }
247
-
248
- // Make available on window for global access
249
- window.showAlert = showAlert;
250
- </script>
@@ -1,102 +0,0 @@
1
- ---
2
- import DocsLayout from '../../layouts/DocsLayout.astro';
3
- import AvatarComponent from '../../components/Avatar.astro';
4
- import CodeBlock from '../../components/CodeBlock.astro';
5
- ---
6
-
7
- <DocsLayout title="Avatar Component — Astro" description="User avatar with image or initials fallback, sizes and shapes">
8
-
9
- <p class="docs__read-docs">Read the full docs for this component at <a href="https://rizzo-css.vercel.app/docs/components/avatar" target="_blank" rel="noopener noreferrer">https://rizzo-css.vercel.app/docs/components/avatar</a>.</p>
10
-
11
- <section>
12
- <h2>Avatar Component</h2>
13
- <p>An accessible avatar for users: show a profile image when available, or initials derived from a name (or custom initials) when no image is provided. Supports multiple sizes and circle or square shape.</p>
14
-
15
- <h3>Props</h3>
16
- <ul>
17
- <li><code>src</code> (string, optional) - Image URL; when provided, the image is shown</li>
18
- <li><code>alt</code> (string, optional) - Alt text for the image</li>
19
- <li><code>name</code> (string, optional) - Full name used to derive initials when no image (e.g. "Jane Doe" → "JD")</li>
20
- <li><code>initials</code> (string, optional) - Override initials when no image (e.g. "JD"); ignored if <code>name</code> is provided</li>
21
- <li><code>size</code> (string, optional) - <code>sm</code>, <code>md</code>, <code>lg</code> (default: md)</li>
22
- <li><code>shape</code> (string, optional) - <code>circle</code>, <code>square</code> (default: circle)</li>
23
- <li><code>class</code> (string, optional) - Additional CSS classes</li>
24
- </ul>
25
-
26
- <h3>Basic Usage (initials)</h3>
27
- <p>When no <code>src</code> is provided, use <code>name</code> to show initials (first letter of first and last word, or first two letters of a single word).</p>
28
- <div class="example">
29
- <div class="example-title">Live Example</div>
30
- <div style="display: flex; align-items: center; gap: var(--spacing-4); flex-wrap: wrap;">
31
- <AvatarComponent name="Jane Doe" />
32
- <AvatarComponent name="Alice" />
33
- <AvatarComponent initials="AB" />
34
- </div>
35
- </div>
36
- <CodeBlock code={`---
37
- import Avatar from '../../components/Avatar.astro';
38
- ---
39
-
40
- <Avatar name="Jane Doe" />
41
- <Avatar name="Alice" />
42
- <Avatar initials="AB" />`} language="astro" />
43
-
44
- <h3>Sizes</h3>
45
- <div class="example">
46
- <div class="example-title">Live Example</div>
47
- <div style="display: flex; align-items: center; gap: var(--spacing-4); flex-wrap: wrap;">
48
- <AvatarComponent name="Jane Doe" size="sm" />
49
- <AvatarComponent name="Jane Doe" size="md" />
50
- <AvatarComponent name="Jane Doe" size="lg" />
51
- </div>
52
- </div>
53
- <CodeBlock code={`<Avatar name="Jane Doe" size="sm" />
54
- <Avatar name="Jane Doe" size="md" />
55
- <Avatar name="Jane Doe" size="lg" />`} language="astro" />
56
-
57
- <h3>Shape</h3>
58
- <p>Use <code>shape="square"</code> for a rounded square; default is <code>circle</code>.</p>
59
- <div class="example">
60
- <div class="example-title">Live Example</div>
61
- <div style="display: flex; align-items: center; gap: var(--spacing-4); flex-wrap: wrap;">
62
- <AvatarComponent name="Jane Doe" shape="circle" />
63
- <AvatarComponent name="Jane Doe" shape="square" />
64
- </div>
65
- </div>
66
- <CodeBlock code={`<Avatar name="Jane Doe" shape="circle" />
67
- <Avatar name="Jane Doe" shape="square" />`} language="astro" />
68
-
69
- <h3>With image</h3>
70
- <p>Pass <code>src</code> (and <code>alt</code>) to show a profile image. The image is scaled to cover the avatar with <code>object-fit: cover</code>.</p>
71
- <div class="example">
72
- <div class="example-title">Live Example (placeholder image)</div>
73
- <div style="display: flex; align-items: center; gap: var(--spacing-4); flex-wrap: wrap;">
74
- <AvatarComponent
75
- src="https://api.dicebear.com/7.x/initials/svg?seed=Jane"
76
- alt="Jane Doe"
77
- size="md"
78
- />
79
- <AvatarComponent
80
- src="https://api.dicebear.com/7.x/initials/svg?seed=Alice"
81
- alt="Alice"
82
- size="lg"
83
- />
84
- </div>
85
- </div>
86
- <CodeBlock code={`<Avatar
87
- src="/path/to/photo.jpg"
88
- alt="Jane Doe"
89
- size="md"
90
- />`} language="astro" />
91
-
92
- <h3>Features</h3>
93
- <ul>
94
- <li><strong>Accessible</strong> - <code>role="img"</code> and <code>aria-label</code> from alt, name, or initials</li>
95
- <li><strong>Initials</strong> - Derived from <code>name</code> (e.g. "Jane Doe" → "JD") or set via <code>initials</code></li>
96
- <li><strong>Image</strong> - Optional <code>src</code> with <code>loading="lazy"</code> and <code>object-fit: cover</code></li>
97
- <li><strong>Sizes</strong> - sm, md, lg</li>
98
- <li><strong>Shape</strong> - circle (default) or square with rounded corners</li>
99
- </ul>
100
- <p><strong>Svelte & Vanilla:</strong> <a href="/docs/svelte/components/avatar">Svelte</a> · Vanilla: same HTML and BEM as in Usage above.</p>
101
- </section>
102
- </DocsLayout>
@@ -1,119 +0,0 @@
1
- ---
2
- import DocsLayout from '../../layouts/DocsLayout.astro';
3
- import Badge from '../../components/Badge.astro';
4
- import CodeBlock from '../../components/CodeBlock.astro';
5
- ---
6
-
7
- <DocsLayout title="Badge Component — Astro" description="Small labels and tags for displaying status, categories, or counts">
8
-
9
- <p class="docs__read-docs">Read the full docs for this component at <a href="https://rizzo-css.vercel.app/docs/components/badge" target="_blank" rel="noopener noreferrer">https://rizzo-css.vercel.app/docs/components/badge</a>.</p>
10
-
11
- <section>
12
- <h2>Badge Component</h2>
13
- <p>Small labels and tags for displaying status, categories, or counts. Badges are inline elements that can be used within text or alongside other components.</p>
14
-
15
- <h3>Badge Variants</h3>
16
- <div class="example">
17
- <div class="example-title">Live Examples</div>
18
- <div style="display: flex; flex-wrap: wrap; gap: var(--spacing-3); align-items: center;">
19
- <Badge variant="primary">Primary</Badge>
20
- <Badge variant="success">Success</Badge>
21
- <Badge variant="warning">Warning</Badge>
22
- <Badge variant="error">Error</Badge>
23
- <Badge variant="info">Info</Badge>
24
- </div>
25
- </div>
26
-
27
- <h3>Badge Sizes</h3>
28
- <div class="example">
29
- <div class="example-title">Live Examples</div>
30
- <div style="display: flex; flex-wrap: wrap; gap: var(--spacing-3); align-items: center;">
31
- <Badge variant="primary" size="sm">Small</Badge>
32
- <Badge variant="primary" size="md">Medium</Badge>
33
- <Badge variant="primary" size="lg">Large</Badge>
34
- </div>
35
- </div>
36
-
37
- <h3>Pill Badges</h3>
38
- <div class="example">
39
- <div class="example-title">Live Examples</div>
40
- <div style="display: flex; flex-wrap: wrap; gap: var(--spacing-3); align-items: center;">
41
- <Badge variant="primary" pill>Pill Primary</Badge>
42
- <Badge variant="success" pill>Pill Success</Badge>
43
- <Badge variant="warning" pill size="sm">Small Pill</Badge>
44
- <Badge variant="error" pill size="lg">Large Pill</Badge>
45
- </div>
46
- </div>
47
-
48
- <h3>Usage in Context</h3>
49
- <div class="example">
50
- <div class="example-title">Live Examples</div>
51
- <div style="display: flex; flex-direction: column; gap: var(--spacing-4);">
52
- <p>You have <Badge variant="info">3</Badge> new messages.</p>
53
- <p>Status: <Badge variant="success" pill>Active</Badge></p>
54
- <p>Priority: <Badge variant="error" size="sm">High</Badge></p>
55
- <div style="display: flex; align-items: center; gap: var(--spacing-2);">
56
- <span>Categories:</span>
57
- <Badge variant="primary" size="sm">Design</Badge>
58
- <Badge variant="info" size="sm">Development</Badge>
59
- <Badge variant="success" size="sm" pill>Completed</Badge>
60
- </div>
61
- </div>
62
- </div>
63
-
64
- <p>All badges:</p>
65
- <ul>
66
- <li>Use semantic theme variables</li>
67
- <li>Are inline elements (can be used within text)</li>
68
- <li>Support multiple variants and sizes</li>
69
- <li>Have pill/rounded variant option</li>
70
- <li>Automatically adapt to theme changes</li>
71
- </ul>
72
-
73
- <h3>Usage</h3>
74
- <CodeBlock code={`<!-- Using component -->
75
- ---
76
- import Badge from '../../components/Badge.astro';
77
- ---
78
-
79
- <Badge variant="primary">New</Badge>
80
- <Badge variant="success" size="sm">Active</Badge>
81
- <Badge variant="error" pill>Urgent</Badge>
82
-
83
- <!-- Using classes -->
84
- <span class="badge badge--primary">Primary</span>
85
- <span class="badge badge--success badge--sm">Small Success</span>
86
- <span class="badge badge--error badge--lg badge--pill">Large Pill Error</span>`} language="astro" />
87
-
88
- <h3>Props</h3>
89
- <ul>
90
- <li><code>variant</code> (optional) - Badge variant: <code>primary</code>, <code>success</code>, <code>warning</code>, <code>error</code>, <code>info</code> (default: <code>primary</code>)</li>
91
- <li><code>size</code> (optional) - Badge size: <code>sm</code>, <code>md</code>, <code>lg</code> (default: <code>md</code>)</li>
92
- <li><code>pill</code> (optional) - Boolean to enable pill/rounded variant (default: <code>false</code>)</li>
93
- <li><code>class</code> (optional) - Additional CSS classes</li>
94
- </ul>
95
-
96
- <h3>Badge Variants</h3>
97
- <p>Text on solid semantic variants (success, warning, error, info) uses the same contrast variables as buttons (<code>--success-text-on-solid</code>, <code>--warning-text-on-solid</code>, etc.) so badge text stays readable across all themes.</p>
98
- <ul>
99
- <li><code>badge--primary</code> - Primary/accent color badge</li>
100
- <li><code>badge--success</code> - Success/positive badge</li>
101
- <li><code>badge--warning</code> - Warning badge</li>
102
- <li><code>badge--error</code> - Error/destructive badge</li>
103
- <li><code>badge--info</code> - Informational badge</li>
104
- </ul>
105
-
106
- <h3>Badge Sizes</h3>
107
- <ul>
108
- <li><code>badge--sm</code> - Small badge (extra small font, minimal padding)</li>
109
- <li><code>badge--md</code> - Medium badge (small font, standard padding) - default</li>
110
- <li><code>badge--lg</code> - Large badge (base font, larger padding)</li>
111
- </ul>
112
-
113
- <h3>Pill Variant</h3>
114
- <p>Add the <code>badge--pill</code> class or <code>pill</code> prop to create fully rounded badges:</p>
115
- <CodeBlock code={`<Badge variant="primary" pill>Pill Badge</Badge>
116
- <span class="badge badge--primary badge--pill">Pill Badge</span>`} language="astro" />
117
- <p><strong>Svelte & Vanilla:</strong> <a href="/docs/svelte/components/badge">Svelte</a> · Vanilla: same HTML and BEM as in Usage above.</p>
118
- </section>
119
- </DocsLayout>
@@ -1,124 +0,0 @@
1
- ---
2
- import DocsLayout from '../../layouts/DocsLayout.astro';
3
- import BreadcrumbComponent from '../../components/Breadcrumb.astro';
4
- import CodeBlock from '../../components/CodeBlock.astro';
5
- ---
6
-
7
- <DocsLayout title="Breadcrumb Component — Astro" description="Navigation breadcrumbs with separator customization and responsive behavior">
8
-
9
- <p class="docs__read-docs">Read the full docs for this component at <a href="https://rizzo-css.vercel.app/docs/components/breadcrumb" target="_blank" rel="noopener noreferrer">https://rizzo-css.vercel.app/docs/components/breadcrumb</a>.</p>
10
-
11
- <section>
12
- <h2>Breadcrumb Component</h2>
13
- <p>An accessible breadcrumb navigation component. Supports custom separators (chevron, slash, arrow, or custom character) and responsive truncation on small screens.</p>
14
-
15
- <h3>Props</h3>
16
- <ul>
17
- <li><code>items</code> (array, required) - Array of objects with <code>label</code> and optional <code>href</code>. The last item or any item without <code>href</code> is shown as the current page.</li>
18
- <li><code>separator</code> (string, optional) - One of <code>'chevron'</code> (default), <code>'slash'</code>, <code>'arrow'</code>, or a custom character (e.g. <code>'>'</code>, <code>'·'</code>)</li>
19
- <li><code>class</code> (string, optional) - Additional CSS classes</li>
20
- </ul>
21
-
22
- <h3>Item Structure</h3>
23
- <ul>
24
- <li><code>label</code> (string, required) - Link or current page text</li>
25
- <li><code>href</code> (string, optional) - URL for the link. Omit for the current page.</li>
26
- </ul>
27
-
28
- <h3>Basic Usage (Chevron Separator)</h3>
29
- <div class="example">
30
- <div class="example-title">Live Example</div>
31
- <BreadcrumbComponent
32
- items={[
33
- { label: 'Home', href: '/' },
34
- { label: 'Docs', href: '/docs' },
35
- { label: 'Components', href: '/docs/components' },
36
- { label: 'Breadcrumb' },
37
- ]}
38
- />
39
- </div>
40
-
41
- <CodeBlock code={`---
42
- import Breadcrumb from '../../components/Breadcrumb.astro';
43
- ---
44
-
45
- <Breadcrumb
46
- items={[
47
- { label: 'Home', href: '/' },
48
- { label: 'Docs', href: '/docs' },
49
- { label: 'Components', href: '/docs/components' },
50
- { label: 'Breadcrumb' },
51
- ]}
52
- />`} language="astro" />
53
-
54
- <h3>Separator Variants</h3>
55
-
56
- <h4>Slash</h4>
57
- <div class="example">
58
- <div class="example-title">Live Example</div>
59
- <BreadcrumbComponent
60
- separator="slash"
61
- items={[
62
- { label: 'Home', href: '/' },
63
- { label: 'Docs', href: '/docs' },
64
- { label: 'Breadcrumb' },
65
- ]}
66
- />
67
- </div>
68
-
69
- <CodeBlock code={`<Breadcrumb
70
- separator="slash"
71
- items={[
72
- { label: 'Home', href: '/' },
73
- { label: 'Docs', href: '/docs' },
74
- { label: 'Breadcrumb' },
75
- ]}
76
- />`} language="astro" />
77
-
78
- <h4>Arrow</h4>
79
- <div class="example">
80
- <div class="example-title">Live Example</div>
81
- <BreadcrumbComponent
82
- separator="arrow"
83
- items={[
84
- { label: 'Home', href: '/' },
85
- { label: 'Getting Started', href: '/docs/getting-started' },
86
- { label: 'Installation' },
87
- ]}
88
- />
89
- </div>
90
-
91
- <h4>Custom Character</h4>
92
- <div class="example">
93
- <div class="example-title">Live Example</div>
94
- <BreadcrumbComponent
95
- separator=">"
96
- items={[
97
- { label: 'Home', href: '/' },
98
- { label: 'Blog', href: '/blog' },
99
- { label: 'Post Title' },
100
- ]}
101
- />
102
- </div>
103
-
104
- <CodeBlock code={`<Breadcrumb
105
- separator=">"
106
- items={[
107
- { label: 'Home', href: '/' },
108
- { label: 'Blog', href: '/blog' },
109
- { label: 'Post Title' },
110
- ]}
111
- />`} language="astro" />
112
-
113
- <h3>Features</h3>
114
- <ul>
115
- <li><strong>Semantic markup</strong> - <code>&lt;nav aria-label="Breadcrumb"&gt;</code> with <code>&lt;ol&gt;</code> and <code>&lt;li&gt;</code></li>
116
- <li><strong>Current page</strong> - Last item or item without <code>href</code> uses <code>aria-current="page"</code> and is not a link</li>
117
- <li><strong>Separator customization</strong> - Chevron (icon), slash, arrow (›), or any custom character</li>
118
- <li><strong>Responsive</strong> - On small screens (≤639px), long labels truncate with ellipsis; current page label is not truncated</li>
119
- <li><strong>Theme-aware</strong> - Uses design system variables for color and spacing</li>
120
- <li><strong>Accessible</strong> - Focus styles, hover states, and screen reader friendly</li>
121
- </ul>
122
- <p><strong>Svelte & Vanilla:</strong> <a href="/docs/svelte/components/breadcrumb">Svelte</a> · Vanilla: same HTML and BEM as in Usage above.</p>
123
- </section>
124
- </DocsLayout>