Park UI
Styled components on top of Ark UI.
Park UI takes Ark UI's headless primitives and adds a design layer you copy into your project. Styling runs on Panda CSS rather than Tailwind, which is the detail most people miss and the one that decides whether it fits your stack.
At a glance
| Distribution | CLI, components copied into your project |
| Primitives | Ark UI, on Zag.js state machines |
| Styling | Panda CSS |
| Frameworks | React and Solid |
| MCP server | not published |
| License | MIT |
Panda CSS is the decision point
Panda generates atomic CSS at build time from typed style objects. Zero runtime, full type safety on every token, and a recipe system for variants. It is a genuinely good tool and it is not Tailwind, so adopting Park UI means adopting Panda's build step and its authoring style.
import { Button } from '~/components/ui/button'
<Button variant="solid" size="md">Save changes</Button>
If your team is committed to Tailwind, this is the wrong door and shadcn/ui is the right one. If you are choosing a styling engine fresh, Panda's typed tokens are worth a serious look.
Accessibility comes from Ark
Behaviour is Ark UI's, which means Zag.js state machines underneath and the same tested keyboard and ARIA handling that Ark ships across four frameworks.
Choose it if
- You want a styled starting point on top of Ark UI rather than designing from zero.
- You already use Panda CSS, or you want typed, zero-runtime styling.
Look elsewhere if
- Your project is on Tailwind. Mixing two styling engines is not worth it.
- You need Vue or Svelte. Use Ark UI directly and style it yourself.