Pouf

A puffy, pastel, kid-shaped UI kit for React. Claymorphism — like neumorphism but maximalist: bright, chunky, every surface a cushion. Distributed as a shadcn-style registry.

React
Tailwind CSS 4
Radix UI
TypeScript
shadcn registry
Pouf

The idea

Every surface a cushion. Big radius. Inner highlight. Inner floor shadow. Outer drop. Pastel everywhere.

Pouf is claymorphism taken seriously as a component system rather than a single CSS trick — a full React UI kit where the puffiness is systematic, not applied per-component.

Principles

  • Depth is the affordance. Buttons press in; badges stay flat. State you can feel, not just read.
  • You own the source. Install with the shadcn CLI or copy the file. No runtime dependency to version-lock.
  • Variants, not classNames. Appearance is chosen by props, so your app can't drift off-system. Need an escape hatch? You have the code.

Install

Pouf needs a React app with Tailwind CSS v4 and the shadcn CLI configured.

# the theme (tokens, cushion utilities, keyframes) npx shadcn@latest add https://pouf.worksonmy.dev/r/base.json # a component (pulls in its dependencies + the base) npx shadcn@latest add https://pouf.worksonmy.dev/r/button.json
import { Button } from './components/pouf/Button' export function Example() { return <Button tone="mint">Save</Button> }

How it's built

A Bun monorepo split into three workspaces: registry (the components themselves), gallery (a live browser plus a visual gate harness), and www (the site at pouf.worksonmy.dev). Built on Tailwind CSS v4, Radix UI, class-variance-authority, and Recharts.

The gallery isn't just a showcase — it carries a golden-file gate and a responsive audit, so a change that quietly breaks a component's appearance fails rather than ships.

Screenshots

pouf.worksonmy.dev — 38 components, 12 blocks, 6 templates, MIT licensed.
pouf.worksonmy.dev — 38 components, 12 blocks, 6 templates, MIT licensed.
Every component live and interactive, with its install command and props.
Every component live and interactive, with its install command and props.