Components you
own, built on Morphos.

Kosmesis is the shadcn/ui equivalent for PraxisJS. Copy-paste component source, styled variants reacting to Morphos's data-* state.

Copy-paste, not npm install65 componentsTypeScriptARIA-readyPraxisJS
Philosophy
03 principles
01

Own your components

kosmesis add button copies real source into src/components/ui — not an npm dependency. You read it, own it, and change whatever you want.

02

Behavior from Morphos

Every interactive component wraps a headless Morphos primitive: keyboard navigation, ARIA, focus management, and data-* state — done for you.

03

Presentation is yours

Tailwind CSS v4 utility classes react to Morphos's data-* attributes directly, e.g. data-[state=open]:animate-in. No CSS-in-JS, no theme provider required.

Quick start
03 steps
01Init

One command to configure

Run kosmesis init inside a create-praxisjs project. It writes components.json, wires up Tailwind v4, and adds the cn() helper.

npx kosmesis init
02Add

Add components one at a time

Each component is a small set of files copied straight into your project, with its Morphos dependency declared for you.

npx kosmesis add button dialog
03Customize

Edit the source directly

The component now lives in your repo. Change variants, swap classes, or rip out parts you don't need.

src/components/ui/button.tsx