A beautiful macOS-inspired dark theme React component library with glass-morphism aesthetic.
- 35+ beautifully crafted React components
- Dark theme with glass-morphism styling
- Built for React 19 with TypeScript
- Tailwind CSS v4 + Framer Motion powered
- shadcn-compatible registry
- Accessible and keyboard-friendly
- Lightweight and tree-shakeable
npm install @pikoloo/darwin-ui
# or
yarn add @pikoloo/darwin-ui
# or
pnpm add @pikoloo/darwin-ui# Add individual components
npx shadcn add https://darwin-ui.mandalsuraj.com/registry/button.json
npx shadcn add https://darwin-ui.mandalsuraj.com/registry/card.jsonimport { Button, Card, CardHeader, CardTitle, CardContent } from '@pikoloo/darwin-ui';
import '@pikoloo/darwin-ui/styles';
function App() {
return (
<Card>
<CardHeader>
<CardTitle>Welcome to Darwin UI</CardTitle>
</CardHeader>
<CardContent>
<Button variant="primary">Get Started</Button>
</CardContent>
</Card>
);
}- Card - Composable card with header, content, footer
- Window - macOS-style window container
- Sidebar - Responsive navigation sidebar
- Tabs - Tabbed content navigation
- Accordion - Collapsible content sections
- Button - 11 variants (primary, secondary, destructive, ghost, etc.)
- Input - Glass-effect styled input
- Textarea - Multi-line text input
- Select - Custom dropdown with portal rendering
- MultiSelect - Multi-selection dropdown
- Checkbox - Custom checkbox with label
- Switch - Toggle switch component
- Slider - Range slider input
- SearchInput - Search input field
- DateSelect - Date picker component
- Upload - File upload component
- Table - Full table system with loading/empty states
- Badge - Status badges with 13 variants
- Avatar - User avatar with fallback
- Progress - Linear and circular progress indicators
- Skeleton - Loading placeholder
- Image - Optimized image component
- Modal - Accessible modal dialog
- Dialog - Composable dialog component
- Popover - Floating popover content
- Tooltip - Hover tooltips
- DropdownMenu - Dropdown menu with items
- ContextMenu - Right-click context menu
- Toast - Toast notifications with auto-dismiss
- Alert - Alert dialogs with type indicators
- AreaChart - Area chart visualization
- BarChart - Bar chart visualization
- LineChart - Line chart visualization
- PieChart - Pie chart visualization
- DonutChart - Donut chart visualization
- StackedBarChart - Stacked bar chart
- CloseButton - Consistent close button
- MdEditor - Markdown editor
- Reveal - Animation reveal component
- CompactContactForm - Pre-built contact form
import { useIsMobile, useMediaQuery, useEscapeKey } from '@pikoloo/darwin-ui';
// Detect mobile devices
const isMobile = useIsMobile();
// Custom media query
const isDesktop = useMediaQuery('(min-width: 1024px)');
// ESC key handler
useEscapeKey(() => closeModal());Darwin UI uses CSS variables for theming. Override them in your CSS:
:root {
--background: 0 0% 4%;
--foreground: 0 0% 95%;
--card: 0 0% 6%;
--border: 0 0% 15%;
}Add Darwin UI's CSS to your Tailwind config:
/* In your global CSS */
@import "tailwindcss";
@import "@pikoloo/darwin-ui/styles";- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
Contributions are welcome! Please read our Contributing Guide first.
MIT License - see LICENSE for details.
Made with care by Suraj Mandal