// components you own
UI that feels physical.
shadcn's distribution model, rebuilt on Base UI with a motion.dev feel layer — springs, touch feedback, depth. The code lands in your repo; edit it like you wrote it.
Touch feedback
Every control recedes into the surface on press and springs back — with a haptic click on devices that can.
whileTap = depth.pressed · haptic = "tap"Docs →Listening…
Agent presence
State-driven motion for voice agents — dots that breathe with the audio level and never go dead.
state = "listening" · level = 0.42Docs →The condense
Overlays rise out of their trigger and fall back on dismiss — one motion, both directions, backdrop in sync.
condense.surfaceDocs →Wherever your stack lives.
seamui
bunx --bun seamui@latest add buttonshadcn
bunx --bun shadcn@latest add @seamui/buttonregistry
https://seamui.dev/r/button.jsonThen open components/ui/button.tsx — it's yours. Retune every spring from one line in lib/motion.ts; give it all a click and a buzz with one provider.