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.
- package/README.md +4 -4
- package/bin/rizzo-css.js +473 -164
- package/dist/rizzo.min.css +4 -1
- package/package.json +9 -4
- package/scaffold/astro-minimal/.env.example +3 -0
- package/scaffold/astro-minimal/README.md +36 -0
- package/scaffold/astro-minimal/package.json +13 -0
- package/scaffold/astro-minimal/src/layouts/Layout.astro +28 -0
- package/scaffold/astro-minimal/src/pages/index.astro +10 -0
- package/scaffold/svelte-minimal/.env.example +3 -0
- package/scaffold/svelte-minimal/README.md +37 -0
- package/scaffold/svelte-minimal/package.json +20 -0
- package/scaffold/svelte-minimal/src/app.d.ts +11 -0
- package/scaffold/svelte-minimal/src/app.html +15 -0
- package/scaffold/svelte-minimal/src/routes/+layout.svelte +1 -0
- package/scaffold/svelte-minimal/src/routes/+page.svelte +5 -0
- package/scaffold/svelte-minimal/svelte.config.js +10 -0
- package/scaffold/svelte-minimal/tsconfig.json +11 -0
- package/scaffold/vanilla/README.md +4 -4
- package/scaffold/vanilla/components/accordion.html +18 -0
- package/scaffold/vanilla/components/alert.html +18 -0
- package/scaffold/vanilla/components/avatar.html +18 -0
- package/scaffold/vanilla/components/badge.html +18 -0
- package/scaffold/vanilla/components/breadcrumb.html +18 -0
- package/scaffold/vanilla/components/button.html +18 -0
- package/scaffold/vanilla/components/cards.html +18 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +18 -0
- package/scaffold/vanilla/components/divider.html +18 -0
- package/scaffold/vanilla/components/dropdown.html +18 -0
- package/scaffold/vanilla/components/forms.html +18 -0
- package/scaffold/vanilla/components/icons.html +18 -0
- package/scaffold/vanilla/components/index.html +18 -0
- package/scaffold/vanilla/components/modal.html +18 -0
- package/scaffold/vanilla/components/navbar.html +18 -0
- package/scaffold/vanilla/components/pagination.html +18 -0
- package/scaffold/vanilla/components/progress-bar.html +18 -0
- package/scaffold/vanilla/components/search.html +18 -0
- package/scaffold/vanilla/components/settings.html +18 -0
- package/scaffold/vanilla/components/spinner.html +18 -0
- package/scaffold/vanilla/components/table.html +18 -0
- package/scaffold/vanilla/components/tabs.html +18 -0
- package/scaffold/vanilla/components/theme-switcher.html +18 -0
- package/scaffold/vanilla/components/toast.html +18 -0
- package/scaffold/vanilla/components/tooltip.html +18 -0
- package/scaffold/vanilla/index.html +18 -0
- package/scaffold/astro-app/README.md +0 -43
- package/scaffold/astro-app/package.json +0 -1
- package/scaffold/astro-app/src/components/Accordion.astro +0 -178
- package/scaffold/astro-app/src/components/Alert.astro +0 -131
- package/scaffold/astro-app/src/components/Avatar.astro +0 -59
- package/scaffold/astro-app/src/components/Badge.astro +0 -24
- package/scaffold/astro-app/src/components/Breadcrumb.astro +0 -61
- package/scaffold/astro-app/src/components/Button.astro +0 -3
- package/scaffold/astro-app/src/components/Card.astro +0 -18
- package/scaffold/astro-app/src/components/Checkbox.astro +0 -38
- package/scaffold/astro-app/src/components/CodeBlock.astro +0 -393
- package/scaffold/astro-app/src/components/CopyToClipboard.astro +0 -219
- package/scaffold/astro-app/src/components/Divider.astro +0 -37
- package/scaffold/astro-app/src/components/DocsSidebar.astro +0 -51
- package/scaffold/astro-app/src/components/Dropdown.astro +0 -807
- package/scaffold/astro-app/src/components/FormGroup.astro +0 -59
- package/scaffold/astro-app/src/components/FrameworkSwitcher.astro +0 -72
- package/scaffold/astro-app/src/components/Input.astro +0 -59
- package/scaffold/astro-app/src/components/Modal.astro +0 -212
- package/scaffold/astro-app/src/components/Navbar.astro +0 -623
- package/scaffold/astro-app/src/components/Pagination.astro +0 -240
- package/scaffold/astro-app/src/components/ProgressBar.astro +0 -65
- package/scaffold/astro-app/src/components/Radio.astro +0 -38
- package/scaffold/astro-app/src/components/Search.astro +0 -1259
- package/scaffold/astro-app/src/components/Select.astro +0 -49
- package/scaffold/astro-app/src/components/Settings.astro +0 -382
- package/scaffold/astro-app/src/components/Spinner.astro +0 -30
- package/scaffold/astro-app/src/components/Table.astro +0 -181
- package/scaffold/astro-app/src/components/Tabs.astro +0 -223
- package/scaffold/astro-app/src/components/Textarea.astro +0 -58
- package/scaffold/astro-app/src/components/ThemeIcon.astro +0 -50
- package/scaffold/astro-app/src/components/ThemeSwitcher.astro +0 -504
- package/scaffold/astro-app/src/components/Toast.astro +0 -30
- package/scaffold/astro-app/src/components/Tooltip.astro +0 -32
- package/scaffold/astro-app/src/components/icons/Brush.astro +0 -10
- package/scaffold/astro-app/src/components/icons/Cake.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Check.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Cherry.astro +0 -11
- package/scaffold/astro-app/src/components/icons/ChevronDown.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Circle.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Close.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Cmd.astro +0 -26
- package/scaffold/astro-app/src/components/icons/Copy.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Eye.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Filter.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Flame.astro +0 -28
- package/scaffold/astro-app/src/components/icons/Flower.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Gear.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Heart.astro +0 -28
- package/scaffold/astro-app/src/components/icons/IceCream.astro +0 -31
- package/scaffold/astro-app/src/components/icons/Leaf.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Lemon.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Moon.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Owl.astro +0 -34
- package/scaffold/astro-app/src/components/icons/Palette.astro +0 -33
- package/scaffold/astro-app/src/components/icons/Rainbow.astro +0 -31
- package/scaffold/astro-app/src/components/icons/Search.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Shield.astro +0 -28
- package/scaffold/astro-app/src/components/icons/Snowflake.astro +0 -34
- package/scaffold/astro-app/src/components/icons/Sort.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Sun.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Sunset.astro +0 -10
- package/scaffold/astro-app/src/components/icons/Zap.astro +0 -9
- package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +0 -53
- package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +0 -34
- package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +0 -29
- package/scaffold/astro-app/src/components/icons/devicons/Git.astro +0 -24
- package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +0 -27
- package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +0 -25
- package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +0 -47
- package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +0 -33
- package/scaffold/astro-app/src/components/icons/devicons/React.astro +0 -27
- package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +0 -25
- package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +0 -26
- package/scaffold/astro-app/src/config/frameworks.ts +0 -26
- package/scaffold/astro-app/src/config/themes.ts +0 -54
- package/scaffold/astro-app/src/layouts/DocsLayout.astro +0 -263
- package/scaffold/astro-app/src/layouts/Layout.astro +0 -41
- package/scaffold/astro-app/src/pages/components/accordion.astro +0 -172
- package/scaffold/astro-app/src/pages/components/alert.astro +0 -250
- package/scaffold/astro-app/src/pages/components/avatar.astro +0 -102
- package/scaffold/astro-app/src/pages/components/badge.astro +0 -119
- package/scaffold/astro-app/src/pages/components/breadcrumb.astro +0 -124
- package/scaffold/astro-app/src/pages/components/button.astro +0 -74
- package/scaffold/astro-app/src/pages/components/cards.astro +0 -247
- package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +0 -49
- package/scaffold/astro-app/src/pages/components/divider.astro +0 -74
- package/scaffold/astro-app/src/pages/components/dropdown.astro +0 -394
- package/scaffold/astro-app/src/pages/components/forms.astro +0 -367
- package/scaffold/astro-app/src/pages/components/icons.astro +0 -246
- package/scaffold/astro-app/src/pages/components/modal.astro +0 -152
- package/scaffold/astro-app/src/pages/components/navbar.astro +0 -80
- package/scaffold/astro-app/src/pages/components/pagination.astro +0 -126
- package/scaffold/astro-app/src/pages/components/progress-bar.astro +0 -94
- package/scaffold/astro-app/src/pages/components/search.astro +0 -155
- package/scaffold/astro-app/src/pages/components/settings.astro +0 -78
- package/scaffold/astro-app/src/pages/components/spinner.astro +0 -81
- package/scaffold/astro-app/src/pages/components/table.astro +0 -144
- package/scaffold/astro-app/src/pages/components/tabs.astro +0 -220
- package/scaffold/astro-app/src/pages/components/theme-switcher.astro +0 -69
- package/scaffold/astro-app/src/pages/components/toast.astro +0 -157
- package/scaffold/astro-app/src/pages/components/tooltip.astro +0 -209
- package/scaffold/astro-app/src/pages/components.astro +0 -290
- package/scaffold/astro-app/src/pages/docs/accessibility.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/colors.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/design-system.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/getting-started.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/index.astro +0 -15
- package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +0 -14
- package/scaffold/astro-app/src/pages/docs/theming.astro +0 -10
- package/scaffold/astro-app/src/pages/index.astro +0 -24
- package/scaffold/svelte-app/README.md +0 -39
- package/scaffold/svelte-app/package.json +0 -22
- package/scaffold/svelte-app/src/app.d.ts +0 -28
- package/scaffold/svelte-app/src/app.html +0 -21
- package/scaffold/svelte-app/src/lib/assets/favicon.svg +0 -1
- package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +0 -128
- package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +0 -85
- package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +0 -39
- package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +0 -49
- package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +0 -27
- package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +0 -17
- package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +0 -37
- package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +0 -79
- package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +0 -28
- package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +0 -254
- package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +0 -51
- package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +0 -59
- package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +0 -157
- package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +0 -93
- package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +0 -58
- package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +0 -38
- package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +0 -51
- package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +0 -14
- package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +0 -158
- package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +0 -117
- package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +0 -59
- package/scaffold/svelte-app/src/lib/rizzo/ThemeIcon.svelte +0 -54
- package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +0 -315
- package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +0 -33
- package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +0 -27
- package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +0 -34
- package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +0 -33
- package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +0 -34
- package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +0 -45
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +0 -28
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +0 -23
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +0 -18
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +0 -21
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +0 -44
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +0 -24
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +0 -21
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +0 -20
- package/scaffold/svelte-app/src/lib/rizzo/index.ts +0 -35
- package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +0 -239
- package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +0 -99
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +0 -53
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +0 -114
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +0 -92
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +0 -60
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +0 -55
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +0 -55
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +0 -173
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +0 -12
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +0 -92
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +0 -26
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +0 -105
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +0 -161
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +0 -375
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +0 -246
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +0 -8
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +0 -50
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +0 -79
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +0 -44
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +0 -95
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +0 -147
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +0 -158
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +0 -41
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +0 -116
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +0 -152
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +0 -189
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +0 -6
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +0 -136
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +0 -57
- package/scaffold/svelte-app/src/routes/+layout.svelte +0 -10
- package/scaffold/svelte-app/src/routes/+page.svelte +0 -31
- package/scaffold/svelte-app/src/routes/components/+page.svelte +0 -4
- package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +0 -7
- package/scaffold/svelte-app/static/robots.txt +0 -3
- package/scaffold/svelte-app/svelte.config.js +0 -13
- package/scaffold/svelte-app/tsconfig.json +0 -21
- package/scaffold/svelte-app/vite.config.ts +0 -6
- /package/scaffold/{astro-app → astro-minimal}/astro.config.mjs +0 -0
- /package/scaffold/{astro-app → astro-minimal}/public/.gitkeep +0 -0
- /package/scaffold/{astro-app → astro-minimal}/public/favicon.svg +0 -0
- /package/scaffold/{astro-app → astro-minimal}/tsconfig.json +0 -0
- /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><nav aria-label="Breadcrumb"></code> with <code><ol></code> and <code><li></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>
|