# Nana UI — complete documentation
> Source: https://design.nanatec.co.ke
> 72 pages, generated 2026-08-17.
> Index of individual pages: https://design.nanatec.co.ke/llms.txt
---
# Nana UI
> Source: https://design.nanatec.co.ke/
> A framework-agnostic web component library built with Lit — consistent APIs, dark mode, and full accessibility across React, Vue, Svelte, or vanilla JS.
## Designed to compose
Real components, composed into a real interface — themed, responsive, and
accessible out of the box.
## Why Nana UI
Framework-agnostic
Standards-based custom elements that work anywhere — React, Vue, Svelte, or plain HTML. Typed wrappers ship for all four.
Tree-shakeable
Import the barrel for convenience, or a single component subpath for the smallest possible bundle.
Themeable tokens
A design-token system built on CSS custom properties, with first-class dark mode via one data-theme attribute.
Accessible
Keyboard navigation, ARIA semantics, and focus management are build constraints, not an afterthought.
Ready to build?
Drop 60+ accessible, themeable components into your stack today — in any framework.
Get started →
---
# Design Tokens
> Source: https://design.nanatec.co.ke/guides/design-tokens/
> The color, spacing, radius, shadow, typography, z-index, and transition scales that every Nana UI component is built from.
Every component is built from a shared set of **design tokens** — CSS custom
properties (prefixed `--nana-`) for color, spacing, radius, shadow, typography, z-index, and transition.
Override them at any scope to re-theme without touching component internals.
Import the token foundation once in your app's global stylesheet:
```css
@import "@nana-tec/ui-themes/base";
```
This pulls in `@nana-tec/ui-tokens/css` (the raw scales below) plus the surface
semantics and dark-mode overrides.
## Using tokens
Reference any token directly, or scope an override to re-theme a subtree:
```css
.checkout {
--nana-color-primary-600: #2563eb;
--nana-radius-md: 9999px;
}
```
See [Theming](/guides/theming/) for surface semantics (`--nana-surface-*`) and
dark mode.
---
# Getting Started
> Source: https://design.nanatec.co.ke/guides/getting-started/
> Install @nana-tec/ui-components and render your first web component in any framework.
Nana UI is a professional design system built with [Lit](https://lit.dev) 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
```bash
# npm
npm install @nana-tec/ui-components
# bun
bun add @nana-tec/ui-components
```
## Importing components
Import the barrel to register every component at once:
```js
import "@nana-tec/ui-components";
```
Or import a single component's subpath for the smallest bundle — this registers
only that element:
```js
import "@nana-tec/ui-components/button";
import "@nana-tec/ui-components/color-picker";
```
Once imported, use the custom element anywhere in your markup:
```html