rizzo-css 0.0.55 → 0.0.57
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 +2 -2
- package/bin/rizzo-css.js +96 -34
- package/dist/rizzo.min.css +13 -4
- package/package.json +1 -1
- package/scaffold/astro/base/README-RIZZO.md +9 -8
- package/scaffold/astro/variants/full/README-RIZZO.md +9 -8
- package/scaffold/shared/sound-effects-inline.js +19 -2
- package/scaffold/svelte/base/README-RIZZO.md +9 -8
- package/scaffold/svelte/index.ts +1 -0
- package/scaffold/svelte/variants/full/README-RIZZO.md +9 -8
- package/scaffold/svelte/variants/full/src/routes/+layout.svelte +9 -0
- package/scaffold/vanilla/README-RIZZO.md +14 -12
- package/scaffold/vanilla/components/accordion.html +14 -0
- package/scaffold/vanilla/components/alert-dialog.html +14 -0
- package/scaffold/vanilla/components/alert.html +14 -0
- package/scaffold/vanilla/components/aspect-ratio.html +14 -0
- package/scaffold/vanilla/components/avatar.html +14 -0
- package/scaffold/vanilla/components/back-to-top.html +14 -0
- package/scaffold/vanilla/components/badge.html +14 -0
- package/scaffold/vanilla/components/breadcrumb.html +14 -0
- package/scaffold/vanilla/components/button-group.html +14 -0
- package/scaffold/vanilla/components/button.html +14 -0
- package/scaffold/vanilla/components/cards.html +14 -0
- package/scaffold/vanilla/components/collapsible.html +14 -0
- package/scaffold/vanilla/components/context-menu.html +14 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +14 -0
- package/scaffold/vanilla/components/dashboard.html +14 -0
- package/scaffold/vanilla/components/divider.html +14 -0
- package/scaffold/vanilla/components/docs-sidebar.html +14 -0
- package/scaffold/vanilla/components/dropdown.html +14 -0
- package/scaffold/vanilla/components/empty.html +14 -0
- package/scaffold/vanilla/components/font-switcher.html +14 -0
- package/scaffold/vanilla/components/footer.html +14 -0
- package/scaffold/vanilla/components/forms.html +14 -0
- package/scaffold/vanilla/components/hover-card.html +14 -0
- package/scaffold/vanilla/components/icons.html +14 -0
- package/scaffold/vanilla/components/index.html +14 -0
- package/scaffold/vanilla/components/kbd.html +14 -0
- package/scaffold/vanilla/components/label.html +14 -0
- package/scaffold/vanilla/components/modal.html +14 -0
- package/scaffold/vanilla/components/navbar.html +14 -0
- package/scaffold/vanilla/components/pagination.html +14 -0
- package/scaffold/vanilla/components/popover.html +14 -0
- package/scaffold/vanilla/components/progress-bar.html +14 -0
- package/scaffold/vanilla/components/resizable.html +14 -0
- package/scaffold/vanilla/components/scroll-area.html +14 -0
- package/scaffold/vanilla/components/search.html +14 -0
- package/scaffold/vanilla/components/separator.html +14 -0
- package/scaffold/vanilla/components/settings.html +14 -0
- package/scaffold/vanilla/components/sheet.html +14 -0
- package/scaffold/vanilla/components/skeleton.html +14 -0
- package/scaffold/vanilla/components/slider.html +14 -0
- package/scaffold/vanilla/components/sound-effects.html +14 -0
- package/scaffold/vanilla/components/spinner.html +14 -0
- package/scaffold/vanilla/components/switch.html +14 -0
- package/scaffold/vanilla/components/table.html +14 -0
- package/scaffold/vanilla/components/tabs.html +14 -0
- package/scaffold/vanilla/components/theme-switcher.html +14 -0
- package/scaffold/vanilla/components/toast.html +14 -0
- package/scaffold/vanilla/components/toggle-group.html +14 -0
- package/scaffold/vanilla/components/toggle.html +14 -0
- package/scaffold/vanilla/components/tooltip.html +14 -0
- package/scaffold/vanilla/index.html +14 -0
- package/scaffold/vanilla/variants/docs/getting-started.html +35 -0
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ You install **the same package** for every framework: `npm install rizzo-css`. N
|
|
|
53
53
|
|
|
54
54
|
With `npx rizzo-css add --path <dir>`, the CLI still suggests the correct href for your framework (e.g. Astro/Svelte get a leading `/` path).
|
|
55
55
|
|
|
56
|
-
Scaffolds in the package: `scaffold/vanilla
|
|
56
|
+
Scaffolds in the package: `scaffold/vanilla/` (and `scaffold/vanilla/variants/docs`, `dashboard`, `full`), `scaffold/astro/base/` and `scaffold/astro/variants/` (docs, dashboard, full), `scaffold/svelte/base/` and `scaffold/svelte/variants/`, plus `scaffold/astro/` and `scaffold/svelte/` (all components), and `scaffold/config/` (font pairs for Settings). **Every framework gets the same four templates:** **Landing** | **Docs** | **Dashboard** | **Full**. Landing/Docs/Dashboard = component picker (all or pick). Full = site clone (all components). **We never overwrite your existing files**; skipped content goes in **RIZZO-SETUP.md**. You must add the stylesheet `<link>` yourself (CLI prints the exact tag). Every scaffold includes LICENSE-RIZZO, README-RIZZO.md, and .gitignore; Astro/Svelte include package.json and .env.example.
|
|
57
57
|
|
|
58
58
|
## Use
|
|
59
59
|
|
|
@@ -68,7 +68,7 @@ import 'rizzo-css';
|
|
|
68
68
|
**Without a bundler (plain HTML):** Use a CDN. Both unpkg and jsDelivr resolve the package root to the built CSS (via the `unpkg` / `jsdelivr` fields in this package). For reliability or to pin a version, use the explicit path:
|
|
69
69
|
|
|
70
70
|
```html
|
|
71
|
-
<!-- unpkg (pin version: replace @latest with @0.0.
|
|
71
|
+
<!-- unpkg (pin version: replace @latest with @0.0.57 or any version) -->
|
|
72
72
|
<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />
|
|
73
73
|
|
|
74
74
|
<!-- or jsDelivr -->
|
package/bin/rizzo-css.js
CHANGED
|
@@ -16,7 +16,51 @@ const CLI_BANNER = ` /\\___/\\
|
|
|
16
16
|
| |_) || | / / / / | | | | | \\___ \\___ \\
|
|
17
17
|
| _ < | | / /_ / /| |_| | | |___ ___) |__) |
|
|
18
18
|
|_| \\_\\___/____/____\\___/ \\____|____/____/
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
Design system · Vanilla · Astro · Svelte`;
|
|
21
|
+
|
|
22
|
+
/** Rainbow theme colors for "RIZZOCSS" block (from our themes: red → orange → yellow → green → blue → purple → pink). */
|
|
23
|
+
const BANNER_RAINBOW = [
|
|
24
|
+
{ r: 196, g: 69, b: 54 }, /* red-velvet-cupcake accent */
|
|
25
|
+
{ r: 224, g: 124, b: 62 }, /* rocky-blood-orange / orangy-one-light */
|
|
26
|
+
{ r: 212, g: 168, b: 0 }, /* sunflower / minimal-dark-neon-yellow */
|
|
27
|
+
{ r: 45, g: 157, b: 120 }, /* green-breeze-light / hack-the-box */
|
|
28
|
+
{ r: 0, g: 82, b: 189 }, /* github-light primary */
|
|
29
|
+
{ r: 124, g: 58, b: 237 }, /* shades-of-purple / semi-light-purple */
|
|
30
|
+
{ r: 217, g: 70, b: 239 }, /* cute-pink / pink-cat-boo */
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
/** ANSI 24-bit foreground; reset with \\x1b[0m */
|
|
34
|
+
function ansiFg(r, g, b) {
|
|
35
|
+
return '\x1b[38;2;' + r + ';' + g + ';' + b + 'm';
|
|
36
|
+
}
|
|
37
|
+
const ANSI_RESET = '\x1b[0m';
|
|
38
|
+
|
|
39
|
+
/** Evenly spread column bounds (6 chars per color for first 6, rest for 7th). */
|
|
40
|
+
const BANNER_BOUNDS = [0, 6, 12, 18, 24, 30, 36];
|
|
41
|
+
|
|
42
|
+
/** Returns banner with "RIZZOCSS" block art in rainbow theme colors. No ANSI if stdout is not TTY or FORCE_COLOR=0. */
|
|
43
|
+
function getBanner() {
|
|
44
|
+
const useColor = (process.stdout.isTTY || process.env.FORCE_COLOR === '1') && process.env.FORCE_COLOR !== '0';
|
|
45
|
+
if (!useColor) return CLI_BANNER;
|
|
46
|
+
const lines = CLI_BANNER.split('\n');
|
|
47
|
+
const RIZZOCSS_START = 5;
|
|
48
|
+
const RIZZOCSS_END = 9;
|
|
49
|
+
for (let i = RIZZOCSS_START; i <= RIZZOCSS_END; i++) {
|
|
50
|
+
const line = lines[i];
|
|
51
|
+
let out = '';
|
|
52
|
+
for (let s = 0; s < BANNER_BOUNDS.length; s++) {
|
|
53
|
+
const start = BANNER_BOUNDS[s];
|
|
54
|
+
const end = s === BANNER_BOUNDS.length - 1 ? line.length : BANNER_BOUNDS[s + 1];
|
|
55
|
+
if (start < line.length) {
|
|
56
|
+
const col = BANNER_RAINBOW[s % BANNER_RAINBOW.length];
|
|
57
|
+
out += ansiFg(col.r, col.g, col.b) + line.slice(start, Math.min(end, line.length)) + ANSI_RESET;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
lines[i] = out;
|
|
61
|
+
}
|
|
62
|
+
return lines.join('\n');
|
|
63
|
+
}
|
|
20
64
|
|
|
21
65
|
const RIZZO_CONFIG_FILE = 'rizzo-css.json';
|
|
22
66
|
/** Scaffold README filename; avoids overwriting an existing project README.md. */
|
|
@@ -914,7 +958,7 @@ function multiSelectMenu(options, title, initialSelected) {
|
|
|
914
958
|
}
|
|
915
959
|
|
|
916
960
|
function printHelp() {
|
|
917
|
-
console.log(
|
|
961
|
+
console.log(getBanner());
|
|
918
962
|
console.log(`
|
|
919
963
|
rizzo-css CLI — Add Rizzo CSS to your project (Vanilla, Astro, Svelte)
|
|
920
964
|
|
|
@@ -1053,7 +1097,7 @@ function cmdTheme() {
|
|
|
1053
1097
|
function cmdDoctor() {
|
|
1054
1098
|
const cwd = process.cwd();
|
|
1055
1099
|
const config = readRizzoConfig(cwd);
|
|
1056
|
-
console.log(
|
|
1100
|
+
console.log(getBanner());
|
|
1057
1101
|
console.log(' Doctor — check config, CSS path, and layout link\n');
|
|
1058
1102
|
let ok = true;
|
|
1059
1103
|
if (!config) {
|
|
@@ -1349,7 +1393,7 @@ function copyVanillaComponents(projectDir, selectedNames, replacements) {
|
|
|
1349
1393
|
}
|
|
1350
1394
|
}
|
|
1351
1395
|
const indexLinks = slugsToCopy.map((s) => ' <li><a href="' + s + '.html">' + s + '</a></li>').join('\n');
|
|
1352
|
-
const navHtml =
|
|
1396
|
+
const navHtml = getNavbarHtmlVanilla(title, '../index.html');
|
|
1353
1397
|
const indexHtml = `<!DOCTYPE html>
|
|
1354
1398
|
<html lang="en" data-theme="${replacements['{{DATA_THEME}}'] || 'github-dark-classic'}">
|
|
1355
1399
|
<head>
|
|
@@ -1941,7 +1985,7 @@ async function cmdInit(argv) {
|
|
|
1941
1985
|
defaultDark = DARK_THEMES[0];
|
|
1942
1986
|
defaultLight = LIGHT_THEMES[0];
|
|
1943
1987
|
} else {
|
|
1944
|
-
console.log(
|
|
1988
|
+
console.log(getBanner());
|
|
1945
1989
|
framework = await selectMenu(
|
|
1946
1990
|
[
|
|
1947
1991
|
{ value: 'vanilla', label: 'Vanilla JS (HTML + CSS + same styles & components)', color: C.vanilla },
|
|
@@ -2061,7 +2105,7 @@ async function cmdInit(argv) {
|
|
|
2061
2105
|
const useAstroBase = selectedTemplate === 'full' && fullAllComponents && framework === 'astro' && existsSync(astroCoreDir) && !useFullVariant;
|
|
2062
2106
|
const useSvelteBase = selectedTemplate === 'full' && fullAllComponents && framework === 'svelte' && existsSync(svelteCoreDir) && !useFullVariant;
|
|
2063
2107
|
const useVanillaCore = selectedTemplate === 'full' && fullAllComponents && framework === 'vanilla' && existsSync(getScaffoldVanillaIndex()) && !useFullVariant && selectedVariation === 'landing';
|
|
2064
|
-
const useVanillaWithOverlay = selectedTemplate === 'full' &&
|
|
2108
|
+
const useVanillaWithOverlay = selectedTemplate === 'full' && framework === 'vanilla' && (selectedVariation === 'docs' || selectedVariation === 'dashboard') && getVariantDir('vanilla', selectedVariation);
|
|
2065
2109
|
|
|
2066
2110
|
// Full gets all required dependencies so everything works; manual gets deps when user picks (see prompt labels).
|
|
2067
2111
|
let componentsToCopy = selectedComponents;
|
|
@@ -2070,7 +2114,7 @@ async function cmdInit(argv) {
|
|
|
2070
2114
|
logAddedDeps(selectedComponents, componentsToCopy, framework);
|
|
2071
2115
|
}
|
|
2072
2116
|
let vanillaSoundScript = '';
|
|
2073
|
-
if (framework === 'vanilla' && (useVanillaCore || componentsToCopy.includes('Settings') || componentsToCopy.includes('SoundEffects'))) {
|
|
2117
|
+
if (framework === 'vanilla' && (useVanillaCore || useVanillaWithOverlay || componentsToCopy.includes('Settings') || componentsToCopy.includes('SoundEffects'))) {
|
|
2074
2118
|
const soundPath = join(getPackageRoot(), 'scaffold', 'shared', 'sound-effects-inline.js');
|
|
2075
2119
|
if (existsSync(soundPath)) {
|
|
2076
2120
|
let script = readFileSync(soundPath, 'utf8');
|
|
@@ -2079,17 +2123,20 @@ async function cmdInit(argv) {
|
|
|
2079
2123
|
}
|
|
2080
2124
|
}
|
|
2081
2125
|
|
|
2082
|
-
// Astro layout: inject Navbar
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
const
|
|
2086
|
-
const
|
|
2126
|
+
// Astro layout: inject Navbar, Settings, Footer when Full variant or when those components are selected.
|
|
2127
|
+
const astroFullLayout = (framework === 'astro') && (useFullVariant || useHandpickAstro || useAstroBase);
|
|
2128
|
+
if (astroFullLayout) {
|
|
2129
|
+
const hasNavbar = useFullVariant || componentsToCopy.includes('Navbar');
|
|
2130
|
+
const hasSettings = useFullVariant || componentsToCopy.includes('Settings');
|
|
2131
|
+
const hasFooter = useFullVariant || componentsToCopy.includes('Footer');
|
|
2132
|
+
const hasSound = useFullVariant || useAstroBase || hasSettings || componentsToCopy.includes('SoundEffects');
|
|
2087
2133
|
const layoutImports = [];
|
|
2088
2134
|
if (hasNavbar) layoutImports.push("import Navbar from '../components/rizzo/Navbar.astro';");
|
|
2089
2135
|
if (hasSettings) layoutImports.push("import Settings from '../components/rizzo/Settings.astro';");
|
|
2136
|
+
if (hasFooter) layoutImports.push("import Footer from '../components/rizzo/Footer.astro';");
|
|
2090
2137
|
replacements['{{RIZZO_LAYOUT_IMPORTS}}'] = layoutImports.length ? '\n' + layoutImports.join('\n') + '\n' : '\n';
|
|
2091
2138
|
replacements['{{RIZZO_LAYOUT_BODY_TOP}}'] = hasNavbar ? '\n <Navbar />' : '';
|
|
2092
|
-
replacements['{{RIZZO_LAYOUT_BODY_BOTTOM}}'] = hasSettings ? '\n <Settings />' : '';
|
|
2139
|
+
replacements['{{RIZZO_LAYOUT_BODY_BOTTOM}}'] = [hasSettings ? '\n <Settings />' : '', hasFooter ? '\n <Footer />' : ''].filter(Boolean).join('');
|
|
2093
2140
|
if (hasSound) {
|
|
2094
2141
|
const soundPath = join(getPackageRoot(), 'scaffold', 'shared', 'sound-effects-inline.js');
|
|
2095
2142
|
if (existsSync(soundPath)) {
|
|
@@ -2102,6 +2149,13 @@ async function cmdInit(argv) {
|
|
|
2102
2149
|
replacements['{{RIZZO_LAYOUT_BODY_BOTTOM}}'] = '';
|
|
2103
2150
|
}
|
|
2104
2151
|
|
|
2152
|
+
if (useFullVariant && framework === 'svelte') {
|
|
2153
|
+
const soundPath = join(getPackageRoot(), 'scaffold', 'shared', 'sound-effects-inline.js');
|
|
2154
|
+
if (existsSync(soundPath)) {
|
|
2155
|
+
replacements['{{RIZZO_SOUND_SCRIPT}}'] = '\n <script>\n' + readFileSync(soundPath, 'utf8') + '\n </script>';
|
|
2156
|
+
}
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2105
2159
|
// Svelte app.html: inject sound script when Settings or SoundEffects is included (identical behavior to Astro).
|
|
2106
2160
|
if ((framework === 'svelte') && (useHandpickSvelte || useSvelteBase)) {
|
|
2107
2161
|
const hasSound = useSvelteBase || componentsToCopy.includes('Settings') || componentsToCopy.includes('SoundEffects');
|
|
@@ -2123,6 +2177,7 @@ async function cmdInit(argv) {
|
|
|
2123
2177
|
const fullDir = getVariantDir('astro', 'full');
|
|
2124
2178
|
copyDirRecursiveWithReplacements(fullDir, projectDir, replacements);
|
|
2125
2179
|
copyRizzoCssAndFontsForAstro(projectDir, cssSource);
|
|
2180
|
+
copyAstroComponents(projectDir, componentsToCopy);
|
|
2126
2181
|
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
2127
2182
|
if (existsSync(cssTarget) && statSync(cssTarget).size < 5000) {
|
|
2128
2183
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
@@ -2135,6 +2190,7 @@ async function cmdInit(argv) {
|
|
|
2135
2190
|
const fullDir = getVariantDir('svelte', 'full');
|
|
2136
2191
|
copyDirRecursiveWithReplacements(fullDir, projectDir, replacements);
|
|
2137
2192
|
copyRizzoCssAndFontsForSvelte(projectDir, cssSource);
|
|
2193
|
+
copySvelteComponents(projectDir, componentsToCopy);
|
|
2138
2194
|
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
2139
2195
|
if (existsSync(cssTarget) && statSync(cssTarget).size < 5000) {
|
|
2140
2196
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
@@ -2144,8 +2200,11 @@ async function cmdInit(argv) {
|
|
|
2144
2200
|
copyRizzoIcons(projectDir, 'svelte');
|
|
2145
2201
|
} else if (useFullVariant && framework === 'vanilla') {
|
|
2146
2202
|
mkdirSync(projectDir, { recursive: true });
|
|
2203
|
+
replacements['{{LINK_HREF}}'] = pathsForScaffold.linkHref || 'css/rizzo.min.css';
|
|
2204
|
+
replacements['{{NAVBAR_HTML}}'] = getNavbarHtmlVanilla(name || 'App', 'index.html');
|
|
2147
2205
|
const fullDir = getVariantDir('vanilla', 'full');
|
|
2148
2206
|
copyDirRecursiveWithReplacements(fullDir, projectDir, replacements);
|
|
2207
|
+
copyVanillaComponents(projectDir, Object.keys(VANILLA_COMPONENT_SLUGS), replacements);
|
|
2149
2208
|
const cssDir = join(projectDir, pathsForScaffold.targetDir);
|
|
2150
2209
|
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
2151
2210
|
mkdirSync(cssDir, { recursive: true });
|
|
@@ -2230,7 +2289,7 @@ async function cmdInit(argv) {
|
|
|
2230
2289
|
copyRizzoIcons(projectDir, 'svelte');
|
|
2231
2290
|
copySvelteComponents(projectDir, componentsToCopy);
|
|
2232
2291
|
}
|
|
2233
|
-
} else if (useVanillaCore) {
|
|
2292
|
+
} else if (useVanillaCore || useVanillaWithOverlay) {
|
|
2234
2293
|
const cssDir = join(projectDir, pathsForScaffold.targetDir);
|
|
2235
2294
|
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
2236
2295
|
const linkHref = 'css/rizzo.min.css';
|
|
@@ -2241,26 +2300,28 @@ async function cmdInit(argv) {
|
|
|
2241
2300
|
if (statSync(cssTarget).size < 5000) {
|
|
2242
2301
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
2243
2302
|
}
|
|
2244
|
-
const vanillaScaffoldPath = getScaffoldVanillaIndex();
|
|
2245
|
-
indexPath = join(projectDir, 'index.html');
|
|
2246
|
-
let indexHtml = readFileSync(vanillaScaffoldPath, 'utf8');
|
|
2247
|
-
const navbarForIndex = getNavbarHtmlVanilla(name || 'App', 'index.html');
|
|
2248
|
-
indexHtml = indexHtml
|
|
2249
|
-
.replace(/\{\{DATA_THEME\}\}/g, theme)
|
|
2250
|
-
.replace(/\{\{DEFAULT_DARK\}\}/g, defaultDark)
|
|
2251
|
-
.replace(/\{\{DEFAULT_LIGHT\}\}/g, defaultLight)
|
|
2252
|
-
.replace(/\{\{THEME_LIST_COMMENT\}\}/g, themeComment)
|
|
2253
|
-
.replace(/\{\{TITLE\}\}/g, name || 'App')
|
|
2254
|
-
.replace(/\{\{LINK_HREF\}\}/g, linkHref)
|
|
2255
|
-
.replace(/\{\{NAVBAR_HTML\}\}/g, navbarForIndex);
|
|
2256
2303
|
const vanillaSkipped = [];
|
|
2257
|
-
if (existsSync(indexPath)) {
|
|
2258
|
-
vanillaSkipped.push({ relativePath: 'index.html', content: indexHtml });
|
|
2259
|
-
} else {
|
|
2260
|
-
writeFileSync(indexPath, indexHtml, 'utf8');
|
|
2261
|
-
}
|
|
2262
2304
|
if (useVanillaWithOverlay) {
|
|
2263
2305
|
copyVariantOverlay(projectDir, 'vanilla', selectedVariation, { ...replacements, '{{LINK_HREF}}': linkHref, '{{TITLE}}': name || 'App', '{{DATA_THEME}}': theme, '{{THEME_LIST_COMMENT}}': themeComment });
|
|
2306
|
+
indexPath = join(projectDir, 'index.html');
|
|
2307
|
+
} else {
|
|
2308
|
+
const vanillaScaffoldPath = getScaffoldVanillaIndex();
|
|
2309
|
+
indexPath = join(projectDir, 'index.html');
|
|
2310
|
+
let indexHtml = readFileSync(vanillaScaffoldPath, 'utf8');
|
|
2311
|
+
const navbarForIndex = getNavbarHtmlVanilla(name || 'App', 'index.html');
|
|
2312
|
+
indexHtml = indexHtml
|
|
2313
|
+
.replace(/\{\{DATA_THEME\}\}/g, theme)
|
|
2314
|
+
.replace(/\{\{DEFAULT_DARK\}\}/g, defaultDark)
|
|
2315
|
+
.replace(/\{\{DEFAULT_LIGHT\}\}/g, defaultLight)
|
|
2316
|
+
.replace(/\{\{THEME_LIST_COMMENT\}\}/g, themeComment)
|
|
2317
|
+
.replace(/\{\{TITLE\}\}/g, name || 'App')
|
|
2318
|
+
.replace(/\{\{LINK_HREF\}\}/g, linkHref)
|
|
2319
|
+
.replace(/\{\{NAVBAR_HTML\}\}/g, navbarForIndex);
|
|
2320
|
+
if (existsSync(indexPath)) {
|
|
2321
|
+
vanillaSkipped.push({ relativePath: 'index.html', content: indexHtml });
|
|
2322
|
+
} else {
|
|
2323
|
+
writeFileSync(indexPath, indexHtml, 'utf8');
|
|
2324
|
+
}
|
|
2264
2325
|
}
|
|
2265
2326
|
copyRizzoIcons(projectDir, 'vanilla');
|
|
2266
2327
|
const vanillaReadme = join(getPackageRoot(), 'scaffold', 'vanilla', SCAFFOLD_README_FILENAME);
|
|
@@ -2275,7 +2336,8 @@ async function cmdInit(argv) {
|
|
|
2275
2336
|
writeFileSync(join(projectDir, 'js', 'main.js'), mainJs, 'utf8');
|
|
2276
2337
|
}
|
|
2277
2338
|
const vanillaCoreRepl = { ...replacements, '{{LINK_HREF}}': linkHref };
|
|
2278
|
-
|
|
2339
|
+
const vanillaComponentSet = (useVanillaCore || fullAllComponents) ? Object.keys(VANILLA_COMPONENT_SLUGS) : selectedComponents;
|
|
2340
|
+
copyVanillaComponents(projectDir, vanillaComponentSet, vanillaCoreRepl);
|
|
2279
2341
|
if (vanillaSkipped.length > 0) {
|
|
2280
2342
|
writeFileSync(join(projectDir, RIZZO_SETUP_FILE), buildRizzoSetupMd('vanilla', { linkHref, theme, defaultDark, defaultLight, skippedFiles: vanillaSkipped }), 'utf8');
|
|
2281
2343
|
}
|
|
@@ -2379,8 +2441,8 @@ async function cmdInit(argv) {
|
|
|
2379
2441
|
console.log(' - ' + cssTarget);
|
|
2380
2442
|
if (indexPath) console.log(' - ' + indexPath);
|
|
2381
2443
|
if (framework === 'vanilla') {
|
|
2382
|
-
if (useVanillaCore) {
|
|
2383
|
-
console.log(' - Vanilla JS (full): theme switcher, js/main.js, icons, component showcase, ' + SCAFFOLD_README_FILENAME + '.');
|
|
2444
|
+
if (useVanillaCore || useVanillaWithOverlay) {
|
|
2445
|
+
console.log(' - Vanilla JS (full): theme switcher, js/main.js, icons, component showcase, ' + SCAFFOLD_README_FILENAME + '.' + (useVanillaWithOverlay ? ' (' + selectedVariation + ' template)' : ''));
|
|
2384
2446
|
} else if (selectedTemplate === 'landing') {
|
|
2385
2447
|
console.log(' - ' + RIZZO_SETUP_FILE + ' has instructions and snippets.');
|
|
2386
2448
|
} else {
|
package/dist/rizzo.min.css
CHANGED
|
@@ -168,7 +168,8 @@ div.navbar__link{background:none;border:none;color:inherit;cursor:pointer;font:i
|
|
|
168
168
|
[data-theme="shades-of-purple"] .devicon--docker .devicon__path--dark,
|
|
169
169
|
[data-theme="shades-of-purple"] .devicon--playwright .devicon__path--dark,
|
|
170
170
|
[data-theme="shades-of-purple"] .devicon--rust .devicon__path{fill:var(--icon)}@media (width <= 640px){.icons-grid{gap:var(--spacing-2);grid-template-columns:repeat(2,1fr)}.icon-card{min-height:8.5rem;padding:var(--spacing-2)}.icon-card__preview{margin-bottom:var(--spacing-1);min-height:var(--spacing-24)}.icon-card__icon{height:var(--spacing-8);width:var(--spacing-8)}.icon-card__name{font-size:calc(var(--font-size-xs)*.875)}.icon-card__hint{font-size:calc(var(--font-size-xs)*.75)}}.dropdown{display:inline-block;position:relative}.dropdown__trigger{align-items:center;background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;display:flex;font-family:var(--font-family);font-size:var(--font-size-sm);gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);transition:background-color var(--transition-base),border-color var(--transition-base),color var(--transition-base)}.dropdown__trigger:hover{background-color:var(--background);border-color:var(--accent);color:var(--accent)}.dropdown__trigger:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.dropdown__trigger[aria-expanded="true"] .dropdown__icon{transform:rotate(180deg)}
|
|
171
|
-
.dropdown__trigger:focus-visible .dropdown__icon,.dropdown__trigger:hover .dropdown__icon{color:var(--accent)}
|
|
171
|
+
.dropdown__trigger:focus-visible .dropdown__icon,.dropdown__trigger:hover .dropdown__icon{color:var(--accent)}
|
|
172
|
+
#themes-preview .dropdown__trigger:focus-visible .themes-page__trigger-icon,#themes-preview .dropdown__trigger:hover .themes-page__trigger-icon{color:var(--accent)!important;stroke:var(--accent)!important}.dropdown__trigger-text{flex:1;text-align:left}.dropdown__icon{color:var(--icon);flex-shrink:0;transition:transform var(--transition-base),color var(--transition-base)}.dropdown__menu{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);list-style:none;margin:0;max-width:calc(100vw - var(--spacing-8));min-width:var(--spacing-64);opacity:0;overflow:visible!important;padding:var(--spacing-2) 0;position:absolute;top:calc(100% + var(--spacing-2));transform:translateY(calc(var(--spacing-2)*-1));transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base);visibility:hidden;width:-moz-max-content;width:max-content;z-index:var(--z-dropdown)}.dropdown__menu--left{left:0}.dropdown__menu--right{right:0}.dropdown__menu--start{left:0}.dropdown__menu--end{right:0}.dropdown__menu--open{opacity:1;transform:translateY(0);visibility:visible}.dropdown__item{align-items:center;background-color:transparent;border:none;color:var(--text);cursor:pointer;display:flex;font-family:var(--font-family);font-size:var(--font-size-sm);gap:var(--spacing-2);min-height:var(--touch-target-min);overflow:hidden;padding:var(--spacing-2) var(--spacing-4);text-align:left;text-decoration:none;text-overflow:ellipsis;transition:background-color var(--transition-fast),color var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;width:100%}
|
|
172
173
|
.dropdown__item:focus-visible:not(.dropdown__item--disabled),.dropdown__item:hover:not(.dropdown__item--disabled){background-color:var(--background);color:var(--accent);outline:none}.dropdown__item:focus-visible:not(.dropdown__item--disabled){box-shadow:inset 0 0 0 var(--outline-width) var(--accent)}.dropdown__item--disabled{cursor:not-allowed;opacity:var(--opacity-50);pointer-events:none}.dropdown__item-icon{flex-shrink:0;height:var(--spacing-4);width:var(--spacing-4)}.dropdown__separator{background-color:var(--border);height:var(--border-width);margin:var(--spacing-2) 0}.dropdown__item-wrapper,.dropdown__item-wrapper--has-submenu{overflow:visible;position:relative}.dropdown__item--has-submenu{align-items:center;display:flex;justify-content:space-between}.dropdown__item-arrow{color:var(--icon);flex-shrink:0;height:var(--spacing-3);margin-left:var(--spacing-2);transition:transform var(--transition-base),color var(--transition-base);width:var(--spacing-3)}
|
|
173
174
|
.dropdown__item:focus-visible:not(.dropdown__item--disabled) .dropdown__item-arrow,.dropdown__item:hover:not(.dropdown__item--disabled) .dropdown__item-arrow{color:var(--accent)}.dropdown__item-wrapper--has-submenu .dropdown__submenu--open ~ .dropdown__item-arrow,
|
|
174
175
|
.dropdown__item-wrapper--has-submenu:has(.dropdown__submenu--open) .dropdown__item-arrow{transform:rotate(-90deg)}.dropdown__item-wrapper--has-submenu .dropdown__item[aria-expanded="true"] .dropdown__item-arrow{transform:rotate(-90deg)}.dropdown__submenu{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:block;left:0;list-style:none;margin:0;max-width:100%;min-width:100%;opacity:0;overflow:visible!important;padding:var(--spacing-2) 0;pointer-events:none;position:absolute;right:0;top:100%;transform:translateY(calc(var(--spacing-2)*-1));transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base);visibility:hidden;width:100%;z-index:var(--z-dropdown-submenu)}.dropdown__submenu--open{display:block!important;opacity:1!important;pointer-events:all!important;transform:translateY(0)!important;visibility:visible!important}.dropdown__submenu-item{min-height:var(--touch-target-min);padding:var(--spacing-2) var(--spacing-4)}.dropdown__submenu .dropdown__item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (width <= 640px){.dropdown__menu{left:0;max-width:calc(100vw - var(--spacing-4));min-width:100%;right:auto}.dropdown__menu--right{left:auto;right:0}.dropdown__submenu{max-width:100%}}@media (prefers-reduced-motion:reduce){.dropdown__menu{transform:none;transition:opacity var(--transition-fast),visibility var(--transition-fast)}.dropdown__menu--open{transform:none}.dropdown__icon{transition:none}}.search{display:inline-block}.search,.search__trigger-wrapper{position:relative}.search__trigger{align-items:center;background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;display:flex;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:var(--spacing-2);min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--spacing-2) var(--spacing-3);transition:background-color var(--transition-base),border-color var(--transition-base)}@media (width <= 1024px){.search__trigger{gap:0}.search__icon{flex-shrink:0;height:var(--spacing-5);width:var(--spacing-5)}}.search__icon{color:var(--icon)}.search__trigger:hover{background-color:var(--background);border-color:var(--accent);color:var(--text)}.search__trigger:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.search__kbd{align-items:center;display:none;font-family:var(--font-family-mono);font-size:.875rem;gap:var(--spacing-1);line-height:1;margin-left:auto}.search__kbd-modifier{align-items:center;display:inline-flex}.search__kbd-modifier svg{flex-shrink:0;height:.875rem;width:.875rem}.search__kbd kbd{background-color:var(--background);border:var(--border-width) solid var(--border);border-radius:var(--radius);font-size:inherit;line-height:1;padding:var(--spacing-0-125) var(--spacing-0-375)}@media (width >= 768px){.search__kbd{display:flex}}.search__overlay{backdrop-filter:blur(var(--blur-sm));background-color:var(--overlay);bottom:0;box-sizing:border-box;height:100%;left:0;min-height:100vh;min-height:100dvh;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity .2s ease-out;width:100%;z-index:var(--z-search-overlay)}.search__overlay[aria-hidden="false"]{opacity:1;pointer-events:all;z-index:var(--z-search-overlay)}.search__overlay[aria-hidden="true"]{display:none}@media (width <= 1024px){.search__overlay[aria-hidden="true"]{display:none!important;pointer-events:none!important}.search__overlay{backdrop-filter:blur(2px);background-color:oklch(from var(--overlay) l c h/60%)}}.search__panel{background-color:var(--background);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);box-sizing:border-box;display:flex;flex-direction:column;left:50%;max-height:calc(100vh - var(--spacing-8));max-height:calc(100dvh - var(--spacing-8));max-width:var(--spacing-150);opacity:0;outline:none;overflow:hidden;padding-bottom:var(--spacing-6);pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .2s ease-out;width:calc(100% - var(--spacing-8));z-index:var(--z-search-panel)}.search__panel[aria-hidden="true"]{display:none}.search__panel[aria-hidden="false"][data-open="true"]{background-color:var(--background);display:flex;opacity:1;pointer-events:all}@media (width <= 640px){.search__panel{max-height:calc(100dvh - var(--spacing-8));max-width:none;width:calc(100% - var(--spacing-8))}}@media (width <= 1024px){.search__panel[aria-hidden="false"][data-open="true"] .search__header{background-color:var(--background)!important;position:relative;z-index:var(--z-1)}}.search__header{background-color:var(--background);border-bottom:var(--border-width) solid var(--border);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);gap:var(--spacing-3);padding:var(--spacing-5) var(--spacing-6);position:relative}.search__close-btn,.search__header{align-items:center;display:flex;flex-shrink:0}.search__close-btn{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);gap:var(--spacing-2);justify-content:center;min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--spacing-2);transition:background-color var(--transition-base),border-color var(--transition-base)}.search__close-btn:hover{background-color:var(--background-alt);border-color:var(--accent);color:var(--accent)}.search__close-btn:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.search__close-btn:active{background-color:var(--background-alt)}.search__close-text{display:none}@media (width > 1024px){.search__close-btn{min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--spacing-2)}}@media (width <= 1024px){.search__header{gap:var(--spacing-2);padding:var(--spacing-4)}.search__close-btn{min-height:var(--touch-target-min);padding:var(--spacing-2) var(--spacing-4);white-space:nowrap}.search__close-text{display:inline}.search__input-wrapper{flex:1;min-width:0}}.search__input-wrapper{align-items:center;display:flex;flex:1;position:relative}.search__input-icon{color:var(--icon-dim);flex-shrink:0;height:var(--spacing-5);left:var(--spacing-4);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:var(--spacing-5);z-index:calc(var(--z-base) + 2)}.search__input{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text);font-family:var(--font-family);font-size:var(--font-size-base);padding:var(--spacing-3) calc(var(--spacing-14) + var(--spacing-0-125)) var(--spacing-3) var(--spacing-16)!important;transition:border-color var(--transition-base),background-color var(--transition-base);width:100%}.search__input:focus{background-color:var(--background);border-color:var(--accent);outline:none}.search__input::-moz-placeholder{color:var(--text-dim)}.search__input::placeholder{color:var(--text-dim)}.search__clear{align-items:center;background:none;border:none;border-radius:var(--radius);color:var(--text-dim);cursor:pointer;display:flex;height:var(--spacing-8);justify-content:center;opacity:0;padding:0;pointer-events:none;position:absolute;right:var(--spacing-3);transition:color var(--transition-base),background-color var(--transition-base);width:var(--spacing-8);z-index:calc(var(--z-base) + 3)}.search__clear[aria-hidden="false"]{opacity:1;pointer-events:all}@media (width <= 1024px){.search__clear{display:none!important}}.search__clear:hover{background-color:var(--background);color:var(--text)}.search__clear:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.search__results{background-color:var(--background)!important;display:flex!important;flex:1;flex-direction:column;height:auto!important;left:0!important;max-height:calc(var(--vh-70) - var(--spacing-20));min-height:var(--spacing-75)!important;opacity:1!important;overflow-x:hidden;overflow-y:auto;padding:var(--spacing-4) var(--spacing-6) var(--spacing-8) var(--spacing-6);position:relative!important;right:auto!important;visibility:visible!important;width:100%!important;z-index:calc(var(--z-base) + 1)}.search__empty,
|
|
@@ -197,13 +198,21 @@ div.navbar__link{background:none;border:none;color:inherit;cursor:pointer;font:i
|
|
|
197
198
|
.home__install-or::after,.home__install-or::before{border-left:var(--border-width) solid var(--border);border-top:none;flex:1;min-height:var(--spacing-8);width:0}}.home__install-title{color:var(--text);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-2) 0;text-align:center}.home__install-label{color:var(--text-dim);font-size:var(--font-size-sm);margin:0 0 var(--spacing-4) 0;text-align:center}.home__install-copy{align-items:center;display:flex;justify-content:center;width:100%}.home__install-copy .copy-to-clipboard{justify-content:space-between;width:100%}.home__install-copy .copy-to-clipboard__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home__cli-tabs{margin-top:var(--spacing-1)}.home__cli-tabs .cli-command-tabs__tabs,
|
|
198
199
|
.home__cli-tabs .package-install-tabs__tabs{margin-top:0}.home__cli-tabs .tabs__list{margin-bottom:var(--spacing-2);overflow-x:visible;overflow-y:visible;scrollbar-width:none}.home__cli-tabs .tabs__list::-webkit-scrollbar{display:none}.home__cli-tabs .tabs__panel{min-height:0;padding:0}.home__cli-tabs .cli-command-tabs__panel .code-block__header{padding:var(--spacing-1) var(--spacing-2)}.home__cli-tabs .cli-command-tabs__panel .code-block pre{padding:var(--spacing-2)}.home__cli-tabs .cli-command-tabs__panel .code-block,
|
|
199
200
|
.home__cli-tabs .package-install-tabs__panel .code-block{margin:0;min-width:0;overflow:hidden}.home__features{margin-bottom:var(--spacing-16)}.home__features-intro{color:var(--text-dim);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);margin:0 auto var(--spacing-10) auto;max-width:var(--spacing-125);text-align:center}.home__features-featured{display:grid;gap:var(--spacing-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--spacing-80)),1fr));margin-bottom:var(--spacing-8)}.home__features-supporting-label{color:var(--text-dim);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);margin:0 0 var(--spacing-4) 0;text-align:center;text-transform:uppercase}.home__grid{display:grid;gap:var(--spacing-6);grid-template-columns:repeat(auto-fit,minmax(var(--spacing-75),1fr));margin-bottom:var(--spacing-16)}.home__grid--supporting{gap:var(--spacing-5);margin-bottom:0}.home__card{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);color:var(--text);padding:var(--spacing-6);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.home__card:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.home__card--featured{border-color:var(--border);border-top:3px solid oklch(from var(--accent) l c h/24%);padding:var(--spacing-8)}.home__card--featured:hover{border-color:oklch(from var(--accent) l c h/28%);border-top-color:oklch(from var(--accent) l c h/40%);box-shadow:var(--shadow-md)}.home__card--supporting{display:flex;flex-direction:column;min-height:var(--spacing-32);padding:var(--spacing-5)}.home__card--supporting h3{font-size:var(--font-size-base);margin-bottom:var(--spacing-2)}.home__card--supporting p{font-size:var(--font-size-sm)}.home__card-icon{background-color:oklch(from var(--accent) l c h/14%);border-radius:var(--radius-md);color:var(--accent-fg);display:inline-block;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-wider);margin-bottom:var(--spacing-3);padding:var(--spacing-1) var(--spacing-2);text-transform:uppercase}.home__card h3{color:var(--text);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-3) 0}.home__card--featured h3{font-size:var(--font-size-xl);margin-bottom:var(--spacing-4)}.home__card p{color:var(--text-dim);line-height:var(--line-height-relaxed);margin:0}.home__examples{margin-bottom:var(--spacing-16)}.home__example{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--spacing-8);padding:var(--spacing-8)}.home__example h3{color:var(--text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-4) 0}.home__example p{color:var(--text-dim);margin-bottom:var(--spacing-4)}.home__button-group{display:flex;flex-wrap:wrap;gap:var(--spacing-3)}.home__theme-demo{max-width:var(--spacing-75)}.home__theme-demo .theme-switcher{position:relative;width:100%;z-index:var(--z-dropdown)}.home__theme-demo .theme-switcher__menu{z-index:var(--z-dropdown)}.home__add-command{margin-bottom:var(--spacing-16)}.home__add-command-block{align-items:stretch;background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);display:flex;gap:var(--spacing-2);max-width:100%;min-width:0;overflow:hidden}.home__add-command-block pre{color:var(--text);flex:1;font-family:var(--font-family-mono);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0;min-width:0;overflow-x:auto;padding:var(--spacing-4)}.home__add-command-block code{white-space:pre}.home__add-command-copy{align-self:center;flex-shrink:0;margin-right:var(--spacing-2)}.home__docs{margin-bottom:var(--spacing-8)}.home__docs-grid{display:grid;gap:var(--spacing-6);grid-template-columns:repeat(auto-fit,minmax(var(--spacing-70),1fr))}.home__doc-card{background-color:var(--background-alt);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);color:var(--text);display:block;padding:var(--spacing-6);text-decoration:none;transition:border-color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base)}.home__doc-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(calc(var(--spacing-0-125)*-1))}.home__doc-card:focus-visible{outline:var(--outline-width) solid var(--accent);outline-offset:var(--outline-offset)}.home__doc-card h3{color:var(--accent-fg);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-2) 0}.home__doc-card p{color:var(--text-dim);line-height:var(--line-height-relaxed);margin:0}@media (width <= 640px){.home__announcement{align-items:center;flex-direction:column;gap:var(--spacing-1-5);padding:var(--spacing-3) var(--spacing-4);text-align:center}.home__announcement-text{line-height:var(--line-height-relaxed)}.home__title{font-size:var(--font-size-4xl)}.home__subtitle{font-size:var(--font-size-lg)}.home__showcase-grid{max-width:100%}.home__showcase .home__example:last-child{justify-self:stretch;max-width:100%}.home__theme-demo{max-width:100%;width:100%}.home__install-grid{grid-template-columns:1fr}.home__features-intro{font-size:var(--font-size-base)}.home__features-featured{grid-template-columns:1fr}.home__card--supporting{min-height:0}
|
|
200
|
-
.home__docs-grid,.home__grid{grid-template-columns:1fr}}.docs-section-grid{display:grid;gap:var(--spacing-6);grid-template-columns:repeat(auto-fill,minmax(var(--spacing-70),1fr));margin:var(--section-spacing) 0}.docs-format-tabs{border-bottom:var(--border-width) solid var(--border);display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin:var(--spacing-8) 0 var(--spacing-4);overflow-x:auto;padding-bottom:var(--spacing-2)}.docs-format-tab{align-items:center;background:none;border:none;border-bottom:var(--border-width-2) solid transparent;border-radius:0;color:var(--text-dim);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin-bottom:calc(var(--spacing-2)*-1);padding:var(--spacing-2) var(--spacing-4);transition:color var(--transition-base),border-color var(--transition-base);white-space:nowrap}.docs-format-tab:hover{color:var(--text)}.docs-format-tab[aria-selected="true"]{border-bottom-color:var(--accent-fg);color:var(--accent-fg)}.docs-format-tab:focus-visible{border-radius:var(--radius);outline:var(--outline-width) solid var(--accent-fg);outline-offset:var(--outline-offset)}.colors-doc__format-section{margin-bottom:var(--section-spacing)}.colors-doc__format-heading{color:var(--text);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-2) 0}.colors-doc__format-intro{color:var(--text-dim);font-size:var(--font-size-base);margin:0 0 var(--spacing-4) 0}.colors-doc .color-format-tabs{border-bottom:var(--border-width) solid var(--border);display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin:var(--spacing-4) 0 var(--spacing-4);overflow-x:auto;padding-bottom:var(--spacing-2)}.colors-doc .color-format-tab{align-items:center;background:none;border:none;border-bottom:var(--border-width-2) solid transparent;border-radius:0;color:var(--text-dim);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin-bottom:calc(var(--spacing-2)*-1);padding:var(--spacing-2) var(--spacing-4);transition:color var(--transition-base),border-color var(--transition-base);white-space:nowrap}.colors-doc .color-format-tab:hover{color:var(--text)}.colors-doc .color-format-tab[aria-selected="true"]{border-bottom-color:var(--accent-fg);color:var(--accent-fg)}.colors-doc .color-format-tab:focus-visible{border-radius:var(--radius);outline:var(--outline-width) solid var(--accent-fg);outline-offset:var(--outline-offset)}.colors-doc .color-card{background-color:var(--color-card-bg,var(--background
|
|
201
|
+
.home__docs-grid,.home__grid{grid-template-columns:1fr}}.docs-section-grid{display:grid;gap:var(--spacing-6);grid-template-columns:repeat(auto-fill,minmax(var(--spacing-70),1fr));margin:var(--section-spacing) 0}.docs-format-tabs{border-bottom:var(--border-width) solid var(--border);display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin:var(--spacing-8) 0 var(--spacing-4);overflow-x:auto;padding-bottom:var(--spacing-2)}.docs-format-tab{align-items:center;background:none;border:none;border-bottom:var(--border-width-2) solid transparent;border-radius:0;color:var(--text-dim);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin-bottom:calc(var(--spacing-2)*-1);padding:var(--spacing-2) var(--spacing-4);transition:color var(--transition-base),border-color var(--transition-base);white-space:nowrap}.docs-format-tab:hover{color:var(--text)}.docs-format-tab[aria-selected="true"]{border-bottom-color:var(--accent-fg);color:var(--accent-fg)}.docs-format-tab:focus-visible{border-radius:var(--radius);outline:var(--outline-width) solid var(--accent-fg);outline-offset:var(--outline-offset)}.colors-doc__format-section{margin-bottom:var(--section-spacing)}.colors-doc__format-heading{color:var(--text);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-2) 0}.colors-doc__format-intro{color:var(--text-dim);font-size:var(--font-size-base);margin:0 0 var(--spacing-4) 0}.colors-doc .color-format-tabs{border-bottom:var(--border-width) solid var(--border);display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin:var(--spacing-4) 0 var(--spacing-4);overflow-x:auto;padding-bottom:var(--spacing-2)}.colors-doc .color-format-tab{align-items:center;background:none;border:none;border-bottom:var(--border-width-2) solid transparent;border-radius:0;color:var(--text-dim);cursor:pointer;display:inline-flex;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin-bottom:calc(var(--spacing-2)*-1);padding:var(--spacing-2) var(--spacing-4);transition:color var(--transition-base),border-color var(--transition-base);white-space:nowrap}.colors-doc .color-format-tab:hover{color:var(--text)}.colors-doc .color-format-tab[aria-selected="true"]{border-bottom-color:var(--accent-fg);color:var(--accent-fg)}.colors-doc .color-format-tab:focus-visible{border-radius:var(--radius);outline:var(--outline-width) solid var(--accent-fg);outline-offset:var(--outline-offset)}.colors-doc .color-card{background-color:var(--color-card-bg,var(--swatch-bg,var(--background)))!important;border-radius:var(--radius-lg);display:flex;flex-direction:column;min-height:var(--spacing-80);overflow:hidden}.colors-doc .color-card .color-swatch{background-color:var(--swatch-bg,var(--background))!important;flex:1 1 auto;min-height:var(--spacing-80);position:relative}.colors-doc .color-card .color-swatch .color-swatch__bg{background-color:var(--swatch-bg,var(--background))!important;border-radius:inherit;inset:0;pointer-events:none;position:absolute;z-index:0}.colors-doc .color-card .color-swatch > .color-swatch__info{background-color:var(--background)!important;color:var(--text)!important;position:relative;z-index:1}.colors-doc .color-swatch .copy-to-clipboard__text{color:inherit;min-height:1.5em;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;word-break:break-all}@media (width <= 640px){.docs-section-grid{grid-template-columns:1fr}}.theming-page__hero{margin-bottom:var(--spacing-10);padding:var(--spacing-12) 0 var(--spacing-10);text-align:center}.theming-page__hero-title{color:var(--text);font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-tight);margin:0 0 var(--spacing-4) 0}.theming-page__hero-subtitle{color:var(--text-dim);font-size:var(--font-size-xl);line-height:var(--line-height-relaxed);margin:0 auto var(--spacing-6) auto;max-width:var(--spacing-175)}.theming-page__hero-demo{align-items:center;display:inline-flex;flex-direction:column;margin-top:var(--spacing-5)}.theming-page .docs__content > section{margin-bottom:var(--spacing-10);margin-top:0}.theming-page .docs__content > section:last-child{margin-bottom:0}.theming-page .docs__content > section > h2{margin-bottom:var(--spacing-5);margin-top:0;padding-bottom:var(--spacing-2)}.theming-page__mobile-dropdown{display:none;max-width:var(--theme-switcher-width);width:100%}.theming-page__mobile-dropdown-inner{width:100%}@media (width <= 1024px){.theming-page .theming-page__mobile-dropdown{display:block!important}.theming-page .theming-page__hero-switcher{display:none!important}}@media (width <= 640px){.theming-page__hero-title{font-size:var(--font-size-3xl)}.theming-page__hero-subtitle{font-size:var(--font-size-lg)}}.theming-page .card a{color:var(--text);transition:color var(--transition-base)}.theming-page .card a:hover{color:var(--accent-fg)}.theming-page .card:hover{transform:translateY(calc(var(--spacing-0-125)*-1));transition:transform var(--transition-base)}.reduced-motion .theming-page .card:hover{transform:none}.theming-page__grid{display:grid;gap:var(--spacing-4);grid-template-columns:1fr;margin:0}.theming-page__grid .card{min-width:0;width:100%}.theming-page__card-header{align-items:center;display:flex;gap:var(--spacing-3);margin-bottom:var(--spacing-2)}.theming-page__card-header h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0}.theming-page__card-desc{color:var(--text-dim);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0 0 var(--spacing-2)}.theming-page__card-meta{color:var(--text-dim);font-size:var(--font-size-xs);margin:0}.theming-page__card-meta:last-of-type{margin-top:var(--spacing-1)}
|
|
201
202
|
.block-card-link,.component-card-link{text-decoration:none}
|
|
202
|
-
.block-card-link:hover,.component-card-link:hover{text-decoration:underline;text-underline-offset:.15em}.theme-by{color:var(--text-dim);font-size:var(--font-size-sm);margin:0 0 var(--spacing-4) 0}.theme-by a{color:var(--accent-fg);text-decoration:none;transition:color var(--transition-base)}.theme-by a:hover{color:var(--accent-fg-hover);text-decoration:underline}html:has([data-docs]){scroll-behavior:smooth}.docs{align-items:stretch;background-color:var(--background);display:flex;flex-direction:row;min-height:calc(100vh - 4rem);padding:var(--content-padding-y) 0;position:relative}.docs__sidebar-toggle{align-items:center;background-color:var(--accent);border:none;border-radius:var(--radius-md);bottom:var(--spacing-6);box-shadow:var(--shadow-lg);color:var(--accent-text);cursor:pointer;display:none;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-2);left:var(--spacing-6);padding:var(--spacing-3) var(--spacing-4);position:fixed;transition:background-color var(--transition-base),transform var(--transition-base);z-index:calc(var(--z-settings) - 1)}.docs__sidebar-toggle:hover{background-color:var(--accent-hover)}.docs__sidebar-toggle:focus-visible{outline:var(--outline-width) solid var(--accent-text);outline-offset:var(--outline-offset)}.docs__sidebar-toggle-icon{display:flex;flex-direction:column;gap:var(--spacing-0-375)}.docs__sidebar-toggle-icon span{background-color:currentcolor;border-radius:1px;display:block;height:2px;width:var(--spacing-4)}.docs__sidebar-overlay{background-color:
|
|
203
|
+
.block-card-link:hover,.component-card-link:hover{text-decoration:underline;text-underline-offset:.15em}.theme-by{color:var(--text-dim);font-size:var(--font-size-sm);margin:0 0 var(--spacing-4) 0}.theme-by a{color:var(--accent-fg);text-decoration:none;transition:color var(--transition-base)}.theme-by a:hover{color:var(--accent-fg-hover);text-decoration:underline}html:has([data-docs]){scroll-behavior:smooth}.docs{align-items:stretch;background-color:var(--background);display:flex;flex-direction:row;min-height:calc(100vh - 4rem);padding:var(--content-padding-y) 0;position:relative}.docs__sidebar-toggle{align-items:center;background-color:var(--accent);border:none;border-radius:var(--radius-md);bottom:var(--spacing-6);box-shadow:var(--shadow-lg);color:var(--accent-text);cursor:pointer;display:none;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-2);left:var(--spacing-6);padding:var(--spacing-3) var(--spacing-4);position:fixed;transition:background-color var(--transition-base),transform var(--transition-base);z-index:calc(var(--z-settings) - 1)}.docs__sidebar-toggle:hover{background-color:var(--accent-hover)}.docs__sidebar-toggle:focus-visible{outline:var(--outline-width) solid var(--accent-text);outline-offset:var(--outline-offset)}.docs__sidebar-toggle-icon{display:flex;flex-direction:column;gap:var(--spacing-0-375)}.docs__sidebar-toggle-icon span{background-color:currentcolor;border-radius:1px;display:block;height:2px;width:var(--spacing-4)}.docs__sidebar-overlay{background-color:var(--overlay);display:none;inset:0;opacity:0;position:fixed;transition:opacity var(--transition-base),visibility var(--transition-base);visibility:hidden;z-index:calc(var(--z-settings) - 2)}.docs--sidebar-open .docs__sidebar-overlay{opacity:1;visibility:visible}.docs__main{background-color:var(--background);flex:1 1 0%;min-width:0;width:100%}@media (width >= 1025px){#docs-sidebar-container{align-items:stretch;display:flex;flex-direction:column;min-height:0}}.docs-sidebar{background-color:var(--background);border-right:var(--border-width) solid var(--border);flex-shrink:0;overflow-y:auto;padding:var(--spacing-6) var(--spacing-4) var(--spacing-8) 0;width:var(--docs-sidebar-width,14rem)}@media (width >= 1025px){.docs-sidebar{align-self:flex-start;max-height:calc(100vh - var(--spacing-16) - var(--spacing-4));position:sticky;top:calc(var(--spacing-16) + var(--spacing-4));z-index:1}}.docs-sidebar__nav{display:flex;flex-direction:column;gap:var(--spacing-6)}.docs-sidebar__group-label{color:var(--text-dim);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wider);margin:0 0 var(--spacing-2) 0;padding:var(--spacing-2) var(--spacing-3) var(--spacing-2);text-transform:uppercase}.docs-sidebar__list{list-style:none;margin:0;padding:0}.docs-sidebar__item{margin:0}.docs-sidebar__link{border-radius:var(--radius-md);color:var(--text);display:block;font-size:var(--font-size-base);padding:var(--spacing-2) var(--spacing-3);text-decoration:none;transition:color var(--transition-base),background-color var(--transition-base)}.docs-sidebar__link:hover{background-color:var(--background-alt);color:var(--text)}.docs-sidebar__link--active{background-color:oklch(from var(--accent-fg) l c h/12%);color:var(--accent-fg);font-weight:var(--font-weight-medium)}.docs-sidebar__link--active:hover{background-color:oklch(from var(--accent-fg) l c h/16%);color:var(--accent-fg-hover)}.docs-sidebar__sublist{border-left:2px solid var(--border);list-style:none;margin:0 0 0 var(--spacing-2);padding:0}.docs-sidebar__subitem{margin:0}.docs-sidebar__sublink{border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text);display:block;font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-2) var(--spacing-1) var(--spacing-3);text-decoration:none;transition:color var(--transition-base),background-color var(--transition-base)}.docs-sidebar__sublink:hover{background-color:var(--background-alt);color:var(--text)}.docs-sidebar__sublink--active{background-color:oklch(from var(--accent-fg) l c h/12%);color:var(--accent-fg);font-weight:var(--font-weight-medium)}.docs-sidebar__sublink--active:hover{background-color:oklch(from var(--accent-fg) l c h/16%);color:var(--accent-fg-hover)}.docs-sidebar-demo{background-color:var(--background);border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);max-height:18rem;overflow:auto;padding:var(--spacing-3)}.docs-sidebar-demo .docs-sidebar{border-right:none;max-height:none;padding:0 var(--spacing-2) var(--spacing-4) 0;position:static;width:11rem}.docs-sidebar-demo .docs-sidebar__nav{gap:var(--spacing-4)}.docs-sidebar-demo .docs-sidebar__group-label,
|
|
203
204
|
.docs-sidebar-demo h2.docs-sidebar__group-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2) var(--spacing-1)}.docs-sidebar-demo .docs-sidebar__link{font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-2)}.docs-sidebar-demo .docs-sidebar__sublist{margin-left:var(--spacing-1)}.docs-sidebar-demo .docs-sidebar__sublink{font-size:var(--font-size-xs);padding:var(--spacing-0-5) var(--spacing-1) var(--spacing-0-5) var(--spacing-2)}.theme-page__header{align-items:center;display:flex;gap:var(--spacing-3);margin-bottom:var(--spacing-2)}.theme-page__header h2{margin:0}html.docs-sidebar-mobile #docs-sidebar-container{display:none!important}@media (width <= 1024px){#docs-sidebar-container,
|
|
204
205
|
.docs-sidebar,
|
|
205
206
|
.docs__sidebar-overlay,
|
|
206
|
-
.docs__sidebar-toggle{display:none!important}}@media (width >= 1025px){.docs__sidebar-overlay[aria-hidden="true"]{display:none!important}}
|
|
207
|
+
.docs__sidebar-toggle{display:none!important}}@media (width >= 1025px){.docs__sidebar-overlay[aria-hidden="true"]{display:none!important}}
|
|
208
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item:focus-visible:not(.dropdown__item--disabled) svg,#themes-preview .themes-page__preview-dropdown-menu .dropdown__item:hover:not(.dropdown__item--disabled) svg,
|
|
209
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"] svg,
|
|
210
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"]:focus-visible svg,
|
|
211
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"]:hover svg{color:var(--accent)!important;stroke:var(--accent)!important}
|
|
212
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item:focus-visible:not(.dropdown__item--disabled) span,#themes-preview .themes-page__preview-dropdown-menu .dropdown__item:hover:not(.dropdown__item--disabled) span,
|
|
213
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"] span,
|
|
214
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"]:focus-visible span,
|
|
215
|
+
#themes-preview .themes-page__preview-dropdown-menu .dropdown__item[aria-current="true"]:hover span{color:var(--accent)!important}[data-theme="github-dark-classic"]{--bg:oklch(18% 0.012 264deg);--bg-alt:oklch(15% 0.01 264deg);--current-line:oklch(20% 0.012 264deg);--selection:oklch(28% 0.08 255deg);--fg:oklch(91% 0.004 264deg);--fg-dim:oklch(66% 0.01 264deg);--comment:oklch(52% 0.015 264deg);--cyan:oklch(72% 0.12 250deg);--green:oklch(72% 0.19 145deg);--orange:oklch(78% 0.12 55deg);--pink:oklch(68% 0.14 15deg);--purple:oklch(68% 0.14 300deg);--red:oklch(68% 0.16 15deg);--yellow:oklch(88% 0.12 95deg);--background:var(--bg);--background-alt:var(--bg-alt);--text:var(--fg);--text-dim:var(--fg-dim);--icon:var(--fg);--icon-dim:oklch(75% 0.01 264deg);--border:oklch(13% 0.01 264deg);--accent:oklch(45% 0.18 250deg);--accent-hover:oklch(48% 0.18 250deg);--accent-text:oklch(100% 0 0deg);--accent-text-on-hover:var(--accent-text);--accent-fg:var(--cyan);--accent-fg-hover:oklch(78% 0.12 250deg);--success:var(--green);--success-hover:oklch(78% 0.16 145deg);--success-text:oklch(100% 0 0deg);--success-text-on-solid:oklch(22% 0.03 145deg);--warning:var(--orange);--warning-hover:oklch(85% 0.1 55deg);--warning-text:oklch(100% 0 0deg);--warning-text-on-solid:oklch(22% 0.02 55deg);--error:var(--red);--error-hover:oklch(75% 0.14 15deg);--error-text:oklch(100% 0 0deg);--error-text-on-solid:oklch(22% 0.03 25deg);--info:var(--cyan);--info-hover:oklch(78% 0.1 250deg);--info-text:oklch(100% 0 0deg);--info-text-on-solid:oklch(22% 0.03 250deg);--scrollbar-thumb:oklch(42% 0.02 264deg);--scrollbar-thumb-hover:oklch(52% 0.03 264deg);--scrollbar-thumb-active:oklch(58% 0.04 264deg);.card .card__body h2,
|
|
207
216
|
.card .card__body h3,
|
|
208
217
|
.card .card__body h4,.footer__link{color:var(--fg)}}@supports (color:oklch(from red l c h)){[data-theme="github-dark-classic"]{--color-accent-50:oklch(from var(--accent) 0.97deg 0.03 h);--color-accent-100:oklch(from var(--accent) 0.93deg 0.06 h);--color-accent-200:oklch(from var(--accent) 0.88deg 0.1 h);--color-accent-300:oklch(from var(--accent) 0.78deg 0.14 h);--color-accent-400:oklch(from var(--accent) 0.65deg 0.16 h);--color-accent-500:var(--accent);--color-accent-600:oklch(from var(--accent) 0.45deg 0.18 h);--color-accent-700:oklch(from var(--accent) 0.38deg 0.16 h);--color-accent-800:oklch(from var(--accent) 0.3deg 0.12 h);--color-accent-900:oklch(from var(--accent) 0.22deg 0.08 h);--color-accent-950:oklch(from var(--accent) 0.15deg 0.05 h);--color-success-50:oklch(from var(--success) 0.97deg 0.03 h);--color-success-100:oklch(from var(--success) 0.93deg 0.06 h);--color-success-200:oklch(from var(--success) 0.88deg 0.1 h);--color-success-300:oklch(from var(--success) 0.78deg 0.14 h);--color-success-400:oklch(from var(--success) 0.65deg 0.16 h);--color-success-500:var(--success);--color-success-600:oklch(from var(--success) 0.45deg 0.18 h);--color-success-700:oklch(from var(--success) 0.38deg 0.16 h);--color-success-800:oklch(from var(--success) 0.3deg 0.12 h);--color-success-900:oklch(from var(--success) 0.22deg 0.08 h);--color-success-950:oklch(from var(--success) 0.15deg 0.05 h);--color-warning-50:oklch(from var(--warning) 0.97deg 0.03 h);--color-warning-100:oklch(from var(--warning) 0.93deg 0.06 h);--color-warning-200:oklch(from var(--warning) 0.88deg 0.1 h);--color-warning-300:oklch(from var(--warning) 0.82deg 0.12 h);--color-warning-400:oklch(from var(--warning) 0.75deg 0.14 h);--color-warning-500:var(--warning);--color-warning-600:oklch(from var(--warning) 0.55deg 0.14 h);--color-warning-700:oklch(from var(--warning) 0.45deg 0.12 h);--color-warning-800:oklch(from var(--warning) 0.35deg 0.1 h);--color-warning-900:oklch(from var(--warning) 0.25deg 0.06 h);--color-warning-950:oklch(from var(--warning) 0.18deg 0.04 h);--color-error-50:oklch(from var(--error) 0.97deg 0.03 h);--color-error-100:oklch(from var(--error) 0.93deg 0.06 h);--color-error-200:oklch(from var(--error) 0.88deg 0.1 h);--color-error-300:oklch(from var(--error) 0.78deg 0.14 h);--color-error-400:oklch(from var(--error) 0.65deg 0.18 h);--color-error-500:var(--error);--color-error-600:oklch(from var(--error) 0.45deg 0.2 h);--color-error-700:oklch(from var(--error) 0.38deg 0.18 h);--color-error-800:oklch(from var(--error) 0.3deg 0.14 h);--color-error-900:oklch(from var(--error) 0.22deg 0.1 h);--color-error-950:oklch(from var(--error) 0.15deg 0.06 h);--color-info-50:oklch(from var(--info) 0.97deg 0.03 h);--color-info-100:oklch(from var(--info) 0.93deg 0.06 h);--color-info-200:oklch(from var(--info) 0.88deg 0.08 h);--color-info-300:oklch(from var(--info) 0.78deg 0.1 h);--color-info-400:oklch(from var(--info) 0.65deg 0.12 h);--color-info-500:var(--info);--color-info-600:oklch(from var(--info) 0.45deg 0.12 h);--color-info-700:oklch(from var(--info) 0.38deg 0.1 h);--color-info-800:oklch(from var(--info) 0.3deg 0.08 h);--color-info-900:oklch(from var(--info) 0.22deg 0.06 h);--color-info-950:oklch(from var(--info) 0.15deg 0.04 h)}}
|
|
209
218
|
[data-theme="github-dark-classic"] ::-webkit-scrollbar-thumb,[data-theme="github-dark-classic"]::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rizzo-css",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.57",
|
|
4
4
|
"engines": { "node": ">=18" },
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepublishOnly": "cd ../.. && pnpm run lint:css:fix && pnpm run build:css && node scripts/copy-scaffold.js && node scripts/prepare-vanilla-scaffold.js"
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# Astro + Rizzo CSS
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<pre style="font-family: ui-monospace, monospace; font-size: 0.85em; line-height: 1.2;">
|
|
4
4
|
/\___/\
|
|
5
5
|
__( o o )__
|
|
6
6
|
( =^= )
|
|
7
7
|
_/ ~ \_
|
|
8
8
|
/ \_____/ \
|
|
9
|
-
____
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
<span style="color:#c44536"> ____ </span><span style="color:#e07c3e"> ___ _</span><span style="color:#d4a800">______</span><span style="color:#2d9d78">______</span><span style="color:#0052bd"> _</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">__ ____</span>
|
|
10
|
+
<span style="color:#c44536">| _ \</span><span style="color:#e07c3e">|_ _|_</span><span style="color:#d4a800">_ /__</span><span style="color:#2d9d78"> / _ </span><span style="color:#0052bd">\ / </span><span style="color:#7c3aed">___/ _</span><span style="color:#d946ef">__/ ___|</span>
|
|
11
|
+
<span style="color:#c44536">| |_) </span><span style="color:#e07c3e">|| | </span><span style="color:#d4a800">/ / /</span><span style="color:#2d9d78"> / | |</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed"> \__</span><span style="color:#d946ef">_ \___ \</span>
|
|
12
|
+
<span style="color:#c44536">| _ <</span><span style="color:#e07c3e"> | | /</span><span style="color:#d4a800"> /_ / </span><span style="color:#2d9d78">/| |_|</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">_) |__) |</span>
|
|
13
|
+
<span style="color:#c44536">|_| \_</span><span style="color:#e07c3e">\___/_</span><span style="color:#d4a800">___/__</span><span style="color:#2d9d78">__\___</span><span style="color:#0052bd">/ \_</span><span style="color:#7c3aed">___|__</span><span style="color:#d946ef">__/____/</span>
|
|
14
|
+
|
|
15
|
+
Design system · Vanilla · Astro · Svelte
|
|
16
|
+
</pre>
|
|
16
17
|
|
|
17
18
|
Astro project with Rizzo CSS. Scaffolded with `npx rizzo-css init` when you chose **Create new** and Astro, then **Landing**, **Docs**, **Dashboard**, or **Full**. **Full** = clone of the docs site. **Landing** / **Docs** / **Dashboard** = base + component picker (all 56 or pick). Same template choice for **Add to existing** (`npx rizzo-css add`).
|
|
18
19
|
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# Astro + Rizzo CSS
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<pre style="font-family: ui-monospace, monospace; font-size: 0.85em; line-height: 1.2;">
|
|
4
4
|
/\___/\
|
|
5
5
|
__( o o )__
|
|
6
6
|
( =^= )
|
|
7
7
|
_/ ~ \_
|
|
8
8
|
/ \_____/ \
|
|
9
|
-
____
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
<span style="color:#c44536"> ____ </span><span style="color:#e07c3e"> ___ _</span><span style="color:#d4a800">______</span><span style="color:#2d9d78">______</span><span style="color:#0052bd"> _</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">__ ____</span>
|
|
10
|
+
<span style="color:#c44536">| _ \</span><span style="color:#e07c3e">|_ _|_</span><span style="color:#d4a800">_ /__</span><span style="color:#2d9d78"> / _ </span><span style="color:#0052bd">\ / </span><span style="color:#7c3aed">___/ _</span><span style="color:#d946ef">__/ ___|</span>
|
|
11
|
+
<span style="color:#c44536">| |_) </span><span style="color:#e07c3e">|| | </span><span style="color:#d4a800">/ / /</span><span style="color:#2d9d78"> / | |</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed"> \__</span><span style="color:#d946ef">_ \___ \</span>
|
|
12
|
+
<span style="color:#c44536">| _ <</span><span style="color:#e07c3e"> | | /</span><span style="color:#d4a800"> /_ / </span><span style="color:#2d9d78">/| |_|</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">_) |__) |</span>
|
|
13
|
+
<span style="color:#c44536">|_| \_</span><span style="color:#e07c3e">\___/_</span><span style="color:#d4a800">___/__</span><span style="color:#2d9d78">__\___</span><span style="color:#0052bd">/ \_</span><span style="color:#7c3aed">___|__</span><span style="color:#d946ef">__/____/</span>
|
|
14
|
+
|
|
15
|
+
Design system · Vanilla · Astro · Svelte
|
|
16
|
+
</pre>
|
|
16
17
|
|
|
17
18
|
Astro project with Rizzo CSS. Scaffolded with `npx rizzo-css init` when you chose **Create new** and Astro, then **Full** template. **Full** = clone of the Rizzo docs site (no component picker). **Landing** / **Docs** / **Dashboard** = base + component picker (all 56 or pick). Same template choice for **Add to existing** (`npx rizzo-css add`).
|
|
18
19
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
(function() {
|
|
3
3
|
var SOUND_KEY = 'soundEffects';
|
|
4
4
|
var THROTTLE_MS = 120;
|
|
5
|
-
var clickableSelector = 'a[href], area[href], button, input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"], input[type="reset"], select, summary, [role="button"], [role="link"], [role="menuitem"], [role="menuitemradio"], [role="tab"], [role="option"], [role="switch"], .btn, .tabs__tab, .dropdown__trigger, .accordion__trigger, [data-accordion-trigger], .navbar__link, .navbar__brand-link, .pagination__link, .breadcrumb__link, .search__trigger, .theme-switcher__option, .font-switcher__option, .framework-switcher__segment, .modal__close, .alert__close, .copy-btn, .copy-to-clipboard, [data-copy-btn], .docs-sidebar__link, .docs-sidebar__sublink, .docs__sidebar-toggle, .home__announcement, .home__example-pill, .block-card-link, .component-card-link, .home__doc-card, .skip-link, [data-sound-on-click]';
|
|
5
|
+
var clickableSelector = 'a[href], area[href], button, input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"], input[type="reset"], select, summary, [role="button"], [role="link"], [role="menuitem"], [role="menuitemradio"], [role="tab"], [role="option"], [role="switch"], .btn, .tabs__tab, .dropdown__trigger, .accordion__trigger, [data-accordion-trigger], .navbar__link, .navbar__brand-link, .navbar__item, .pagination__link, .breadcrumb__link, .search__trigger, .theme-switcher__option, .font-switcher__option, .framework-switcher__segment, .modal__close, .alert__close, .copy-btn, .copy-to-clipboard, [data-copy-btn], .docs-sidebar__link, .docs-sidebar__sublink, .docs__sidebar-toggle, .home__announcement, .home__example-pill, .block-card-link, .component-card-link, .home__doc-card, .skip-link, [data-sound-on-click]';
|
|
6
6
|
var audioContext = null;
|
|
7
7
|
var soundBase = '/assets/sfx';
|
|
8
8
|
var soundUrls = [soundBase + '/click.mp3', soundBase + '/click.wav'];
|
|
@@ -69,7 +69,12 @@
|
|
|
69
69
|
playFallbackTone();
|
|
70
70
|
} catch (e) {}
|
|
71
71
|
}
|
|
72
|
-
function
|
|
72
|
+
function getEventTargetElement(target) {
|
|
73
|
+
if (!target) return null;
|
|
74
|
+
return target.nodeType === 3 ? target.parentElement : target;
|
|
75
|
+
}
|
|
76
|
+
function getClickable(target) {
|
|
77
|
+
var el = getEventTargetElement(target);
|
|
73
78
|
if (!el || !el.closest) return null;
|
|
74
79
|
var clickable = el.closest(clickableSelector);
|
|
75
80
|
if (!clickable) return null;
|
|
@@ -91,8 +96,20 @@
|
|
|
91
96
|
playClickSound();
|
|
92
97
|
setTimeout(function() { lastTouchSoundTarget = null; }, 450);
|
|
93
98
|
}
|
|
99
|
+
function onDocumentPointerdown(e) {
|
|
100
|
+
if (e.pointerType === 'mouse' && e.button !== 0) return;
|
|
101
|
+
if (!e.isPrimary) return;
|
|
102
|
+
var clickable = getClickable(e.target);
|
|
103
|
+
if (!clickable) return;
|
|
104
|
+
if (lastTouchSoundTarget === clickable && (Date.now() - lastTouchSoundTime) < 400) return;
|
|
105
|
+
lastTouchSoundTarget = clickable;
|
|
106
|
+
lastTouchSoundTime = Date.now();
|
|
107
|
+
playClickSound();
|
|
108
|
+
setTimeout(function() { lastTouchSoundTarget = null; }, 450);
|
|
109
|
+
}
|
|
94
110
|
function initSound() {
|
|
95
111
|
document.addEventListener('click', onDocumentClick, true);
|
|
112
|
+
document.addEventListener('pointerdown', onDocumentPointerdown, true);
|
|
96
113
|
if ('ontouchstart' in window || (navigator && navigator.maxTouchPoints > 0)) {
|
|
97
114
|
document.addEventListener('touchend', onDocumentTouchend, true);
|
|
98
115
|
}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# SvelteKit + Rizzo CSS
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<pre style="font-family: ui-monospace, monospace; font-size: 0.85em; line-height: 1.2;">
|
|
4
4
|
/\___/\
|
|
5
5
|
__( o o )__
|
|
6
6
|
( =^= )
|
|
7
7
|
_/ ~ \_
|
|
8
8
|
/ \_____/ \
|
|
9
|
-
____
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
<span style="color:#c44536"> ____ </span><span style="color:#e07c3e"> ___ _</span><span style="color:#d4a800">______</span><span style="color:#2d9d78">______</span><span style="color:#0052bd"> _</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">__ ____</span>
|
|
10
|
+
<span style="color:#c44536">| _ \</span><span style="color:#e07c3e">|_ _|_</span><span style="color:#d4a800">_ /__</span><span style="color:#2d9d78"> / _ </span><span style="color:#0052bd">\ / </span><span style="color:#7c3aed">___/ _</span><span style="color:#d946ef">__/ ___|</span>
|
|
11
|
+
<span style="color:#c44536">| |_) </span><span style="color:#e07c3e">|| | </span><span style="color:#d4a800">/ / /</span><span style="color:#2d9d78"> / | |</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed"> \__</span><span style="color:#d946ef">_ \___ \</span>
|
|
12
|
+
<span style="color:#c44536">| _ <</span><span style="color:#e07c3e"> | | /</span><span style="color:#d4a800"> /_ / </span><span style="color:#2d9d78">/| |_|</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">_) |__) |</span>
|
|
13
|
+
<span style="color:#c44536">|_| \_</span><span style="color:#e07c3e">\___/_</span><span style="color:#d4a800">___/__</span><span style="color:#2d9d78">__\___</span><span style="color:#0052bd">/ \_</span><span style="color:#7c3aed">___|__</span><span style="color:#d946ef">__/____/</span>
|
|
14
|
+
|
|
15
|
+
Design system · Vanilla · Astro · Svelte
|
|
16
|
+
</pre>
|
|
16
17
|
|
|
17
18
|
SvelteKit project with Rizzo CSS. Scaffolded with `npx rizzo-css init` when you chose **Create new** and Svelte, then **Landing**, **Docs**, **Dashboard**, or **Full**. **Full** = clone of the docs site. **Landing** / **Docs** / **Dashboard** = base + component picker (all 56 or pick). Same template choice for **Add to existing** (`npx rizzo-css add`).
|
|
18
19
|
|
package/scaffold/svelte/index.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export { default as Button } from './Button.svelte';
|
|
6
6
|
export { default as Badge } from './Badge.svelte';
|
|
7
7
|
export { default as Card } from './Card.svelte';
|
|
8
|
+
export { default as Dashboard } from './Dashboard.svelte';
|
|
8
9
|
export { default as Divider } from './Divider.svelte';
|
|
9
10
|
export { default as Footer } from './Footer.svelte';
|
|
10
11
|
export type { FooterLink } from './Footer.svelte';
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
# SvelteKit + Rizzo CSS
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<pre style="font-family: ui-monospace, monospace; font-size: 0.85em; line-height: 1.2;">
|
|
4
4
|
/\___/\
|
|
5
5
|
__( o o )__
|
|
6
6
|
( =^= )
|
|
7
7
|
_/ ~ \_
|
|
8
8
|
/ \_____/ \
|
|
9
|
-
____
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
<span style="color:#c44536"> ____ </span><span style="color:#e07c3e"> ___ _</span><span style="color:#d4a800">______</span><span style="color:#2d9d78">______</span><span style="color:#0052bd"> _</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">__ ____</span>
|
|
10
|
+
<span style="color:#c44536">| _ \</span><span style="color:#e07c3e">|_ _|_</span><span style="color:#d4a800">_ /__</span><span style="color:#2d9d78"> / _ </span><span style="color:#0052bd">\ / </span><span style="color:#7c3aed">___/ _</span><span style="color:#d946ef">__/ ___|</span>
|
|
11
|
+
<span style="color:#c44536">| |_) </span><span style="color:#e07c3e">|| | </span><span style="color:#d4a800">/ / /</span><span style="color:#2d9d78"> / | |</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed"> \__</span><span style="color:#d946ef">_ \___ \</span>
|
|
12
|
+
<span style="color:#c44536">| _ <</span><span style="color:#e07c3e"> | | /</span><span style="color:#d4a800"> /_ / </span><span style="color:#2d9d78">/| |_|</span><span style="color:#0052bd"> | | |</span><span style="color:#7c3aed">___ __</span><span style="color:#d946ef">_) |__) |</span>
|
|
13
|
+
<span style="color:#c44536">|_| \_</span><span style="color:#e07c3e">\___/_</span><span style="color:#d4a800">___/__</span><span style="color:#2d9d78">__\___</span><span style="color:#0052bd">/ \_</span><span style="color:#7c3aed">___|__</span><span style="color:#d946ef">__/____/</span>
|
|
14
|
+
|
|
15
|
+
Design system · Vanilla · Astro · Svelte
|
|
16
|
+
</pre>
|
|
16
17
|
|
|
17
18
|
SvelteKit project with Rizzo CSS. Scaffolded with `npx rizzo-css init` when you chose **Create new** and Svelte, then **Full** template. **Full** = clone of the Rizzo docs site (no component picker). **Landing** / **Docs** / **Dashboard** = base + component picker (all 56 or pick). Same template choice for **Add to existing** (`npx rizzo-css add`).
|
|
18
19
|
|