cloakuiCloak UI

Supported Design Systems

Build your UI once with Cloak UI and switch between React component libraries by changing the wrapper import—no rewrites, no vendor lock-in.

Supported Design Systems

Cloak UI provides a unified API that works seamlessly across multiple React component libraries. Write your UI once, then choose—or switch—your design system without rewriting code.

Currently supporting shadcn/ui and Hero UI, with more design systems coming soon!

How It Works

Cloak UI acts as a translation layer between your application code and the underlying UI library. Each wrapper maps Cloak UI's unified props to the specific library's API.

// Your application code stays the same
import { Button } from '@cloakui/shadcn-core'
// or swap to: '@cloakui/heroui-core'

export function MyButton() {
  return <Button variant="primary" size="md">Click Me</Button>
}

Currently Supported

📦 shadcn/ui

shadcn/ui is a collection of re-usable components built using Radix UI and Tailwind CSS. It's not a traditional component library—components are directly added to your project for full customization.

Why shadcn/ui?

  • 🎨 Highly customizable
  • ♿️ Built on accessible Radix primitives
  • 🎭 Beautiful, modern design
  • 🔧 Full control over component code

Installation:

pnpm add @cloakui/shadcn-core

Usage:

import { Button, Card, Input, Dialog } from '@cloakui/shadcn-core'

export function Example() {
  return (
    <Card>
      <Input placeholder="Enter text" />
      <Button variant="primary">Submit</Button>
    </Card>
  )
}

Available Components: 30+ components including Button, Card, Input, Dialog, Tabs, Select, and more.


🦸 Hero UI

Hero UI (formerly NextUI) is a beautiful, modern React component library with a focus on customization and developer experience. Built with React Aria for accessibility.

Why Hero UI?

  • ✨ Stunning out-of-the-box design
  • ♿️ Built on React Aria
  • 🎨 Advanced theming system
  • ⚡️ Excellent performance

Installation:

pnpm add @cloakui/heroui-core

Usage:

import { Button, Card, Input, Dialog } from '@cloakui/heroui-core'

export function Example() {
  return (
    <Card>
      <Input placeholder="Enter text" />
      <Button variant="primary">Submit</Button>
    </Card>
  )
}

Available Components: 30+ components including Button, Card, Input, Dialog, Tabs, Select, and more.


Component Parity

Both design systems support the same Cloak UI components with identical APIs:

Componentshadcn/uiHero UIDescription
Accordion✅✅Collapsible content sections
Alert✅✅Contextual feedback messages
Avatar✅✅User profile images
Badge✅✅Small status indicators
Breadcrumb✅✅Navigation trails
Button✅✅Interactive buttons
Calendar✅✅Date selection
Card✅✅Content containers
Checkbox✅✅Checkbox inputs
Command✅✅Command palette
Dialog✅✅Modal dialogs
Hover Card✅✅Hover-triggered popups
Input✅✅Text inputs
Label✅✅Form labels
Navigation Menu✅✅Navigation menus
Popover✅✅Floating content
Progress✅✅Progress indicators
Radio Group✅✅Radio button groups
Scroll Area✅✅Custom scrollbars
Select✅✅Dropdown selects
Separator✅✅Visual dividers
Skeleton✅✅Loading placeholders
Slider✅✅Range inputs
Switch✅✅Toggle switches
Tabs✅✅Tabbed interfaces
Text Area✅✅Multi-line text inputs
Toggle✅✅Toggle buttons
Tooltip✅✅Contextual tooltips

100% API Parity: Every component works identically across both design systems!


Switching Between Systems

Migrating between design systems is as simple as changing your import source:

// Using shadcn/ui
import { Button, Card } from '@cloakui/shadcn-core'

// Switch to Hero UI
import { Button, Card } from '@cloakui/heroui-core'

// Your component code stays exactly the same! 🎉

For detailed migration strategies, see the Setup & Integration guide.


Coming Soon

We're actively working on adapters for more popular design systems:

  • 🎯 Chakra UI - Simple, modular component library
  • 🎨 Material UI - Google's Material Design
  • 🔧 Radix UI - Direct Radix primitives support
  • 🌈 Mantine - Feature-rich component library
  • 🎭 Ant Design - Enterprise-class UI design
  • 🚀 Park UI - Beautifully designed components

Want to request support for a specific design system? Open an issue on GitHub or contribute an adapter yourself!


Benefits of Multi-System Support

🔄 Easy Experimentation

Try different design systems without committing to a full rewrite. Test Hero UI for one project, shadcn/ui for another.

🏢 Team Flexibility

Different teams can use different design systems while sharing the same component code.

📦 Gradual Migration

Migrate from one system to another gradually, one component at a time.

🎨 Best of Both Worlds

Mix and match components from different systems in the same app (advanced use case).


What's Next?

Ready to start building? Check out the Quick Start Guide or dive into the Setup & Integration documentation.

Explore Components:

On this page