# labsUI > labsUI is a clean, composable React component library with one smooth spring for every motion. You copy components into your project and own the code. Built for Next.js 16 and Tailwind CSS v4; install with npm, pnpm, yarn or Bun (recommended). ## Install Components are copied into your project (React 19, Tailwind CSS v4, a `@/*` path alias): ```sh npx @kznlabs/labsui init # styles, theme, utils, motion provider; imports labsui.css npx @kznlabs/labsui add button # a component plus everything it imports npx @kznlabs/labsui search # find by name, export or intent npx @kznlabs/labsui view # exact props, examples, dependencies npx @kznlabs/labsui diff [name] # how installed files differ from this version npx @kznlabs/labsui update [name] # this version's changes, merged with local edits npx @kznlabs/labsui doctor # check the setup npx @kznlabs/labsui mcp # all of the above as MCP tools (stdio) ``` Every command takes --json. `npx @kznlabs/labsui rules` prints the coding rules for agents. Registry JSON: https://kznlabs.github.io/labsUI/r/.json, index at https://kznlabs.github.io/labsUI/r/index.json. Import primitives from `@/components/ui/`. All motion uses one spring: { type: "spring", stiffness: 400, damping: 30 }. ## Components ### Button (button.tsx) Five variants, four sizes, spring press feedback, an animated loading spinner and in-place success state, a two-step confirm that swaps the label on first click, and a configurable swap direction. Width stays fixed to the longest label. Docs: https://kznlabs.github.io/labsUI/components/button (Markdown: https://kznlabs.github.io/labsUI/components/button.md) ```tsx ``` Props: -