rizzo-css 0.0.17 → 0.0.18
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 +4 -4
- package/bin/rizzo-css.js +151 -103
- package/package.json +7 -3
- package/scaffold/astro-minimal/.env.example +3 -0
- package/scaffold/astro-minimal/README.md +36 -0
- package/scaffold/astro-minimal/package.json +13 -0
- package/scaffold/astro-minimal/src/layouts/Layout.astro +28 -0
- package/scaffold/astro-minimal/src/pages/index.astro +10 -0
- package/scaffold/svelte-minimal/.env.example +3 -0
- package/scaffold/svelte-minimal/README.md +37 -0
- package/scaffold/svelte-minimal/package.json +20 -0
- package/scaffold/svelte-minimal/src/app.d.ts +11 -0
- package/scaffold/svelte-minimal/src/app.html +15 -0
- package/scaffold/svelte-minimal/src/routes/+layout.svelte +1 -0
- package/scaffold/svelte-minimal/src/routes/+page.svelte +5 -0
- package/scaffold/svelte-minimal/svelte.config.js +10 -0
- package/scaffold/svelte-minimal/tsconfig.json +11 -0
- package/scaffold/vanilla/README.md +4 -4
- 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/scaffold/astro-app/README.md +0 -43
- package/scaffold/astro-app/package.json +0 -1
- package/scaffold/astro-app/src/components/Accordion.astro +0 -178
- package/scaffold/astro-app/src/components/Alert.astro +0 -131
- package/scaffold/astro-app/src/components/Avatar.astro +0 -59
- package/scaffold/astro-app/src/components/Badge.astro +0 -24
- package/scaffold/astro-app/src/components/Breadcrumb.astro +0 -61
- package/scaffold/astro-app/src/components/Button.astro +0 -3
- package/scaffold/astro-app/src/components/Card.astro +0 -18
- package/scaffold/astro-app/src/components/Checkbox.astro +0 -38
- package/scaffold/astro-app/src/components/CliCommandTabs.astro +0 -90
- package/scaffold/astro-app/src/components/CodeBlock.astro +0 -393
- package/scaffold/astro-app/src/components/CopyToClipboard.astro +0 -219
- package/scaffold/astro-app/src/components/Divider.astro +0 -37
- package/scaffold/astro-app/src/components/DocsSidebar.astro +0 -51
- package/scaffold/astro-app/src/components/Dropdown.astro +0 -807
- package/scaffold/astro-app/src/components/FormGroup.astro +0 -59
- package/scaffold/astro-app/src/components/FrameworkSwitcher.astro +0 -72
- package/scaffold/astro-app/src/components/Input.astro +0 -59
- package/scaffold/astro-app/src/components/Modal.astro +0 -212
- package/scaffold/astro-app/src/components/Navbar.astro +0 -623
- package/scaffold/astro-app/src/components/PackageInstallTabs.astro +0 -87
- package/scaffold/astro-app/src/components/Pagination.astro +0 -240
- package/scaffold/astro-app/src/components/ProgressBar.astro +0 -65
- package/scaffold/astro-app/src/components/Radio.astro +0 -38
- package/scaffold/astro-app/src/components/Search.astro +0 -1259
- package/scaffold/astro-app/src/components/Select.astro +0 -49
- package/scaffold/astro-app/src/components/Settings.astro +0 -382
- package/scaffold/astro-app/src/components/Spinner.astro +0 -30
- package/scaffold/astro-app/src/components/Table.astro +0 -181
- package/scaffold/astro-app/src/components/Tabs.astro +0 -223
- package/scaffold/astro-app/src/components/Textarea.astro +0 -58
- package/scaffold/astro-app/src/components/ThemeIcon.astro +0 -50
- package/scaffold/astro-app/src/components/ThemeSwitcher.astro +0 -504
- package/scaffold/astro-app/src/components/Toast.astro +0 -30
- package/scaffold/astro-app/src/components/Tooltip.astro +0 -32
- package/scaffold/astro-app/src/components/icons/Brush.astro +0 -10
- package/scaffold/astro-app/src/components/icons/Cake.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Check.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Cherry.astro +0 -11
- package/scaffold/astro-app/src/components/icons/ChevronDown.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Circle.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Close.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Cmd.astro +0 -26
- package/scaffold/astro-app/src/components/icons/Copy.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Eye.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Filter.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Flame.astro +0 -28
- package/scaffold/astro-app/src/components/icons/Flower.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Gear.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Heart.astro +0 -28
- package/scaffold/astro-app/src/components/icons/IceCream.astro +0 -31
- package/scaffold/astro-app/src/components/icons/Leaf.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Lemon.astro +0 -11
- package/scaffold/astro-app/src/components/icons/Moon.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Owl.astro +0 -34
- package/scaffold/astro-app/src/components/icons/Palette.astro +0 -33
- package/scaffold/astro-app/src/components/icons/Rainbow.astro +0 -31
- package/scaffold/astro-app/src/components/icons/Search.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Shield.astro +0 -28
- package/scaffold/astro-app/src/components/icons/Snowflake.astro +0 -34
- package/scaffold/astro-app/src/components/icons/Sort.astro +0 -30
- package/scaffold/astro-app/src/components/icons/Sun.astro +0 -29
- package/scaffold/astro-app/src/components/icons/Sunset.astro +0 -10
- package/scaffold/astro-app/src/components/icons/Zap.astro +0 -9
- package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +0 -53
- package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +0 -34
- package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +0 -29
- package/scaffold/astro-app/src/components/icons/devicons/Git.astro +0 -24
- package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +0 -27
- package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +0 -25
- package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +0 -47
- package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +0 -33
- package/scaffold/astro-app/src/components/icons/devicons/React.astro +0 -27
- package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +0 -25
- package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +0 -26
- package/scaffold/astro-app/src/config/frameworks.ts +0 -26
- package/scaffold/astro-app/src/config/themes.ts +0 -54
- package/scaffold/astro-app/src/layouts/DocsLayout.astro +0 -263
- package/scaffold/astro-app/src/layouts/Layout.astro +0 -41
- package/scaffold/astro-app/src/pages/components/accordion.astro +0 -172
- package/scaffold/astro-app/src/pages/components/alert.astro +0 -250
- package/scaffold/astro-app/src/pages/components/avatar.astro +0 -102
- package/scaffold/astro-app/src/pages/components/badge.astro +0 -119
- package/scaffold/astro-app/src/pages/components/breadcrumb.astro +0 -124
- package/scaffold/astro-app/src/pages/components/button.astro +0 -74
- package/scaffold/astro-app/src/pages/components/cards.astro +0 -247
- package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +0 -49
- package/scaffold/astro-app/src/pages/components/divider.astro +0 -74
- package/scaffold/astro-app/src/pages/components/dropdown.astro +0 -394
- package/scaffold/astro-app/src/pages/components/forms.astro +0 -367
- package/scaffold/astro-app/src/pages/components/icons.astro +0 -246
- package/scaffold/astro-app/src/pages/components/modal.astro +0 -152
- package/scaffold/astro-app/src/pages/components/navbar.astro +0 -80
- package/scaffold/astro-app/src/pages/components/pagination.astro +0 -126
- package/scaffold/astro-app/src/pages/components/progress-bar.astro +0 -94
- package/scaffold/astro-app/src/pages/components/search.astro +0 -155
- package/scaffold/astro-app/src/pages/components/settings.astro +0 -78
- package/scaffold/astro-app/src/pages/components/spinner.astro +0 -81
- package/scaffold/astro-app/src/pages/components/table.astro +0 -144
- package/scaffold/astro-app/src/pages/components/tabs.astro +0 -220
- package/scaffold/astro-app/src/pages/components/theme-switcher.astro +0 -69
- package/scaffold/astro-app/src/pages/components/toast.astro +0 -157
- package/scaffold/astro-app/src/pages/components/tooltip.astro +0 -209
- package/scaffold/astro-app/src/pages/components.astro +0 -290
- package/scaffold/astro-app/src/pages/docs/accessibility.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/colors.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/design-system.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/getting-started.astro +0 -9
- package/scaffold/astro-app/src/pages/docs/index.astro +0 -15
- package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +0 -14
- package/scaffold/astro-app/src/pages/docs/theming.astro +0 -10
- package/scaffold/astro-app/src/pages/index.astro +0 -24
- package/scaffold/svelte-app/README.md +0 -39
- package/scaffold/svelte-app/package.json +0 -22
- package/scaffold/svelte-app/src/app.d.ts +0 -28
- package/scaffold/svelte-app/src/app.html +0 -21
- package/scaffold/svelte-app/src/lib/assets/favicon.svg +0 -1
- package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +0 -128
- package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +0 -85
- package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +0 -39
- package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +0 -49
- package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +0 -27
- package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +0 -17
- package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +0 -37
- package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +0 -79
- package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +0 -28
- package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +0 -254
- package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +0 -51
- package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +0 -59
- package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +0 -157
- package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +0 -93
- package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +0 -58
- package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +0 -38
- package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +0 -51
- package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +0 -14
- package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +0 -158
- package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +0 -117
- package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +0 -59
- package/scaffold/svelte-app/src/lib/rizzo/ThemeIcon.svelte +0 -54
- package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +0 -315
- package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +0 -33
- package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +0 -27
- package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +0 -29
- package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +0 -34
- package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +0 -33
- package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +0 -31
- package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +0 -34
- package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +0 -30
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +0 -45
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +0 -28
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +0 -23
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +0 -18
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +0 -21
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +0 -44
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +0 -24
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +0 -21
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +0 -19
- package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +0 -20
- package/scaffold/svelte-app/src/lib/rizzo/index.ts +0 -35
- package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +0 -239
- package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +0 -99
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +0 -53
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +0 -114
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +0 -92
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +0 -60
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +0 -55
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +0 -55
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +0 -173
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +0 -12
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +0 -92
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +0 -26
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +0 -105
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +0 -161
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +0 -375
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +0 -246
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +0 -8
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +0 -50
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +0 -79
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +0 -44
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +0 -95
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +0 -147
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +0 -158
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +0 -41
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +0 -116
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +0 -152
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +0 -189
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +0 -6
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +0 -136
- package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +0 -57
- package/scaffold/svelte-app/src/routes/+layout.svelte +0 -10
- package/scaffold/svelte-app/src/routes/+page.svelte +0 -31
- package/scaffold/svelte-app/src/routes/components/+page.svelte +0 -4
- package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +0 -7
- package/scaffold/svelte-app/static/robots.txt +0 -3
- package/scaffold/svelte-app/svelte.config.js +0 -13
- package/scaffold/svelte-app/tsconfig.json +0 -21
- package/scaffold/svelte-app/vite.config.ts +0 -6
- /package/scaffold/{astro-app → astro-minimal}/astro.config.mjs +0 -0
- /package/scaffold/{astro-app → astro-minimal}/public/.gitkeep +0 -0
- /package/scaffold/{astro-app → astro-minimal}/public/favicon.svg +0 -0
- /package/scaffold/{astro-app → astro-minimal}/tsconfig.json +0 -0
- /package/scaffold/{svelte-app → svelte-minimal}/static/.gitkeep +0 -0
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ pnpm add rizzo-css
|
|
|
12
12
|
yarn add rizzo-css
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
**Quick start (no install):** `npx rizzo-css init` — choose **framework** (Vanilla, Astro, or Svelte), then **add to existing** or **create new**.
|
|
15
|
+
**Quick start (no install):** `npx rizzo-css init` — choose **framework** (Vanilla, Astro, or Svelte), then **add to existing** or **create new**. **Existing** (or `npx rizzo-css add`) → drop in CSS + hand-pick components; you must add the `<link>` yourself (CLI prints the exact tag). **New** → choose **template** (Vanilla: full or minimal; Astro/Svelte: minimal) or **no template** (minimal base + hand-pick components), then package manager. Non-interactive: `npx rizzo-css init --yes --framework vanilla|astro|svelte`. Optional **rizzo-css.json** and `add --install-package`. All get the **same CSS and component styles**. To use the **official Svelte or Astro create command** plus Rizzo, create the app first, then run `npx rizzo-css add`:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
npm create svelte@latest my-app && cd my-app && npx rizzo-css add
|
|
@@ -41,7 +41,7 @@ You install **the same package** for every framework: `npm install rizzo-css`. N
|
|
|
41
41
|
|
|
42
42
|
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).
|
|
43
43
|
|
|
44
|
-
Scaffolds
|
|
44
|
+
Scaffolds in the package: `scaffold/vanilla/` (full or minimal template), `scaffold/astro-minimal/`, `scaffold/svelte-minimal/`, plus `scaffold/astro/` and `scaffold/svelte/` (component templates for hand-pick). Use `npx rizzo-css init` and choose **Create new project** to get a template-based scaffold or minimal base + hand-picked components; the stylesheet link is in the layout. **Add to existing** (or `add` command) drops in CSS + hand-pick components; **you must add the stylesheet `<link>` yourself** — the CLI prints the exact tag. Every scaffold includes LICENSE and README; Astro/Svelte minimal include package.json and .env.example.
|
|
45
45
|
|
|
46
46
|
## Use
|
|
47
47
|
|
|
@@ -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.18 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 -->
|
|
@@ -65,7 +65,7 @@ import 'rizzo-css';
|
|
|
65
65
|
|
|
66
66
|
Short URLs also work: `https://unpkg.com/rizzo-css@latest` and `https://cdn.jsdelivr.net/npm/rizzo-css@latest` (CDNs serve the default file from package.json). To verify after publish: open the URL in a browser or run `curl -I https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css` and expect `200 OK`.
|
|
67
67
|
|
|
68
|
-
Use the same class names and HTML structure as in the [component docs](https://rizzo-css.vercel.app/docs/components). **Vanilla JS**, Astro, and Svelte all use the same CSS and BEM markup; Astro/Svelte add framework component files
|
|
68
|
+
Use the same class names and HTML structure as in the [component docs](https://rizzo-css.vercel.app/docs/components). **Vanilla JS**, Astro, and Svelte all use the same CSS and BEM markup; Astro/Svelte add framework component files when you hand-pick. Each scaffold has a README; every install includes LICENSE. The **Vanilla** full template includes a Settings panel and toast; **Astro** and **Svelte** minimal layouts include theme persistence and toast (`showToast`, `removeToast`, `removeAllToasts`).
|
|
69
69
|
|
|
70
70
|
## Themes
|
|
71
71
|
|
package/bin/rizzo-css.js
CHANGED
|
@@ -10,21 +10,41 @@ const RIZZO_CONFIG_FILE = 'rizzo-css.json';
|
|
|
10
10
|
const COMMANDS = ['init', 'add', 'theme', 'help'];
|
|
11
11
|
const FRAMEWORKS = ['vanilla', 'astro', 'svelte'];
|
|
12
12
|
|
|
13
|
-
/** Template options
|
|
13
|
+
/** Template options for "create new" when user chooses "Use a template". When they choose "No template" they get minimal base + hand-pick components. */
|
|
14
14
|
const TEMPLATES = {
|
|
15
15
|
vanilla: [
|
|
16
16
|
{ value: 'full', label: 'Full — index.html + theme switcher, js/main.js, icons, README' },
|
|
17
17
|
{ value: 'minimal', label: 'Minimal — index.html + CSS link only' },
|
|
18
18
|
],
|
|
19
19
|
astro: [
|
|
20
|
-
{ value: '
|
|
21
|
-
{ value: 'minimal', label: 'Minimal — public/css + index.html with CSS link' },
|
|
20
|
+
{ value: 'minimal', label: 'Minimal — Astro with config, one page, README, LICENSE, .env.example' },
|
|
22
21
|
],
|
|
23
22
|
svelte: [
|
|
24
|
-
{ value: '
|
|
25
|
-
{ value: 'minimal', label: 'Minimal — static/css + index.html with CSS link' },
|
|
23
|
+
{ value: 'minimal', label: 'Minimal — SvelteKit with config, one page, README, LICENSE, .env.example' },
|
|
26
24
|
],
|
|
27
25
|
};
|
|
26
|
+
|
|
27
|
+
const VANILLA_MINIMAL_README = `# Vanilla + Rizzo CSS (minimal)
|
|
28
|
+
|
|
29
|
+
Minimal HTML + Rizzo CSS. Scaffolded with \`npx rizzo-css init --framework vanilla --template minimal\`.
|
|
30
|
+
|
|
31
|
+
- Open \`index.html\` in a browser or serve the folder with any static server.
|
|
32
|
+
- Edit \`index.html\` and add your content. CSS: \`css/rizzo.min.css\`.
|
|
33
|
+
- Set a theme: \`<html data-theme="github-dark-classic">\` (see \`npx rizzo-css theme\` for all themes).
|
|
34
|
+
|
|
35
|
+
Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
|
|
36
|
+
`;
|
|
37
|
+
|
|
38
|
+
const FALLBACK_MINIMAL_README = `# Rizzo CSS (minimal)
|
|
39
|
+
|
|
40
|
+
Minimal project with Rizzo CSS. Add a proper framework (e.g. \`npm create astro@latest\` or \`npm create svelte@latest\`), then run \`npx rizzo-css add\` in the project.
|
|
41
|
+
|
|
42
|
+
- This folder has a single HTML file and \`css/rizzo.min.css\`.
|
|
43
|
+
- For a full app with config and tooling, use the framework's create command and \`rizzo-css add\`.
|
|
44
|
+
|
|
45
|
+
Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
|
|
46
|
+
`;
|
|
47
|
+
|
|
28
48
|
// Dark and light themes (order matches scaffold optgroups and config/themes.ts)
|
|
29
49
|
const DARK_THEMES = [
|
|
30
50
|
'github-dark-classic',
|
|
@@ -86,6 +106,14 @@ function getCssPath() {
|
|
|
86
106
|
return join(getPackageRoot(), 'dist', 'rizzo.min.css');
|
|
87
107
|
}
|
|
88
108
|
|
|
109
|
+
/** Copy the package LICENSE into the project dir. Call after every scaffold so every install includes a license. */
|
|
110
|
+
function copyPackageLicense(projectDir) {
|
|
111
|
+
const licensePath = join(getPackageRoot(), 'LICENSE');
|
|
112
|
+
if (existsSync(licensePath)) {
|
|
113
|
+
copyFileSync(licensePath, join(projectDir, 'LICENSE'));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
89
117
|
/** Read rizzo-css.json from cwd. Returns { targetDir?, framework?, packageManager? } or null. */
|
|
90
118
|
function readRizzoConfig(cwd) {
|
|
91
119
|
if (!cwd || !existsSync(cwd)) return null;
|
|
@@ -189,7 +217,7 @@ async function promptPackageManager(projectDir) {
|
|
|
189
217
|
return selectMenu(options, '? Package manager (for install and run commands)');
|
|
190
218
|
}
|
|
191
219
|
|
|
192
|
-
/** Prompt user to select template for the chosen framework. Returns template value (full
|
|
220
|
+
/** Prompt user to select template for the chosen framework. Returns template value (full or minimal for Vanilla; minimal for Astro/Svelte). */
|
|
193
221
|
async function promptTemplate(framework) {
|
|
194
222
|
const options = TEMPLATES[framework] || TEMPLATES.vanilla;
|
|
195
223
|
return selectMenu(options, '? Template');
|
|
@@ -476,16 +504,16 @@ Usage (use your package manager):
|
|
|
476
504
|
bunx rizzo-css <command> [options]
|
|
477
505
|
|
|
478
506
|
Commands:
|
|
479
|
-
init
|
|
480
|
-
add
|
|
507
|
+
init New project = template (or no template → hand-pick components). Existing = drop in CSS + hand-pick. First: framework, then existing vs new.
|
|
508
|
+
add Same as init → existing: drop in CSS + hand-pick components (framework detected or from rizzo-css.json)
|
|
481
509
|
theme List all available themes (use in init or set data-theme on <html>)
|
|
482
510
|
help Show this help
|
|
483
511
|
|
|
484
512
|
Options (init):
|
|
485
|
-
--yes Non-interactive: scaffold new in cwd with defaults (framework: astro, template:
|
|
513
|
+
--yes Non-interactive: scaffold new in cwd with defaults (framework: astro, template: minimal)
|
|
486
514
|
--framework <fw> vanilla | astro | svelte (with --yes; otherwise first prompt)
|
|
487
|
-
--template <t> full
|
|
488
|
-
--install After scaffolding, run package manager install (
|
|
515
|
+
--template <t> full | minimal (Vanilla); minimal only (Astro/Svelte); with --yes defaults to full or minimal
|
|
516
|
+
--install After scaffolding, run package manager install (new project)
|
|
489
517
|
--no-install Do not run install
|
|
490
518
|
--write-config Write rizzo-css.json (targetDir, framework, packageManager) in the project
|
|
491
519
|
|
|
@@ -618,7 +646,7 @@ function getLinkHrefForTargetDir(framework, targetDir) {
|
|
|
618
646
|
return base ? base + '/' + file : file;
|
|
619
647
|
}
|
|
620
648
|
|
|
621
|
-
function cmdAdd(argv) {
|
|
649
|
+
async function cmdAdd(argv) {
|
|
622
650
|
const customPath = getFlagValue(argv, '--path');
|
|
623
651
|
const explicitFrameworkRaw = getFlagValue(argv, '--framework');
|
|
624
652
|
const explicitFramework = explicitFrameworkRaw && FRAMEWORKS.includes(explicitFrameworkRaw.toLowerCase()) ? explicitFrameworkRaw.toLowerCase() : null;
|
|
@@ -627,58 +655,19 @@ function cmdAdd(argv) {
|
|
|
627
655
|
|
|
628
656
|
const cwd = process.cwd();
|
|
629
657
|
const config = readRizzoConfig(cwd);
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
const targetDir = customPath || (config && config.targetDir) || paths.targetDir;
|
|
633
|
-
const targetFile = join(cwd, targetDir, 'rizzo.min.css');
|
|
634
|
-
const cssSource = getCssPath();
|
|
635
|
-
|
|
636
|
-
if (!existsSync(cssSource)) {
|
|
637
|
-
console.error('Error: Rizzo CSS build not found. Run from repo root: pnpm build:css');
|
|
638
|
-
process.exit(1);
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
const pm = (config && config.packageManager)
|
|
642
|
-
? getPackageManagerCommands({ agent: config.packageManager, command: config.packageManager })
|
|
643
|
-
: resolvePackageManager(cwd);
|
|
644
|
-
const addPkg = pm.add('rizzo-css');
|
|
645
|
-
const linkHref = customPath ? getLinkHrefForTargetDir(framework, targetDir) : paths.linkHref;
|
|
646
|
-
const cliExample = pm.dlx('rizzo-css theme');
|
|
647
|
-
const initExample = pm.dlx('rizzo-css init');
|
|
648
|
-
|
|
649
|
-
mkdirSync(join(cwd, targetDir), { recursive: true });
|
|
650
|
-
copyFileSync(cssSource, targetFile);
|
|
651
|
-
console.log('\n✓ Rizzo CSS copied to ' + targetFile);
|
|
652
|
-
|
|
658
|
+
const options = { config, targetDir: customPath || (config && config.targetDir) || undefined };
|
|
659
|
+
await runAddToExisting(explicitFramework, options);
|
|
653
660
|
if (installPackage && !noInstall) {
|
|
661
|
+
const pm = (config && config.packageManager)
|
|
662
|
+
? getPackageManagerCommands({ agent: config.packageManager, command: config.packageManager })
|
|
663
|
+
: resolvePackageManager(cwd);
|
|
664
|
+
const addPkg = pm.add('rizzo-css');
|
|
654
665
|
console.log('\nRunning: ' + addPkg);
|
|
655
666
|
const code = runInDir(cwd, addPkg);
|
|
656
667
|
if (code !== 0) {
|
|
657
668
|
console.error('\nInstall failed (exit ' + code + '). You can run manually: ' + addPkg);
|
|
658
669
|
}
|
|
659
670
|
}
|
|
660
|
-
|
|
661
|
-
if (framework === 'svelte') {
|
|
662
|
-
console.log('\nDetected Svelte/SvelteKit. Add to your root layout (e.g. src/app.html):\n');
|
|
663
|
-
console.log(' <link rel="stylesheet" href="' + linkHref + '" />');
|
|
664
|
-
console.log('\nSet a theme on <html>: data-theme="github-dark-classic" (see: ' + cliExample + ')');
|
|
665
|
-
console.log('\nTo add Rizzo Svelte components later: copy from this package\'s scaffold or run ' + initExample + ' and pick Svelte + components in an empty folder, then copy the generated files.\n');
|
|
666
|
-
} else if (framework === 'astro') {
|
|
667
|
-
console.log('\nDetected Astro. Add to your layout (e.g. src/layouts/Layout.astro):\n');
|
|
668
|
-
console.log(' <link rel="stylesheet" href="' + linkHref + '" />');
|
|
669
|
-
console.log('\nSet a theme on <html>: data-theme="github-dark-classic" (see: ' + cliExample + ')\n');
|
|
670
|
-
} else {
|
|
671
|
-
console.log('\nAdd to your HTML or layout:\n');
|
|
672
|
-
console.log(' <link rel="stylesheet" href="' + linkHref + '" />');
|
|
673
|
-
if (framework === 'vanilla') {
|
|
674
|
-
console.log('\nVanilla JS: same CSS and component classes as Astro/Svelte. Use the same BEM markup from the docs.');
|
|
675
|
-
}
|
|
676
|
-
console.log('\nSet a theme on <html>: data-theme="github-dark-classic" (see: ' + cliExample + ')');
|
|
677
|
-
}
|
|
678
|
-
if (!installPackage || noInstall) {
|
|
679
|
-
console.log('\nTo install the package (CLI + components): ' + addPkg);
|
|
680
|
-
}
|
|
681
|
-
console.log('\nDocs: https://rizzo-css.vercel.app\n');
|
|
682
671
|
}
|
|
683
672
|
|
|
684
673
|
function getScaffoldSvelteDir() {
|
|
@@ -720,12 +709,12 @@ function copyRizzoIcons(projectDir, framework) {
|
|
|
720
709
|
}
|
|
721
710
|
}
|
|
722
711
|
|
|
723
|
-
function
|
|
724
|
-
return join(getPackageRoot(), 'scaffold', 'astro-
|
|
712
|
+
function getScaffoldAstroMinimalDir() {
|
|
713
|
+
return join(getPackageRoot(), 'scaffold', 'astro-minimal');
|
|
725
714
|
}
|
|
726
715
|
|
|
727
|
-
function
|
|
728
|
-
return join(getPackageRoot(), 'scaffold', 'svelte-
|
|
716
|
+
function getScaffoldSvelteMinimalDir() {
|
|
717
|
+
return join(getPackageRoot(), 'scaffold', 'svelte-minimal');
|
|
729
718
|
}
|
|
730
719
|
|
|
731
720
|
function copyDirRecursive(src, dest) {
|
|
@@ -847,7 +836,7 @@ function copyAstroComponents(projectDir, selectedNames) {
|
|
|
847
836
|
}
|
|
848
837
|
}
|
|
849
838
|
|
|
850
|
-
/** Add Rizzo CSS
|
|
839
|
+
/** Add Rizzo CSS and hand-picked components to an existing project in cwd. frameworkOverride: when set (from init), skip framework prompt. options: { config?, targetDir? }. */
|
|
851
840
|
async function runAddToExisting(frameworkOverride, options) {
|
|
852
841
|
const cwd = process.cwd();
|
|
853
842
|
const config = (options && options.config) || readRizzoConfig(cwd);
|
|
@@ -904,7 +893,8 @@ async function runAddToExisting(frameworkOverride, options) {
|
|
|
904
893
|
}
|
|
905
894
|
|
|
906
895
|
const paths = getFrameworkCssPaths(framework);
|
|
907
|
-
const
|
|
896
|
+
const targetDirRaw = (options && options.targetDir) || (config && config.targetDir) || paths.targetDir;
|
|
897
|
+
const targetDir = join(cwd, targetDirRaw);
|
|
908
898
|
const cssTarget = join(targetDir, 'rizzo.min.css');
|
|
909
899
|
mkdirSync(targetDir, { recursive: true });
|
|
910
900
|
copyFileSync(cssSource, cssTarget);
|
|
@@ -916,7 +906,7 @@ async function runAddToExisting(frameworkOverride, options) {
|
|
|
916
906
|
copyAstroComponents(cwd, selectedComponents);
|
|
917
907
|
}
|
|
918
908
|
|
|
919
|
-
const linkHref = paths.linkHref;
|
|
909
|
+
const linkHref = (options && options.targetDir) ? getLinkHrefForTargetDir(framework, options.targetDir) : paths.linkHref;
|
|
920
910
|
const pm = (config && config.packageManager)
|
|
921
911
|
? getPackageManagerCommands({ agent: config.packageManager, command: config.packageManager })
|
|
922
912
|
: resolvePackageManager(cwd);
|
|
@@ -963,17 +953,17 @@ async function cmdInit(argv) {
|
|
|
963
953
|
let initMode;
|
|
964
954
|
let name = '';
|
|
965
955
|
let theme, defaultDark, defaultLight;
|
|
966
|
-
let selectedComponents = [];
|
|
967
956
|
let selectedPm;
|
|
968
957
|
let selectedTemplate;
|
|
958
|
+
let selectedComponents = [];
|
|
969
959
|
|
|
970
960
|
if (yes) {
|
|
971
961
|
const frameworkArg = getFlagValue(argv, '--framework');
|
|
972
962
|
framework = (frameworkArg && FRAMEWORKS.includes(frameworkArg.toLowerCase())) ? frameworkArg.toLowerCase() : (config && config.framework) || 'astro';
|
|
973
963
|
initMode = 'new';
|
|
974
964
|
const templateArg = getFlagValue(argv, '--template');
|
|
975
|
-
|
|
976
|
-
|
|
965
|
+
const rawTemplate = (templateArg && (templateArg === 'full' || templateArg === 'minimal')) ? templateArg : (framework === 'vanilla' ? 'full' : 'minimal');
|
|
966
|
+
selectedTemplate = rawTemplate;
|
|
977
967
|
const projectDir = cwd;
|
|
978
968
|
const resolved = resolvePackageManager(projectDir, cwd);
|
|
979
969
|
selectedPm = (config && config.packageManager) || resolved.agent || 'npm';
|
|
@@ -1012,17 +1002,45 @@ async function cmdInit(argv) {
|
|
|
1012
1002
|
);
|
|
1013
1003
|
name = projectChoice === 'name' ? await question('Project name (folder name): ') : '';
|
|
1014
1004
|
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1005
|
+
const templateOrHandpick = await selectMenu(
|
|
1006
|
+
[
|
|
1007
|
+
{ value: 'template', label: 'Use a template (Full or Minimal — ready-made scaffold)' },
|
|
1008
|
+
{ value: 'handpick', label: 'No template — minimal base + hand-pick components' },
|
|
1009
|
+
],
|
|
1010
|
+
'? Template or hand-pick components?'
|
|
1011
|
+
);
|
|
1021
1012
|
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1013
|
+
if (templateOrHandpick === 'template') {
|
|
1014
|
+
selectedTemplate = await promptTemplate(framework);
|
|
1015
|
+
const templateHasThemeSwitcher = framework === 'vanilla' && selectedTemplate === 'full';
|
|
1016
|
+
if (templateHasThemeSwitcher) {
|
|
1017
|
+
const themeOut = await promptThemes();
|
|
1018
|
+
theme = themeOut.theme;
|
|
1019
|
+
defaultDark = themeOut.defaultDark;
|
|
1020
|
+
defaultLight = themeOut.defaultLight;
|
|
1021
|
+
} else {
|
|
1022
|
+
theme = 'system';
|
|
1023
|
+
defaultDark = DARK_THEMES[0];
|
|
1024
|
+
defaultLight = LIGHT_THEMES[0];
|
|
1025
|
+
}
|
|
1026
|
+
} else {
|
|
1027
|
+
selectedTemplate = 'handpick';
|
|
1028
|
+
const componentList = framework === 'svelte' ? SVELTE_COMPONENTS : framework === 'astro' ? ASTRO_COMPONENTS : [];
|
|
1029
|
+
selectedComponents = componentList.length > 0
|
|
1030
|
+
? await promptComponentChoice(componentList, framework)
|
|
1031
|
+
: [];
|
|
1032
|
+
const wantsThemeSwitcher = selectedComponents.includes('ThemeSwitcher');
|
|
1033
|
+
if (wantsThemeSwitcher) {
|
|
1034
|
+
const themeOut = await promptThemes();
|
|
1035
|
+
theme = themeOut.theme;
|
|
1036
|
+
defaultDark = themeOut.defaultDark;
|
|
1037
|
+
defaultLight = themeOut.defaultLight;
|
|
1038
|
+
} else {
|
|
1039
|
+
theme = 'system';
|
|
1040
|
+
defaultDark = DARK_THEMES[0];
|
|
1041
|
+
defaultLight = LIGHT_THEMES[0];
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1026
1044
|
|
|
1027
1045
|
const projectDirForPm = name ? join(cwd, name) : cwd;
|
|
1028
1046
|
selectedPm = await promptPackageManager(projectDirForPm);
|
|
@@ -1049,11 +1067,13 @@ async function cmdInit(argv) {
|
|
|
1049
1067
|
'{{PROJECT_NAME}}': projectNamePkg,
|
|
1050
1068
|
};
|
|
1051
1069
|
|
|
1052
|
-
const
|
|
1053
|
-
const
|
|
1070
|
+
const astroMinimalDir = getScaffoldAstroMinimalDir();
|
|
1071
|
+
const svelteMinimalDir = getScaffoldSvelteMinimalDir();
|
|
1054
1072
|
const pathsForScaffold = getFrameworkCssPaths(framework);
|
|
1055
|
-
const
|
|
1056
|
-
const
|
|
1073
|
+
const useHandpickAstro = selectedTemplate === 'handpick' && framework === 'astro' && existsSync(astroMinimalDir);
|
|
1074
|
+
const useHandpickSvelte = selectedTemplate === 'handpick' && framework === 'svelte' && existsSync(svelteMinimalDir);
|
|
1075
|
+
const useAstroMinimal = framework === 'astro' && selectedTemplate === 'minimal' && existsSync(astroMinimalDir);
|
|
1076
|
+
const useSvelteMinimal = framework === 'svelte' && selectedTemplate === 'minimal' && existsSync(svelteMinimalDir);
|
|
1057
1077
|
const useVanillaFull = framework === 'vanilla' && selectedTemplate === 'full' && existsSync(getScaffoldVanillaIndex());
|
|
1058
1078
|
|
|
1059
1079
|
let cssTarget;
|
|
@@ -1074,32 +1094,54 @@ async function cmdInit(argv) {
|
|
|
1074
1094
|
</html>
|
|
1075
1095
|
`;
|
|
1076
1096
|
|
|
1077
|
-
if (
|
|
1097
|
+
if (useHandpickAstro) {
|
|
1078
1098
|
mkdirSync(projectDir, { recursive: true });
|
|
1079
|
-
copyDirRecursiveWithReplacements(
|
|
1099
|
+
copyDirRecursiveWithReplacements(astroMinimalDir, projectDir, replacements);
|
|
1080
1100
|
mkdirSync(join(projectDir, 'public', 'css'), { recursive: true });
|
|
1081
1101
|
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
1082
1102
|
copyFileSync(cssSource, cssTarget);
|
|
1083
1103
|
if (statSync(cssTarget).size < 5000) {
|
|
1084
1104
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1085
1105
|
}
|
|
1086
|
-
|
|
1106
|
+
copyPackageLicense(projectDir);
|
|
1087
1107
|
if (selectedComponents.length > 0) {
|
|
1108
|
+
copyRizzoIcons(projectDir, 'astro');
|
|
1088
1109
|
copyAstroComponents(projectDir, selectedComponents);
|
|
1089
1110
|
}
|
|
1090
|
-
} else if (
|
|
1111
|
+
} else if (useHandpickSvelte) {
|
|
1091
1112
|
mkdirSync(projectDir, { recursive: true });
|
|
1092
|
-
copyDirRecursiveWithReplacements(
|
|
1113
|
+
copyDirRecursiveWithReplacements(svelteMinimalDir, projectDir, replacements);
|
|
1093
1114
|
mkdirSync(join(projectDir, 'static', 'css'), { recursive: true });
|
|
1094
1115
|
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
1095
1116
|
copyFileSync(cssSource, cssTarget);
|
|
1096
1117
|
if (statSync(cssTarget).size < 5000) {
|
|
1097
1118
|
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1098
1119
|
}
|
|
1099
|
-
|
|
1120
|
+
copyPackageLicense(projectDir);
|
|
1100
1121
|
if (selectedComponents.length > 0) {
|
|
1122
|
+
copyRizzoIcons(projectDir, 'svelte');
|
|
1101
1123
|
copySvelteComponents(projectDir, selectedComponents);
|
|
1102
1124
|
}
|
|
1125
|
+
} else if (useAstroMinimal) {
|
|
1126
|
+
mkdirSync(projectDir, { recursive: true });
|
|
1127
|
+
copyDirRecursiveWithReplacements(astroMinimalDir, projectDir, replacements);
|
|
1128
|
+
mkdirSync(join(projectDir, 'public', 'css'), { recursive: true });
|
|
1129
|
+
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
1130
|
+
copyFileSync(cssSource, cssTarget);
|
|
1131
|
+
if (statSync(cssTarget).size < 5000) {
|
|
1132
|
+
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1133
|
+
}
|
|
1134
|
+
copyPackageLicense(projectDir);
|
|
1135
|
+
} else if (useSvelteMinimal) {
|
|
1136
|
+
mkdirSync(projectDir, { recursive: true });
|
|
1137
|
+
copyDirRecursiveWithReplacements(svelteMinimalDir, projectDir, replacements);
|
|
1138
|
+
mkdirSync(join(projectDir, 'static', 'css'), { recursive: true });
|
|
1139
|
+
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
1140
|
+
copyFileSync(cssSource, cssTarget);
|
|
1141
|
+
if (statSync(cssTarget).size < 5000) {
|
|
1142
|
+
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1143
|
+
}
|
|
1144
|
+
copyPackageLicense(projectDir);
|
|
1103
1145
|
} else if (useVanillaFull) {
|
|
1104
1146
|
const cssDir = join(projectDir, pathsForScaffold.targetDir);
|
|
1105
1147
|
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
@@ -1132,6 +1174,7 @@ async function cmdInit(argv) {
|
|
|
1132
1174
|
mainJs = mainJs.replace(/\{\{DEFAULT_DARK\}\}/g, defaultDark).replace(/\{\{DEFAULT_LIGHT\}\}/g, defaultLight);
|
|
1133
1175
|
writeFileSync(join(projectDir, 'js', 'main.js'), mainJs, 'utf8');
|
|
1134
1176
|
}
|
|
1177
|
+
copyPackageLicense(projectDir);
|
|
1135
1178
|
} else {
|
|
1136
1179
|
const cssDir = join(projectDir, pathsForScaffold.targetDir);
|
|
1137
1180
|
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
@@ -1143,22 +1186,19 @@ async function cmdInit(argv) {
|
|
|
1143
1186
|
if (framework === 'vanilla') {
|
|
1144
1187
|
indexPath = join(projectDir, 'index.html');
|
|
1145
1188
|
writeFileSync(indexPath, minimalHtml, 'utf8');
|
|
1189
|
+
writeFileSync(join(projectDir, 'README.md'), VANILLA_MINIMAL_README, 'utf8');
|
|
1146
1190
|
} else if (framework === 'astro') {
|
|
1147
1191
|
indexPath = join(projectDir, 'public', 'index.html');
|
|
1148
1192
|
mkdirSync(join(projectDir, 'public'), { recursive: true });
|
|
1149
1193
|
writeFileSync(indexPath, minimalHtml, 'utf8');
|
|
1194
|
+
writeFileSync(join(projectDir, 'README.md'), FALLBACK_MINIMAL_README, 'utf8');
|
|
1150
1195
|
} else {
|
|
1151
1196
|
indexPath = join(projectDir, 'static', 'index.html');
|
|
1152
1197
|
mkdirSync(join(projectDir, 'static'), { recursive: true });
|
|
1153
1198
|
writeFileSync(indexPath, minimalHtml, 'utf8');
|
|
1199
|
+
writeFileSync(join(projectDir, 'README.md'), FALLBACK_MINIMAL_README, 'utf8');
|
|
1154
1200
|
}
|
|
1155
|
-
|
|
1156
|
-
copyRizzoIcons(projectDir, 'svelte');
|
|
1157
|
-
copySvelteComponents(projectDir, selectedComponents);
|
|
1158
|
-
} else if (framework === 'astro' && selectedComponents.length > 0) {
|
|
1159
|
-
copyRizzoIcons(projectDir, 'astro');
|
|
1160
|
-
copyAstroComponents(projectDir, selectedComponents);
|
|
1161
|
-
}
|
|
1201
|
+
copyPackageLicense(projectDir);
|
|
1162
1202
|
}
|
|
1163
1203
|
|
|
1164
1204
|
console.log('\n✓ Project ready at ' + projectDir);
|
|
@@ -1175,7 +1215,7 @@ async function cmdInit(argv) {
|
|
|
1175
1215
|
const nextStep = pm.install + ' && ' + pm.run('dev');
|
|
1176
1216
|
const runPrefix = name ? 'cd ' + name + ' && ' : '';
|
|
1177
1217
|
|
|
1178
|
-
if (runInstallAfterScaffold && !noInstall && (
|
|
1218
|
+
if (runInstallAfterScaffold && !noInstall && (useHandpickAstro || useHandpickSvelte || useAstroMinimal || useSvelteMinimal)) {
|
|
1179
1219
|
console.log('\nRunning: ' + pm.install);
|
|
1180
1220
|
const code = runInDir(projectDir, pm.install);
|
|
1181
1221
|
if (code !== 0) {
|
|
@@ -1189,15 +1229,20 @@ async function cmdInit(argv) {
|
|
|
1189
1229
|
console.log('\n - Wrote ' + RIZZO_CONFIG_FILE);
|
|
1190
1230
|
}
|
|
1191
1231
|
|
|
1192
|
-
if (
|
|
1193
|
-
|
|
1194
|
-
console.log(' -
|
|
1232
|
+
if (useHandpickAstro || useHandpickSvelte) {
|
|
1233
|
+
const fw = useHandpickAstro ? 'Astro' : 'SvelteKit';
|
|
1234
|
+
console.log(' - Minimal ' + fw + ' base + ' + selectedComponents.length + ' hand-picked component(s). Run: ' + runPrefix + nextStep);
|
|
1235
|
+
}
|
|
1236
|
+
if (useAstroMinimal) {
|
|
1237
|
+
console.log(' - Minimal Astro project (config, README, LICENSE, .env.example). Run: ' + runPrefix + nextStep);
|
|
1195
1238
|
}
|
|
1196
|
-
if (
|
|
1197
|
-
console.log(' -
|
|
1198
|
-
console.log(' - Install dependencies first (required before dev). Icons: src/lib/rizzo/icons/ (Svelte components)');
|
|
1239
|
+
if (useSvelteMinimal) {
|
|
1240
|
+
console.log(' - Minimal SvelteKit project (config, README, LICENSE, .env.example). Run: ' + runPrefix + nextStep);
|
|
1199
1241
|
}
|
|
1200
|
-
if (
|
|
1242
|
+
if (selectedTemplate === 'handpick' && framework === 'vanilla') {
|
|
1243
|
+
console.log(' - Vanilla minimal base (index.html + CSS, README, LICENSE). No component files for Vanilla; use BEM markup from docs.');
|
|
1244
|
+
}
|
|
1245
|
+
if ((framework === 'astro' || framework === 'svelte') && !useAstroMinimal && !useSvelteMinimal && !useHandpickAstro && !useHandpickSvelte) {
|
|
1201
1246
|
const fw = framework === 'svelte' ? 'Svelte' : 'Astro';
|
|
1202
1247
|
const createExample = getCreateProjectExample(pm, framework);
|
|
1203
1248
|
console.log('\n - Minimal template (CSS + index). To get a full app: ' + createExample + ', then cd into the project and run ' + pm.dlx('rizzo-css add') + '.');
|
|
@@ -1223,7 +1268,10 @@ function main() {
|
|
|
1223
1268
|
}
|
|
1224
1269
|
|
|
1225
1270
|
if (command === 'add') {
|
|
1226
|
-
cmdAdd(argv)
|
|
1271
|
+
cmdAdd(argv).catch((err) => {
|
|
1272
|
+
console.error(err);
|
|
1273
|
+
process.exit(1);
|
|
1274
|
+
});
|
|
1227
1275
|
return;
|
|
1228
1276
|
}
|
|
1229
1277
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rizzo-css",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"scripts": {
|
|
5
|
-
"prepublishOnly": "cd ../.. && pnpm run lint:css:fix && pnpm run build:css && node scripts/copy-scaffold.js && node scripts/prepare-
|
|
5
|
+
"prepublishOnly": "cd ../.. && pnpm run lint:css:fix && pnpm run build:css && node scripts/copy-scaffold.js && node scripts/prepare-vanilla-scaffold.js"
|
|
6
6
|
},
|
|
7
7
|
"description": "A modern CSS design system with semantic theming, 14 themes, and accessible components (BEM). Optimized for Vanilla JS, Astro, and Svelte; same CSS and component styles for all.",
|
|
8
8
|
"style": "dist/rizzo.min.css",
|
|
@@ -25,7 +25,11 @@
|
|
|
25
25
|
"LICENSE",
|
|
26
26
|
".env.example",
|
|
27
27
|
"bin",
|
|
28
|
-
"scaffold"
|
|
28
|
+
"scaffold/astro",
|
|
29
|
+
"scaffold/svelte",
|
|
30
|
+
"scaffold/vanilla",
|
|
31
|
+
"scaffold/astro-minimal",
|
|
32
|
+
"scaffold/svelte-minimal"
|
|
29
33
|
],
|
|
30
34
|
"keywords": [
|
|
31
35
|
"css",
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Astro + Rizzo CSS (minimal)
|
|
2
|
+
|
|
3
|
+
Minimal Astro project with Rizzo CSS. Scaffolded with `npx rizzo-css init --framework astro --template minimal`.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
1. Copy environment example (optional):
|
|
8
|
+
```bash
|
|
9
|
+
cp .env.example .env
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
2. Install dependencies:
|
|
13
|
+
```bash
|
|
14
|
+
pnpm install
|
|
15
|
+
# or: npm install
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
3. Start the dev server:
|
|
19
|
+
```bash
|
|
20
|
+
pnpm dev
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Project structure
|
|
24
|
+
|
|
25
|
+
- `astro.config.mjs` — Astro configuration
|
|
26
|
+
- `src/layouts/Layout.astro` — Layout with Rizzo CSS and theme (edit `data-theme` for default)
|
|
27
|
+
- `src/pages/index.astro` — Home page
|
|
28
|
+
- `public/css/rizzo.min.css` — Rizzo CSS bundle
|
|
29
|
+
|
|
30
|
+
## Commands
|
|
31
|
+
|
|
32
|
+
- `pnpm dev` — Start dev server
|
|
33
|
+
- `pnpm build` — Build for production
|
|
34
|
+
- `pnpm preview` — Preview production build
|
|
35
|
+
|
|
36
|
+
Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
/* Placeholders replaced by rizzo-css CLI when scaffolding */
|
|
3
|
+
const DATA_THEME = '{{DATA_THEME}}';
|
|
4
|
+
const THEME_LIST_COMMENT = '{{THEME_LIST_COMMENT}}';
|
|
5
|
+
interface Props {
|
|
6
|
+
title?: string;
|
|
7
|
+
}
|
|
8
|
+
const { title = '{{TITLE}}' } = Astro.props;
|
|
9
|
+
---
|
|
10
|
+
<!doctype html>
|
|
11
|
+
<html lang="en" data-theme={DATA_THEME}>{THEME_LIST_COMMENT}
|
|
12
|
+
<head>
|
|
13
|
+
<meta charset="UTF-8" />
|
|
14
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
15
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
16
|
+
<script is:inline>
|
|
17
|
+
(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){}})();
|
|
18
|
+
</script>
|
|
19
|
+
<link rel="stylesheet" href="/css/rizzo.min.css" />
|
|
20
|
+
<title>{title}</title>
|
|
21
|
+
</head>
|
|
22
|
+
<body>
|
|
23
|
+
<a href="#main-content" class="skip-link">Skip to main content</a>
|
|
24
|
+
<main id="main-content">
|
|
25
|
+
<slot />
|
|
26
|
+
</main>
|
|
27
|
+
</body>
|
|
28
|
+
</html>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
import Layout from '../layouts/Layout.astro';
|
|
3
|
+
const TITLE = '{{TITLE}}';
|
|
4
|
+
---
|
|
5
|
+
<Layout title={TITLE}>
|
|
6
|
+
<div class="layout__container" style="padding: var(--spacing-12) var(--spacing-4); min-height: 100vh;">
|
|
7
|
+
<h1>Hello, Rizzo CSS</h1>
|
|
8
|
+
<p>Edit <code>src/pages/index.astro</code> and add your content. Docs: <a href="https://rizzo-css.vercel.app">rizzo-css.vercel.app</a></p>
|
|
9
|
+
</div>
|
|
10
|
+
</Layout>
|