rizzo-css 0.0.63 → 0.0.64
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 +1 -1
- package/bin/rizzo-css.js +103 -4
- package/package.json +1 -1
- package/scaffold/astro/Footer.astro +1 -1
- package/scaffold/react/base/README-RIZZO.md +50 -0
- package/scaffold/react/base/gitignore +8 -0
- package/scaffold/react/base/index.html +16 -0
- package/scaffold/react/base/package.json +22 -0
- package/scaffold/react/base/public/.gitkeep +0 -0
- package/scaffold/react/base/src/App.tsx +11 -0
- package/scaffold/react/base/src/index.css +1 -0
- package/scaffold/react/base/src/main.tsx +10 -0
- package/scaffold/react/base/src/vite-env.d.ts +1 -0
- package/scaffold/react/base/tsconfig.json +21 -0
- package/scaffold/react/base/tsconfig.node.json +9 -0
- package/scaffold/react/base/vite.config.ts +6 -0
- package/scaffold/vanilla/README-RIZZO.md +1 -1
- package/scaffold/vanilla/components/accordion.html +6 -0
- package/scaffold/vanilla/components/alert-dialog.html +6 -0
- package/scaffold/vanilla/components/alert.html +6 -0
- package/scaffold/vanilla/components/aspect-ratio.html +6 -0
- package/scaffold/vanilla/components/avatar.html +6 -0
- package/scaffold/vanilla/components/back-to-top.html +6 -0
- package/scaffold/vanilla/components/badge.html +6 -0
- package/scaffold/vanilla/components/breadcrumb.html +6 -0
- package/scaffold/vanilla/components/button-group.html +6 -0
- package/scaffold/vanilla/components/button.html +6 -0
- package/scaffold/vanilla/components/cards.html +6 -0
- package/scaffold/vanilla/components/collapsible.html +6 -0
- package/scaffold/vanilla/components/context-menu.html +6 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +6 -0
- package/scaffold/vanilla/components/dashboard.html +6 -0
- package/scaffold/vanilla/components/divider.html +6 -0
- package/scaffold/vanilla/components/docs-sidebar.html +6 -0
- package/scaffold/vanilla/components/dropdown.html +6 -0
- package/scaffold/vanilla/components/empty.html +6 -0
- package/scaffold/vanilla/components/font-switcher.html +6 -0
- package/scaffold/vanilla/components/footer.html +6 -0
- package/scaffold/vanilla/components/forms.html +6 -0
- package/scaffold/vanilla/components/hover-card.html +6 -0
- package/scaffold/vanilla/components/icons.html +6 -0
- package/scaffold/vanilla/components/index.html +6 -0
- package/scaffold/vanilla/components/kbd.html +6 -0
- package/scaffold/vanilla/components/label.html +6 -0
- package/scaffold/vanilla/components/modal.html +6 -0
- package/scaffold/vanilla/components/navbar.html +6 -0
- package/scaffold/vanilla/components/pagination.html +6 -0
- package/scaffold/vanilla/components/popover.html +6 -0
- package/scaffold/vanilla/components/progress-bar.html +6 -0
- package/scaffold/vanilla/components/resizable.html +6 -0
- package/scaffold/vanilla/components/scroll-area.html +6 -0
- package/scaffold/vanilla/components/search.html +6 -0
- package/scaffold/vanilla/components/separator.html +6 -0
- package/scaffold/vanilla/components/settings.html +6 -0
- package/scaffold/vanilla/components/sheet.html +6 -0
- package/scaffold/vanilla/components/skeleton.html +6 -0
- package/scaffold/vanilla/components/slider.html +6 -0
- package/scaffold/vanilla/components/sound-effects.html +6 -0
- package/scaffold/vanilla/components/spinner.html +6 -0
- package/scaffold/vanilla/components/switch.html +6 -0
- package/scaffold/vanilla/components/table.html +6 -0
- package/scaffold/vanilla/components/tabs.html +6 -0
- package/scaffold/vanilla/components/theme-switcher.html +6 -0
- package/scaffold/vanilla/components/toast.html +6 -0
- package/scaffold/vanilla/components/toggle-group.html +6 -0
- package/scaffold/vanilla/components/toggle.html +6 -0
- package/scaffold/vanilla/components/tooltip.html +6 -0
- package/scaffold/vanilla/index.html +6 -0
- package/scaffold/vue/base/README-RIZZO.md +50 -0
- package/scaffold/vue/base/gitignore +8 -0
- package/scaffold/vue/base/index.html +16 -0
- package/scaffold/vue/base/package.json +20 -0
- package/scaffold/vue/base/public/.gitkeep +0 -0
- package/scaffold/vue/base/src/App.vue +13 -0
- package/scaffold/vue/base/src/index.css +1 -0
- package/scaffold/vue/base/src/main.ts +5 -0
- package/scaffold/vue/base/src/vite-env.d.ts +7 -0
- package/scaffold/vue/base/tsconfig.json +22 -0
- package/scaffold/vue/base/tsconfig.node.json +10 -0
- package/scaffold/vue/base/vite.config.ts +6 -0
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ import 'rizzo-css';
|
|
|
72
72
|
**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:
|
|
73
73
|
|
|
74
74
|
```html
|
|
75
|
-
<!-- unpkg (pin version: replace @latest with @0.0.
|
|
75
|
+
<!-- unpkg (pin version: replace @latest with @0.0.64 or any version) -->
|
|
76
76
|
<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />
|
|
77
77
|
|
|
78
78
|
<!-- or jsDelivr -->
|
package/bin/rizzo-css.js
CHANGED
|
@@ -564,6 +564,26 @@ function copySvelteGitignore(projectDir) {
|
|
|
564
564
|
}
|
|
565
565
|
}
|
|
566
566
|
|
|
567
|
+
/** Copy React scaffold gitignore into project as .gitignore. */
|
|
568
|
+
function copyReactGitignore(projectDir) {
|
|
569
|
+
const gitignorePath = join(getScaffoldReactCoreDir(), SCAFFOLD_GITIGNORE_FILE);
|
|
570
|
+
if (existsSync(gitignorePath)) {
|
|
571
|
+
copyFileSync(gitignorePath, join(projectDir, '.gitignore'));
|
|
572
|
+
const copiedAsFile = join(projectDir, SCAFFOLD_GITIGNORE_FILE);
|
|
573
|
+
if (existsSync(copiedAsFile)) unlinkSync(copiedAsFile);
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
/** Copy Vue scaffold gitignore into project as .gitignore. */
|
|
578
|
+
function copyVueGitignore(projectDir) {
|
|
579
|
+
const gitignorePath = join(getScaffoldVueCoreDir(), SCAFFOLD_GITIGNORE_FILE);
|
|
580
|
+
if (existsSync(gitignorePath)) {
|
|
581
|
+
copyFileSync(gitignorePath, join(projectDir, '.gitignore'));
|
|
582
|
+
const copiedAsFile = join(projectDir, SCAFFOLD_GITIGNORE_FILE);
|
|
583
|
+
if (existsSync(copiedAsFile)) unlinkSync(copiedAsFile);
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
|
|
567
587
|
/** Read rizzo-css.json from cwd. Returns { targetDir?, framework?, packageManager?, theme? } or null. Preserves unknown keys. */
|
|
568
588
|
function readRizzoConfig(cwd) {
|
|
569
589
|
if (!cwd || !existsSync(cwd)) return null;
|
|
@@ -1702,6 +1722,14 @@ function getScaffoldSvelteCoreDir() {
|
|
|
1702
1722
|
return join(getPackageRoot(), 'scaffold', 'svelte', 'base');
|
|
1703
1723
|
}
|
|
1704
1724
|
|
|
1725
|
+
function getScaffoldReactCoreDir() {
|
|
1726
|
+
return join(getPackageRoot(), 'scaffold', 'react', 'base');
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
function getScaffoldVueCoreDir() {
|
|
1730
|
+
return join(getPackageRoot(), 'scaffold', 'vue', 'base');
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1705
1733
|
function copyDirRecursive(src, dest) {
|
|
1706
1734
|
mkdirSync(dest, { recursive: true });
|
|
1707
1735
|
const entries = readdirSync(src, { withFileTypes: true });
|
|
@@ -2202,13 +2230,15 @@ async function runAddToExisting(frameworkOverride, options) {
|
|
|
2202
2230
|
let addSkippedFiles = [];
|
|
2203
2231
|
const astroCoreDir = getScaffoldAstroCoreDir();
|
|
2204
2232
|
const svelteCoreDir = getScaffoldSvelteCoreDir();
|
|
2233
|
+
const reactCoreDir = getScaffoldReactCoreDir();
|
|
2234
|
+
const vueCoreDir = getScaffoldVueCoreDir();
|
|
2205
2235
|
const themeCommentAdd = ' <!-- Initial: ' + theme + '; dark: ' + defaultDark + '; light: ' + defaultLight + ' (all 14 themes in CSS) -->';
|
|
2206
2236
|
const copyOpts = options.dryRun && options.plan ? options : undefined;
|
|
2207
2237
|
if (framework === 'vanilla' && getVariantDir('vanilla', selectedVariation)) {
|
|
2208
2238
|
const vanillaRepl = { '{{LINK_HREF}}': 'css/rizzo.min.css', '{{TITLE}}': 'App', '{{DATA_THEME}}': theme, '{{THEME_LIST_COMMENT}}': themeCommentAdd };
|
|
2209
2239
|
const variantResult = copyVariantOverlayNoOverwrite(cwd, 'vanilla', selectedVariation, vanillaRepl, copyOpts);
|
|
2210
2240
|
if (variantResult && variantResult.skipped) addSkippedFiles = variantResult.skipped;
|
|
2211
|
-
} else if (selectedVariation !== 'css-only' && ((framework === 'astro' && existsSync(astroCoreDir)) || (framework === 'svelte' && existsSync(svelteCoreDir)))) {
|
|
2241
|
+
} else if (selectedVariation !== 'css-only' && ((framework === 'astro' && existsSync(astroCoreDir)) || (framework === 'svelte' && existsSync(svelteCoreDir)) || (framework === 'react' && existsSync(reactCoreDir)) || (framework === 'vue' && existsSync(vueCoreDir)))) {
|
|
2212
2242
|
const themeComment = themeCommentAdd;
|
|
2213
2243
|
const replacements = {
|
|
2214
2244
|
'{{DATA_THEME}}': theme,
|
|
@@ -2255,6 +2285,14 @@ async function runAddToExisting(frameworkOverride, options) {
|
|
|
2255
2285
|
const baseResult = copyDirRecursiveWithReplacementsNoOverwrite(svelteCoreDir, cwd, replacements, cwd, copyOpts);
|
|
2256
2286
|
const variantResult = copyVariantOverlayNoOverwrite(cwd, 'svelte', selectedVariation, replacements, copyOpts);
|
|
2257
2287
|
addSkippedFiles = baseResult.skipped.concat(variantResult.skipped || []);
|
|
2288
|
+
} else if (framework === 'react') {
|
|
2289
|
+
const baseResult = copyDirRecursiveWithReplacementsNoOverwrite(reactCoreDir, cwd, replacements, cwd, copyOpts);
|
|
2290
|
+
const variantResult = copyVariantOverlayNoOverwrite(cwd, 'react', selectedVariation, replacements, copyOpts);
|
|
2291
|
+
addSkippedFiles = baseResult.skipped.concat(variantResult.skipped || []);
|
|
2292
|
+
} else if (framework === 'vue') {
|
|
2293
|
+
const baseResult = copyDirRecursiveWithReplacementsNoOverwrite(vueCoreDir, cwd, replacements, cwd, copyOpts);
|
|
2294
|
+
const variantResult = copyVariantOverlayNoOverwrite(cwd, 'vue', selectedVariation, replacements, copyOpts);
|
|
2295
|
+
addSkippedFiles = baseResult.skipped.concat(variantResult.skipped || []);
|
|
2258
2296
|
}
|
|
2259
2297
|
}
|
|
2260
2298
|
|
|
@@ -2607,12 +2645,16 @@ async function cmdInit(argv) {
|
|
|
2607
2645
|
|
|
2608
2646
|
const astroCoreDir = getScaffoldAstroCoreDir();
|
|
2609
2647
|
const svelteCoreDir = getScaffoldSvelteCoreDir();
|
|
2648
|
+
const reactCoreDir = getScaffoldReactCoreDir();
|
|
2649
|
+
const vueCoreDir = getScaffoldVueCoreDir();
|
|
2610
2650
|
const pathsForScaffold = getFrameworkCssPaths(framework);
|
|
2611
2651
|
const useFullVariant = selectedVariation === 'full' && hasFullVariant(framework);
|
|
2612
2652
|
const useHandpickAstro = selectedTemplate === 'full' && !fullAllComponents && framework === 'astro' && existsSync(astroCoreDir) && !useFullVariant;
|
|
2613
2653
|
const useHandpickSvelte = selectedTemplate === 'full' && !fullAllComponents && framework === 'svelte' && existsSync(svelteCoreDir) && !useFullVariant;
|
|
2614
2654
|
const useAstroBase = selectedTemplate === 'full' && fullAllComponents && framework === 'astro' && existsSync(astroCoreDir) && !useFullVariant;
|
|
2615
2655
|
const useSvelteBase = selectedTemplate === 'full' && fullAllComponents && framework === 'svelte' && existsSync(svelteCoreDir) && !useFullVariant;
|
|
2656
|
+
const useReactBase = selectedVariation !== 'css-only' && framework === 'react' && existsSync(reactCoreDir);
|
|
2657
|
+
const useVueBase = selectedVariation !== 'css-only' && framework === 'vue' && existsSync(vueCoreDir);
|
|
2616
2658
|
const useVanillaCore = selectedTemplate === 'full' && fullAllComponents && framework === 'vanilla' && existsSync(getScaffoldVanillaIndex()) && !useFullVariant && selectedVariation === 'landing';
|
|
2617
2659
|
const useVanillaWithOverlay = selectedTemplate === 'full' && framework === 'vanilla' && (selectedVariation === 'docs' || selectedVariation === 'dashboard') && getVariantDir('vanilla', selectedVariation);
|
|
2618
2660
|
|
|
@@ -2798,6 +2840,38 @@ async function cmdInit(argv) {
|
|
|
2798
2840
|
copyRizzoIcons(projectDir, 'svelte');
|
|
2799
2841
|
copySvelteComponents(projectDir, componentsToCopy);
|
|
2800
2842
|
}
|
|
2843
|
+
} else if (useReactBase) {
|
|
2844
|
+
mkdirSync(projectDir, { recursive: true });
|
|
2845
|
+
const { skipped } = copyDirRecursiveWithReplacementsNoOverwrite(reactCoreDir, projectDir, replacements, projectDir);
|
|
2846
|
+
copyVariantOverlay(projectDir, 'react', selectedVariation, replacements);
|
|
2847
|
+
copyRizzoCssAndFontsForAstro(projectDir, cssSource);
|
|
2848
|
+
if (skipped.length > 0) {
|
|
2849
|
+
writeFileSync(join(projectDir, RIZZO_SETUP_FILE), buildRizzoSetupMd('react', { linkHref: '/css/rizzo.min.css', theme, defaultDark, defaultLight, skippedFiles: skipped }), 'utf8');
|
|
2850
|
+
}
|
|
2851
|
+
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
2852
|
+
if (existsSync(cssTarget) && statSync(cssTarget).size < 5000) {
|
|
2853
|
+
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
2854
|
+
}
|
|
2855
|
+
copyPackageLicense(projectDir);
|
|
2856
|
+
copyReactGitignore(projectDir);
|
|
2857
|
+
copyRizzoIcons(projectDir, 'react');
|
|
2858
|
+
if (componentsToCopy.length > 0) copyReactComponents(projectDir, componentsToCopy);
|
|
2859
|
+
} else if (useVueBase) {
|
|
2860
|
+
mkdirSync(projectDir, { recursive: true });
|
|
2861
|
+
const { skipped } = copyDirRecursiveWithReplacementsNoOverwrite(vueCoreDir, projectDir, replacements, projectDir);
|
|
2862
|
+
copyVariantOverlay(projectDir, 'vue', selectedVariation, replacements);
|
|
2863
|
+
copyRizzoCssAndFontsForAstro(projectDir, cssSource);
|
|
2864
|
+
if (skipped.length > 0) {
|
|
2865
|
+
writeFileSync(join(projectDir, RIZZO_SETUP_FILE), buildRizzoSetupMd('vue', { linkHref: '/css/rizzo.min.css', theme, defaultDark, defaultLight, skippedFiles: skipped }), 'utf8');
|
|
2866
|
+
}
|
|
2867
|
+
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
2868
|
+
if (existsSync(cssTarget) && statSync(cssTarget).size < 5000) {
|
|
2869
|
+
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
2870
|
+
}
|
|
2871
|
+
copyPackageLicense(projectDir);
|
|
2872
|
+
copyVueGitignore(projectDir);
|
|
2873
|
+
copyRizzoIcons(projectDir, 'vue');
|
|
2874
|
+
if (componentsToCopy.length > 0) copyVueComponents(projectDir, componentsToCopy);
|
|
2801
2875
|
} else if (selectedVariation === 'css-only') {
|
|
2802
2876
|
// CSS only: no components, no web pages — just CSS, fonts, license, README, .gitignore (and framework base for Astro/Svelte)
|
|
2803
2877
|
mkdirSync(projectDir, { recursive: true });
|
|
@@ -2828,6 +2902,24 @@ async function cmdInit(argv) {
|
|
|
2828
2902
|
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
2829
2903
|
copyPackageLicense(projectDir);
|
|
2830
2904
|
copySvelteGitignore(projectDir);
|
|
2905
|
+
} else if (framework === 'react' && existsSync(reactCoreDir)) {
|
|
2906
|
+
const { skipped } = copyDirRecursiveWithReplacementsNoOverwrite(reactCoreDir, projectDir, replacements, projectDir);
|
|
2907
|
+
copyRizzoCssAndFontsForAstro(projectDir, cssSource);
|
|
2908
|
+
if (skipped.length > 0) {
|
|
2909
|
+
writeFileSync(join(projectDir, RIZZO_SETUP_FILE), buildRizzoSetupMd('react', { linkHref: '/css/rizzo.min.css', theme, defaultDark, defaultLight, skippedFiles: skipped }), 'utf8');
|
|
2910
|
+
}
|
|
2911
|
+
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
2912
|
+
copyPackageLicense(projectDir);
|
|
2913
|
+
copyReactGitignore(projectDir);
|
|
2914
|
+
} else if (framework === 'vue' && existsSync(vueCoreDir)) {
|
|
2915
|
+
const { skipped } = copyDirRecursiveWithReplacementsNoOverwrite(vueCoreDir, projectDir, replacements, projectDir);
|
|
2916
|
+
copyRizzoCssAndFontsForAstro(projectDir, cssSource);
|
|
2917
|
+
if (skipped.length > 0) {
|
|
2918
|
+
writeFileSync(join(projectDir, RIZZO_SETUP_FILE), buildRizzoSetupMd('vue', { linkHref: '/css/rizzo.min.css', theme, defaultDark, defaultLight, skippedFiles: skipped }), 'utf8');
|
|
2919
|
+
}
|
|
2920
|
+
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
2921
|
+
copyPackageLicense(projectDir);
|
|
2922
|
+
copyVueGitignore(projectDir);
|
|
2831
2923
|
} else {
|
|
2832
2924
|
// fallback: same as vanilla (no index.html)
|
|
2833
2925
|
const cssDir = join(projectDir, pathsForScaffold.targetDir);
|
|
@@ -3033,7 +3125,7 @@ async function cmdInit(argv) {
|
|
|
3033
3125
|
const pm = getPackageManagerCommands({ agent: selectedPm, command: selectedPm });
|
|
3034
3126
|
const nextStep = pm.install + ' && ' + pm.run('dev');
|
|
3035
3127
|
const runPrefix = projectDir !== cwd ? 'cd ' + pathRelative(cwd, projectDir) + ' && ' : '';
|
|
3036
|
-
const hasPackageJson = useHandpickAstro || useHandpickSvelte || useAstroBase || useSvelteBase || (selectedVariation === 'css-only' && (framework === 'astro' || framework === 'svelte'));
|
|
3128
|
+
const hasPackageJson = useHandpickAstro || useHandpickSvelte || useAstroBase || useSvelteBase || useReactBase || useVueBase || (selectedVariation === 'css-only' && (framework === 'astro' || framework === 'svelte' || framework === 'react' || framework === 'vue'));
|
|
3037
3129
|
|
|
3038
3130
|
console.log('\n Scaffold complete. Summary above.');
|
|
3039
3131
|
|
|
@@ -3092,8 +3184,15 @@ async function cmdInit(argv) {
|
|
|
3092
3184
|
if (useSvelteBase) {
|
|
3093
3185
|
console.log(' - SvelteKit (core): app + ' + selectedComponents.length + ' component(s). Run: ' + runPrefix + nextStep);
|
|
3094
3186
|
}
|
|
3095
|
-
if (
|
|
3096
|
-
|
|
3187
|
+
if (useReactBase) {
|
|
3188
|
+
console.log(' - React (Vite): app + ' + (componentsToCopy.length > 0 ? componentsToCopy.length + ' component(s).' : 'base.') + ' Run: ' + runPrefix + nextStep);
|
|
3189
|
+
}
|
|
3190
|
+
if (useVueBase) {
|
|
3191
|
+
console.log(' - Vue (Vite): app + ' + (componentsToCopy.length > 0 ? componentsToCopy.length + ' component(s).' : 'base.') + ' Run: ' + runPrefix + nextStep);
|
|
3192
|
+
}
|
|
3193
|
+
const hasBaseScaffold = useAstroBase || useSvelteBase || useHandpickAstro || useHandpickSvelte || useReactBase || useVueBase || (selectedVariation === 'css-only' && (framework === 'astro' || framework === 'svelte' || framework === 'react' || framework === 'vue'));
|
|
3194
|
+
if ((framework === 'astro' || framework === 'svelte' || framework === 'react' || framework === 'vue') && !hasBaseScaffold) {
|
|
3195
|
+
const fw = framework === 'svelte' ? 'Svelte' : framework === 'react' ? 'React' : framework === 'vue' ? 'Vue' : 'Astro';
|
|
3097
3196
|
const createExample = getCreateProjectExample(pm, framework);
|
|
3098
3197
|
console.log('\n - Basic template (CSS + index). To get a full app: ' + createExample + ', then cd into the project and run ' + pm.dlx('rizzo-css add') + '.');
|
|
3099
3198
|
}
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@ interface Props {
|
|
|
13
13
|
links?: FooterLink[];
|
|
14
14
|
/** Optional class for the root element */
|
|
15
15
|
class?: string;
|
|
16
|
-
/** Optional version string (e.g. from package.json); shown as "v0.0.
|
|
16
|
+
/** Optional version string (e.g. from package.json); shown as "v0.0.64" with link to CHANGELOG */
|
|
17
17
|
version?: string;
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# React + Rizzo CSS
|
|
2
|
+
|
|
3
|
+
<pre style="font-family: ui-monospace, monospace; font-size: 0.85em; line-height: 1.2;">
|
|
4
|
+
/\___/\
|
|
5
|
+
__( o o )__
|
|
6
|
+
( =^= )
|
|
7
|
+
_/ ~ \_
|
|
8
|
+
/ \_____/ \
|
|
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 · React · Vue
|
|
16
|
+
</pre>
|
|
17
|
+
|
|
18
|
+
Vite + React project with Rizzo CSS. Scaffolded with `npx rizzo-css init` when you chose **Create new** and React, then **Landing**, **Docs**, **Dashboard**, or **Full**. Same template choice for **Add to existing** (`npx rizzo-css add`).
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
1. Install dependencies:
|
|
23
|
+
```bash
|
|
24
|
+
pnpm install
|
|
25
|
+
# or: npm install
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
2. Start the dev server:
|
|
29
|
+
```bash
|
|
30
|
+
pnpm dev
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Project structure
|
|
34
|
+
|
|
35
|
+
- `vite.config.ts` — Vite configuration
|
|
36
|
+
- `index.html` — HTML shell with Rizzo CSS and theme (edit `data-theme` for default)
|
|
37
|
+
- `src/main.tsx` — Entry point
|
|
38
|
+
- `src/App.tsx` — Root component
|
|
39
|
+
- `public/css/rizzo.min.css` — Rizzo CSS bundle (added by CLI; font URLs point to `/assets/fonts/`)
|
|
40
|
+
- `public/assets/fonts/` — Rizzo font files (added by CLI)
|
|
41
|
+
- `README-RIZZO.md` — This file (scaffold docs; does not replace your project README)
|
|
42
|
+
- `LICENSE-RIZZO` — Rizzo CSS license (does not replace your project LICENSE)
|
|
43
|
+
|
|
44
|
+
## Commands
|
|
45
|
+
|
|
46
|
+
- `pnpm dev` — Start dev server
|
|
47
|
+
- `pnpm build` — Build for production
|
|
48
|
+
- `pnpm preview` — Preview production build
|
|
49
|
+
|
|
50
|
+
Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="{{DATA_THEME}}"><!-- {{THEME_LIST_COMMENT}} -->
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<script>
|
|
7
|
+
(function(){try{var s=localStorage.getItem('theme');var d='{{DEFAULT_DARK}}';var l='{{DEFAULT_LIGHT}}';var initial=document.documentElement.getAttribute('data-theme');var r=!s?((initial&&initial!=='system')?initial:(matchMedia('(prefers-color-scheme: dark)').matches?d:l)):s==='system'?(matchMedia('(prefers-color-scheme: dark)').matches?d:l):s;document.documentElement.setAttribute('data-theme',r);}catch(e){}})();
|
|
8
|
+
</script>
|
|
9
|
+
<link rel="stylesheet" href="/css/rizzo.min.css" />
|
|
10
|
+
<title>{{TITLE}}</title>
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<div id="root"></div>
|
|
14
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
15
|
+
</body>
|
|
16
|
+
</html>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{PROJECT_NAME}}",
|
|
3
|
+
"private": true,
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "vite",
|
|
8
|
+
"build": "tsc -b && vite build",
|
|
9
|
+
"preview": "vite preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"react": "^18.3.1",
|
|
13
|
+
"react-dom": "^18.3.1"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/react": "^18.3.12",
|
|
17
|
+
"@types/react-dom": "^18.3.1",
|
|
18
|
+
"@vitejs/plugin-react": "^4.3.3",
|
|
19
|
+
"typescript": "~5.6.2",
|
|
20
|
+
"vite": "^6.0.1"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default function App() {
|
|
2
|
+
return (
|
|
3
|
+
<>
|
|
4
|
+
<a href="#main-content" className="skip-link">Skip to main content</a>
|
|
5
|
+
<main id="main-content" className="container">
|
|
6
|
+
<h1>Hello, Rizzo CSS</h1>
|
|
7
|
+
<p>Edit <code>src/App.tsx</code> and add components. Docs: <a href="https://rizzo-css.vercel.app">rizzo-css.vercel.app</a></p>
|
|
8
|
+
</main>
|
|
9
|
+
</>
|
|
10
|
+
);
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* App styles; Rizzo is loaded from /css/rizzo.min.css in index.html */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"useDefineForClassFields": true,
|
|
5
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
"moduleResolution": "bundler",
|
|
9
|
+
"allowImportingTsExtensions": true,
|
|
10
|
+
"isolatedModules": true,
|
|
11
|
+
"moduleDetection": "force",
|
|
12
|
+
"noEmit": true,
|
|
13
|
+
"jsx": "react-jsx",
|
|
14
|
+
"strict": true,
|
|
15
|
+
"noUnusedLocals": true,
|
|
16
|
+
"noUnusedParameters": true,
|
|
17
|
+
"noFallthroughCasesInSwitch": true,
|
|
18
|
+
"noUncheckedSideEffectImports": true
|
|
19
|
+
},
|
|
20
|
+
"include": ["src"]
|
|
21
|
+
}
|
|
@@ -28,7 +28,7 @@ If you prefer to load CSS from a CDN instead of the local file, replace the `<li
|
|
|
28
28
|
- `<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />`
|
|
29
29
|
- Or jsDelivr: `https://cdn.jsdelivr.net/npm/rizzo-css@latest/dist/rizzo.min.css`
|
|
30
30
|
|
|
31
|
-
(Replace `@latest` with a specific version, e.g. `@0.0.
|
|
31
|
+
(Replace `@latest` with a specific version, e.g. `@0.0.64`, in production.)
|
|
32
32
|
|
|
33
33
|
The CLI replaces placeholders in `index.html` (e.g. `{{DATA_THEME}}`, `{{TITLE}}`) when you run `rizzo-css init`. The theme selected during init is used on first load when you have no saved preference in the browser.
|
|
34
34
|
|