Getting Started
Nana UI is a professional design system built with Lit web components. The components are standards-based custom elements, so they work across any framework — React, Vue, Svelte, or vanilla JavaScript — with consistent APIs, events, and slots.
Installation
Section titled “Installation”# npmnpm install @nana-tec/ui-components
# bunbun add @nana-tec/ui-componentsImporting components
Section titled “Importing components”Import the barrel to register every component at once:
import "@nana-tec/ui-components";Or import a single component’s subpath for the smallest bundle — this registers only that element:
import "@nana-tec/ui-components/button";import "@nana-tec/ui-components/color-picker";Once imported, use the custom element anywhere in your markup:
<nana-button variant="primary">Save changes</nana-button>Framework usage
Section titled “Framework usage”Because these are native custom elements, they drop into any template.
Vanilla / HTML
Section titled “Vanilla / HTML”<script type="module"> import "@nana-tec/ui-components/button";</script>
<nana-button variant="primary">Click me</nana-button>Typed React wrappers ship alongside the elements:
import { NanaButton } from "@nana-tec/ui-components/react";
export function Save() { return <NanaButton variant="primary">Save</NanaButton>;}Vue & Svelte
Section titled “Vue & Svelte”Vanilla tags work directly; the package augments the framework’s template types
so <nana-*> tags type-check:
// vue: nuxt.config or main.tsimport "@nana-tec/ui-components";<script> import "@nana-tec/ui-components/button";</script>
<nana-button variant="primary">Click me</nana-button>Next steps
Section titled “Next steps”- Theming — design tokens, CSS custom properties, and dark mode.
- Reusability & Composition — slots, parts, and events.
- Browse the components for API references and live examples.