Uibrium is a premium, open-source React design system and component library that marries couture design with rock-solid engineering. It delivers high-fidelity user experiences with deterministic UI integrity, balancing beauty and performance in every element. With Uibrium, developers get a modular, themable toolkit built on industry best-practices.
- π― Accessible Primitives: Built on Radix UI for 100% WAI-ARIA compliance. All base elements (buttons, inputs, etc.) are fully accessible from day one.
- π¨ Tailwind-Driven Styling: Utility-first classes with a pure HSL design token palette, ensuring consistency. You get all of Tailwindβs power and a custom, premium color system.
- β‘ Sensory Animations: Breathtaking motion with Framer Motion and magnetic βsensory engineeringβ (custom cursor, loaders, etc.), adding polished micro-interactions to your UI.
- π Tree-Shaking Ready: Exports optimized ESM and CJS bundles (with
sideEffects: false), so unused code is dropped in production builds. Every component is fully typed in TypeScript. - π Theming: Built-in light/dark themes using CSS variables. Swap or extend themes easily, leveraging Uibriumβs HSL token API.
- π€ Automated Documentation: Fully automated Storybook story generation. Simply create a component, and the sanctuary handles the documentation for you.
- π Open Source: Premium design accessible to all. Contributions are welcome β see Contributing.
Install via npm, yarn or pnpm (Uibrium uses @uibrium/ui as the package name) along with its peer dependencies:
# Using pnpm (recommended)
pnpm add @uibrium/ui framer-motion lucide-react
# Using npm
npm install @uibrium/ui framer-motion lucide-react
# Using yarn
yarn add @uibrium/ui framer-motion lucide-reactImport Uibriumβs components and styles in your app. Wrap your app in the <ThemeProvider> to enable theming, and add the <CustomCursor> for Uibriumβs signature cursor effect (optional).
import React from 'react';
import { Button, CustomCursor, ThemeProvider } from '@uibrium/ui';
import '@uibrium/ui/styles.css';
export default function App() {
return (
<ThemeProvider>
<CustomCursor />
<Button variant="primary" size="lg">
Initiate Equilibrium
</Button>
</ThemeProvider>
);
}This renders a styled primary button in large size. The ThemeProvider ensures all components use Uibriumβs theme tokens, and CustomCursor adds the premium cursor animation.
Uibrium features a comprehensive set of 19+ premium components:
| Component | Status | Component | Status |
|---|---|---|---|
| Accordion | β Available | Dropdown Menu | β Available |
| Alert | β Available | Input | β Available |
| Avatar | β Available | Modal/Dialog | β Available |
| Badge | β Available | Pagination | β Available |
| Button | β Available | Radio Group | β Available |
| Card | β Available | Select | β Available |
| Checkbox | β Available | Switch | β Available |
| Custom Cursor | β Available | Table | β Available |
| Drawer | β Available | Tabs | β Available |
| Tooltip | β Available | Textarea | β Available |
Want to run the project locally? Follow these steps:
# Clone the repository
git clone https://github.com/aryanony/uibrium.git
cd uibrium
# Install dependencies using pnpm
pnpm install
# Start the component library in watch mode
pnpm dev
# Start the docs site locally
pnpm dev:docs
# Start Storybook
pnpm storybookUibrium is organized as a monorepo (using PNPM Workspaces and Turborepo) to separate the core library from the docs site while allowing seamless development:
uibrium/
βββ packages/ui/ # Core component library (Vite + TypeScript)
βββ apps/docs/ # Documentation site (Next.js on Vercel)
βββ .storybook/ # Storybook configuration
βββ .github/ # CI/CD, issue templates, security policy
βββ .changeset/ # Versioning & changelog automation
βββ turbo.json # Turborepo task orchestration
/packages/uiβ The core component library. Contains all components, styles, tokens, and build configs. Built with Vite (library mode) and TypeScript./apps/docsβ The documentation site (Next.js). It consumes@uibrium/uidirectly from the repo so that demos always use the latest changes.
Uibrium comes with default light and dark themes. All component styles use CSS variables for colors, spacing, fonts, etc. To customize, override the token values in your own CSS or extend the <ThemeProvider>. For example, swap the primary color hue by updating --ui-primary-hue in CSS. Because Uibrium uses HSL tokens under the hood, color adjustments affect the entire palette gracefully.
Check out our ROADMAP.md to see what we're working on next. You can also view our GitHub Projects Board for real-time progress tracking.
Have a question? Want to share what you've built? Join our GitHub Discussions!
- π£ Announcements
- π‘ Component Requests
- π Introductions
- π Show and Tell
Uibrium is 100% open source under the MIT License. Every contribution helps raise the baseline for developer tooling!
We welcome all types of contributions, from fixing typos to building new components. Check out our Good First Issues to get started!
π First time contributing to open source? We have a dedicated Beginner Contributor Guide that walks you through making your first pull request step-by-step!
Please read our full CONTRIBUTING.md guide before opening a PR.
Thanks to everyone who has contributed! π
Please report security vulnerabilities responsibly. See our Security Policy for details.
We are committed to providing a welcoming community. Please read our Code of Conduct.
Released under the MIT License. See LICENSE for details.
Created by Aaryan Gupta Β· Made with β€οΈ by the UiBrium community Β· Build smarter, ship faster.