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,263 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import Layout from './Layout.astro';
|
|
3
|
-
import FrameworkSwitcher from '../components/FrameworkSwitcher.astro';
|
|
4
|
-
import DocsSidebar from '../components/DocsSidebar.astro';
|
|
5
|
-
import { getFrameworkFromPath } from '../config/frameworks';
|
|
6
|
-
|
|
7
|
-
interface Props {
|
|
8
|
-
title: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
class?: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const { title, description, class: className = '' } = Astro.props;
|
|
14
|
-
const docsClass = className ? `docs ${className}` : 'docs';
|
|
15
|
-
const { framework } = getFrameworkFromPath(currentPath);
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
<Layout>
|
|
19
|
-
<div class={docsClass} data-docs>
|
|
20
|
-
<script is:inline>
|
|
21
|
-
(function(){var w=typeof window!=='undefined'?window.innerWidth:1025;if(w<=1024){document.documentElement.classList.add('docs-sidebar-mobile');}else{document.documentElement.classList.add('docs-sidebar-desktop');}})();
|
|
22
|
-
</script>
|
|
23
|
-
<div id="docs-sidebar-container">
|
|
24
|
-
<button
|
|
25
|
-
type="button"
|
|
26
|
-
class="docs__sidebar-toggle"
|
|
27
|
-
aria-label="Open documentation menu"
|
|
28
|
-
aria-expanded="false"
|
|
29
|
-
aria-controls="docs-sidebar"
|
|
30
|
-
data-docs-sidebar-toggle
|
|
31
|
-
>
|
|
32
|
-
<span class="docs__sidebar-toggle-icon" aria-hidden="true">
|
|
33
|
-
<span></span>
|
|
34
|
-
<span></span>
|
|
35
|
-
<span></span>
|
|
36
|
-
</span>
|
|
37
|
-
<span class="docs__sidebar-toggle-text">Docs</span>
|
|
38
|
-
</button>
|
|
39
|
-
<div class="docs__sidebar-overlay" data-docs-sidebar-overlay aria-hidden="true"></div>
|
|
40
|
-
<DocsSidebar currentPath={currentPath} framework={framework} />
|
|
41
|
-
</div>
|
|
42
|
-
<div class="docs__main">
|
|
43
|
-
<div class="docs__container">
|
|
44
|
-
<header class="docs__header"> <h1 class="docs__title">{title}</h1>
|
|
45
|
-
{description && <p class="docs__description">{description}</p>}
|
|
46
|
-
<p class="docs__read-docs">
|
|
47
|
-
<a href="https://rizzo-css.vercel.app/docs" target="_blank" rel="noopener noreferrer">Read the full docs</a> (getting started, theming, API) on the main site.
|
|
48
|
-
</p>
|
|
49
|
-
|
|
50
|
-
</header>
|
|
51
|
-
<div class="docs__content">
|
|
52
|
-
<slot />
|
|
53
|
-
</div>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
<script>
|
|
58
|
-
(function () {
|
|
59
|
-
const container = document.getElementById('docs-sidebar-container');
|
|
60
|
-
if (!container) return;
|
|
61
|
-
const toggle = container.querySelector('[data-docs-sidebar-toggle]');
|
|
62
|
-
const overlay = container.querySelector('[data-docs-sidebar-overlay]');
|
|
63
|
-
const docs = document.querySelector('[data-docs]');
|
|
64
|
-
if (!toggle || !overlay || !docs) return;
|
|
65
|
-
function open() {
|
|
66
|
-
docs?.classList.add('docs--sidebar-open');
|
|
67
|
-
toggle?.setAttribute('aria-expanded', 'true');
|
|
68
|
-
overlay?.setAttribute('aria-hidden', 'false');
|
|
69
|
-
}
|
|
70
|
-
function close() {
|
|
71
|
-
docs?.classList.remove('docs--sidebar-open');
|
|
72
|
-
toggle?.setAttribute('aria-expanded', 'false');
|
|
73
|
-
overlay?.setAttribute('aria-hidden', 'true');
|
|
74
|
-
}
|
|
75
|
-
toggle.addEventListener('click', function () {
|
|
76
|
-
if (docs?.classList.contains('docs--sidebar-open')) close();
|
|
77
|
-
else open();
|
|
78
|
-
});
|
|
79
|
-
overlay.addEventListener('click', close);
|
|
80
|
-
// On mobile, remove sidebar from DOM so the page has fewer nodes
|
|
81
|
-
if (document.documentElement.classList.contains('docs-sidebar-mobile')) {
|
|
82
|
-
if (document.readyState === 'loading') {
|
|
83
|
-
document.addEventListener('DOMContentLoaded', function () { container.remove(); });
|
|
84
|
-
} else {
|
|
85
|
-
container.remove();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
})();
|
|
89
|
-
</script>
|
|
90
|
-
</Layout>
|
|
91
|
-
<style>
|
|
92
|
-
.docs__container {
|
|
93
|
-
width: 100%;
|
|
94
|
-
max-width: var(--container-default, 1200px);
|
|
95
|
-
margin: 0 auto;
|
|
96
|
-
padding: 0 var(--spacing-4);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.docs__header {
|
|
100
|
-
margin-bottom: 3rem;
|
|
101
|
-
padding-bottom: 2rem;
|
|
102
|
-
border-bottom: 1px solid var(--border);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.docs__title {
|
|
106
|
-
font-size: var(--font-size-4xl);
|
|
107
|
-
font-weight: var(--font-weight-bold);
|
|
108
|
-
color: var(--text);
|
|
109
|
-
margin: 0 0 1rem 0;
|
|
110
|
-
line-height: var(--line-height-tight);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.docs__description {
|
|
114
|
-
font-size: var(--font-size-lg);
|
|
115
|
-
color: var(--text-dim);
|
|
116
|
-
margin: 0;
|
|
117
|
-
line-height: var(--line-height-relaxed);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.docs__content {
|
|
121
|
-
color: var(--text);
|
|
122
|
-
line-height: var(--line-height-relaxed);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/* Documentation typography */
|
|
126
|
-
.docs__content :global(h2) {
|
|
127
|
-
font-size: var(--font-size-3xl);
|
|
128
|
-
font-weight: var(--font-weight-bold);
|
|
129
|
-
margin-top: 3rem;
|
|
130
|
-
margin-bottom: 1.5rem;
|
|
131
|
-
color: var(--text);
|
|
132
|
-
padding-bottom: 0.5rem;
|
|
133
|
-
border-bottom: 1px solid var(--border);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.docs__content :global(h3) {
|
|
137
|
-
font-size: var(--font-size-2xl);
|
|
138
|
-
font-weight: var(--font-weight-semibold);
|
|
139
|
-
margin-top: 2rem;
|
|
140
|
-
margin-bottom: 1rem;
|
|
141
|
-
color: var(--text);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
.docs__content :global(h4) {
|
|
145
|
-
font-size: var(--font-size-xl);
|
|
146
|
-
font-weight: var(--font-weight-semibold);
|
|
147
|
-
margin-top: 1.5rem;
|
|
148
|
-
margin-bottom: 0.75rem;
|
|
149
|
-
color: var(--text);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.docs__content :global(p) {
|
|
153
|
-
margin-bottom: 1.25rem;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.docs__content :global(ul),
|
|
157
|
-
.docs__content :global(ol) {
|
|
158
|
-
margin-bottom: var(--spacing-5);
|
|
159
|
-
padding-left: var(--spacing-8);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
.docs__content :global(li) {
|
|
163
|
-
margin-bottom: var(--spacing-2);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.docs__content :global(code) {
|
|
167
|
-
background-color: var(--background-alt);
|
|
168
|
-
color: var(--accent);
|
|
169
|
-
padding: var(--spacing-0-125) var(--spacing-0-375);
|
|
170
|
-
border-radius: var(--radius);
|
|
171
|
-
font-family: var(--font-family-mono);
|
|
172
|
-
font-size: 0.9em;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.docs__content :global(pre) {
|
|
176
|
-
background-color: var(--background-alt);
|
|
177
|
-
border: 1px solid var(--border);
|
|
178
|
-
border-radius: var(--radius-lg);
|
|
179
|
-
padding: var(--spacing-6);
|
|
180
|
-
overflow-x: auto;
|
|
181
|
-
margin-bottom: var(--spacing-6);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
.docs__content :global(pre code) {
|
|
185
|
-
background-color: transparent;
|
|
186
|
-
color: var(--text);
|
|
187
|
-
padding: 0;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
.docs__content :global(blockquote) {
|
|
191
|
-
border-left: var(--spacing-1) solid var(--accent);
|
|
192
|
-
padding-left: var(--spacing-6);
|
|
193
|
-
margin: var(--spacing-6) 0;
|
|
194
|
-
color: var(--text-dim);
|
|
195
|
-
font-style: italic;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.docs__content :global(table) {
|
|
199
|
-
width: 100%;
|
|
200
|
-
border-collapse: collapse;
|
|
201
|
-
margin-bottom: var(--spacing-6);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
.docs__content :global(th),
|
|
205
|
-
.docs__content :global(td) {
|
|
206
|
-
padding: var(--spacing-3);
|
|
207
|
-
text-align: left;
|
|
208
|
-
border-bottom: 1px solid var(--border);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
.docs__content :global(th) {
|
|
212
|
-
font-weight: var(--font-weight-semibold);
|
|
213
|
-
background-color: var(--background-alt);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.docs__content :global(a) {
|
|
217
|
-
color: var(--accent);
|
|
218
|
-
text-decoration: none;
|
|
219
|
-
transition: color var(--transition-base);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
.docs__content :global(a:hover) {
|
|
223
|
-
color: var(--accent-hover);
|
|
224
|
-
text-decoration: underline;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
.docs__content :global(hr) {
|
|
228
|
-
border: none;
|
|
229
|
-
border-top: 1px solid var(--border);
|
|
230
|
-
margin: var(--spacing-8) 0;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/* Example sections */
|
|
234
|
-
.docs__content :global(.example) {
|
|
235
|
-
background-color: var(--background-alt);
|
|
236
|
-
border: 1px solid var(--border);
|
|
237
|
-
border-radius: var(--radius-lg);
|
|
238
|
-
padding: var(--spacing-6);
|
|
239
|
-
margin: var(--spacing-6) 0;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
.docs__content :global(.example-title) {
|
|
243
|
-
font-size: var(--font-size-sm);
|
|
244
|
-
font-weight: var(--font-weight-semibold);
|
|
245
|
-
text-transform: uppercase;
|
|
246
|
-
letter-spacing: var(--letter-spacing-wide);
|
|
247
|
-
color: var(--text-dim);
|
|
248
|
-
margin-bottom: var(--spacing-4);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
.docs__content :global(section) {
|
|
252
|
-
margin-bottom: var(--spacing-12);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
.docs__content :global(section:last-child) {
|
|
256
|
-
margin-bottom: 0;
|
|
257
|
-
}
|
|
258
|
-
.docs__read-docs {
|
|
259
|
-
margin-top: 1rem;
|
|
260
|
-
font-size: var(--font-size-sm);
|
|
261
|
-
color: var(--text-dim);
|
|
262
|
-
}
|
|
263
|
-
</style>
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import Navbar from '../components/Navbar.astro';
|
|
3
|
-
import Settings from '../components/Settings.astro';
|
|
4
|
-
interface Props {
|
|
5
|
-
title?: string;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
/* Placeholders replaced by rizzo-css CLI when scaffolding */
|
|
9
|
-
const DATA_THEME = '{{DATA_THEME}}';
|
|
10
|
-
const THEME_LIST_COMMENT = '{{THEME_LIST_COMMENT}}';
|
|
11
|
-
const { title = '{{TITLE}}' } = Astro.props;
|
|
12
|
-
---
|
|
13
|
-
<!doctype html>
|
|
14
|
-
<html lang="en" data-theme={DATA_THEME}>{THEME_LIST_COMMENT}
|
|
15
|
-
<head>
|
|
16
|
-
<meta charset="UTF-8" />
|
|
17
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
18
|
-
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
19
|
-
<!-- Theme flash prevention + accessibility (same as main site) -->
|
|
20
|
-
<script is:inline>
|
|
21
|
-
(function(){try{var s=localStorage.getItem('theme');var d='{{DEFAULT_DARK}}';var l='{{DEFAULT_LIGHT}}';var initial=document.documentElement.getAttribute('data-theme');var r=!s?((initial&&initial!=='system')?initial:(matchMedia('(prefers-color-scheme: dark)').matches?d:l)):s==='system'?(matchMedia('(prefers-color-scheme: dark)').matches?d:l):s;document.documentElement.setAttribute('data-theme',r);var f=localStorage.getItem('fontSizeScale');if(f)document.documentElement.style.setProperty('--font-size-scale',f);if(localStorage.getItem('reducedMotion')==='true')document.documentElement.classList.add('reduced-motion');if(localStorage.getItem('highContrast')==='true')document.documentElement.classList.add('high-contrast');var b=localStorage.getItem('scrollbarStyle')||'thin';if(b==='thick')document.documentElement.classList.add('scrollbar-thick');else if(b==='hidden')document.documentElement.classList.add('scrollbar-hidden','hide-scrollbars');}catch(e){}})();
|
|
22
|
-
</script>
|
|
23
|
-
<!-- Toast: showToast, removeToast, removeAllToasts -->
|
|
24
|
-
<script is:inline>
|
|
25
|
-
(function(){if(typeof window==='undefined'||window.showToast)return;function t(m,o){if(!m)return null;o=o||{};var v=o.variant||'info',p=o.position||'top-right',a=o.autoDismiss!==undefined?o.autoDismiss:5000,d=o.dismissible!==undefined?o.dismissible:true,i='toast-'+Math.random().toString(36).substr(2,9);function c(){if(!document.body)return;var cn=document.getElementById('toast-container-'+p);if(!cn){cn=document.createElement('div');cn.id='toast-container-'+p;cn.className='toast-container toast-container--'+p;cn.style.cssText='display:flex;visibility:visible;z-index:1100';document.body.appendChild(cn);}var to=document.createElement('div');to.id=i;to.className='alert alert--'+v;to.setAttribute('role','alert');to.setAttribute('aria-live','polite');to.style.cssText='display:flex;visibility:visible;opacity:0;transition:opacity .3s ease-out,transform .3s ease-out';var ir=p.indexOf('right')!==-1,il=p.indexOf('left')!==-1;to.style.transform=ir?'translateX(100%)':il?'translateX(-100%)':'translateY(-100%)';var co=document.createElement('div');co.className='alert__content';co.textContent=m;to.appendChild(co);if(d){var cb=document.createElement('button');cb.type='button';cb.className='alert__close';cb.setAttribute('aria-label','Dismiss toast');cb.innerHTML='<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2"><line x1="4" y1="4" x2="12" y2="12"></line><line x1="12" y1="4" x2="4" y2="12"></line></svg>';to.appendChild(cb);cb.onclick=function(){to.style.opacity='0';to.style.transform=ir?'translateX(100%)':il?'translateX(-100%)':'translateY(-100%)';setTimeout(function(){if(to.parentNode)to.remove();if(cn.children.length===0)cn.remove();},300);};}cn.appendChild(to);requestAnimationFrame(function(){to.offsetHeight;setTimeout(function(){requestAnimationFrame(function(){to.style.opacity='1';to.style.transform=ir||il?'translateX(0)':'translateY(0)';});},10);});if(a>0)setTimeout(function(){if(to.parentNode){to.style.opacity='0';to.style.transform=ir?'translateX(100%)':il?'translateX(-100%)':'translateY(-100%)';setTimeout(function(){if(to.parentNode)to.remove();if(cn.children.length===0)cn.remove();},300);}},a);return i;}document.body?c():document.addEventListener('DOMContentLoaded',c);return i;}function r(i){var to=document.getElementById(i);if(to){var cn=to.parentElement;to.style.opacity='0';to.style.transform='translateY(-10px)';setTimeout(function(){if(to.parentNode)to.remove();if(cn&&cn.classList.contains('toast-container')&&!cn.children.length)cn.remove();},300);}}function ra(){document.querySelectorAll('.toast-container').forEach(function(c){c.querySelectorAll('.alert').forEach(function(t){t.style.opacity='0';t.style.transform='translateY(-10px)';});setTimeout(function(){c.remove();},300);});}window.showToast=t;window.removeToast=r;window.removeAllToasts=ra;})();
|
|
26
|
-
</script>
|
|
27
|
-
<!-- Rizzo CSS: full bundle (reset + base + components + themes) -->
|
|
28
|
-
<link rel="stylesheet" href="/css/rizzo.min.css" />
|
|
29
|
-
<title>{title}</title>
|
|
30
|
-
</head>
|
|
31
|
-
<body>
|
|
32
|
-
<a href="#main-content" class="skip-link">Skip to main content</a>
|
|
33
|
-
<Navbar />
|
|
34
|
-
<Settings />
|
|
35
|
-
<main id="main-content">
|
|
36
|
-
<div class="layout__container">
|
|
37
|
-
<slot />
|
|
38
|
-
</div>
|
|
39
|
-
</main>
|
|
40
|
-
</body>
|
|
41
|
-
</html>
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import DocsLayout from '../../layouts/DocsLayout.astro';
|
|
3
|
-
import AccordionComponent from '../../components/Accordion.astro';
|
|
4
|
-
import CodeBlock from '../../components/CodeBlock.astro';
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<DocsLayout title="Accordion Component — Astro" description="Accessible accordion with collapsible sections, single or multiple open states, and keyboard navigation">
|
|
8
|
-
|
|
9
|
-
<p class="docs__read-docs">Read the full docs for this component at <a href="https://rizzo-css.vercel.app/docs/components/accordion" target="_blank" rel="noopener noreferrer">https://rizzo-css.vercel.app/docs/components/accordion</a>.</p>
|
|
10
|
-
|
|
11
|
-
<section>
|
|
12
|
-
<h2>Accordion Component</h2>
|
|
13
|
-
<p>An accessible accordion for collapsible sections. Supports single or multiple open panels and full keyboard navigation.</p>
|
|
14
|
-
|
|
15
|
-
<h3>Props</h3>
|
|
16
|
-
<ul>
|
|
17
|
-
<li><code>items</code> (array, required) - Array of objects with <code>id</code>, <code>title</code>, and optional <code>content</code></li>
|
|
18
|
-
<li><code>id</code> (string, optional) - Unique identifier for the accordion</li>
|
|
19
|
-
<li><code>allowMultiple</code> (boolean, optional) - Allow multiple panels open at once (default: <code>false</code>)</li>
|
|
20
|
-
<li><code>defaultExpanded</code> (string | string[], optional) - ID or array of IDs to expand by default (defaults to first item)</li>
|
|
21
|
-
<li><code>class</code> (string, optional) - Additional CSS classes</li>
|
|
22
|
-
</ul>
|
|
23
|
-
|
|
24
|
-
<h3>Item Structure</h3>
|
|
25
|
-
<ul>
|
|
26
|
-
<li><code>id</code> (string, required) - Unique identifier for the item</li>
|
|
27
|
-
<li><code>title</code> (string, required) - Heading text for the trigger</li>
|
|
28
|
-
<li><code>content</code> (string, optional) - HTML content for the panel (alternative to using slots)</li>
|
|
29
|
-
</ul>
|
|
30
|
-
|
|
31
|
-
<h3>Basic Usage (Single Open)</h3>
|
|
32
|
-
<p>By default only one panel is open at a time. Provide panel content as children in the same order as the items array:</p>
|
|
33
|
-
<div class="example">
|
|
34
|
-
<div class="example-title">Live Example</div>
|
|
35
|
-
<AccordionComponent
|
|
36
|
-
items={[
|
|
37
|
-
{ id: 'one', title: 'Section one' },
|
|
38
|
-
{ id: 'two', title: 'Section two' },
|
|
39
|
-
{ id: 'three', title: 'Section three' },
|
|
40
|
-
]}
|
|
41
|
-
>
|
|
42
|
-
<div>
|
|
43
|
-
<p>Content for section one. Only one panel is open at a time.</p>
|
|
44
|
-
</div>
|
|
45
|
-
<div>
|
|
46
|
-
<p>Content for section two.</p>
|
|
47
|
-
</div>
|
|
48
|
-
<div>
|
|
49
|
-
<p>Content for section three.</p>
|
|
50
|
-
</div>
|
|
51
|
-
</AccordionComponent>
|
|
52
|
-
</div>
|
|
53
|
-
|
|
54
|
-
<CodeBlock code={`---
|
|
55
|
-
import Accordion from '../../components/Accordion.astro';
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
<Accordion
|
|
59
|
-
items={[
|
|
60
|
-
{ id: 'one', title: 'Section one' },
|
|
61
|
-
{ id: 'two', title: 'Section two' },
|
|
62
|
-
{ id: 'three', title: 'Section three' },
|
|
63
|
-
]}
|
|
64
|
-
>
|
|
65
|
-
<div><p>Content for section one</p></div>
|
|
66
|
-
<div><p>Content for section two</p></div>
|
|
67
|
-
<div><p>Content for section three</p></div>
|
|
68
|
-
</Accordion>`} language="astro" />
|
|
69
|
-
|
|
70
|
-
<h3>Multiple Panels Open</h3>
|
|
71
|
-
<p>Set <code>allowMultiple</code> to <code>true</code> to allow multiple panels to be open at once:</p>
|
|
72
|
-
<div class="example">
|
|
73
|
-
<div class="example-title">Live Example</div>
|
|
74
|
-
<AccordionComponent
|
|
75
|
-
allowMultiple
|
|
76
|
-
items={[
|
|
77
|
-
{ id: 'a', title: 'First' },
|
|
78
|
-
{ id: 'b', title: 'Second' },
|
|
79
|
-
{ id: 'c', title: 'Third' },
|
|
80
|
-
]}
|
|
81
|
-
>
|
|
82
|
-
<div><p>First panel content. You can open several at once.</p></div>
|
|
83
|
-
<div><p>Second panel content.</p></div>
|
|
84
|
-
<div><p>Third panel content.</p></div>
|
|
85
|
-
</AccordionComponent>
|
|
86
|
-
</div>
|
|
87
|
-
|
|
88
|
-
<CodeBlock code={`<Accordion
|
|
89
|
-
allowMultiple
|
|
90
|
-
items={[
|
|
91
|
-
{ id: 'a', title: 'First' },
|
|
92
|
-
{ id: 'b', title: 'Second' },
|
|
93
|
-
{ id: 'c', title: 'Third' },
|
|
94
|
-
]}
|
|
95
|
-
>
|
|
96
|
-
<div><p>First panel content</p></div>
|
|
97
|
-
<div><p>Second panel content</p></div>
|
|
98
|
-
<div><p>Third panel content</p></div>
|
|
99
|
-
</Accordion>`} language="astro" />
|
|
100
|
-
|
|
101
|
-
<h3>With Content Property</h3>
|
|
102
|
-
<p>You can provide panel content directly in the item object:</p>
|
|
103
|
-
<div class="example">
|
|
104
|
-
<div class="example-title">Live Example</div>
|
|
105
|
-
<AccordionComponent
|
|
106
|
-
items={[
|
|
107
|
-
{ id: 'faq1', title: 'What is Rizzo CSS?', content: '<p>A design system and component library built with semantic CSS variables and Astro.</p>' },
|
|
108
|
-
{ id: 'faq2', title: 'Is it accessible?', content: '<p>Yes. Components follow WCAG 2.1 AA and use proper ARIA patterns.</p>' },
|
|
109
|
-
{ id: 'faq3', title: 'Can I use it with other frameworks?', content: '<p>The CSS is framework-agnostic. See the multi-framework documentation.</p>' },
|
|
110
|
-
]}
|
|
111
|
-
/>
|
|
112
|
-
</div>
|
|
113
|
-
|
|
114
|
-
<CodeBlock code={`<Accordion
|
|
115
|
-
items={[
|
|
116
|
-
{ id: 'faq1', title: 'Question one', content: '<p>Answer one</p>' },
|
|
117
|
-
{ id: 'faq2', title: 'Question two', content: '<p>Answer two</p>' },
|
|
118
|
-
]}
|
|
119
|
-
/>`} language="astro" />
|
|
120
|
-
|
|
121
|
-
<h3>Default Expanded</h3>
|
|
122
|
-
<p>Control which panel(s) are open initially with <code>defaultExpanded</code>:</p>
|
|
123
|
-
<div class="example">
|
|
124
|
-
<div class="example-title">Live Example</div>
|
|
125
|
-
<AccordionComponent
|
|
126
|
-
defaultExpanded="second"
|
|
127
|
-
items={[
|
|
128
|
-
{ id: 'first', title: 'First' },
|
|
129
|
-
{ id: 'second', title: 'Second (open by default)' },
|
|
130
|
-
{ id: 'third', title: 'Third' },
|
|
131
|
-
]}
|
|
132
|
-
>
|
|
133
|
-
<div><p>First panel</p></div>
|
|
134
|
-
<div><p>Second panel is expanded by default.</p></div>
|
|
135
|
-
<div><p>Third panel</p></div>
|
|
136
|
-
</AccordionComponent>
|
|
137
|
-
</div>
|
|
138
|
-
|
|
139
|
-
<CodeBlock code={`<Accordion
|
|
140
|
-
defaultExpanded="second"
|
|
141
|
-
items={[
|
|
142
|
-
{ id: 'first', title: 'First' },
|
|
143
|
-
{ id: 'second', title: 'Second' },
|
|
144
|
-
{ id: 'third', title: 'Third' },
|
|
145
|
-
]}
|
|
146
|
-
>
|
|
147
|
-
<div><p>First</p></div>
|
|
148
|
-
<div><p>Second</p></div>
|
|
149
|
-
<div><p>Third</p></div>
|
|
150
|
-
</Accordion>`} language="astro" />
|
|
151
|
-
|
|
152
|
-
<h3>Features</h3>
|
|
153
|
-
<ul>
|
|
154
|
-
<li><strong>Collapsible sections</strong> - Expand and collapse panels with smooth transitions</li>
|
|
155
|
-
<li><strong>Single or multiple open</strong> - <code>allowMultiple</code> controls whether only one or several panels can be open</li>
|
|
156
|
-
<li><strong>Keyboard navigation</strong> - Arrow Up/Down, Home, End, Enter, and Space</li>
|
|
157
|
-
<li><strong>ARIA</strong> - <code>aria-expanded</code>, <code>aria-controls</code>, <code>region</code>, <code>aria-labelledby</code></li>
|
|
158
|
-
<li><strong>Content from props or slots</strong> - Use <code>content</code> (HTML string) or pass children for panel content</li>
|
|
159
|
-
<li><strong>Theme-aware</strong> - Uses design system variables</li>
|
|
160
|
-
</ul>
|
|
161
|
-
|
|
162
|
-
<h3>Keyboard Navigation</h3>
|
|
163
|
-
<ul>
|
|
164
|
-
<li><strong>Arrow Down</strong> - Focus next trigger</li>
|
|
165
|
-
<li><strong>Arrow Up</strong> - Focus previous trigger</li>
|
|
166
|
-
<li><strong>Home</strong> - Focus first trigger</li>
|
|
167
|
-
<li><strong>End</strong> - Focus last trigger</li>
|
|
168
|
-
<li><strong>Enter / Space</strong> - Toggle focused panel</li>
|
|
169
|
-
</ul>
|
|
170
|
-
<p><strong>Svelte & Vanilla:</strong> <a href="/docs/svelte/components/accordion">Svelte</a> · Vanilla: same HTML and BEM as in Usage above; add minimal JS for expand/collapse.</p>
|
|
171
|
-
</section>
|
|
172
|
-
</DocsLayout>
|