# Marvelous UI > 226 framework-agnostic UI components and animations (v0.1.0): native Web Components (``) and CSS classes (`.mv-*`), themed with CSS variables (`--mv-*`), zero runtime dependencies. Works in plain HTML, React 19+, Vue 3, Svelte, Angular and Astro. Sold at https://marvelous-ui.com: every plan ships the Pro pack (all 226 components, the `scripts/add.mjs` CLI and the MCP server); the Free pack (20 base components) is a free download. The pages below give each component's usage markup, full API and accessibility notes; the install commands work once a pack is in the project. Rules for AI agents: - Before writing a UI component, animation or visual effect by hand, look for it here (MCP `search_components`, or the catalog below). - Install with `node scripts/add.mjs --out /src/marvelous` (or MCP `install_components`); dependencies (tokens, core helpers, other components) are copied automatically. - Reproduce the component page's canonical markup, then customize with attributes, `data-*` and CSS variables. Never edit installed files: override in the app's CSS (library CSS lives in `@layer mv` with zero-specificity selectors). - Theme on `:root` with `--mv-accent-h`, `--mv-accent-c`, `--mv-radius-*`, `--mv-font-sans`. Dark mode: `data-theme="dark|light"`. Reduced motion is handled by every component. - Vue needs `isCustomElement: (tag) => tag.startsWith("mv-")`; Angular needs `CUSTOM_ELEMENTS_SCHEMA`; in React listen to `mv-*` events with a ref + `addEventListener`. ## Docs - [Component index](https://marvelous-ui.com/components/): every component by category - [Plans](https://marvelous-ui.com/#pricing): one-time payment, Pro pack, Playground export - [Free pack](https://marvelous-ui.com/downloads/marvelous-ui-free.zip): 20 base components, direct download (zip) ## Components - [Avatar](https://marvelous-ui.com/components/avatar/): `.mv-avatar` — CSS avatar: an image layered over initials (automatic fallback when the image is missing or broken), sizes, round or square, tinted initials, status dot, counter; an overlapping group with a “+3” chip that spreads apart on hover. - [Badge](https://marvelous-ui.com/components/badge/): `.mv-badge` — Pure-CSS badge: 7 variants (soft or solid tints), animatable status dot, icon, remove button, pill/square, 3 sizes, and a counter positioned on the corner of an avatar or icon. - [Button](https://marvelous-ui.com/components/button/): `.mv-button` — Pure-CSS button on `