A reusable React UI framework with Tailwind CSS theming for building applications with consistent UI patterns.
- 43+ UI Components - Buttons, Modals, Cards, Tables, Toasts, and more
- Design Tokens - Comprehensive theming system with light/dark mode
- Responsive Hooks - Mobile detection, click outside, long press gestures
- State Management - Settings and confirmation stores (Zustand-based)
- TypeScript - Full type safety throughout
npm install @frameer/ui
# or
pnpm add @frameer/uiIn your app's global CSS file:
@import "@frameer/ui/styles/tokens.css";
@import "@frameer/ui/styles/base.css";import { Button, Modal, Card, useIsMobile } from '@frameer/ui';
function App() {
const isMobile = useIsMobile();
return (
<Card>
<Button variant="primary">Click me</Button>
</Card>
);
}Add the ThemeInitializer to your app root:
import { ThemeInitializer } from '@frameer/ui';
function App() {
return (
<>
<ThemeInitializer />
{/* Your app content */}
</>
);
}| Export | Description |
|---|---|
@frameer/ui |
Main entry - all exports |
@frameer/ui/components |
All UI components |
@frameer/ui/components/ui |
Core UI primitives |
@frameer/ui/hooks |
React hooks |
@frameer/ui/stores |
Zustand stores |
@frameer/ui/lib |
Utility functions |
@frameer/ui/contexts |
React contexts |
@frameer/ui/styles/tokens.css |
Design tokens CSS |
@frameer/ui/styles/base.css |
Base styles CSS |
- Button, Input, Textarea, Toggle, Checkbox
- ColorPicker, EmojiPicker, IconPicker, Select
- Card, Panel, Container, Sidebar, Header
- Modal, ModalFooter, Divider, Stack, FlexGroup
- MobileSheet, HorizontalScrollContainer
- Badge, Popover, ColorDot, EmptyState
- ContextMenu, Dropdown, DataTable
- H1, H2, H3, H4, Text, TextSmall, Label
- Toast (with toastSuccess, toastError, etc.)
- ErrorBanner, StatusBanner
- SmartEmptyState
useIsMobile()- Mobile viewport detectionuseIsTablet()- Tablet viewport detectionuseIsDesktop()- Desktop viewport detectionuseMediaQuery(query)- Custom media query hookuseClickOutside(refs)- Click outside detectionuseLongPress(options)- Long press gestureuseAutoSave(callback, deps, delay)- Debounced autosave
useSettingsStore- Theme, accent color, and app settingsuseConfirmStore- Confirmation modal state
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Type check
npm run typecheckMIT