rizzo-css 0.0.20 → 0.0.21
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 +106 -27
- package/dist/fonts/.gitkeep +0 -0
- package/dist/fonts/GeistMono/GeistMonoVF.ttf +0 -0
- package/dist/fonts/GeistMono/GeistMonoVF.woff +0 -0
- package/dist/fonts/GeistMono/GeistMonoVF.woff2 +0 -0
- package/dist/fonts/GeistMono/LICENSE.TXT +92 -0
- package/dist/fonts/GeistSans/GeistVF.ttf +0 -0
- package/dist/fonts/GeistSans/GeistVF.woff +0 -0
- package/dist/fonts/GeistSans/GeistVF.woff2 +0 -0
- package/dist/fonts/GeistSans/LICENSE.TXT +92 -0
- package/dist/rizzo.min.css +1 -1
- package/package.json +1 -1
- package/scaffold/astro-minimal/README.md +1 -0
- package/scaffold/astro-minimal/src/layouts/Layout.astro +3 -4
- package/scaffold/vanilla/README.md +1 -1
- package/scaffold/vanilla/components/accordion.html +8 -0
- package/scaffold/vanilla/components/alert.html +8 -0
- package/scaffold/vanilla/components/avatar.html +8 -0
- package/scaffold/vanilla/components/badge.html +8 -0
- package/scaffold/vanilla/components/breadcrumb.html +8 -0
- package/scaffold/vanilla/components/button.html +8 -0
- package/scaffold/vanilla/components/cards.html +8 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +8 -0
- package/scaffold/vanilla/components/divider.html +8 -0
- package/scaffold/vanilla/components/dropdown.html +8 -0
- package/scaffold/vanilla/components/forms.html +8 -0
- package/scaffold/vanilla/components/icons.html +8 -0
- package/scaffold/vanilla/components/index.html +8 -0
- package/scaffold/vanilla/components/modal.html +8 -0
- package/scaffold/vanilla/components/navbar.html +8 -0
- package/scaffold/vanilla/components/pagination.html +8 -0
- package/scaffold/vanilla/components/progress-bar.html +8 -0
- package/scaffold/vanilla/components/search.html +8 -0
- package/scaffold/vanilla/components/settings.html +8 -0
- package/scaffold/vanilla/components/spinner.html +8 -0
- package/scaffold/vanilla/components/table.html +8 -0
- package/scaffold/vanilla/components/tabs.html +8 -0
- package/scaffold/vanilla/components/theme-switcher.html +8 -0
- package/scaffold/vanilla/components/toast.html +8 -0
- package/scaffold/vanilla/components/tooltip.html +8 -0
- package/scaffold/vanilla/index.html +8 -0
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ import 'rizzo-css';
|
|
|
56
56
|
**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:
|
|
57
57
|
|
|
58
58
|
```html
|
|
59
|
-
<!-- unpkg (pin version: replace @latest with @0.0.
|
|
59
|
+
<!-- unpkg (pin version: replace @latest with @0.0.21 or any version) -->
|
|
60
60
|
<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />
|
|
61
61
|
|
|
62
62
|
<!-- or jsDelivr -->
|
package/bin/rizzo-css.js
CHANGED
|
@@ -9,6 +9,8 @@ const RIZZO_CONFIG_FILE = 'rizzo-css.json';
|
|
|
9
9
|
|
|
10
10
|
const COMMANDS = ['init', 'add', 'theme', 'help'];
|
|
11
11
|
const FRAMEWORKS = ['vanilla', 'astro', 'svelte'];
|
|
12
|
+
/** Supported package managers: detection, install/add commands, and --package-manager override. */
|
|
13
|
+
const VALID_PACKAGE_MANAGERS = ['npm', 'pnpm', 'yarn', 'bun'];
|
|
12
14
|
|
|
13
15
|
/** Full = everything we ship. Minimal = recommended starting set. Manual = you choose. */
|
|
14
16
|
const TEMPLATES = {
|
|
@@ -138,6 +140,24 @@ function getCssPath() {
|
|
|
138
140
|
return join(getPackageRoot(), 'dist', 'rizzo.min.css');
|
|
139
141
|
}
|
|
140
142
|
|
|
143
|
+
/** Copy package dist/fonts into <cssTargetDir>/fonts so CSS url(./fonts/...) resolves. cssTargetDir is framework-specific (public/css | static/css | css). */
|
|
144
|
+
function copyRizzoFonts(cssTargetDir) {
|
|
145
|
+
const fontsSrc = join(getPackageRoot(), 'dist', 'fonts');
|
|
146
|
+
if (!existsSync(fontsSrc)) return;
|
|
147
|
+
const dest = join(cssTargetDir, 'fonts');
|
|
148
|
+
mkdirSync(dest, { recursive: true });
|
|
149
|
+
const entries = readdirSync(fontsSrc, { withFileTypes: true });
|
|
150
|
+
for (const e of entries) {
|
|
151
|
+
const srcPath = join(fontsSrc, e.name);
|
|
152
|
+
const destPath = join(dest, e.name);
|
|
153
|
+
if (e.isDirectory()) {
|
|
154
|
+
copyDirRecursive(srcPath, destPath);
|
|
155
|
+
} else {
|
|
156
|
+
copyFileSync(srcPath, destPath);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
141
161
|
/** Copy the package LICENSE into the project dir. Call after every scaffold so every install includes a license. */
|
|
142
162
|
function copyPackageLicense(projectDir) {
|
|
143
163
|
const licensePath = join(getPackageRoot(), 'LICENSE');
|
|
@@ -187,6 +207,13 @@ function getFlagValue(argv, flag) {
|
|
|
187
207
|
return i !== -1 && argv[i + 1] != null ? argv[i + 1] : null;
|
|
188
208
|
}
|
|
189
209
|
|
|
210
|
+
/** Parse --package-manager value; returns npm|pnpm|yarn|bun or null if invalid/absent. */
|
|
211
|
+
function parsePackageManager(value) {
|
|
212
|
+
if (!value || typeof value !== 'string') return null;
|
|
213
|
+
const v = value.toLowerCase().trim();
|
|
214
|
+
return VALID_PACKAGE_MANAGERS.includes(v) ? v : null;
|
|
215
|
+
}
|
|
216
|
+
|
|
190
217
|
/** Get positional args for a command (excludes --flag and --flag value). Used for e.g. add Button ThemeSwitcher. */
|
|
191
218
|
function getPositionalArgs(argv) {
|
|
192
219
|
const positionals = [];
|
|
@@ -251,13 +278,16 @@ function getCreateProjectExample(pm, framework) {
|
|
|
251
278
|
return 'npm create ' + framework + '@latest my-app';
|
|
252
279
|
}
|
|
253
280
|
|
|
254
|
-
/** Prompt user to select package manager (npm, pnpm, yarn, bun).
|
|
281
|
+
/** Prompt user to select package manager (npm, pnpm, yarn, bun). Shows "(detected)" only when we actually found a lockfile or packageManager; for new projects with no detection, user chooses. Returns agent string. */
|
|
255
282
|
async function promptPackageManager(projectDir) {
|
|
256
|
-
const
|
|
283
|
+
const actuallyDetected = detectPackageManager(projectDir) || detectPackageManager(process.cwd());
|
|
284
|
+
const resolved = actuallyDetected
|
|
285
|
+
? getPackageManagerCommands(actuallyDetected)
|
|
286
|
+
: null;
|
|
257
287
|
const agents = ['npm', 'pnpm', 'yarn', 'bun'];
|
|
258
288
|
const options = agents.map((a) => ({
|
|
259
289
|
value: a,
|
|
260
|
-
label: a ===
|
|
290
|
+
label: (resolved && a === resolved.agent) ? a + ' (detected)' : a,
|
|
261
291
|
}));
|
|
262
292
|
return selectMenu(options, '? Package manager (for install and run commands)');
|
|
263
293
|
}
|
|
@@ -278,6 +308,12 @@ function question(prompt) {
|
|
|
278
308
|
});
|
|
279
309
|
}
|
|
280
310
|
|
|
311
|
+
/** Prompt yes/no; default yes. Returns true to run, false to skip. */
|
|
312
|
+
async function confirmRunInstall(pm) {
|
|
313
|
+
const answer = await question('\nRun ' + pm.install + ' now? (Y/n) ');
|
|
314
|
+
return answer === '' || /^y(es)?$/i.test(answer);
|
|
315
|
+
}
|
|
316
|
+
|
|
281
317
|
/** Format label with optional ANSI color (item.color). */
|
|
282
318
|
function formatLabel(item) {
|
|
283
319
|
const text = item.label || item.value;
|
|
@@ -558,16 +594,21 @@ Options (init):
|
|
|
558
594
|
--yes Non-interactive: scaffold new in cwd with defaults (framework: astro, template: full)
|
|
559
595
|
--framework <fw> vanilla | astro | svelte (with --yes; otherwise first prompt)
|
|
560
596
|
--template <t> full | minimal | manual (all frameworks); with --yes defaults to full
|
|
561
|
-
--
|
|
562
|
-
--
|
|
563
|
-
--
|
|
597
|
+
--package-manager <pm> npm | pnpm | yarn | bun (with --yes, or skip PM prompt when interactive)
|
|
598
|
+
--install After scaffolding, run package manager install (no prompt)
|
|
599
|
+
--no-install Do not run install and do not prompt
|
|
600
|
+
(rizzo-css.json is always written for new and existing projects; interactive run prompts "Run install now? (Y/n)" for Astro/Svelte.)
|
|
564
601
|
|
|
565
602
|
Options (add):
|
|
566
603
|
--path <dir> Target directory for rizzo.min.css (overrides config and framework default)
|
|
567
604
|
--framework <fw> vanilla | astro | svelte (overrides config and detection)
|
|
605
|
+
--package-manager <pm> npm | pnpm | yarn | bun (override detection for install/print commands)
|
|
568
606
|
--install-package After copying CSS, run package manager add rizzo-css
|
|
569
607
|
--no-install Do not run install or add (overrides --install-package)
|
|
570
608
|
|
|
609
|
+
Package managers:
|
|
610
|
+
Supported: npm, pnpm, yarn, bun. Detection: lockfiles (pnpm-lock.yaml, yarn.lock, bun.lockb, package-lock.json) or package.json "packageManager"/"devEngines.packageManager". Use --package-manager to override.
|
|
611
|
+
|
|
571
612
|
Config:
|
|
572
613
|
Optional rizzo-css.json in project root: { "targetDir", "framework", "packageManager" }.
|
|
573
614
|
Used by add and init when present. Detection: lockfiles and packageManager field in package.json.
|
|
@@ -585,9 +626,11 @@ Use framework CLI first, then add Rizzo CSS (match your package manager):
|
|
|
585
626
|
|
|
586
627
|
Examples:
|
|
587
628
|
npx rizzo-css init
|
|
588
|
-
npx rizzo-css init --yes --framework astro --install
|
|
629
|
+
npx rizzo-css init --yes --framework astro --install
|
|
630
|
+
npx rizzo-css init --yes --framework astro --package-manager pnpm --install
|
|
589
631
|
npx rizzo-css init --yes --framework vanilla
|
|
590
632
|
npx rizzo-css init --yes --framework svelte --template full
|
|
633
|
+
npx rizzo-css add --package-manager yarn --install-package
|
|
591
634
|
npx rizzo-css add
|
|
592
635
|
npx rizzo-css add Button
|
|
593
636
|
npx rizzo-css add Button ThemeSwitcher --path public/css --framework svelte
|
|
@@ -667,11 +710,20 @@ function detectFramework(cwd) {
|
|
|
667
710
|
return null;
|
|
668
711
|
}
|
|
669
712
|
|
|
670
|
-
/**
|
|
713
|
+
/**
|
|
714
|
+
* Framework-specific paths for CSS and static assets. Use these so fonts, sounds, images
|
|
715
|
+
* go in the right place per framework (Astro: public/, SvelteKit: static/, Vanilla: project root).
|
|
716
|
+
* - targetDir: where rizzo.min.css is copied (fonts go in targetDir/fonts so CSS ./fonts/ resolves).
|
|
717
|
+
* - assetsRoot: root for other static assets (sounds, images); use assetsRoot + '/sounds' etc. when we ship them.
|
|
718
|
+
*/
|
|
671
719
|
function getFrameworkCssPaths(framework) {
|
|
672
|
-
if (framework === 'svelte')
|
|
673
|
-
|
|
674
|
-
|
|
720
|
+
if (framework === 'svelte') {
|
|
721
|
+
return { targetDir: 'static/css', linkHref: '/css/rizzo.min.css', fontsDir: 'static/css/fonts', assetsRoot: 'static' };
|
|
722
|
+
}
|
|
723
|
+
if (framework === 'astro') {
|
|
724
|
+
return { targetDir: 'public/css', linkHref: '/css/rizzo.min.css', fontsDir: 'public/css/fonts', assetsRoot: 'public' };
|
|
725
|
+
}
|
|
726
|
+
return { targetDir: 'css', linkHref: 'css/rizzo.min.css', fontsDir: 'css/fonts', assetsRoot: '' };
|
|
675
727
|
}
|
|
676
728
|
|
|
677
729
|
/**
|
|
@@ -702,16 +754,20 @@ async function cmdAdd(argv) {
|
|
|
702
754
|
|
|
703
755
|
const cwd = process.cwd();
|
|
704
756
|
const config = readRizzoConfig(cwd);
|
|
757
|
+
const pmOverride = parsePackageManager(getFlagValue(argv, '--package-manager'));
|
|
705
758
|
const options = {
|
|
706
759
|
config,
|
|
707
760
|
targetDir: customPath || (config && config.targetDir) || undefined,
|
|
761
|
+
packageManager: pmOverride || undefined,
|
|
708
762
|
preselectedComponents: positionals.length > 0 ? positionals : undefined,
|
|
709
763
|
};
|
|
710
764
|
await runAddToExisting(explicitFramework, options);
|
|
711
765
|
if (installPackage && !noInstall) {
|
|
712
|
-
const pm = (
|
|
713
|
-
? getPackageManagerCommands({ agent:
|
|
714
|
-
:
|
|
766
|
+
const pm = (pmOverride
|
|
767
|
+
? getPackageManagerCommands({ agent: pmOverride, command: pmOverride })
|
|
768
|
+
: (config && config.packageManager)
|
|
769
|
+
? getPackageManagerCommands({ agent: config.packageManager, command: config.packageManager })
|
|
770
|
+
: resolvePackageManager(cwd));
|
|
715
771
|
const addPkg = pm.add('rizzo-css');
|
|
716
772
|
console.log('\nRunning: ' + addPkg);
|
|
717
773
|
const code = runInDir(cwd, addPkg);
|
|
@@ -1027,6 +1083,7 @@ async function runAddToExisting(frameworkOverride, options) {
|
|
|
1027
1083
|
const cssTarget = join(targetDir, 'rizzo.min.css');
|
|
1028
1084
|
mkdirSync(targetDir, { recursive: true });
|
|
1029
1085
|
copyFileSync(cssSource, cssTarget);
|
|
1086
|
+
copyRizzoFonts(targetDir);
|
|
1030
1087
|
|
|
1031
1088
|
copyRizzoIcons(cwd, framework);
|
|
1032
1089
|
if (framework === 'svelte' && selectedComponents.length > 0) {
|
|
@@ -1040,12 +1097,17 @@ async function runAddToExisting(frameworkOverride, options) {
|
|
|
1040
1097
|
}
|
|
1041
1098
|
|
|
1042
1099
|
const linkHref = (options && options.targetDir) ? getLinkHrefForTargetDir(framework, options.targetDir) : paths.linkHref;
|
|
1043
|
-
const
|
|
1044
|
-
|
|
1045
|
-
:
|
|
1100
|
+
const pmFromOption = options && options.packageManager && VALID_PACKAGE_MANAGERS.includes(options.packageManager);
|
|
1101
|
+
const pm = pmFromOption
|
|
1102
|
+
? getPackageManagerCommands({ agent: options.packageManager, command: options.packageManager })
|
|
1103
|
+
: (config && config.packageManager)
|
|
1104
|
+
? getPackageManagerCommands({ agent: config.packageManager, command: config.packageManager })
|
|
1105
|
+
: resolvePackageManager(cwd);
|
|
1046
1106
|
const cliExample = pm.dlx('rizzo-css theme');
|
|
1107
|
+
writeRizzoConfig(cwd, { targetDir: targetDirRaw, framework, packageManager: pm.agent });
|
|
1047
1108
|
console.log('\n✓ Rizzo CSS added to your existing project');
|
|
1048
1109
|
console.log(' - ' + cssTarget);
|
|
1110
|
+
console.log(' - Wrote ' + RIZZO_CONFIG_FILE);
|
|
1049
1111
|
console.log('\nYou must add the stylesheet link yourself — it is not added automatically.');
|
|
1050
1112
|
if (framework === 'svelte') {
|
|
1051
1113
|
console.log('\nIn your root layout (e.g. src/app.html), add:');
|
|
@@ -1081,7 +1143,6 @@ async function cmdInit(argv) {
|
|
|
1081
1143
|
const yes = hasFlag(argv, '--yes');
|
|
1082
1144
|
const runInstallAfterScaffold = hasFlag(argv, '--install');
|
|
1083
1145
|
const noInstall = hasFlag(argv, '--no-install');
|
|
1084
|
-
const writeConfig = hasFlag(argv, '--write-config');
|
|
1085
1146
|
const cwd = process.cwd();
|
|
1086
1147
|
const config = readRizzoConfig(cwd);
|
|
1087
1148
|
|
|
@@ -1107,7 +1168,8 @@ async function cmdInit(argv) {
|
|
|
1107
1168
|
}
|
|
1108
1169
|
const projectDir = cwd;
|
|
1109
1170
|
const resolved = resolvePackageManager(projectDir, cwd);
|
|
1110
|
-
|
|
1171
|
+
const pmArg = getFlagValue(argv, '--package-manager');
|
|
1172
|
+
selectedPm = parsePackageManager(pmArg) || (config && config.packageManager) || resolved.agent || 'npm';
|
|
1111
1173
|
theme = 'system';
|
|
1112
1174
|
defaultDark = DARK_THEMES[0];
|
|
1113
1175
|
defaultLight = LIGHT_THEMES[0];
|
|
@@ -1168,7 +1230,8 @@ async function cmdInit(argv) {
|
|
|
1168
1230
|
}
|
|
1169
1231
|
|
|
1170
1232
|
const projectDirForPm = name ? join(cwd, name) : cwd;
|
|
1171
|
-
|
|
1233
|
+
const pmArg = getFlagValue(argv, '--package-manager');
|
|
1234
|
+
selectedPm = parsePackageManager(pmArg) || await promptPackageManager(projectDirForPm);
|
|
1172
1235
|
}
|
|
1173
1236
|
|
|
1174
1237
|
const projectDir = name ? join(cwd, name) : cwd;
|
|
@@ -1226,6 +1289,7 @@ async function cmdInit(argv) {
|
|
|
1226
1289
|
mkdirSync(join(projectDir, 'public', 'css'), { recursive: true });
|
|
1227
1290
|
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
1228
1291
|
copyFileSync(cssSource, cssTarget);
|
|
1292
|
+
copyRizzoFonts(dirname(cssTarget));
|
|
1229
1293
|
if (statSync(cssTarget).size < 5000) {
|
|
1230
1294
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1231
1295
|
}
|
|
@@ -1240,6 +1304,7 @@ async function cmdInit(argv) {
|
|
|
1240
1304
|
mkdirSync(join(projectDir, 'public', 'css'), { recursive: true });
|
|
1241
1305
|
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
1242
1306
|
copyFileSync(cssSource, cssTarget);
|
|
1307
|
+
copyRizzoFonts(dirname(cssTarget));
|
|
1243
1308
|
if (statSync(cssTarget).size < 5000) {
|
|
1244
1309
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1245
1310
|
}
|
|
@@ -1254,6 +1319,7 @@ async function cmdInit(argv) {
|
|
|
1254
1319
|
mkdirSync(join(projectDir, 'static', 'css'), { recursive: true });
|
|
1255
1320
|
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
1256
1321
|
copyFileSync(cssSource, cssTarget);
|
|
1322
|
+
copyRizzoFonts(dirname(cssTarget));
|
|
1257
1323
|
if (statSync(cssTarget).size < 5000) {
|
|
1258
1324
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1259
1325
|
}
|
|
@@ -1268,6 +1334,7 @@ async function cmdInit(argv) {
|
|
|
1268
1334
|
mkdirSync(join(projectDir, 'static', 'css'), { recursive: true });
|
|
1269
1335
|
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
1270
1336
|
copyFileSync(cssSource, cssTarget);
|
|
1337
|
+
copyRizzoFonts(dirname(cssTarget));
|
|
1271
1338
|
if (statSync(cssTarget).size < 5000) {
|
|
1272
1339
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1273
1340
|
}
|
|
@@ -1282,6 +1349,7 @@ async function cmdInit(argv) {
|
|
|
1282
1349
|
const linkHref = 'css/rizzo.min.css';
|
|
1283
1350
|
mkdirSync(cssDir, { recursive: true });
|
|
1284
1351
|
copyFileSync(cssSource, cssTarget);
|
|
1352
|
+
copyRizzoFonts(dirname(cssTarget));
|
|
1285
1353
|
if (statSync(cssTarget).size < 5000) {
|
|
1286
1354
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1287
1355
|
}
|
|
@@ -1314,6 +1382,7 @@ async function cmdInit(argv) {
|
|
|
1314
1382
|
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
1315
1383
|
mkdirSync(cssDir, { recursive: true });
|
|
1316
1384
|
copyFileSync(cssSource, cssTarget);
|
|
1385
|
+
copyRizzoFonts(dirname(cssTarget));
|
|
1317
1386
|
if (statSync(cssTarget).size < 5000) {
|
|
1318
1387
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1319
1388
|
}
|
|
@@ -1337,6 +1406,7 @@ async function cmdInit(argv) {
|
|
|
1337
1406
|
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
1338
1407
|
mkdirSync(cssDir, { recursive: true });
|
|
1339
1408
|
copyFileSync(cssSource, cssTarget);
|
|
1409
|
+
copyRizzoFonts(dirname(cssTarget));
|
|
1340
1410
|
if (statSync(cssTarget).size < 5000) {
|
|
1341
1411
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1342
1412
|
}
|
|
@@ -1387,19 +1457,28 @@ async function cmdInit(argv) {
|
|
|
1387
1457
|
const pm = getPackageManagerCommands({ agent: selectedPm, command: selectedPm });
|
|
1388
1458
|
const nextStep = pm.install + ' && ' + pm.run('dev');
|
|
1389
1459
|
const runPrefix = name ? 'cd ' + name + ' && ' : '';
|
|
1460
|
+
const hasPackageJson = useHandpickAstro || useHandpickSvelte || useAstroBase || useSvelteBase;
|
|
1390
1461
|
|
|
1391
|
-
|
|
1462
|
+
// Always write rizzo-css.json for new projects (targetDir, framework, packageManager).
|
|
1463
|
+
const pathsForConfig = getFrameworkCssPaths(framework);
|
|
1464
|
+
writeRizzoConfig(projectDir, { targetDir: pathsForConfig.targetDir, framework, packageManager: selectedPm });
|
|
1465
|
+
console.log(' - Wrote ' + RIZZO_CONFIG_FILE);
|
|
1466
|
+
|
|
1467
|
+
if (runInstallAfterScaffold && !noInstall && hasPackageJson) {
|
|
1392
1468
|
console.log('\nRunning: ' + pm.install);
|
|
1393
1469
|
const code = runInDir(projectDir, pm.install);
|
|
1394
1470
|
if (code !== 0) {
|
|
1395
1471
|
console.error('\nInstall failed (exit ' + code + '). Run manually: ' + runPrefix + pm.install);
|
|
1396
1472
|
}
|
|
1397
|
-
}
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1473
|
+
} else if (!yes && !noInstall && hasPackageJson) {
|
|
1474
|
+
const shouldRun = await confirmRunInstall(pm);
|
|
1475
|
+
if (shouldRun) {
|
|
1476
|
+
console.log('\nRunning: ' + pm.install);
|
|
1477
|
+
const code = runInDir(projectDir, pm.install);
|
|
1478
|
+
if (code !== 0) {
|
|
1479
|
+
console.error('\nInstall failed (exit ' + code + '). Run manually: ' + runPrefix + pm.install);
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1403
1482
|
}
|
|
1404
1483
|
|
|
1405
1484
|
if (useHandpickAstro || useHandpickSvelte) {
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
Geist Sans and Geist Mono Font
|
|
2
|
+
(C) 2023 Vercel, made in collaboration with basement.studio
|
|
3
|
+
|
|
4
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
5
|
+
This license is available with a FAQ at: http://scripts.sil.org/OFL and copied below
|
|
6
|
+
|
|
7
|
+
-----------------------------------------------------------
|
|
8
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
9
|
+
-----------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
PREAMBLE
|
|
12
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
13
|
+
development of collaborative font projects, to support the font creation
|
|
14
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
15
|
+
open framework in which fonts may be shared and improved in partnership
|
|
16
|
+
with others.
|
|
17
|
+
|
|
18
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
19
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
20
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
21
|
+
redistributed and/or sold with any software provided that any reserved
|
|
22
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
23
|
+
however, cannot be released under any other type of license. The
|
|
24
|
+
requirement for fonts to remain under this license does not apply
|
|
25
|
+
to any document created using the fonts or their derivatives.
|
|
26
|
+
|
|
27
|
+
DEFINITIONS
|
|
28
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
29
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
30
|
+
include source files, build scripts and documentation.
|
|
31
|
+
|
|
32
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
33
|
+
copyright statement(s).
|
|
34
|
+
|
|
35
|
+
"Original Version" refers to the collection of Font Software components as
|
|
36
|
+
distributed by the Copyright Holder(s).
|
|
37
|
+
|
|
38
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
39
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
40
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
41
|
+
new environment.
|
|
42
|
+
|
|
43
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
44
|
+
writer or other person who contributed to the Font Software.
|
|
45
|
+
|
|
46
|
+
PERMISSION AND CONDITIONS
|
|
47
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
48
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
49
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
50
|
+
Software, subject to the following conditions:
|
|
51
|
+
|
|
52
|
+
1) Neither the Font Software nor any of its individual components,
|
|
53
|
+
in Original or Modified Versions, may be sold by itself.
|
|
54
|
+
|
|
55
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
56
|
+
redistributed and/or sold with any software, provided that each copy
|
|
57
|
+
contains the above copyright notice and this license. These can be
|
|
58
|
+
included either as stand-alone text files, human-readable headers or
|
|
59
|
+
in the appropriate machine-readable metadata fields within text or
|
|
60
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
61
|
+
|
|
62
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
63
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
64
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
65
|
+
presented to the users.
|
|
66
|
+
|
|
67
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
68
|
+
Software shall not be used to promote, endorse or advertise any
|
|
69
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
70
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
71
|
+
permission.
|
|
72
|
+
|
|
73
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
74
|
+
must be distributed entirely under this license, and must not be
|
|
75
|
+
distributed under any other license. The requirement for fonts to
|
|
76
|
+
remain under this license does not apply to any document created
|
|
77
|
+
using the Font Software.
|
|
78
|
+
|
|
79
|
+
TERMINATION
|
|
80
|
+
This license becomes null and void if any of the above conditions are
|
|
81
|
+
not met.
|
|
82
|
+
|
|
83
|
+
DISCLAIMER
|
|
84
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
85
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
86
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
87
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
88
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
89
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
90
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
91
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
92
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
Geist Sans and Geist Mono Font
|
|
2
|
+
(C) 2023 Vercel, made in collaboration with basement.studio
|
|
3
|
+
|
|
4
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
5
|
+
This license is available with a FAQ at: http://scripts.sil.org/OFL and copied below
|
|
6
|
+
|
|
7
|
+
-----------------------------------------------------------
|
|
8
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
9
|
+
-----------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
PREAMBLE
|
|
12
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
13
|
+
development of collaborative font projects, to support the font creation
|
|
14
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
15
|
+
open framework in which fonts may be shared and improved in partnership
|
|
16
|
+
with others.
|
|
17
|
+
|
|
18
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
19
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
20
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
21
|
+
redistributed and/or sold with any software provided that any reserved
|
|
22
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
23
|
+
however, cannot be released under any other type of license. The
|
|
24
|
+
requirement for fonts to remain under this license does not apply
|
|
25
|
+
to any document created using the fonts or their derivatives.
|
|
26
|
+
|
|
27
|
+
DEFINITIONS
|
|
28
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
29
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
30
|
+
include source files, build scripts and documentation.
|
|
31
|
+
|
|
32
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
33
|
+
copyright statement(s).
|
|
34
|
+
|
|
35
|
+
"Original Version" refers to the collection of Font Software components as
|
|
36
|
+
distributed by the Copyright Holder(s).
|
|
37
|
+
|
|
38
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
39
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
40
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
41
|
+
new environment.
|
|
42
|
+
|
|
43
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
44
|
+
writer or other person who contributed to the Font Software.
|
|
45
|
+
|
|
46
|
+
PERMISSION AND CONDITIONS
|
|
47
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
48
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
49
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
50
|
+
Software, subject to the following conditions:
|
|
51
|
+
|
|
52
|
+
1) Neither the Font Software nor any of its individual components,
|
|
53
|
+
in Original or Modified Versions, may be sold by itself.
|
|
54
|
+
|
|
55
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
56
|
+
redistributed and/or sold with any software, provided that each copy
|
|
57
|
+
contains the above copyright notice and this license. These can be
|
|
58
|
+
included either as stand-alone text files, human-readable headers or
|
|
59
|
+
in the appropriate machine-readable metadata fields within text or
|
|
60
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
61
|
+
|
|
62
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
63
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
64
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
65
|
+
presented to the users.
|
|
66
|
+
|
|
67
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
68
|
+
Software shall not be used to promote, endorse or advertise any
|
|
69
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
70
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
71
|
+
permission.
|
|
72
|
+
|
|
73
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
74
|
+
must be distributed entirely under this license, and must not be
|
|
75
|
+
distributed under any other license. The requirement for fonts to
|
|
76
|
+
remain under this license does not apply to any document created
|
|
77
|
+
using the Font Software.
|
|
78
|
+
|
|
79
|
+
TERMINATION
|
|
80
|
+
This license becomes null and void if any of the above conditions are
|
|
81
|
+
not met.
|
|
82
|
+
|
|
83
|
+
DISCLAIMER
|
|
84
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
85
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
86
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
87
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
88
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
89
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
90
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
91
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
92
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
package/dist/rizzo.min.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@font-face{font-display:swap;font-family:Geist Sans;font-style:normal;font-weight:100 900;src:url(../assets/fonts/GeistSans/GeistVF.woff2) format("woff2"),url(../assets/fonts/GeistSans/GeistVF.woff) format("woff")}:root{--primary-color:oklch(45.2% 0.198 250.1deg);--secondary-color:oklch(25.1% 0 0deg);--font-family-sans:"Geist Sans",system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif;--font-family-serif:georgia,"Times New Roman",times,serif;--font-family-mono:"SF Mono",monaco,"Cascadia Code","Roboto Mono",consolas,"Courier New",monospace;--font-family:var(--font-family-sans);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-size-scale:1;--font-size-xs:calc(0.75rem*var(--font-size-scale));--font-size-sm:calc(0.875rem*var(--font-size-scale));--font-size-base:calc(1rem*var(--font-size-scale));--font-size-lg:calc(1.125rem*var(--font-size-scale));--font-size-xl:calc(1.25rem*var(--font-size-scale));--font-size-2xl:calc(1.5rem*var(--font-size-scale));--font-size-3xl:calc(1.875rem*var(--font-size-scale));--font-size-4xl:calc(2.25rem*var(--font-size-scale));--font-size-5xl:calc(3rem*var(--font-size-scale));--font-size-6xl:calc(3.75rem*var(--font-size-scale));--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--letter-spacing-tighter:-0.05em;--letter-spacing-tight:-0.025em;--letter-spacing-normal:0;--letter-spacing-wide:0.025em;--letter-spacing-wider:0.05em;--letter-spacing-widest:0.1em;--spacing-0:0;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--spacing-0-125:0.125rem;--spacing-0-375:0.375rem;--spacing-0-625:0.625rem;--spacing-0-875:0.875rem;--spacing-28:7rem;--spacing-32:8rem;--spacing-36:9rem;--spacing-40:10rem;--spacing-48:12rem;--spacing-56:14rem;--spacing-64:16rem;--spacing-72:18rem;--spacing-80:20rem;--spacing-96:24rem;--spacing-50:12.5rem;--spacing-100:25rem;--spacing-150:37.5rem;--spacing-14:3.5rem;--spacing-15:3.75rem;--spacing-75:18.75rem;--spacing-175:43.75rem;--spacing-70:17.5rem;--spacing-105:26.25rem;--spacing-2500:2500rem;--radius-none:0;--radius-sm:0.125rem;--radius:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--radius-circle:50%;--z-base:0;--z-1:1;--z-2:2;--z-3:3;--z-10:10;--z-dropdown:10;--z-dropdown-submenu:11;--z-sticky:50;--z-fixed:100;--z-search-overlay:98;--z-search-panel:99;--z-modal-backdrop:1999;--z-modal:2000;--z-tooltip:3000;--z-toast:4000;--z-settings:10000;--z-navbar:5000;--toast-top-offset:calc(var(--spacing-16) + var(--spacing-4));--z-navbar-mobile-menu-open:5100;--z-skip-link:10001;--z-navbar-mobile-menu:101;--z-navbar-search-overlay:98;--z-navbar-search-panel:99;--z-navbar-mobile-search-overlay:101;--z-navbar-mobile-search-panel:102;--transition-fast:150ms;--transition-base:200ms;--transition-slow:300ms;--transition-slower:350ms;--transition-slowest:400ms;--transition-ease-out:300ms ease-out;--transition-ease-in:300ms ease-in;--theme-transition-duration:0.2s;--blur-sm:4px;--blur:8px;--blur-md:12px;--blur-lg:16px;--outline-width:2px;--outline-offset:2px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1536px;--container-default:1200px;--vh-70:70vh;--vh-80:80vh;--vh-90:90vh;--touch-target-min:3rem;--theme-switcher-width:var(--spacing-96);--max-height-dropdown:600px;--max-height-modal:32rem;--max-width-modal-lg:48rem;--max-height-navbar-submenu:2000px;--ease-in-out-cubic:cubic-bezier(0.4,0,0.2,1);--scale-80:0.8;--scale-95:0.95;--scale-100:1;--scale-110:1.1;--border-width:1px;--border-width-2:2px;--border-width-3:3px;--border-width-4:4px;--border-width-arrow:6px;--border-width-accent:3px;--opacity-0:0;--opacity-50:0.5;--opacity-60:0.6;--opacity-70:0.7;--opacity-80:0.8;--opacity-90:0.9;--opacity-100:1;--background:oklch(100% 0 0deg);--background-alt:oklch(96.9% 0 0deg);--text:oklch(25.1% 0 0deg);--text-dim:oklch(50.2% 0 0deg);--icon:var(--text);--icon-dim:var(--text-dim);--border:oklch(90.2% 0 0deg);--accent:oklch(45.2% 0.198 250.1deg);--accent-hover:oklch(40.2% 0.198 250.1deg);--accent-text:oklch(100% 0 0deg);--accent-text-on-hover:var(--accent-text);--success:oklch(60.2% 0.182 145.1deg);--success-hover:oklch(70% 0.16 145deg);--success-text:oklch(20% 0 0deg);--success-text-on-solid:var(--success-text);--warning:oklch(80.2% 0.152 90.1deg);--warning-hover:oklch(88% 0.12 90deg);--warning-text:oklch(100% 0 0deg);--warning-text-on-solid:oklch(22% 0.02 90deg);--text-on-solid-hover:oklch(22% 0.02 0deg);--error:oklch(55.2% 0.218 25.1deg);--error-hover:oklch(65% 0.18 25deg);--error-text:oklch(100% 0 0deg);--error-text-on-solid:var(--error-text);--info:oklch(60.2% 0.118 210.1deg);--info-hover:oklch(70% 0.1 210deg);--info-text:oklch(20% 0 0deg);--info-text-on-solid:var(--info-text);--selection:oklch(70% 0.15 250deg);--color-neutral-50:oklch(98% 0 0deg);--color-neutral-100:oklch(96% 0.005 264deg);--color-neutral-200:oklch(91% 0.008 264deg);--color-neutral-300:oklch(84% 0.01 264deg);--color-neutral-400:oklch(63% 0.012 264deg);--color-neutral-500:oklch(50% 0.014 264deg);--color-neutral-600:oklch(40% 0.012 264deg);--color-neutral-700:oklch(32% 0.01 264deg);--color-neutral-800:oklch(24% 0.008 264deg);--color-neutral-900:oklch(16% 0.006 264deg);--color-neutral-950:oklch(10% 0.004 264deg);--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);--alert-bg:oklch(from var(--background-alt) calc(l * 0.92) c h);--alert-success-bg:var(--color-success-200);--alert-error-bg:var(--color-error-200);--alert-warning-bg:var(--color-warning-200);--alert-info-bg:var(--color-info-200);--shadow-color:oklch(0% 0 0deg);--shadow-sm:0 1px 2px 0 oklch(from var(--shadow-color) l c h/5%);--shadow:0 1px 3px 0 oklch(from var(--shadow-color) l c h/10%),0 1px 2px -1px oklch(from var(--shadow-color) l c h/10%);--shadow-md:0 4px 6px -1px oklch(from var(--shadow-color) l c h/10%),0 2px 4px -2px oklch(from var(--shadow-color) l c h/6%);--shadow-lg:0 10px 15px -3px oklch(from var(--shadow-color) l c h/10%),0 4px 6px -4px oklch(from var(--shadow-color) l c h/5%);--shadow-xl:0 20px 25px -5px oklch(from var(--shadow-color) l c h/10%),0 8px 10px -6px oklch(from var(--shadow-color) l c h/4%);--overlay:oklch(from var(--shadow-color) l c h/50%);--shadow-inset-sm:inset 0 var(--spacing-0-125) var(--spacing-0-125) oklch(from var(--shadow-color) l c h/10%);--shadow-inset:inset 0 var(--spacing-0-125) var(--spacing-0-125) oklch(from var(--shadow-color) l c h/10%)}*, *::after, *::before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;margin:0;max-width:100%;padding:0} blockquote,body, dd, dl,
|
|
1
|
+
@font-face{font-display:swap;font-family:Geist Sans;font-style:normal;font-weight:100 900;src:url('./fonts/GeistSans/GeistVF.woff2) format("woff2"),url('./fonts/GeistSans/GeistVF.woff) format("woff")}:root{--primary-color:oklch(45.2% 0.198 250.1deg);--secondary-color:oklch(25.1% 0 0deg);--font-family-sans:"Geist Sans",system-ui,-apple-system,blinkmacsystemfont,"Segoe UI",roboto,"Helvetica Neue",arial,sans-serif;--font-family-serif:georgia,"Times New Roman",times,serif;--font-family-mono:"SF Mono",monaco,"Cascadia Code","Roboto Mono",consolas,"Courier New",monospace;--font-family:var(--font-family-sans);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-size-scale:1;--font-size-xs:calc(0.75rem*var(--font-size-scale));--font-size-sm:calc(0.875rem*var(--font-size-scale));--font-size-base:calc(1rem*var(--font-size-scale));--font-size-lg:calc(1.125rem*var(--font-size-scale));--font-size-xl:calc(1.25rem*var(--font-size-scale));--font-size-2xl:calc(1.5rem*var(--font-size-scale));--font-size-3xl:calc(1.875rem*var(--font-size-scale));--font-size-4xl:calc(2.25rem*var(--font-size-scale));--font-size-5xl:calc(3rem*var(--font-size-scale));--font-size-6xl:calc(3.75rem*var(--font-size-scale));--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--letter-spacing-tighter:-0.05em;--letter-spacing-tight:-0.025em;--letter-spacing-normal:0;--letter-spacing-wide:0.025em;--letter-spacing-wider:0.05em;--letter-spacing-widest:0.1em;--spacing-0:0;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--spacing-0-125:0.125rem;--spacing-0-375:0.375rem;--spacing-0-625:0.625rem;--spacing-0-875:0.875rem;--spacing-28:7rem;--spacing-32:8rem;--spacing-36:9rem;--spacing-40:10rem;--spacing-48:12rem;--spacing-56:14rem;--spacing-64:16rem;--spacing-72:18rem;--spacing-80:20rem;--spacing-96:24rem;--spacing-50:12.5rem;--spacing-100:25rem;--spacing-150:37.5rem;--spacing-14:3.5rem;--spacing-15:3.75rem;--spacing-75:18.75rem;--spacing-175:43.75rem;--spacing-70:17.5rem;--spacing-105:26.25rem;--spacing-2500:2500rem;--radius-none:0;--radius-sm:0.125rem;--radius:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--radius-circle:50%;--z-base:0;--z-1:1;--z-2:2;--z-3:3;--z-10:10;--z-dropdown:10;--z-dropdown-submenu:11;--z-sticky:50;--z-fixed:100;--z-search-overlay:98;--z-search-panel:99;--z-modal-backdrop:1999;--z-modal:2000;--z-tooltip:3000;--z-toast:4000;--z-settings:10000;--z-navbar:5000;--toast-top-offset:calc(var(--spacing-16) + var(--spacing-4));--z-navbar-mobile-menu-open:5100;--z-skip-link:10001;--z-navbar-mobile-menu:101;--z-navbar-search-overlay:98;--z-navbar-search-panel:99;--z-navbar-mobile-search-overlay:101;--z-navbar-mobile-search-panel:102;--transition-fast:150ms;--transition-base:200ms;--transition-slow:300ms;--transition-slower:350ms;--transition-slowest:400ms;--transition-ease-out:300ms ease-out;--transition-ease-in:300ms ease-in;--theme-transition-duration:0.2s;--blur-sm:4px;--blur:8px;--blur-md:12px;--blur-lg:16px;--outline-width:2px;--outline-offset:2px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1536px;--container-default:1200px;--vh-70:70vh;--vh-80:80vh;--vh-90:90vh;--touch-target-min:3rem;--theme-switcher-width:var(--spacing-96);--max-height-dropdown:600px;--max-height-modal:32rem;--max-width-modal-lg:48rem;--max-height-navbar-submenu:2000px;--ease-in-out-cubic:cubic-bezier(0.4,0,0.2,1);--scale-80:0.8;--scale-95:0.95;--scale-100:1;--scale-110:1.1;--border-width:1px;--border-width-2:2px;--border-width-3:3px;--border-width-4:4px;--border-width-arrow:6px;--border-width-accent:3px;--opacity-0:0;--opacity-50:0.5;--opacity-60:0.6;--opacity-70:0.7;--opacity-80:0.8;--opacity-90:0.9;--opacity-100:1;--background:oklch(100% 0 0deg);--background-alt:oklch(96.9% 0 0deg);--text:oklch(25.1% 0 0deg);--text-dim:oklch(50.2% 0 0deg);--icon:var(--text);--icon-dim:var(--text-dim);--border:oklch(90.2% 0 0deg);--accent:oklch(45.2% 0.198 250.1deg);--accent-hover:oklch(40.2% 0.198 250.1deg);--accent-text:oklch(100% 0 0deg);--accent-text-on-hover:var(--accent-text);--success:oklch(60.2% 0.182 145.1deg);--success-hover:oklch(70% 0.16 145deg);--success-text:oklch(20% 0 0deg);--success-text-on-solid:var(--success-text);--warning:oklch(80.2% 0.152 90.1deg);--warning-hover:oklch(88% 0.12 90deg);--warning-text:oklch(100% 0 0deg);--warning-text-on-solid:oklch(22% 0.02 90deg);--text-on-solid-hover:oklch(22% 0.02 0deg);--error:oklch(55.2% 0.218 25.1deg);--error-hover:oklch(65% 0.18 25deg);--error-text:oklch(100% 0 0deg);--error-text-on-solid:var(--error-text);--info:oklch(60.2% 0.118 210.1deg);--info-hover:oklch(70% 0.1 210deg);--info-text:oklch(20% 0 0deg);--info-text-on-solid:var(--info-text);--selection:oklch(70% 0.15 250deg);--color-neutral-50:oklch(98% 0 0deg);--color-neutral-100:oklch(96% 0.005 264deg);--color-neutral-200:oklch(91% 0.008 264deg);--color-neutral-300:oklch(84% 0.01 264deg);--color-neutral-400:oklch(63% 0.012 264deg);--color-neutral-500:oklch(50% 0.014 264deg);--color-neutral-600:oklch(40% 0.012 264deg);--color-neutral-700:oklch(32% 0.01 264deg);--color-neutral-800:oklch(24% 0.008 264deg);--color-neutral-900:oklch(16% 0.006 264deg);--color-neutral-950:oklch(10% 0.004 264deg);--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);--alert-bg:oklch(from var(--background-alt) calc(l * 0.92) c h);--alert-success-bg:var(--color-success-200);--alert-error-bg:var(--color-error-200);--alert-warning-bg:var(--color-warning-200);--alert-info-bg:var(--color-info-200);--shadow-color:oklch(0% 0 0deg);--shadow-sm:0 1px 2px 0 oklch(from var(--shadow-color) l c h/5%);--shadow:0 1px 3px 0 oklch(from var(--shadow-color) l c h/10%),0 1px 2px -1px oklch(from var(--shadow-color) l c h/10%);--shadow-md:0 4px 6px -1px oklch(from var(--shadow-color) l c h/10%),0 2px 4px -2px oklch(from var(--shadow-color) l c h/6%);--shadow-lg:0 10px 15px -3px oklch(from var(--shadow-color) l c h/10%),0 4px 6px -4px oklch(from var(--shadow-color) l c h/5%);--shadow-xl:0 20px 25px -5px oklch(from var(--shadow-color) l c h/10%),0 8px 10px -6px oklch(from var(--shadow-color) l c h/4%);--overlay:oklch(from var(--shadow-color) l c h/50%);--shadow-inset-sm:inset 0 var(--spacing-0-125) var(--spacing-0-125) oklch(from var(--shadow-color) l c h/10%);--shadow-inset:inset 0 var(--spacing-0-125) var(--spacing-0-125) oklch(from var(--shadow-color) l c h/10%)}*, *::after, *::before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;margin:0;max-width:100%;padding:0} blockquote,body, dd, dl,
|
|
2
2
|
figure, h1, h2, h3, h4, h5, h6, p{margin-block-end:0}
|
|
3
3
|
ol[role="list"],ul[role="list"]{list-style:none}body{line-height:1.5;margin:0;max-width:100%;min-height:100vh;padding:0}
|
|
4
4
|
button,h1, h2, h3, h4, h5, h6, input, label{line-height:1.1}h1, h2, h3, h4, h5, h6{text-wrap:balance}a:not([class]){-webkit-text-decoration-skip:ink;color:currentcolor;text-decoration-skip-ink:auto}img,
|
package/package.json
CHANGED
|
@@ -22,6 +22,7 @@ Minimal Astro project with Rizzo CSS. Scaffolded with `npx rizzo-css init --fram
|
|
|
22
22
|
|
|
23
23
|
## Project structure
|
|
24
24
|
|
|
25
|
+
- `.gitignore` — Astro default values (same as `create-astro`): dist/, .astro/, node_modules/, .env, logs, .DS_Store, .idea/
|
|
25
26
|
- `astro.config.mjs` — Astro configuration
|
|
26
27
|
- `src/layouts/Layout.astro` — Layout with Rizzo CSS and theme (edit `data-theme` for default)
|
|
27
28
|
- `src/pages/index.astro` — Home page
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
/* Placeholders replaced by rizzo-css CLI when scaffolding */
|
|
3
3
|
const DATA_THEME = '{{DATA_THEME}}';
|
|
4
4
|
const THEME_LIST_COMMENT = '{{THEME_LIST_COMMENT}}';
|
|
5
|
-
|
|
6
|
-
title?: string;
|
|
7
|
-
}
|
|
5
|
+
/** @type {{ title?: string }} */
|
|
8
6
|
const { title = '{{TITLE}}' } = Astro.props;
|
|
9
7
|
---
|
|
10
8
|
<!doctype html>
|
|
11
|
-
<html lang="en" data-theme={DATA_THEME}>
|
|
9
|
+
<html lang="en" data-theme={DATA_THEME}>
|
|
10
|
+
{THEME_LIST_COMMENT}
|
|
12
11
|
<head>
|
|
13
12
|
<meta charset="UTF-8" />
|
|
14
13
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
@@ -13,7 +13,7 @@ If you prefer to load CSS from a CDN instead of the local file, replace the `<li
|
|
|
13
13
|
- `<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />`
|
|
14
14
|
- Or jsDelivr: `https://cdn.jsdelivr.net/npm/rizzo-css@latest/dist/rizzo.min.css`
|
|
15
15
|
|
|
16
|
-
(Replace `@latest` with a specific version, e.g. `@0.0.
|
|
16
|
+
(Replace `@latest` with a specific version, e.g. `@0.0.21`, in production.)
|
|
17
17
|
|
|
18
18
|
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.
|
|
19
19
|
|