rizzo-css 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +12 -0
- package/LICENSE +21 -0
- package/README.md +17 -3
- package/bin/rizzo-css.js +98 -42
- package/dist/rizzo.min.css +3 -2
- package/package.json +5 -3
- package/scaffold/astro-app/README.md +13 -2
- package/scaffold/astro-app/src/components/Accordion.astro +178 -0
- package/scaffold/astro-app/src/components/Alert.astro +131 -0
- package/scaffold/astro-app/src/components/Avatar.astro +59 -0
- package/scaffold/astro-app/src/components/Badge.astro +24 -0
- package/scaffold/astro-app/src/components/Breadcrumb.astro +61 -0
- package/scaffold/astro-app/src/components/Button.astro +3 -0
- package/scaffold/astro-app/src/components/Card.astro +18 -0
- package/scaffold/astro-app/src/components/Checkbox.astro +38 -0
- package/scaffold/astro-app/src/components/CodeBlock.astro +393 -0
- package/scaffold/astro-app/src/components/CopyToClipboard.astro +219 -0
- package/scaffold/astro-app/src/components/Divider.astro +37 -0
- package/scaffold/astro-app/src/components/Dropdown.astro +807 -0
- package/scaffold/astro-app/src/components/FormGroup.astro +59 -0
- package/scaffold/astro-app/src/components/FrameworkSwitcher.astro +72 -0
- package/scaffold/astro-app/src/components/Input.astro +59 -0
- package/scaffold/astro-app/src/components/Modal.astro +212 -0
- package/scaffold/astro-app/src/components/Navbar.astro +701 -0
- package/scaffold/astro-app/src/components/Pagination.astro +240 -0
- package/scaffold/astro-app/src/components/ProgressBar.astro +65 -0
- package/scaffold/astro-app/src/components/Radio.astro +38 -0
- package/scaffold/astro-app/src/components/Search.astro +1259 -0
- package/scaffold/astro-app/src/components/Select.astro +49 -0
- package/scaffold/astro-app/src/components/Settings.astro +382 -0
- package/scaffold/astro-app/src/components/Spinner.astro +30 -0
- package/scaffold/astro-app/src/components/Table.astro +181 -0
- package/scaffold/astro-app/src/components/Tabs.astro +223 -0
- package/scaffold/astro-app/src/components/Textarea.astro +58 -0
- package/scaffold/astro-app/src/components/ThemeSwitcher.astro +504 -0
- package/scaffold/astro-app/src/components/Toast.astro +30 -0
- package/scaffold/astro-app/src/components/Tooltip.astro +32 -0
- package/scaffold/astro-app/src/components/icons/Brush.astro +10 -0
- package/scaffold/astro-app/src/components/icons/Cake.astro +11 -0
- package/scaffold/astro-app/src/components/icons/Check.astro +29 -0
- package/scaffold/astro-app/src/components/icons/Cherry.astro +11 -0
- package/scaffold/astro-app/src/components/icons/ChevronDown.astro +29 -0
- package/scaffold/astro-app/src/components/icons/Circle.astro +29 -0
- package/scaffold/astro-app/src/components/icons/Close.astro +30 -0
- package/scaffold/astro-app/src/components/icons/Cmd.astro +26 -0
- package/scaffold/astro-app/src/components/icons/Copy.astro +30 -0
- package/scaffold/astro-app/src/components/icons/Eye.astro +30 -0
- package/scaffold/astro-app/src/components/icons/Filter.astro +29 -0
- package/scaffold/astro-app/src/components/icons/Flame.astro +28 -0
- package/scaffold/astro-app/src/components/icons/Flower.astro +11 -0
- package/scaffold/astro-app/src/components/icons/Gear.astro +30 -0
- package/scaffold/astro-app/src/components/icons/Heart.astro +28 -0
- package/scaffold/astro-app/src/components/icons/IceCream.astro +31 -0
- package/scaffold/astro-app/src/components/icons/Leaf.astro +29 -0
- package/scaffold/astro-app/src/components/icons/Lemon.astro +11 -0
- package/scaffold/astro-app/src/components/icons/Moon.astro +29 -0
- package/scaffold/astro-app/src/components/icons/Owl.astro +34 -0
- package/scaffold/astro-app/src/components/icons/Palette.astro +33 -0
- package/scaffold/astro-app/src/components/icons/Rainbow.astro +31 -0
- package/scaffold/astro-app/src/components/icons/Search.astro +30 -0
- package/scaffold/astro-app/src/components/icons/Shield.astro +28 -0
- package/scaffold/astro-app/src/components/icons/Snowflake.astro +34 -0
- package/scaffold/astro-app/src/components/icons/Sort.astro +30 -0
- package/scaffold/astro-app/src/components/icons/Sun.astro +29 -0
- package/scaffold/astro-app/src/components/icons/Sunset.astro +10 -0
- package/scaffold/astro-app/src/components/icons/Zap.astro +9 -0
- package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +53 -0
- package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +34 -0
- package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +29 -0
- package/scaffold/astro-app/src/components/icons/devicons/Git.astro +24 -0
- package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +27 -0
- package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +25 -0
- package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +47 -0
- package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +33 -0
- package/scaffold/astro-app/src/components/icons/devicons/React.astro +27 -0
- package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +25 -0
- package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +26 -0
- package/scaffold/astro-app/src/config/frameworks.ts +26 -0
- package/scaffold/astro-app/src/config/themes.ts +54 -0
- package/scaffold/astro-app/src/layouts/DocsLayout.astro +204 -0
- package/scaffold/astro-app/src/layouts/Layout.astro +11 -2
- package/scaffold/astro-app/src/pages/components/accordion.astro +172 -0
- package/scaffold/astro-app/src/pages/components/alert.astro +250 -0
- package/scaffold/astro-app/src/pages/components/avatar.astro +102 -0
- package/scaffold/astro-app/src/pages/components/badge.astro +119 -0
- package/scaffold/astro-app/src/pages/components/breadcrumb.astro +124 -0
- package/scaffold/astro-app/src/pages/components/button.astro +74 -0
- package/scaffold/astro-app/src/pages/components/cards.astro +247 -0
- package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +49 -0
- package/scaffold/astro-app/src/pages/components/divider.astro +74 -0
- package/scaffold/astro-app/src/pages/components/dropdown.astro +394 -0
- package/scaffold/astro-app/src/pages/components/forms.astro +367 -0
- package/scaffold/astro-app/src/pages/components/icons.astro +246 -0
- package/scaffold/astro-app/src/pages/components/modal.astro +152 -0
- package/scaffold/astro-app/src/pages/components/navbar.astro +80 -0
- package/scaffold/astro-app/src/pages/components/pagination.astro +126 -0
- package/scaffold/astro-app/src/pages/components/progress-bar.astro +94 -0
- package/scaffold/astro-app/src/pages/components/search.astro +155 -0
- package/scaffold/astro-app/src/pages/components/settings.astro +78 -0
- package/scaffold/astro-app/src/pages/components/spinner.astro +81 -0
- package/scaffold/astro-app/src/pages/components/table.astro +144 -0
- package/scaffold/astro-app/src/pages/components/tabs.astro +220 -0
- package/scaffold/astro-app/src/pages/components/theme-switcher.astro +67 -0
- package/scaffold/astro-app/src/pages/components/toast.astro +157 -0
- package/scaffold/astro-app/src/pages/components/tooltip.astro +209 -0
- package/scaffold/astro-app/src/pages/components.astro +290 -0
- package/scaffold/astro-app/src/pages/docs/accessibility.astro +9 -0
- package/scaffold/astro-app/src/pages/docs/colors.astro +9 -0
- package/scaffold/astro-app/src/pages/docs/design-system.astro +9 -0
- package/scaffold/astro-app/src/pages/docs/getting-started.astro +9 -0
- package/scaffold/astro-app/src/pages/docs/index.astro +15 -0
- package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +14 -0
- package/scaffold/astro-app/src/pages/docs/theming.astro +10 -0
- package/scaffold/astro-app/src/pages/index.astro +5 -11
- package/scaffold/svelte/Table.svelte +6 -5
- package/scaffold/svelte/Tabs.svelte +3 -1
- package/scaffold/svelte-app/README.md +9 -2
- package/scaffold/svelte-app/src/app.html +1 -1
- package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +128 -0
- package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +85 -0
- package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +39 -0
- package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +31 -0
- package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +49 -0
- package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +27 -0
- package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +17 -0
- package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +37 -0
- package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +79 -0
- package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +28 -0
- package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +254 -0
- package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +51 -0
- package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +59 -0
- package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +157 -0
- package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +93 -0
- package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +58 -0
- package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +38 -0
- package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +51 -0
- package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +14 -0
- package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +158 -0
- package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +117 -0
- package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +59 -0
- package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +315 -0
- package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +33 -0
- package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +19 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +29 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +29 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +29 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +30 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +27 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +30 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +30 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +29 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +30 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +31 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +29 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +34 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +33 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +31 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +30 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +34 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +30 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +45 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +28 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +23 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +18 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +21 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +19 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +44 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +24 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +21 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +19 -0
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +20 -0
- package/scaffold/svelte-app/src/lib/rizzo/index.ts +33 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +239 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +99 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +53 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +114 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +92 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +60 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +55 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +55 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +173 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +12 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +92 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +26 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +105 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +161 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +375 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +246 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +8 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +50 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +79 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +44 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +95 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +147 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +158 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +41 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +116 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +152 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +181 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +6 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +136 -0
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +57 -0
- package/scaffold/svelte-app/src/routes/+page.svelte +2 -2
- package/scaffold/svelte-app/src/routes/components/+page.svelte +4 -0
- package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +7 -0
- package/scaffold/vanilla/README.md +20 -8
- package/scaffold/vanilla/components/accordion.html +187 -0
- package/scaffold/vanilla/components/alert.html +187 -0
- package/scaffold/vanilla/components/avatar.html +187 -0
- package/scaffold/vanilla/components/badge.html +187 -0
- package/scaffold/vanilla/components/breadcrumb.html +187 -0
- package/scaffold/vanilla/components/button.html +187 -0
- package/scaffold/vanilla/components/cards.html +187 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +187 -0
- package/scaffold/vanilla/components/divider.html +187 -0
- package/scaffold/vanilla/components/dropdown.html +187 -0
- package/scaffold/vanilla/components/forms.html +187 -0
- package/scaffold/vanilla/components/icons.html +187 -0
- package/scaffold/vanilla/components/index.html +212 -0
- package/scaffold/vanilla/components/modal.html +187 -0
- package/scaffold/vanilla/components/navbar.html +187 -0
- package/scaffold/vanilla/components/pagination.html +187 -0
- package/scaffold/vanilla/components/progress-bar.html +187 -0
- package/scaffold/vanilla/components/search.html +187 -0
- package/scaffold/vanilla/components/settings.html +187 -0
- package/scaffold/vanilla/components/spinner.html +187 -0
- package/scaffold/vanilla/components/table.html +187 -0
- package/scaffold/vanilla/components/tabs.html +187 -0
- package/scaffold/vanilla/components/theme-switcher.html +187 -0
- package/scaffold/vanilla/components/toast.html +187 -0
- package/scaffold/vanilla/components/tooltip.html +187 -0
- package/scaffold/vanilla/index.html +17 -283
- package/scaffold/vanilla/js/main.js +748 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Dropdown from '$lib/rizzo/Dropdown.svelte';
|
|
3
|
+
import CodeBlock from '$lib/rizzo-docs/CodeBlock.svelte';
|
|
4
|
+
|
|
5
|
+
const basicItems = [
|
|
6
|
+
{ label: 'Edit', value: 'edit', onClick: (v) => console.log('Action:', v) },
|
|
7
|
+
{ label: 'Delete', value: 'delete', onClick: (v) => console.log('Action:', v) },
|
|
8
|
+
{ separator: true },
|
|
9
|
+
{ label: 'Settings', href: '/settings' },
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
const linkItems = [
|
|
13
|
+
{ label: 'Home', href: '/' },
|
|
14
|
+
{ label: 'Documentation', href: '/docs' },
|
|
15
|
+
{ label: 'Components', href: '/docs/components' },
|
|
16
|
+
{ separator: true },
|
|
17
|
+
{ label: 'GitHub', href: 'https://github.com' },
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
const disabledItems = [
|
|
21
|
+
{ label: 'Available Option', value: 'available' },
|
|
22
|
+
{ label: 'Disabled Option', value: 'disabled', disabled: true },
|
|
23
|
+
{ separator: true },
|
|
24
|
+
{ label: 'Another Option', value: 'another' },
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
const submenuItems = [
|
|
28
|
+
{
|
|
29
|
+
label: 'Edit',
|
|
30
|
+
submenu: [
|
|
31
|
+
{ label: 'Cut', value: 'cut', onClick: (v) => console.log('Submenu:', v) },
|
|
32
|
+
{ label: 'Copy', value: 'copy', onClick: (v) => console.log('Submenu:', v) },
|
|
33
|
+
{ label: 'Paste', value: 'paste', onClick: (v) => console.log('Submenu:', v) },
|
|
34
|
+
{ separator: true },
|
|
35
|
+
{
|
|
36
|
+
label: 'Advanced',
|
|
37
|
+
submenu: [
|
|
38
|
+
{ label: 'Find & Replace', value: 'find-replace', onClick: (v) => console.log('Submenu:', v) },
|
|
39
|
+
{ label: 'Go to Line', value: 'go-to-line', onClick: (v) => console.log('Submenu:', v) },
|
|
40
|
+
{ label: 'Format Document', value: 'format', onClick: (v) => console.log('Submenu:', v) },
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: 'View',
|
|
47
|
+
submenu: [
|
|
48
|
+
{ label: 'Zoom In', value: 'zoom-in', onClick: (v) => console.log('Submenu:', v) },
|
|
49
|
+
{ label: 'Zoom Out', value: 'zoom-out', onClick: (v) => console.log('Submenu:', v) },
|
|
50
|
+
{ label: 'Reset Zoom', value: 'reset-zoom', onClick: (v) => console.log('Submenu:', v) },
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
{ separator: true },
|
|
54
|
+
{ label: 'Help', href: '/docs' },
|
|
55
|
+
{ label: 'Settings', href: '/docs/components/settings' },
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const positionItems = [
|
|
59
|
+
{ label: 'Item 1', value: '1' },
|
|
60
|
+
{ label: 'Item 2', value: '2' },
|
|
61
|
+
{ label: 'Item 3', value: '3' },
|
|
62
|
+
];
|
|
63
|
+
</script>
|
|
64
|
+
|
|
65
|
+
<section>
|
|
66
|
+
<h2>Dropdown component</h2>
|
|
67
|
+
<p>An accessible dropdown menu component for displaying lists of actions or options. Supports menu items, separators, links, submenus, and click handlers. Matches the <a href="/docs/components/dropdown">Astro dropdown</a> in look and behavior.</p>
|
|
68
|
+
|
|
69
|
+
<h3>Basic usage</h3>
|
|
70
|
+
<div class="example">
|
|
71
|
+
<h4 class="example-title">Live example</h4>
|
|
72
|
+
<Dropdown trigger="Actions" items={basicItems} />
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<h3>With links</h3>
|
|
76
|
+
<div class="example">
|
|
77
|
+
<h4 class="example-title">Live example</h4>
|
|
78
|
+
<Dropdown trigger="Navigate" items={linkItems} />
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<h3>With disabled items</h3>
|
|
82
|
+
<div class="example">
|
|
83
|
+
<h4 class="example-title">Live example</h4>
|
|
84
|
+
<Dropdown trigger="Options" items={disabledItems} />
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
<h3>Nested submenus</h3>
|
|
88
|
+
<div class="example">
|
|
89
|
+
<h4 class="example-title">Live example</h4>
|
|
90
|
+
<Dropdown trigger="Actions" items={submenuItems} />
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<h3>Menu positioning</h3>
|
|
94
|
+
<div class="example">
|
|
95
|
+
<h4 class="example-title">Live examples</h4>
|
|
96
|
+
<div class="example-row">
|
|
97
|
+
<div>
|
|
98
|
+
<p class="example-label">Left</p>
|
|
99
|
+
<Dropdown trigger="Left position" position="left" items={positionItems} />
|
|
100
|
+
</div>
|
|
101
|
+
<div class="example-right">
|
|
102
|
+
<p class="example-label">Right</p>
|
|
103
|
+
<Dropdown trigger="Right position" position="right" items={positionItems} />
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<h3>Usage</h3>
|
|
109
|
+
<CodeBlock
|
|
110
|
+
code={`<script>
|
|
111
|
+
import Dropdown from './components/svelte/Dropdown.svelte';
|
|
112
|
+
</script>
|
|
113
|
+
|
|
114
|
+
<Dropdown
|
|
115
|
+
trigger="Options"
|
|
116
|
+
items={[
|
|
117
|
+
{ label: 'Save', onClick: (v) => save(v) },
|
|
118
|
+
{ label: 'Docs', href: '/docs' },
|
|
119
|
+
{ separator: true },
|
|
120
|
+
{ label: 'More', submenu: [{ label: 'A', value: 'a' }, { label: 'B', value: 'b' }] },
|
|
121
|
+
]}
|
|
122
|
+
/>`}
|
|
123
|
+
language="svelte"
|
|
124
|
+
/>
|
|
125
|
+
</section>
|
|
126
|
+
|
|
127
|
+
<style>
|
|
128
|
+
.example {
|
|
129
|
+
margin: var(--spacing-6) 0;
|
|
130
|
+
padding: var(--spacing-4);
|
|
131
|
+
background: var(--background-alt);
|
|
132
|
+
border: 1px solid var(--border);
|
|
133
|
+
border-radius: var(--radius-lg);
|
|
134
|
+
}
|
|
135
|
+
.example-title {
|
|
136
|
+
font-size: var(--font-size-sm);
|
|
137
|
+
font-weight: var(--font-weight-medium);
|
|
138
|
+
color: var(--text-dim);
|
|
139
|
+
margin-bottom: var(--spacing-3);
|
|
140
|
+
text-transform: uppercase;
|
|
141
|
+
letter-spacing: var(--letter-spacing-wider);
|
|
142
|
+
}
|
|
143
|
+
.example-row {
|
|
144
|
+
display: flex;
|
|
145
|
+
justify-content: space-between;
|
|
146
|
+
align-items: flex-start;
|
|
147
|
+
gap: var(--spacing-4);
|
|
148
|
+
flex-wrap: wrap;
|
|
149
|
+
}
|
|
150
|
+
.example-label {
|
|
151
|
+
margin: 0 0 var(--spacing-2) 0;
|
|
152
|
+
font-size: var(--font-size-sm);
|
|
153
|
+
color: var(--text-dim);
|
|
154
|
+
}
|
|
155
|
+
.example-right {
|
|
156
|
+
margin-left: auto;
|
|
157
|
+
}
|
|
158
|
+
.example-right .example-label {
|
|
159
|
+
text-align: right;
|
|
160
|
+
}
|
|
161
|
+
</style>
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import FormGroup from '$lib/rizzo/FormGroup.svelte';
|
|
3
|
+
import Input from '$lib/rizzo/Input.svelte';
|
|
4
|
+
import Checkbox from '$lib/rizzo/Checkbox.svelte';
|
|
5
|
+
import Textarea from '$lib/rizzo/Textarea.svelte';
|
|
6
|
+
import Select from '$lib/rizzo/Select.svelte';
|
|
7
|
+
import Radio from '$lib/rizzo/Radio.svelte';
|
|
8
|
+
import CodeBlock from '$lib/rizzo-docs/CodeBlock.svelte';
|
|
9
|
+
|
|
10
|
+
let paymentMethod = $state('card');
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<section>
|
|
14
|
+
<h2>Form Components</h2>
|
|
15
|
+
<p>Rizzo CSS includes a comprehensive set of accessible form components built with semantic HTML and ARIA attributes. All form components use theme variables and support validation states.</p>
|
|
16
|
+
</section>
|
|
17
|
+
|
|
18
|
+
<section>
|
|
19
|
+
<h2>FormGroup</h2>
|
|
20
|
+
<p>The <code>FormGroup</code> component provides a wrapper for form fields with labels, help text, and error/success messages.</p>
|
|
21
|
+
|
|
22
|
+
<h3>Props</h3>
|
|
23
|
+
<ul>
|
|
24
|
+
<li><code>label</code> (string, optional) - Label text</li>
|
|
25
|
+
<li><code>labelFor</code> (string, optional) - ID of the input element</li>
|
|
26
|
+
<li><code>required</code> (boolean, optional) - Shows required indicator</li>
|
|
27
|
+
<li><code>help</code> (string, optional) - Help text displayed below input</li>
|
|
28
|
+
<li><code>error</code> (string, optional) - Error message</li>
|
|
29
|
+
<li><code>success</code> (string, optional) - Success message</li>
|
|
30
|
+
<li><code>class</code> (string, optional) - Additional CSS classes</li>
|
|
31
|
+
</ul>
|
|
32
|
+
|
|
33
|
+
<div class="example">
|
|
34
|
+
<div class="example-title">Live Example</div>
|
|
35
|
+
<FormGroup label="Email Address" labelFor="email-example" required help="We'll never share your email">
|
|
36
|
+
<Input type="email" id="email-example" name="email" placeholder="you@example.com" />
|
|
37
|
+
</FormGroup>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<h3>Code Example</h3>
|
|
41
|
+
<CodeBlock
|
|
42
|
+
code={`<script>
|
|
43
|
+
import FormGroup from './components/svelte/FormGroup.svelte';
|
|
44
|
+
import Input from './components/svelte/Input.svelte';
|
|
45
|
+
</script>
|
|
46
|
+
|
|
47
|
+
<FormGroup label="Email Address" labelFor="email" required help="We'll never share your email">
|
|
48
|
+
<Input id="email" type="email" name="email" placeholder="you@example.com" />
|
|
49
|
+
</FormGroup>`}
|
|
50
|
+
language="svelte"
|
|
51
|
+
/>
|
|
52
|
+
</section>
|
|
53
|
+
|
|
54
|
+
<section>
|
|
55
|
+
<h2>Input</h2>
|
|
56
|
+
<p>The <code>Input</code> component supports various input types with validation states and sizes.</p>
|
|
57
|
+
|
|
58
|
+
<h3>Props</h3>
|
|
59
|
+
<ul>
|
|
60
|
+
<li><code>type</code> (string, optional) - Input type (text, email, password, number, tel, url, search, date, time, datetime-local, month, week)</li>
|
|
61
|
+
<li><code>id</code>, <code>name</code>, <code>value</code>, <code>placeholder</code>, <code>required</code>, <code>disabled</code>, <code>readonly</code></li>
|
|
62
|
+
<li><code>size</code> ('sm' | 'md' | 'lg', optional) - Input size (default: 'md')</li>
|
|
63
|
+
<li><code>error</code> (boolean, optional) - Error state</li>
|
|
64
|
+
<li><code>success</code> (boolean, optional) - Success state</li>
|
|
65
|
+
</ul>
|
|
66
|
+
|
|
67
|
+
<h3>Input Types</h3>
|
|
68
|
+
<div class="example">
|
|
69
|
+
<div class="example-title">Live Examples</div>
|
|
70
|
+
<FormGroup label="Text Input" labelFor="text-input">
|
|
71
|
+
<Input type="text" id="text-input" name="text" placeholder="Enter text" />
|
|
72
|
+
</FormGroup>
|
|
73
|
+
<FormGroup label="Email Input" labelFor="email-input">
|
|
74
|
+
<Input type="email" id="email-input" name="email" placeholder="you@example.com" />
|
|
75
|
+
</FormGroup>
|
|
76
|
+
<FormGroup label="Password Input" labelFor="password-input">
|
|
77
|
+
<Input type="password" id="password-input" name="password" placeholder="Enter password" />
|
|
78
|
+
</FormGroup>
|
|
79
|
+
<FormGroup label="Number Input" labelFor="number-input">
|
|
80
|
+
<Input type="number" id="number-input" name="number" placeholder="Enter number" />
|
|
81
|
+
</FormGroup>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<h3>Input Sizes</h3>
|
|
85
|
+
<div class="example">
|
|
86
|
+
<div class="example-title">Live Examples</div>
|
|
87
|
+
<FormGroup label="Small Input" labelFor="input-sm">
|
|
88
|
+
<Input type="text" id="input-sm" name="input-sm" size="sm" placeholder="Small input" />
|
|
89
|
+
</FormGroup>
|
|
90
|
+
<FormGroup label="Medium Input (default)" labelFor="input-md">
|
|
91
|
+
<Input type="text" id="input-md" name="input-md" size="md" placeholder="Medium input" />
|
|
92
|
+
</FormGroup>
|
|
93
|
+
<FormGroup label="Large Input" labelFor="input-lg">
|
|
94
|
+
<Input type="text" id="input-lg" name="input-lg" size="lg" placeholder="Large input" />
|
|
95
|
+
</FormGroup>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
<h3>Validation States</h3>
|
|
99
|
+
<div class="example">
|
|
100
|
+
<div class="example-title">Live Examples</div>
|
|
101
|
+
<FormGroup label="Error State" labelFor="input-error" error="This field is required">
|
|
102
|
+
<Input type="text" id="input-error" name="input-error" error placeholder="Enter text" />
|
|
103
|
+
</FormGroup>
|
|
104
|
+
<FormGroup label="Success State" labelFor="input-success" success="Looks good!">
|
|
105
|
+
<Input type="text" id="input-success" name="input-success" success value="Valid input" />
|
|
106
|
+
</FormGroup>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<h3>Code Example</h3>
|
|
110
|
+
<CodeBlock
|
|
111
|
+
code={`<FormGroup label="Email" labelFor="email" required>
|
|
112
|
+
<Input id="email" type="email" name="email" placeholder="you@example.com" />
|
|
113
|
+
</FormGroup>
|
|
114
|
+
|
|
115
|
+
<!-- With error state -->
|
|
116
|
+
<FormGroup label="Email" labelFor="email-error" error="Invalid email address">
|
|
117
|
+
<Input id="email-error" type="email" name="email" error />
|
|
118
|
+
</FormGroup>`}
|
|
119
|
+
language="svelte"
|
|
120
|
+
/>
|
|
121
|
+
</section>
|
|
122
|
+
|
|
123
|
+
<section>
|
|
124
|
+
<h2>Textarea</h2>
|
|
125
|
+
<p>The <code>Textarea</code> component for multi-line text input.</p>
|
|
126
|
+
|
|
127
|
+
<h3>Props</h3>
|
|
128
|
+
<ul>
|
|
129
|
+
<li><code>id</code>, <code>name</code>, <code>value</code>, <code>placeholder</code>, <code>required</code>, <code>disabled</code>, <code>readonly</code></li>
|
|
130
|
+
<li><code>rows</code> (number, optional) - Number of rows (default: 4)</li>
|
|
131
|
+
<li><code>cols</code> (number, optional) - Number of columns</li>
|
|
132
|
+
<li><code>size</code>, <code>error</code>, <code>success</code> - Same as Input</li>
|
|
133
|
+
</ul>
|
|
134
|
+
|
|
135
|
+
<div class="example">
|
|
136
|
+
<div class="example-title">Live Example</div>
|
|
137
|
+
<FormGroup label="Message" labelFor="textarea-example" help="Enter your message here">
|
|
138
|
+
<Textarea id="textarea-example" name="message" rows={5} placeholder="Your message..." />
|
|
139
|
+
</FormGroup>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<h3>Code Example</h3>
|
|
143
|
+
<CodeBlock
|
|
144
|
+
code={`<FormGroup label="Message" labelFor="message" help="Enter your message here">
|
|
145
|
+
<Textarea id="message" name="message" rows={5} placeholder="Your message..." />
|
|
146
|
+
</FormGroup>`}
|
|
147
|
+
language="svelte"
|
|
148
|
+
/>
|
|
149
|
+
</section>
|
|
150
|
+
|
|
151
|
+
<section>
|
|
152
|
+
<h2>Select</h2>
|
|
153
|
+
<p>The <code>Select</code> component for dropdown selections.</p>
|
|
154
|
+
|
|
155
|
+
<h3>Props</h3>
|
|
156
|
+
<ul>
|
|
157
|
+
<li><code>id</code>, <code>name</code>, <code>value</code>, <code>required</code>, <code>disabled</code></li>
|
|
158
|
+
<li><code>size</code>, <code>error</code>, <code>success</code> - Same as Input</li>
|
|
159
|
+
</ul>
|
|
160
|
+
|
|
161
|
+
<div class="example">
|
|
162
|
+
<div class="example-title">Live Example</div>
|
|
163
|
+
<FormGroup label="Country" labelFor="select-example" required>
|
|
164
|
+
<Select id="select-example" name="country">
|
|
165
|
+
<option value="">Select a country</option>
|
|
166
|
+
<option value="us">United States</option>
|
|
167
|
+
<option value="ca">Canada</option>
|
|
168
|
+
<option value="uk">United Kingdom</option>
|
|
169
|
+
<option value="au">Australia</option>
|
|
170
|
+
</Select>
|
|
171
|
+
</FormGroup>
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
<h3>Code Example</h3>
|
|
175
|
+
<CodeBlock
|
|
176
|
+
code={`<FormGroup label="Country" labelFor="country" required>
|
|
177
|
+
<Select id="country" name="country">
|
|
178
|
+
<option value="">Select a country</option>
|
|
179
|
+
<option value="us">United States</option>
|
|
180
|
+
<option value="ca">Canada</option>
|
|
181
|
+
<option value="uk">United Kingdom</option>
|
|
182
|
+
</Select>
|
|
183
|
+
</FormGroup>`}
|
|
184
|
+
language="svelte"
|
|
185
|
+
/>
|
|
186
|
+
</section>
|
|
187
|
+
|
|
188
|
+
<section>
|
|
189
|
+
<h2>Checkbox</h2>
|
|
190
|
+
<p>The <code>Checkbox</code> component for single or multiple selections.</p>
|
|
191
|
+
|
|
192
|
+
<h3>Props</h3>
|
|
193
|
+
<ul>
|
|
194
|
+
<li><code>id</code>, <code>name</code>, <code>value</code>, <code>checked</code>, <code>required</code>, <code>disabled</code></li>
|
|
195
|
+
<li><code>ariaLabel</code> (string, optional) - Accessible label</li>
|
|
196
|
+
<li><code>ariaDescribedby</code> (string, optional) - ID of element that describes this checkbox</li>
|
|
197
|
+
</ul>
|
|
198
|
+
|
|
199
|
+
<div class="example">
|
|
200
|
+
<div class="example-title">Live Examples</div>
|
|
201
|
+
<FormGroup label="Preferences">
|
|
202
|
+
<div class="checkbox-group">
|
|
203
|
+
<label class="checkbox-label">
|
|
204
|
+
<Checkbox id="newsletter" name="preferences" value="newsletter" />
|
|
205
|
+
Subscribe to newsletter
|
|
206
|
+
</label>
|
|
207
|
+
<label class="checkbox-label">
|
|
208
|
+
<Checkbox id="updates" name="preferences" value="updates" />
|
|
209
|
+
Receive product updates
|
|
210
|
+
</label>
|
|
211
|
+
<label class="checkbox-label">
|
|
212
|
+
<Checkbox id="marketing" name="preferences" value="marketing" />
|
|
213
|
+
Marketing communications
|
|
214
|
+
</label>
|
|
215
|
+
</div>
|
|
216
|
+
</FormGroup>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<h3>Code Example</h3>
|
|
220
|
+
<CodeBlock
|
|
221
|
+
code={`<label class="checkbox-label">
|
|
222
|
+
<Checkbox id="newsletter" name="preferences" value="newsletter" />
|
|
223
|
+
Subscribe to newsletter
|
|
224
|
+
</label>
|
|
225
|
+
|
|
226
|
+
<!-- Checkbox Group -->
|
|
227
|
+
<div class="checkbox-group">
|
|
228
|
+
<label class="checkbox-label">
|
|
229
|
+
<Checkbox id="opt1" name="options" value="1" />
|
|
230
|
+
Option 1
|
|
231
|
+
</label>
|
|
232
|
+
<label class="checkbox-label">
|
|
233
|
+
<Checkbox id="opt2" name="options" value="2" />
|
|
234
|
+
Option 2
|
|
235
|
+
</label>
|
|
236
|
+
</div>`}
|
|
237
|
+
language="svelte"
|
|
238
|
+
/>
|
|
239
|
+
</section>
|
|
240
|
+
|
|
241
|
+
<section>
|
|
242
|
+
<h2>Radio</h2>
|
|
243
|
+
<p>The <code>Radio</code> component for single selection from multiple options.</p>
|
|
244
|
+
|
|
245
|
+
<h3>Props</h3>
|
|
246
|
+
<ul>
|
|
247
|
+
<li><code>id</code>, <code>name</code>, <code>value</code>, <code>checked</code>, <code>required</code>, <code>disabled</code></li>
|
|
248
|
+
<li><code>group</code> (bindable, optional) - Bound value for the selected option (use same bound variable for all radios in the group)</li>
|
|
249
|
+
<li><code>ariaLabel</code>, <code>ariaDescribedby</code> - Same as Checkbox</li>
|
|
250
|
+
</ul>
|
|
251
|
+
|
|
252
|
+
<div class="example">
|
|
253
|
+
<div class="example-title">Live Example</div>
|
|
254
|
+
<FormGroup label="Payment Method" required>
|
|
255
|
+
<div class="radio-group">
|
|
256
|
+
<label class="radio-label">
|
|
257
|
+
<Radio name="payment" id="payment-card" value="card" bind:group={paymentMethod} />
|
|
258
|
+
Credit Card
|
|
259
|
+
</label>
|
|
260
|
+
<label class="radio-label">
|
|
261
|
+
<Radio name="payment" id="payment-paypal" value="paypal" bind:group={paymentMethod} />
|
|
262
|
+
PayPal
|
|
263
|
+
</label>
|
|
264
|
+
<label class="radio-label">
|
|
265
|
+
<Radio name="payment" id="payment-bank" value="bank" bind:group={paymentMethod} />
|
|
266
|
+
Bank Transfer
|
|
267
|
+
</label>
|
|
268
|
+
</div>
|
|
269
|
+
</FormGroup>
|
|
270
|
+
</div>
|
|
271
|
+
|
|
272
|
+
<h3>Code Example</h3>
|
|
273
|
+
<CodeBlock
|
|
274
|
+
code={`<script>
|
|
275
|
+
let payment = $state('card');
|
|
276
|
+
</script>
|
|
277
|
+
|
|
278
|
+
<div class="radio-group">
|
|
279
|
+
<label class="radio-label">
|
|
280
|
+
<Radio name="payment" id="payment-card" value="card" bind:group={payment} />
|
|
281
|
+
Credit Card
|
|
282
|
+
</label>
|
|
283
|
+
<label class="radio-label">
|
|
284
|
+
<Radio name="payment" id="payment-paypal" value="paypal" bind:group={payment} />
|
|
285
|
+
PayPal
|
|
286
|
+
</label>
|
|
287
|
+
</div>`}
|
|
288
|
+
language="svelte"
|
|
289
|
+
/>
|
|
290
|
+
</section>
|
|
291
|
+
|
|
292
|
+
<section>
|
|
293
|
+
<h2>Complete Form Example</h2>
|
|
294
|
+
<div class="example">
|
|
295
|
+
<div class="example-title">Live Example</div>
|
|
296
|
+
<form style="max-width: 600px;">
|
|
297
|
+
<FormGroup label="Full Name" labelFor="form-name" required>
|
|
298
|
+
<Input type="text" id="form-name" name="name" placeholder="John Doe" required />
|
|
299
|
+
</FormGroup>
|
|
300
|
+
|
|
301
|
+
<FormGroup label="Email Address" labelFor="form-email" required help="We'll never share your email">
|
|
302
|
+
<Input type="email" id="form-email" name="email" placeholder="you@example.com" required />
|
|
303
|
+
</FormGroup>
|
|
304
|
+
|
|
305
|
+
<FormGroup label="Country" labelFor="form-country" required>
|
|
306
|
+
<Select id="form-country" name="country" required>
|
|
307
|
+
<option value="">Select a country</option>
|
|
308
|
+
<option value="us">United States</option>
|
|
309
|
+
<option value="ca">Canada</option>
|
|
310
|
+
<option value="uk">United Kingdom</option>
|
|
311
|
+
</Select>
|
|
312
|
+
</FormGroup>
|
|
313
|
+
|
|
314
|
+
<FormGroup label="Message" labelFor="form-message">
|
|
315
|
+
<Textarea id="form-message" name="message" rows={4} placeholder="Your message..." />
|
|
316
|
+
</FormGroup>
|
|
317
|
+
|
|
318
|
+
<FormGroup>
|
|
319
|
+
<label class="checkbox-label">
|
|
320
|
+
<Checkbox id="form-consent" name="consent" value="yes" required />
|
|
321
|
+
I agree to the terms and conditions
|
|
322
|
+
</label>
|
|
323
|
+
</FormGroup>
|
|
324
|
+
|
|
325
|
+
<button type="submit" class="btn btn-primary">Submit</button>
|
|
326
|
+
</form>
|
|
327
|
+
</div>
|
|
328
|
+
</section>
|
|
329
|
+
|
|
330
|
+
<section>
|
|
331
|
+
<h2>Accessibility</h2>
|
|
332
|
+
<p>All form components follow accessibility best practices:</p>
|
|
333
|
+
<ul>
|
|
334
|
+
<li>Proper label associations using <code>for</code> and <code>id</code> attributes</li>
|
|
335
|
+
<li>ARIA attributes for validation states (<code>aria-invalid</code>, <code>aria-describedby</code>)</li>
|
|
336
|
+
<li>Error messages with <code>role="alert"</code> for screen readers</li>
|
|
337
|
+
<li>Keyboard navigation support</li>
|
|
338
|
+
<li>Focus indicators using theme accent color</li>
|
|
339
|
+
<li>Required field indicators</li>
|
|
340
|
+
</ul>
|
|
341
|
+
</section>
|
|
342
|
+
|
|
343
|
+
<section>
|
|
344
|
+
<h2>Styling</h2>
|
|
345
|
+
<p>All form components use semantic theme variables and automatically adapt to the selected theme. Form styles are defined in <code>src/styles/forms.css</code>.</p>
|
|
346
|
+
|
|
347
|
+
<h3>Customization</h3>
|
|
348
|
+
<p>You can customize form inputs using CSS variables or by adding custom classes:</p>
|
|
349
|
+
<CodeBlock
|
|
350
|
+
code={`.custom-input {
|
|
351
|
+
border-radius: var(--radius-lg);
|
|
352
|
+
padding: var(--spacing-4);
|
|
353
|
+
}`}
|
|
354
|
+
language="css"
|
|
355
|
+
/>
|
|
356
|
+
<p><strong>Astro & Vanilla:</strong> <a href="/docs/components/forms">Astro</a> · <a href="/docs/vanilla/components/forms">Vanilla</a> — same BEM classes and HTML structure.</p>
|
|
357
|
+
</section>
|
|
358
|
+
|
|
359
|
+
<style>
|
|
360
|
+
.example {
|
|
361
|
+
margin: var(--spacing-6) 0;
|
|
362
|
+
padding: var(--spacing-4);
|
|
363
|
+
background: var(--background-alt);
|
|
364
|
+
border: 1px solid var(--border);
|
|
365
|
+
border-radius: var(--radius-lg);
|
|
366
|
+
}
|
|
367
|
+
.example-title {
|
|
368
|
+
font-size: var(--font-size-sm);
|
|
369
|
+
font-weight: var(--font-weight-medium);
|
|
370
|
+
color: var(--text-dim);
|
|
371
|
+
margin-bottom: var(--spacing-3);
|
|
372
|
+
text-transform: uppercase;
|
|
373
|
+
letter-spacing: var(--letter-spacing-wider);
|
|
374
|
+
}
|
|
375
|
+
</style>
|