rizzo-css 0.0.81 → 0.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +1 -1
  2. package/bin/rizzo-css.js +12 -0
  3. package/package.json +1 -1
  4. package/scaffold/react/DocsSidebar.tsx +130 -28
  5. package/scaffold/react/ThemeIcon.tsx +57 -0
  6. package/scaffold/react/base/package.json +1 -1
  7. package/scaffold/react/themes.ts +54 -0
  8. package/scaffold/react/variants/full/README-RIZZO.md +35 -0
  9. package/scaffold/react/variants/full/package.json +24 -0
  10. package/scaffold/react/variants/full/src/App.tsx +41 -0
  11. package/scaffold/react/variants/full/src/config/componentCategories.ts +43 -0
  12. package/scaffold/react/variants/full/src/config/docsNav.ts +70 -0
  13. package/scaffold/react/variants/full/src/index.css +96 -0
  14. package/scaffold/react/variants/full/src/layouts/BlocksLayout.tsx +124 -0
  15. package/scaffold/react/variants/full/src/layouts/DocsLayout.tsx +93 -0
  16. package/scaffold/react/variants/full/src/main.tsx +13 -0
  17. package/scaffold/react/variants/full/src/views/BlocksIndex.tsx +56 -0
  18. package/scaffold/react/variants/full/src/views/DocsComponents.tsx +56 -0
  19. package/scaffold/react/variants/full/src/views/DocsGettingStarted.tsx +27 -0
  20. package/scaffold/react/variants/full/src/views/DocsIndex.tsx +39 -0
  21. package/scaffold/react/variants/full/src/views/DocsOverview.tsx +39 -0
  22. package/scaffold/react/variants/full/src/views/Home.tsx +104 -0
  23. package/scaffold/react/variants/full/src/views/Themes.tsx +118 -0
  24. package/scaffold/svelte/variants/full/src/config/docsNav.ts +23 -3
  25. package/scaffold/svelte/variants/full/src/routes/+layout.svelte +4 -1
  26. package/scaffold/svelte/variants/full/src/routes/blocks/+layout.svelte +4 -2
  27. package/scaffold/svelte/variants/full/src/routes/docs/+layout.svelte +3 -1
  28. package/scaffold/svelte/variants/full/src/routes/themes/+page.svelte +130 -69
  29. package/scaffold/vanilla/README-RIZZO.md +1 -1
  30. package/scaffold/vanilla/components/accordion.html +6 -0
  31. package/scaffold/vanilla/components/alert-dialog.html +6 -0
  32. package/scaffold/vanilla/components/alert.html +6 -0
  33. package/scaffold/vanilla/components/aspect-ratio.html +6 -0
  34. package/scaffold/vanilla/components/avatar.html +6 -0
  35. package/scaffold/vanilla/components/back-to-top.html +6 -0
  36. package/scaffold/vanilla/components/badge.html +6 -0
  37. package/scaffold/vanilla/components/breadcrumb.html +6 -0
  38. package/scaffold/vanilla/components/button-group.html +6 -0
  39. package/scaffold/vanilla/components/button.html +6 -0
  40. package/scaffold/vanilla/components/calendar.html +6 -0
  41. package/scaffold/vanilla/components/cards.html +6 -0
  42. package/scaffold/vanilla/components/carousel.html +6 -0
  43. package/scaffold/vanilla/components/chart.html +6 -0
  44. package/scaffold/vanilla/components/collapsible.html +6 -0
  45. package/scaffold/vanilla/components/command.html +6 -0
  46. package/scaffold/vanilla/components/context-menu.html +6 -0
  47. package/scaffold/vanilla/components/copy-to-clipboard.html +6 -0
  48. package/scaffold/vanilla/components/dashboard.html +6 -0
  49. package/scaffold/vanilla/components/direction.html +6 -0
  50. package/scaffold/vanilla/components/divider.html +6 -0
  51. package/scaffold/vanilla/components/docs-sidebar.html +6 -0
  52. package/scaffold/vanilla/components/dropdown.html +6 -0
  53. package/scaffold/vanilla/components/empty.html +6 -0
  54. package/scaffold/vanilla/components/font-switcher.html +6 -0
  55. package/scaffold/vanilla/components/footer.html +6 -0
  56. package/scaffold/vanilla/components/forms.html +6 -0
  57. package/scaffold/vanilla/components/hover-card.html +6 -0
  58. package/scaffold/vanilla/components/icons.html +6 -0
  59. package/scaffold/vanilla/components/index.html +6 -0
  60. package/scaffold/vanilla/components/input-group.html +6 -0
  61. package/scaffold/vanilla/components/input-otp.html +6 -0
  62. package/scaffold/vanilla/components/kbd.html +6 -0
  63. package/scaffold/vanilla/components/label.html +6 -0
  64. package/scaffold/vanilla/components/menubar.html +6 -0
  65. package/scaffold/vanilla/components/modal.html +6 -0
  66. package/scaffold/vanilla/components/navbar.html +6 -0
  67. package/scaffold/vanilla/components/pagination.html +6 -0
  68. package/scaffold/vanilla/components/popover.html +6 -0
  69. package/scaffold/vanilla/components/progress-bar.html +6 -0
  70. package/scaffold/vanilla/components/range-calendar.html +6 -0
  71. package/scaffold/vanilla/components/resizable.html +6 -0
  72. package/scaffold/vanilla/components/scroll-area.html +6 -0
  73. package/scaffold/vanilla/components/search.html +6 -0
  74. package/scaffold/vanilla/components/separator.html +6 -0
  75. package/scaffold/vanilla/components/settings.html +6 -0
  76. package/scaffold/vanilla/components/sheet.html +6 -0
  77. package/scaffold/vanilla/components/skeleton.html +6 -0
  78. package/scaffold/vanilla/components/slider.html +6 -0
  79. package/scaffold/vanilla/components/sound-effects.html +6 -0
  80. package/scaffold/vanilla/components/spinner.html +6 -0
  81. package/scaffold/vanilla/components/switch.html +6 -0
  82. package/scaffold/vanilla/components/table.html +6 -0
  83. package/scaffold/vanilla/components/tabs.html +6 -0
  84. package/scaffold/vanilla/components/theme-switcher.html +6 -0
  85. package/scaffold/vanilla/components/toast.html +6 -0
  86. package/scaffold/vanilla/components/toggle-group.html +6 -0
  87. package/scaffold/vanilla/components/toggle.html +6 -0
  88. package/scaffold/vanilla/components/tooltip.html +6 -0
  89. package/scaffold/vanilla/index.html +6 -0
  90. package/scaffold/vue/DocsSidebar.vue +132 -4
  91. package/scaffold/vue/ThemeIcon.vue +50 -0
  92. package/scaffold/vue/base/package.json +1 -1
  93. package/scaffold/vue/themes.ts +54 -0
  94. package/scaffold/vue/variants/full/README-RIZZO.md +35 -0
  95. package/scaffold/vue/variants/full/package.json +22 -0
  96. package/scaffold/vue/variants/full/src/App.vue +17 -0
  97. package/scaffold/vue/variants/full/src/config/componentCategories.ts +43 -0
  98. package/scaffold/vue/variants/full/src/config/docsNav.ts +70 -0
  99. package/scaffold/vue/variants/full/src/layouts/BlocksLayout.vue +136 -0
  100. package/scaffold/vue/variants/full/src/layouts/DocsLayout.vue +145 -0
  101. package/scaffold/vue/variants/full/src/main.ts +6 -0
  102. package/scaffold/vue/variants/full/src/router/index.ts +38 -0
  103. package/scaffold/vue/variants/full/src/views/BlocksIndex.vue +111 -0
  104. package/scaffold/vue/variants/full/src/views/DocsComponents.vue +115 -0
  105. package/scaffold/vue/variants/full/src/views/DocsGettingStarted.vue +45 -0
  106. package/scaffold/vue/variants/full/src/views/DocsIndex.vue +69 -0
  107. package/scaffold/vue/variants/full/src/views/DocsOverview.vue +66 -0
  108. package/scaffold/vue/variants/full/src/views/Home.vue +240 -0
  109. package/scaffold/vue/variants/full/src/views/Themes.vue +257 -0
@@ -0,0 +1,111 @@
1
+ <template>
2
+ <section class="blocks-index__browse">
3
+ <h1 class="docs__title">Blocks</h1>
4
+ <p class="blocks-index__browse-desc">
5
+ Pre-built layouts and patterns using Rizzo components and design tokens. Use them as starting points for dashboards, docs sites, auth screens, and app shells.
6
+ </p>
7
+ </section>
8
+
9
+ <section>
10
+ <h2 class="blocks-index__section-label">Featured</h2>
11
+ <div class="blocks-index__grid">
12
+ <a
13
+ v-for="block in blocks"
14
+ :key="block.href"
15
+ :href="DOCS_BASE + block.href"
16
+ class="block-card-link"
17
+ target="_blank"
18
+ rel="noopener noreferrer"
19
+ >
20
+ <Card variant="elevated">
21
+ <div class="card__body">
22
+ <h3 style="margin: 0 0 var(--spacing-2) 0;">{{ block.title }}</h3>
23
+ <p style="margin: 0; color: var(--text-dim); font-size: var(--font-size-sm);">{{ block.desc }}</p>
24
+ <span class="block-card-meta" style="margin-top: var(--spacing-2); font-size: var(--font-size-xs); color: var(--text-dim);">{{ block.meta }}</span>
25
+ </div>
26
+ </Card>
27
+ </a>
28
+ </div>
29
+ </section>
30
+
31
+ <section>
32
+ <h2>Scaffold from CLI</h2>
33
+ <p>When you create a new project or add to existing, choose a <strong>template</strong>: <strong>CSS only</strong>, <strong>Landing</strong>, <strong>Docs</strong>, <strong>Dashboard</strong>, or <strong>Full</strong>. Full clones the entire docs site with home, docs, components, blocks, and themes.</p>
34
+ <pre><code>npx rizzo-css init
35
+ # → Choose framework (Vanilla, Astro, Svelte, React, Vue)
36
+ # → Choose template: CSS only | Landing | Docs | Dashboard | Full</code></pre>
37
+ </section>
38
+ </template>
39
+
40
+ <script setup lang="ts">
41
+ import Card from '@/components/rizzo/Card.vue';
42
+
43
+ const DOCS_BASE = 'https://rizzo-css.vercel.app';
44
+
45
+ const blocks = [
46
+ { href: '/blocks/landing-hero', title: 'Landing hero', desc: 'Marketing hero with headline, subtitle, and primary CTAs. Typography and button tokens.', meta: 'Hero · Buttons · Typography' },
47
+ { href: '/blocks/pricing', title: 'Pricing cards', desc: 'Three-tier pricing section using Card, Badge, and buttons. Theme-aware.', meta: 'Card · Badge · Buttons' },
48
+ { href: '/blocks/dashboard-01', title: 'Dashboard', desc: 'App dashboard with sidebar, stat cards, and data table. Uses Dashboard, Card, and Table components.', meta: 'Dashboard · Sidebar · Cards · Table' },
49
+ { href: '/blocks/docs-layout', title: 'Docs layout', desc: 'Documentation layout with a sidebar nav and main content area. Same pattern as this docs site.', meta: 'Docs Sidebar · Layout' },
50
+ { href: '/blocks/login', title: 'Login', desc: 'Centered login form on a muted background. Brand link, email/password fields, and footer links.', meta: 'Form · Button · Tokens' },
51
+ { href: '/blocks/signup', title: 'Sign up', desc: 'Centered sign-up form with name, email, password, and link to sign in. Same tokens as Login.', meta: 'Form · Button · Tokens' },
52
+ ];
53
+ </script>
54
+
55
+ <style scoped>
56
+ .blocks-index__browse {
57
+ margin-bottom: var(--section-spacing);
58
+ }
59
+ .blocks-index__browse-desc {
60
+ margin: 0;
61
+ color: var(--text-dim);
62
+ font-size: var(--font-size-sm);
63
+ }
64
+ .blocks-index__section-label {
65
+ font-size: var(--text-lg);
66
+ font-weight: 600;
67
+ margin: 0 0 var(--page-header-margin-bottom);
68
+ color: var(--text);
69
+ }
70
+ .blocks-index__grid {
71
+ display: grid;
72
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
73
+ gap: var(--spacing-6);
74
+ margin: var(--page-header-margin-bottom) 0;
75
+ }
76
+ .block-card-link {
77
+ text-decoration: none;
78
+ color: inherit;
79
+ display: flex;
80
+ flex-direction: column;
81
+ height: 100%;
82
+ transition: transform var(--transition-base);
83
+ }
84
+ .block-card-link :deep(.card) {
85
+ flex: 1;
86
+ display: flex;
87
+ flex-direction: column;
88
+ min-height: 0;
89
+ }
90
+ .block-card-link :deep(.card .card__body) {
91
+ flex: 1;
92
+ }
93
+ .block-card-link:hover {
94
+ transform: translateY(calc(-1 * var(--spacing-0-125)));
95
+ }
96
+ .block-card-link:hover :deep(.card__body h3) {
97
+ color: var(--accent-fg);
98
+ }
99
+ pre {
100
+ background: var(--background-alt);
101
+ border: 1px solid var(--border);
102
+ border-radius: var(--radius-lg);
103
+ padding: var(--spacing-4);
104
+ overflow-x: auto;
105
+ font-size: var(--font-size-sm);
106
+ }
107
+ pre code {
108
+ background: none;
109
+ padding: 0;
110
+ }
111
+ </style>
@@ -0,0 +1,115 @@
1
+ <template>
2
+ <div>
3
+ <section class="docs-components-intro">
4
+ <h1 class="docs__title">Components</h1>
5
+ <p class="docs-components-intro__tagline">
6
+ Browse the collection of accessible, themeable components. Same CSS and BEM for Astro, Svelte, Vue, and Vanilla.
7
+ </p>
8
+ <p class="docs-components-intro__meta">
9
+ Each component has live demos and code on the full docs site. Quick jump:
10
+ <a href="https://rizzo-css.vercel.app/docs/components" target="_blank" rel="noopener noreferrer">Astro</a>
11
+ ·
12
+ <a href="https://rizzo-css.vercel.app/docs/svelte/components" target="_blank" rel="noopener noreferrer">Svelte</a>
13
+ ·
14
+ <a href="https://rizzo-css.vercel.app/docs/vanilla/components" target="_blank" rel="noopener noreferrer">Vanilla</a>.
15
+ </p>
16
+ </section>
17
+
18
+ <section v-for="cat in categories" :key="cat.id" class="docs-component-category" :id="cat.id">
19
+ <h2 class="docs-component-category__title">{{ cat.label }}</h2>
20
+ <div class="docs-component-grid">
21
+ <a
22
+ v-for="item in cat.items"
23
+ :key="item.href"
24
+ :href="DOCS_BASE + item.href"
25
+ class="component-card-link"
26
+ target="_blank"
27
+ rel="noopener noreferrer"
28
+ >
29
+ <Card variant="elevated">
30
+ <div class="card__body">
31
+ <h3 style="margin: 0 0 var(--spacing-2) 0;">{{ item.title }}</h3>
32
+ <p style="margin: 0; color: var(--text-dim); font-size: var(--font-size-sm);">{{ item.description }}</p>
33
+ </div>
34
+ </Card>
35
+ </a>
36
+ </div>
37
+ </section>
38
+
39
+ <section>
40
+ <h2>Component features</h2>
41
+ <p>All components share: semantic theming, accessibility (keyboard + ARIA), BEM naming, responsive design, and WCAG AA compliance.</p>
42
+ </section>
43
+ </div>
44
+ </template>
45
+
46
+ <script setup lang="ts">
47
+ import { getComponentsByCategory } from '@/config/componentCategories';
48
+ import Card from '@/components/rizzo/Card.vue';
49
+
50
+ const DOCS_BASE = 'https://rizzo-css.vercel.app';
51
+ const categories = getComponentsByCategory();
52
+ </script>
53
+
54
+ <style scoped>
55
+ .docs-components-intro {
56
+ margin-bottom: var(--spacing-10);
57
+ }
58
+ .docs-components-intro__tagline {
59
+ font-size: var(--text-lg);
60
+ color: var(--text-dim);
61
+ margin: 0 0 var(--spacing-2);
62
+ line-height: var(--line-height-relaxed);
63
+ }
64
+ .docs-components-intro__meta {
65
+ font-size: var(--font-size-sm);
66
+ color: var(--text-dim);
67
+ margin: 0;
68
+ }
69
+ .docs-component-category {
70
+ margin-bottom: var(--spacing-10);
71
+ }
72
+ .docs-component-category:last-of-type {
73
+ margin-bottom: 0;
74
+ }
75
+ .docs-component-category__title {
76
+ font-size: var(--text-lg);
77
+ font-weight: 600;
78
+ margin: 0 0 var(--spacing-4);
79
+ color: var(--text);
80
+ }
81
+ .docs-component-grid {
82
+ display: grid;
83
+ grid-template-columns: repeat(auto-fill, minmax(var(--spacing-70), 1fr));
84
+ gap: var(--spacing-6);
85
+ margin: 0;
86
+ }
87
+ .component-card-link {
88
+ text-decoration: none;
89
+ color: inherit;
90
+ display: flex;
91
+ flex-direction: column;
92
+ height: 100%;
93
+ transition: transform var(--transition-base);
94
+ }
95
+ .component-card-link :deep(.card) {
96
+ flex: 1;
97
+ display: flex;
98
+ flex-direction: column;
99
+ min-height: 0;
100
+ }
101
+ .component-card-link :deep(.card .card__body) {
102
+ flex: 1;
103
+ }
104
+ .component-card-link:hover {
105
+ transform: translateY(calc(-1 * var(--spacing-0-125)));
106
+ }
107
+ .component-card-link:hover :deep(.card__body h3) {
108
+ color: var(--accent-fg);
109
+ }
110
+ @media (width <= 640px) {
111
+ .docs-component-grid {
112
+ grid-template-columns: 1fr;
113
+ }
114
+ }
115
+ </style>
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <div>
3
+ <h1 class="docs__title">Getting started</h1>
4
+ <p>This project was created with the <strong>Full</strong> template. You have the home page, docs overview, components index, blocks, and themes.</p>
5
+
6
+ <h2 id="installation">Installation</h2>
7
+ <p>Rizzo CSS is already set up. The stylesheet is at <code>public/css/rizzo.min.css</code>. Use the navbar to explore <router-link to="/docs">Docs</router-link>, <router-link to="/docs/components">Components</router-link>, <router-link to="/blocks">Blocks</router-link>, and <router-link to="/themes">Themes</router-link>.</p>
8
+
9
+ <h2 id="add-component">Add a component</h2>
10
+ <p>From your project root:</p>
11
+ <pre><code>npx rizzo-css add &lt;ComponentName&gt;</code></pre>
12
+ <p>Example: <code>npx rizzo-css add Modal</code> adds the Modal component to <code>src/components/rizzo</code>.</p>
13
+
14
+ <h2>Next steps</h2>
15
+ <ul>
16
+ <li><router-link to="/docs">Docs overview</router-link></li>
17
+ <li><router-link to="/docs/components">Components</router-link></li>
18
+ <li><router-link to="/blocks">Blocks</router-link></li>
19
+ <li><router-link to="/themes">Themes</router-link></li>
20
+ <li>Full documentation: <a href="https://rizzo-css.vercel.app/docs/getting-started" target="_blank" rel="noopener noreferrer">rizzo-css.vercel.app</a></li>
21
+ </ul>
22
+ </div>
23
+ </template>
24
+
25
+ <style scoped>
26
+ :deep(.docs__content) code {
27
+ background: var(--background-alt);
28
+ color: var(--accent-fg);
29
+ padding: var(--spacing-0-125) var(--spacing-0-375);
30
+ border-radius: var(--radius);
31
+ font-size: var(--font-size-sm);
32
+ }
33
+ pre {
34
+ background: var(--background-alt);
35
+ border: 1px solid var(--border);
36
+ border-radius: var(--radius-lg);
37
+ padding: var(--spacing-4);
38
+ overflow-x: auto;
39
+ margin: var(--spacing-4) 0;
40
+ }
41
+ pre code {
42
+ padding: 0;
43
+ background: none;
44
+ }
45
+ </style>
@@ -0,0 +1,69 @@
1
+ <template>
2
+ <section class="docs-overview">
3
+ <h1 class="docs__title">Docs overview</h1>
4
+ <p class="docs-overview__intro">
5
+ Rizzo CSS is a design system built on semantic theming and 14 themes. One CSS codebase, 58 accessible BEM components — for <strong>Vanilla JS</strong>, <strong>Astro</strong>, <strong>Svelte</strong>, <strong>React</strong>, and <strong>Vue</strong>.
6
+ </p>
7
+
8
+ <h2 id="overview" class="docs-overview__h2">Overview</h2>
9
+ <ul class="docs-overview__list">
10
+ <li><router-link to="/docs/getting-started">Getting Started</router-link> — Installation, CLI, templates (CSS only | Landing | Docs | Dashboard | Full)</li>
11
+ <li><router-link to="/docs/components">Components</router-link> — Browse all components by category</li>
12
+ <li><router-link to="/blocks">Blocks</router-link> — Pre-built layouts and patterns</li>
13
+ <li><router-link to="/themes">Themes</router-link> — 14 themes, live preview</li>
14
+ </ul>
15
+
16
+ <h2 id="blocks" class="docs-overview__h2">Blocks</h2>
17
+ <ul class="docs-overview__list">
18
+ <li><router-link to="/blocks">Blocks overview</router-link></li>
19
+ <li><a href="https://rizzo-css.vercel.app/blocks/landing-hero" target="_blank" rel="noopener noreferrer">Landing hero</a></li>
20
+ <li><a href="https://rizzo-css.vercel.app/blocks/pricing" target="_blank" rel="noopener noreferrer">Pricing cards</a></li>
21
+ <li><a href="https://rizzo-css.vercel.app/blocks/dashboard-01" target="_blank" rel="noopener noreferrer">Dashboard with sidebar</a></li>
22
+ <li><a href="https://rizzo-css.vercel.app/blocks/docs-layout" target="_blank" rel="noopener noreferrer">Docs layout</a></li>
23
+ <li><a href="https://rizzo-css.vercel.app/blocks/login" target="_blank" rel="noopener noreferrer">Login</a></li>
24
+ <li><a href="https://rizzo-css.vercel.app/blocks/signup" target="_blank" rel="noopener noreferrer">Sign up</a></li>
25
+ </ul>
26
+
27
+ <p class="docs-overview__footer">
28
+ <router-link to="/docs/getting-started">Getting Started</router-link>
29
+ ·
30
+ <router-link to="/docs/components">Components</router-link>
31
+ ·
32
+ <router-link to="/themes">Themes</router-link>
33
+ </p>
34
+ </section>
35
+ </template>
36
+
37
+ <script setup lang="ts">
38
+ </script>
39
+
40
+ <style scoped>
41
+ .docs-overview__intro {
42
+ margin: 0 0 var(--spacing-6);
43
+ color: var(--text);
44
+ line-height: var(--line-height-relaxed);
45
+ }
46
+ .docs-overview__h2 {
47
+ font-size: var(--font-size-2xl);
48
+ font-weight: 600;
49
+ margin: var(--spacing-10) 0 var(--spacing-4);
50
+ color: var(--text);
51
+ }
52
+ .docs-overview__list {
53
+ margin: 0 0 var(--spacing-6);
54
+ padding-left: var(--spacing-8);
55
+ }
56
+ .docs-overview__list li {
57
+ margin-bottom: var(--spacing-2);
58
+ }
59
+ .docs-overview__footer {
60
+ margin-top: var(--spacing-10);
61
+ padding-top: var(--spacing-6);
62
+ border-top: 1px solid var(--border);
63
+ color: var(--text-dim);
64
+ font-size: var(--font-size-sm);
65
+ }
66
+ .docs-overview__footer a {
67
+ margin-right: var(--spacing-2);
68
+ }
69
+ </style>
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <section class="docs-overview">
3
+ <h1 class="docs__title">Docs overview</h1>
4
+ <p class="docs-overview__intro">
5
+ Rizzo CSS is a design system built on semantic theming and 14 themes. One CSS codebase, 58 accessible BEM components — for <strong>Vanilla JS</strong>, <strong>Astro</strong>, <strong>Svelte</strong>, <strong>React</strong>, and <strong>Vue</strong>.
6
+ </p>
7
+
8
+ <h2 id="overview" class="docs-overview__h2">Overview</h2>
9
+ <ul class="docs-overview__list">
10
+ <li><router-link to="/docs/getting-started">Getting Started</router-link> — Installation, CLI, templates (CSS only | Landing | Docs | Dashboard | Full)</li>
11
+ <li><router-link to="/docs/components">Components</router-link> — Browse all components by category</li>
12
+ <li><router-link to="/blocks">Blocks</router-link> — Pre-built layouts and patterns</li>
13
+ <li><router-link to="/themes">Themes</router-link> — 14 themes, live preview</li>
14
+ </ul>
15
+
16
+ <h2 id="blocks" class="docs-overview__h2">Blocks</h2>
17
+ <ul class="docs-overview__list">
18
+ <li><router-link to="/blocks">Blocks overview</router-link></li>
19
+ <li><a href="https://rizzo-css.vercel.app/blocks/landing-hero" target="_blank" rel="noopener noreferrer">Landing hero</a></li>
20
+ <li><a href="https://rizzo-css.vercel.app/blocks/pricing" target="_blank" rel="noopener noreferrer">Pricing cards</a></li>
21
+ <li><a href="https://rizzo-css.vercel.app/blocks/dashboard-01" target="_blank" rel="noopener noreferrer">Dashboard with sidebar</a></li>
22
+ <li><a href="https://rizzo-css.vercel.app/blocks/docs-layout" target="_blank" rel="noopener noreferrer">Docs layout</a></li>
23
+ <li><a href="https://rizzo-css.vercel.app/blocks/login" target="_blank" rel="noopener noreferrer">Login</a></li>
24
+ <li><a href="https://rizzo-css.vercel.app/blocks/signup" target="_blank" rel="noopener noreferrer">Sign up</a></li>
25
+ </ul>
26
+
27
+ <p class="docs-overview__footer">
28
+ <router-link to="/docs/getting-started">Getting Started</router-link>
29
+ ·
30
+ <router-link to="/docs/components">Components</router-link>
31
+ ·
32
+ <router-link to="/themes">Themes</router-link>
33
+ </p>
34
+ </section>
35
+ </template>
36
+
37
+ <style scoped>
38
+ .docs-overview__intro {
39
+ margin: 0 0 var(--spacing-6);
40
+ color: var(--text);
41
+ line-height: var(--line-height-relaxed);
42
+ }
43
+ .docs-overview__h2 {
44
+ font-size: var(--font-size-2xl);
45
+ font-weight: 600;
46
+ margin: var(--spacing-10) 0 var(--spacing-4);
47
+ color: var(--text);
48
+ }
49
+ .docs-overview__list {
50
+ margin: 0 0 var(--spacing-6);
51
+ padding-left: var(--spacing-8);
52
+ }
53
+ .docs-overview__list li {
54
+ margin-bottom: var(--spacing-2);
55
+ }
56
+ .docs-overview__footer {
57
+ margin-top: var(--spacing-10);
58
+ padding-top: var(--spacing-6);
59
+ border-top: 1px solid var(--border);
60
+ color: var(--text-dim);
61
+ font-size: var(--font-size-sm);
62
+ }
63
+ .docs-overview__footer a {
64
+ margin-right: var(--spacing-2);
65
+ }
66
+ </style>
@@ -0,0 +1,240 @@
1
+ <template>
2
+ <main id="main-content" class="home">
3
+ <div class="home__container">
4
+ <header class="home__hero">
5
+ <h1 class="home__title">Rizzo CSS</h1>
6
+ <p class="home__subtitle">
7
+ A modern CSS design system with semantic theming, accessibility-first components, and one CLI for Vanilla, Astro, Svelte, React, and Vue. Start here then make it your own.
8
+ </p>
9
+ <div class="home__hero-ctas">
10
+ <router-link to="/docs/getting-started" class="btn btn-primary home__hero-cta">Get Started</router-link>
11
+ <router-link to="/docs/components" class="btn btn-outline home__hero-cta">View Components</router-link>
12
+ </div>
13
+ </header>
14
+
15
+ <section class="home__features" aria-labelledby="home-features-heading">
16
+ <h2 id="home-features-heading" class="home__section-title">Features</h2>
17
+ <p class="home__features-intro">A complete design system that works across Vanilla, Astro, Svelte, React, and Vue — same CSS, same components, zero lock-in.</p>
18
+ <div class="home__features-featured">
19
+ <div class="home__card home__card--featured">
20
+ <span class="home__card-icon" aria-hidden="true">Themes</span>
21
+ <h3>14 beautiful themes</h3>
22
+ <p>7 dark and 7 light with OKLCH for perceptual uniformity. System preference, persistence, and a unique icon per theme.</p>
23
+ </div>
24
+ <div class="home__card home__card--featured">
25
+ <span class="home__card-icon" aria-hidden="true">A11y</span>
26
+ <h3>Accessibility first</h3>
27
+ <p>WCAG AA compliant with full keyboard navigation, ARIA, focus management, and screen reader support.</p>
28
+ </div>
29
+ <div class="home__card home__card--featured">
30
+ <span class="home__card-icon" aria-hidden="true">Components</span>
31
+ <h3>All components</h3>
32
+ <p>Navbar, Settings, Theme Switcher, Font Switcher, Modal, Dropdown, Tabs, Forms, and more — all accessible and themeable.</p>
33
+ </div>
34
+ </div>
35
+ <h3 class="home__features-supporting-label">And more</h3>
36
+ <div class="home__grid home__grid--supporting">
37
+ <div class="home__card home__card--supporting">
38
+ <h3>Semantic variables</h3>
39
+ <p>CSS variables that adapt to themes. No hardcoded colors; override once, update everywhere.</p>
40
+ </div>
41
+ <div class="home__card home__card--supporting">
42
+ <h3>PostCSS powered</h3>
43
+ <p>Imports, autoprefixing, and production minification. Fits into any build pipeline.</p>
44
+ </div>
45
+ <div class="home__card home__card--supporting">
46
+ <h3>Typography & spacing</h3>
47
+ <p>Scaling font sizes, weights, line heights, and a consistent spacing scale (0–24).</p>
48
+ </div>
49
+ <div class="home__card home__card--supporting">
50
+ <h3>Responsive & utilities</h3>
51
+ <p>Mobile-first breakpoints and utility classes for layout, display, and flexbox.</p>
52
+ </div>
53
+ </div>
54
+ </section>
55
+
56
+ <section class="home__add-command" aria-labelledby="home-add-command-heading">
57
+ <h2 id="home-add-command-heading" class="home__section-title">Add a component</h2>
58
+ <p class="home__features-intro" style="margin-bottom: var(--spacing-4);">Add any component from the CLI:</p>
59
+ <div class="home__add-command-block">
60
+ <pre><code>npx rizzo-css add &lt;ComponentName&gt;</code></pre>
61
+ <CopyToClipboard
62
+ :value="ADD_COMMAND"
63
+ icon-only
64
+ button-label="Copy"
65
+ format="command"
66
+ label="Copy command"
67
+ class="home__add-command-copy"
68
+ />
69
+ </div>
70
+ </section>
71
+
72
+ <section class="home__docs">
73
+ <h2 class="home__section-title">Documentation</h2>
74
+ <div class="home__docs-grid">
75
+ <router-link to="/docs/getting-started" class="home__doc-card">
76
+ <h3>Getting Started</h3>
77
+ <p>Installation, project structure, and quick start guide</p>
78
+ </router-link>
79
+ <router-link to="/docs/components" class="home__doc-card">
80
+ <h3>Components</h3>
81
+ <p>Component library with usage examples and live demos</p>
82
+ </router-link>
83
+ <router-link to="/themes" class="home__doc-card">
84
+ <h3>Themes</h3>
85
+ <p>Theme system, 14 themes, and live preview</p>
86
+ </router-link>
87
+ <router-link to="/blocks" class="home__doc-card">
88
+ <h3>Blocks</h3>
89
+ <p>Pre-built layouts: landing, pricing, dashboard, docs, login, signup</p>
90
+ </router-link>
91
+ <router-link to="/docs" class="home__doc-card">
92
+ <h3>Docs Overview</h3>
93
+ <p>Condensed index of documentation and links</p>
94
+ </router-link>
95
+ <a href="https://rizzo-css.vercel.app/docs/theming" class="home__doc-card" target="_blank" rel="noopener noreferrer">
96
+ <h3>Theming (full docs)</h3>
97
+ <p>Custom themes, persistence, color format — on main site</p>
98
+ <span class="sr-only"> (opens in new tab)</span>
99
+ </a>
100
+ </div>
101
+ </section>
102
+ </div>
103
+ </main>
104
+ </template>
105
+
106
+ <script setup lang="ts">
107
+ import CopyToClipboard from '@/components/rizzo/CopyToClipboard.vue';
108
+
109
+ const ADD_COMMAND = 'npx rizzo-css add <ComponentName>';
110
+ </script>
111
+
112
+ <style scoped>
113
+ .home__container {
114
+ width: 100%;
115
+ max-width: var(--container-default);
116
+ margin: 0 auto;
117
+ padding: 0 var(--content-padding-x);
118
+ }
119
+ .home__hero {
120
+ text-align: center;
121
+ padding: var(--spacing-10) 0;
122
+ }
123
+ .home__title {
124
+ font-size: var(--font-size-4xl);
125
+ font-weight: var(--font-weight-bold);
126
+ color: var(--text);
127
+ margin: 0 0 var(--spacing-4);
128
+ line-height: var(--line-height-tight);
129
+ }
130
+ .home__subtitle {
131
+ font-size: var(--font-size-lg);
132
+ color: var(--text-dim);
133
+ margin: 0 auto var(--spacing-6);
134
+ max-width: 42ch;
135
+ line-height: var(--line-height-relaxed);
136
+ }
137
+ .home__hero-ctas {
138
+ display: flex;
139
+ flex-wrap: wrap;
140
+ gap: var(--spacing-4);
141
+ justify-content: center;
142
+ }
143
+ .home__hero-cta {
144
+ text-decoration: none;
145
+ }
146
+ .home__section-title {
147
+ font-size: var(--font-size-2xl);
148
+ font-weight: 600;
149
+ margin: var(--spacing-10) 0 var(--spacing-4);
150
+ color: var(--text);
151
+ }
152
+ .home__features-intro {
153
+ margin: 0 0 var(--spacing-6);
154
+ color: var(--text-dim);
155
+ line-height: var(--line-height-relaxed);
156
+ }
157
+ .home__features-featured,
158
+ .home__grid--supporting {
159
+ display: grid;
160
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
161
+ gap: var(--spacing-6);
162
+ margin: var(--spacing-6) 0;
163
+ }
164
+ .home__card {
165
+ padding: var(--spacing-6);
166
+ border-radius: var(--radius-lg);
167
+ border: 1px solid var(--border);
168
+ background: var(--background-alt);
169
+ }
170
+ .home__card h3 {
171
+ margin: 0 0 var(--spacing-2);
172
+ font-size: var(--font-size-lg);
173
+ color: var(--text);
174
+ }
175
+ .home__card p {
176
+ margin: 0;
177
+ font-size: var(--font-size-sm);
178
+ color: var(--text-dim);
179
+ line-height: var(--line-height-relaxed);
180
+ }
181
+ .home__card-icon {
182
+ display: block;
183
+ font-size: var(--font-size-xs);
184
+ color: var(--accent-fg);
185
+ margin-bottom: var(--spacing-2);
186
+ }
187
+ .home__features-supporting-label {
188
+ font-size: var(--font-size-lg);
189
+ margin: var(--spacing-8) 0 var(--spacing-4);
190
+ color: var(--text);
191
+ }
192
+ .home__add-command-block {
193
+ display: flex;
194
+ align-items: flex-start;
195
+ gap: var(--spacing-2);
196
+ flex-wrap: wrap;
197
+ }
198
+ .home__add-command-block pre {
199
+ flex: 1;
200
+ min-width: 0;
201
+ margin: 0;
202
+ background: var(--background-alt);
203
+ border: 1px solid var(--border);
204
+ border-radius: var(--radius-lg);
205
+ padding: var(--spacing-4);
206
+ overflow-x: auto;
207
+ font-size: var(--font-size-sm);
208
+ }
209
+ .home__docs-grid {
210
+ display: grid;
211
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
212
+ gap: var(--spacing-4);
213
+ margin-top: var(--spacing-6);
214
+ }
215
+ .home__doc-card {
216
+ display: block;
217
+ padding: var(--spacing-6);
218
+ border-radius: var(--radius-lg);
219
+ border: 1px solid var(--border);
220
+ background: var(--background-alt);
221
+ text-decoration: none;
222
+ color: inherit;
223
+ transition: border-color 0.15s, transform 0.15s;
224
+ }
225
+ .home__doc-card:hover {
226
+ border-color: var(--accent-fg);
227
+ transform: translateY(-2px);
228
+ }
229
+ .home__doc-card h3 {
230
+ margin: 0 0 var(--spacing-2);
231
+ font-size: var(--font-size-lg);
232
+ color: var(--text);
233
+ }
234
+ .home__doc-card p {
235
+ margin: 0;
236
+ font-size: var(--font-size-sm);
237
+ color: var(--text-dim);
238
+ line-height: var(--line-height-relaxed);
239
+ }
240
+ </style>