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,257 @@
1
+ <template>
2
+ <div class="themes-page">
3
+ <div class="themes-page__container">
4
+ <header class="themes-page__hero">
5
+ <h1 id="available-themes" class="themes-page__title">Available Themes</h1>
6
+ <p class="themes-page__subtitle">
7
+ Rizzo CSS includes 14 themes. Switch instantly via the Settings panel (gear icon in the navbar) or try the Theme Switcher below. Each theme uses semantic OKLCH variables.
8
+ </p>
9
+ <div class="themes-page__hero-demo example">
10
+ <div class="example-title">Try Themes</div>
11
+ <ThemeSwitcher id-prefix="page" />
12
+ </div>
13
+ <div class="themes-page__hero-ctas">
14
+ <a href="https://rizzo-css.vercel.app/docs/theming" class="btn btn-primary themes-page__hero-cta" target="_blank" rel="noopener noreferrer">Theming docs</a>
15
+ <router-link to="/docs/components" class="btn btn-outline themes-page__hero-cta">Components</router-link>
16
+ </div>
17
+ </header>
18
+
19
+ <div class="themes-page__main">
20
+ <section class="themes-page__section" aria-labelledby="dark-themes">
21
+ <h2 id="dark-themes" class="themes-page__section-title">Dark Themes</h2>
22
+ <div class="themes-page__grid">
23
+ <Card v-for="theme in THEMES_DARK" :key="theme.value" variant="elevated">
24
+ <div class="card__body">
25
+ <div class="themes-page__card-header">
26
+ <ThemeIcon :theme-id="theme.value" :size="24" class="themes-page__card-icon" />
27
+ <h3 class="themes-page__card-title">
28
+ <button
29
+ type="button"
30
+ class="themes-page__card-title-btn"
31
+ @click="applyTheme(theme.value)"
32
+ >
33
+ {{ theme.label }}
34
+ </button>
35
+ </h3>
36
+ </div>
37
+ <template v-if="themeCardContent[theme.value]">
38
+ <p class="themes-page__card-desc">{{ themeCardContent[theme.value].description }}</p>
39
+ <p class="themes-page__card-meta"><strong>Author:</strong> {{ themeCardContent[theme.value].author }}</p>
40
+ </template>
41
+ <p class="themes-page__card-meta"><code>{{ theme.value }}</code></p>
42
+ </div>
43
+ </Card>
44
+ </div>
45
+ </section>
46
+
47
+ <section class="themes-page__section" aria-labelledby="light-themes">
48
+ <h2 id="light-themes" class="themes-page__section-title">Light Themes</h2>
49
+ <div class="themes-page__grid">
50
+ <Card v-for="theme in THEMES_LIGHT" :key="theme.value" variant="elevated">
51
+ <div class="card__body">
52
+ <div class="themes-page__card-header">
53
+ <ThemeIcon :theme-id="theme.value" :size="24" class="themes-page__card-icon" />
54
+ <h3 class="themes-page__card-title">
55
+ <button
56
+ type="button"
57
+ class="themes-page__card-title-btn"
58
+ @click="applyTheme(theme.value)"
59
+ >
60
+ {{ theme.label }}
61
+ </button>
62
+ </h3>
63
+ </div>
64
+ <template v-if="themeCardContent[theme.value]">
65
+ <p class="themes-page__card-desc">{{ themeCardContent[theme.value].description }}</p>
66
+ <p class="themes-page__card-meta"><strong>Author:</strong> {{ themeCardContent[theme.value].author }}</p>
67
+ </template>
68
+ <p class="themes-page__card-meta"><code>{{ theme.value }}</code></p>
69
+ </div>
70
+ </Card>
71
+ </div>
72
+ </section>
73
+
74
+ <section id="using-themes" class="themes-page__copy-section" aria-labelledby="copy-heading">
75
+ <h2 id="copy-heading" class="themes-page__section-title">Use a theme in your app</h2>
76
+ <p class="themes-page__copy-desc">Set the theme on your HTML root. For persistence and custom themes, see the <a href="https://rizzo-css.vercel.app/docs/theming" target="_blank" rel="noopener noreferrer">theming docs</a>.</p>
77
+ <div class="themes-page__code-block">
78
+ <pre><code>{{ snippet }}</code></pre>
79
+ <CopyToClipboard :value="snippet" button-label="Copy" format="code" label="Copy snippet" />
80
+ </div>
81
+ </section>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ </template>
86
+
87
+ <script setup lang="ts">
88
+ import ThemeIcon from '@/components/rizzo/ThemeIcon.vue';
89
+ import ThemeSwitcher from '@/components/rizzo/ThemeSwitcher.vue';
90
+ import Card from '@/components/rizzo/Card.vue';
91
+ import CopyToClipboard from '@/components/rizzo/CopyToClipboard.vue';
92
+ import { THEMES_DARK, THEMES_LIGHT } from '@/components/rizzo/themes';
93
+
94
+ const defaultTheme = 'github-dark-classic';
95
+ const snippet = `<html lang="en" data-theme="${defaultTheme}">`;
96
+
97
+ const themeCardContent: Record<string, { description: string; author: string }> = {
98
+ 'github-dark-classic': { description: 'Official GitHub dark theme for VS Code', author: 'Primer (GitHub)' },
99
+ 'shades-of-purple': { description: 'Professional theme with bold purple shades', author: 'Ahmad Awais' },
100
+ 'sandstorm-classic': { description: 'Dark, red-based theme for late-night coding', author: 'Devan Sisson' },
101
+ 'rocky-blood-orange': { description: 'Dark theme with blood-orange accent', author: 'Luca Heyworth' },
102
+ 'minimal-dark-neon-yellow': { description: 'Minimal dark theme with neon yellow accent', author: 'Gabriel D Sanchez' },
103
+ 'hack-the-box': { description: 'Dark blue with lime green accent, built for hackers', author: 'silofy' },
104
+ 'pink-cat-boo': { description: 'Sweet and cute dark theme with rose pink accents', author: 'Fiona Fan' },
105
+ 'github-light': { description: 'Official GitHub light theme for VS Code', author: 'Primer (GitHub)' },
106
+ 'red-velvet-cupcake': { description: 'Velvet-cupcake light theme with red accent', author: 'Fahad Ashraf Chaudhry' },
107
+ 'orangy-one-light': { description: 'Light theme with orange accent', author: 'maher-cshub' },
108
+ sunflower: { description: 'Yellow light theme', author: 'Hashirama Naiff' },
109
+ 'green-breeze-light': { description: 'Green and blue focused light theme with good contrast', author: 'icy9ptcl' },
110
+ 'cute-pink': { description: 'Cute pink light theme for VSCode', author: 'WebFreak' },
111
+ 'semi-light-purple': { description: 'Light aesthetic theme with soft purple tones', author: 'Kapil Yadav' },
112
+ };
113
+
114
+ function applyTheme(value: string) {
115
+ if (typeof document !== 'undefined') {
116
+ document.documentElement.setAttribute('data-theme', value);
117
+ }
118
+ }
119
+ </script>
120
+
121
+ <style scoped>
122
+ .themes-page {
123
+ padding: var(--spacing-8) 0 var(--spacing-12);
124
+ }
125
+ .themes-page__container {
126
+ width: 100%;
127
+ max-width: var(--container-default);
128
+ margin: 0 auto;
129
+ padding: 0 var(--content-padding-x);
130
+ }
131
+ .themes-page__hero {
132
+ text-align: center;
133
+ margin-bottom: var(--spacing-10);
134
+ }
135
+ .themes-page__title {
136
+ font-size: var(--font-size-4xl);
137
+ font-weight: var(--font-weight-bold);
138
+ color: var(--text);
139
+ margin: 0 0 var(--spacing-4);
140
+ line-height: var(--line-height-tight);
141
+ }
142
+ .themes-page__subtitle {
143
+ font-size: var(--font-size-lg);
144
+ color: var(--text-dim);
145
+ margin: 0;
146
+ max-width: 42ch;
147
+ margin-left: auto;
148
+ margin-right: auto;
149
+ line-height: var(--line-height-relaxed);
150
+ }
151
+ .themes-page__subtitle code {
152
+ background: var(--background-alt);
153
+ color: var(--accent-fg);
154
+ padding: var(--spacing-0-125) var(--spacing-0-375);
155
+ border-radius: var(--radius);
156
+ font-size: var(--font-size-sm);
157
+ }
158
+ .themes-page__hero-demo {
159
+ margin-top: var(--spacing-6);
160
+ text-align: left;
161
+ }
162
+ .themes-page__hero-ctas {
163
+ display: flex;
164
+ flex-wrap: wrap;
165
+ gap: var(--spacing-4);
166
+ justify-content: center;
167
+ margin-top: var(--spacing-6);
168
+ }
169
+ .themes-page__hero-cta {
170
+ text-decoration: none;
171
+ }
172
+ .themes-page__section {
173
+ margin-bottom: var(--spacing-10);
174
+ }
175
+ .themes-page__section-title {
176
+ font-size: var(--font-size-xl);
177
+ font-weight: var(--font-weight-semibold);
178
+ color: var(--text);
179
+ margin: 0 0 var(--spacing-4);
180
+ }
181
+ .themes-page__grid {
182
+ display: grid;
183
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
184
+ gap: var(--spacing-4);
185
+ }
186
+ .themes-page__card-header {
187
+ display: flex;
188
+ align-items: center;
189
+ gap: var(--spacing-3);
190
+ margin-bottom: var(--spacing-2);
191
+ }
192
+ :deep(.themes-page__card-icon) {
193
+ flex-shrink: 0;
194
+ color: var(--text-dim);
195
+ }
196
+ .themes-page__card-title {
197
+ margin: 0;
198
+ font-size: var(--font-size-lg);
199
+ font-weight: var(--font-weight-semibold);
200
+ }
201
+ .themes-page__card-title-btn {
202
+ background: none;
203
+ border: none;
204
+ padding: 0;
205
+ font: inherit;
206
+ color: var(--accent-fg);
207
+ text-decoration: underline;
208
+ text-underline-offset: 0.15em;
209
+ cursor: pointer;
210
+ }
211
+ .themes-page__card-title-btn:hover {
212
+ color: var(--accent-fg-hover);
213
+ }
214
+ .themes-page__card-desc {
215
+ font-size: var(--font-size-sm);
216
+ color: var(--text-dim);
217
+ margin: 0 0 var(--spacing-2);
218
+ line-height: var(--line-height-relaxed);
219
+ }
220
+ .themes-page__card-meta {
221
+ font-size: var(--font-size-sm);
222
+ color: var(--text-dim);
223
+ margin: 0 0 var(--spacing-1);
224
+ }
225
+ .themes-page__card-meta code {
226
+ background: var(--background-alt);
227
+ color: var(--accent-fg);
228
+ padding: var(--spacing-0-125) var(--spacing-0-375);
229
+ border-radius: var(--radius);
230
+ font-size: var(--font-size-xs);
231
+ }
232
+ .themes-page__copy-section {
233
+ margin-top: var(--spacing-10);
234
+ }
235
+ .themes-page__copy-desc {
236
+ color: var(--text-dim);
237
+ font-size: var(--font-size-sm);
238
+ margin: 0 0 var(--spacing-3);
239
+ }
240
+ .themes-page__code-block {
241
+ display: flex;
242
+ align-items: flex-start;
243
+ gap: var(--spacing-2);
244
+ flex-wrap: wrap;
245
+ }
246
+ .themes-page__code-block pre {
247
+ flex: 1;
248
+ min-width: 0;
249
+ margin: 0;
250
+ background: var(--background-alt);
251
+ border: 1px solid var(--border);
252
+ border-radius: var(--radius-lg);
253
+ padding: var(--spacing-4);
254
+ overflow-x: auto;
255
+ font-size: var(--font-size-sm);
256
+ }
257
+ </style>