AsheeUI is a component framework for React and Tailwind CSS v4. It ships the components a
product is actually made of, not a button and a card, but the page compositions, the field
family, the four states every region can be in, and the two tables, behind one
configuration cascade and one theme controller. It renders on the web and on React Native
from the same descriptions.

```bash
npm install asheeui
```

[Get started](/getting-started) · [Browse the components](/components) · [Theming](/concepts/theming)

## What it is

| | |
| --- | --- |
| **A component set** | 61 components, each with the states it needs: busy, disabled, invalid, empty, loading, failed |
| **A layout system** | One spacing scale and one set of breakpoints; pages are `Page`, bands are `Section`, and a composition has a name |
| **A configuration cascade** | The application states its defaults once; a component registration and an instance override them, in that order |
| **A theme controller** | Built-in light and dark, plus custom themes that inherit a built-in palette and override six values |
| **Two platforms** | The same page descriptions render in a browser and on a device, through the same contracts |

## What makes it different

**Nothing is restated.** A colour role is a token, a spacing step is a token, a radius is a
token. When a theme changes, everything that resolved through the cascade changes with it.

**Components are data, not markup.** A table is a list of columns and rows, an accordion is
a list of items, a hero is a title and two actions. That is what lets the same description
render in a browser and on a device, and it is why a page can be stored, composed and
regenerated.

**Accessibility is the default, not a pass.** Roles, states and announcements come from the
component. A page that does nothing special is a page a screen reader can use.

**No build plugin.** Two imports and a provider are the whole setup, no virtual module, no
generated file, no bundler configuration.

## Where to go next

```related button, typography, page
```
