rizzo-css

A modern CSS design system with semantic theming, 14 themes, accessible components (BEM), and pre-built blocks. Same CSS and components for Vanilla JS, Astro, Svelte, React, and Vue; CLI scaffolds all five; blocks include Landing hero, Pricing, Dashboard,
11,599 1
Install
npm install rizzo-css
Latest Version:0.0.89
License:MIT
Last Updated:Oct 16, 2026
Links: GitHub  ·  npm
Maintainer: mingle1989

rizzo-css

A modern CSS design system with semantic theming, 14 built-in themes, and accessible components (BEM). The same CSS and component styles ship for every option: Vanilla JS, Astro, Svelte, React, and Vue. Framework-agnostic: use with any stack or plain HTML.

Install

npm install rizzo-css
# or
pnpm add rizzo-css
# or
yarn add rizzo-css
# or
bun add rizzo-css

The package works with npm, pnpm, yarn, and bun. After install, run the CLI with your manager’s runner: npx (npm/yarn), pnpm dlx, or bunx.

Quick start (no install): npx rizzo-css init — choose framework (Vanilla, Astro, Svelte, React, or Vue), then add to existing or create new. Both flows use the same template choice: Landing (hero/features), Docs (sidebar + sample doc), Dashboard (sidebar + stats/table), or Full (clone of the docs site). Landing/Docs/Dashboard = component picker (all 58 or pick). We never overwrite your existing files; any skipped content is in RIZZO-SETUP.md. You must add the <link> yourself (CLI prints the exact tag). Non-interactive: npx rizzo-css init --yes --framework vanilla|astro|svelte|react|vue --template landing|docs|dashboard|full or npx rizzo-css add --template landing|docs|dashboard|full. 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:

npm create svelte@latest my-app && cd my-app && npx rizzo-css add
npm create astro@latest my-app   && cd my-app && npx rizzo-css add

Running the CLI: npm → npx; pnpm → pnpm dlx; yarn → npx (Yarn 1 has no dlx; works with Yarn 2+ too); bun → bunx. The docs site tabs show the correct command for each manager.

Same flow for new and existing: Both prompt for Landing | Docs | Dashboard | Full. Landing/Docs/Dashboard = component picker (all 58 or pick). Full = site clone (no picker); also writes RIZZO-SNIPPET.txt (link + theme) unless --no-snippet. npx rizzo-css doctor checks config and CSS path. npx rizzo-css theme lists themes.

Create new (init → new) Add to existing (add or init → existing)
Template Landing | Docs | Dashboard | Full (same for both) Landing | Docs | Dashboard | Full (same for both)
Writes CSS, fonts, icons, sfx, RIZZO-SETUP.md; Full = + components, RIZZO-SNIPPET.txt; config, LICENSE-RIZZO, README-RIZZO, .gitignore Same assets per template; Full = + components + RIZZO-SNIPPET.txt; config
Overwrites Never — snippets in RIZZO-SETUP.md Never — snippets in RIZZO-SETUP.md; CLI prints the link tag

One package, any framework

You install the same package for every framework: npm install rizzo-css. No separate rizzo-css-astro or rizzo-css-svelte packages.

Framework Install Use the CSS Optional
Vanilla npm install rizzo-css or CDN Link node_modules/rizzo-css/dist/rizzo.min.css or use CDN (see below) None; write HTML with the same BEM classes as the docs
Astro npm install rizzo-css import 'rizzo-css' in layout or link from public/ Copy components from node_modules/rizzo-css/scaffold/astro/ or use npx rizzo-css add with components
Svelte npm install rizzo-css import 'rizzo-css' in root layout or link from static/ Copy components from node_modules/rizzo-css/scaffold/svelte/ or use npx rizzo-css add with components
React npm install rizzo-css import 'rizzo-css' in root or link from public/ Copy components from node_modules/rizzo-css/scaffold/react/ or use npx rizzo-css add with components
Vue npm install rizzo-css import 'rizzo-css' in main entry or link from public/ Copy components from node_modules/rizzo-css/scaffold/vue/ or use npx rizzo-css add with components

CSS paths (CLI and scaffolds):

Framework Where the CLI copies CSS <link href="..."> in your HTML/layout
Vanilla css/rizzo.min.css (project root) css/rizzo.min.css (relative)
Astro public/css/rizzo.min.css /css/rizzo.min.css (Astro serves public/ at /)
Svelte static/css/rizzo.min.css /css/rizzo.min.css (SvelteKit serves static/ at /)
React public/css/rizzo.min.css (or Vite index.html link) /css/rizzo.min.css or import in entry
Vue public/css/rizzo.min.css (or Vite link) /css/rizzo.min.css or import in main

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).

Scaffolds in the package: scaffold/vanilla/ (and variants), scaffold/astro/, scaffold/svelte/, scaffold/react/, scaffold/vue/ (base + variants; all components), and scaffold/config/ (font pairs for Settings). Every framework gets the same four templates: Landing | Docs | Dashboard | Full. Landing/Docs/Dashboard = component picker (all or pick). Full = site clone (all components). We never overwrite your existing files; skipped content goes in RIZZO-SETUP.md. You must add the stylesheet <link> yourself (CLI prints the exact tag). Every scaffold includes LICENSE-RIZZO, README-RIZZO.md, and .gitignore; Astro/Svelte include package.json and .env.example.

Use

Import or link the CSS once in your app (e.g. root layout or main entry).

With a bundler (Vite, Astro, webpack, etc.):

import 'rizzo-css';

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:

<!-- unpkg (pin version: replace @latest with @<version> or any version) -->
<link rel="stylesheet" href="https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css" />

<!-- or jsDelivr -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/rizzo-css@latest/dist/rizzo.min.css" />

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.

Use the same class names and HTML structure as in the component docs. Vanilla JS, Astro, Svelte, React, and Vue all use the same CSS and BEM markup; choose Full to add framework component files via the component picker. Each scaffold has README-RIZZO.md; every install includes LICENSE-RIZZO. The Navbar in every scaffold uses flat links (Docs, Components, Blocks, Themes, Colors), default Cat logo in the brand link (optional logo prop for a custom image), Search, and Settings. The Vanilla Full template includes the same navbar (from shared snippet), Settings panel, and toast; Astro and Svelte Full scaffolds include theme persistence and toast (showToast, removeToast, removeAllToasts).

Themes

Set the theme via data-theme on <html>:

<html lang="en" data-theme="github-dark-classic">

Theme IDs and full docs: Theming.

Docs

Full documentation: rizzo-css.vercel.app — Docs (Getting Started, Design System, Theming, Accessibility), Components, Blocks (pre-built layouts), Themes, Colors, and usage for Vanilla, Astro, Svelte, React, and Vue.

Package contents

In addition to dist/, bin/, and scaffold/, the package includes LICENSE (MIT) and .env.example (optional; for projects that add search, e.g. Algolia — copy to .env and set your own values).

License

MIT

Related Packages

@suryanshp1/zencss

A CSS-first utility framework with semantic tokens, four themes, accessible reci...

0 0
design-warden

CI check for design-system drift in frontend pull requests, built for UI written...

556
@pelagic-ui/illustrations

Pelagic UI illustrations — 24 original, themeable SVG empty-state scenes (no dat...

204 0
scrolly-video

A component for scroll-based (or other externally controlled) playback.

57,486 1,095
@any-design/anyui

A cute multi-framework UI component library

4,478 26

Version History

Version Released License
0.0.89 MIT
0.0.88 MIT
0.0.87 MIT
0.0.86 MIT
0.0.85 MIT