# Fakemui Component Library - Complete Guide **Last Updated**: 2026-01-23 **Total Components**: 122+ (with intentional duplicates for different use cases) **Status**: Production Ready with Advanced Features --- ## Component Organization Fakemui is organized into 10 categories: | Category | Components | Use Case | |----------|-----------|----------| | **Atoms** | 10 | Smallest reusable UI units (Text, Label, Panel) | | **Inputs** | 28+ | Form inputs and interactive controls | | **Surfaces** | 7 | Container components (Card, Paper, AppBar) | | **Layout** | 8 | Spatial arrangement (Box, Grid, Stack) | | **Data Display** | 18 | Rendering data structures (Table, List, Avatar) | | **Feedback** | 7 | User feedback (Alert, Progress, Skeleton) | | **Navigation** | 21 | Navigation patterns (Tabs, Menu, Breadcrumbs) | | **Utils** | 18 | Utilities and context providers | | **Lab** (Experimental) | 11 | Cutting-edge components (Timeline, Masonry) | | **X** (Advanced) | 8+ | Pro/premium features (DataGridPro, advanced pickers) | --- ## Component Duplicates (Intentional) Some components exist in multiple locations with different APIs for different use cases: ### TreeView (2 Implementations) **TreeViewFlat** (`data-display/TreeView`) ```typescript import { TreeViewFlat } from '@/fakemui' // Array-based API - great for JSON trees console.log(nodeId)} /> ``` **Use when**: You have tree data from JSON/API and want simple selection handling --- **TreeViewComponent** (`lab/TreeView` + `lab/TreeItem`) ```typescript import { TreeView, TreeItem } from '@/fakemui' // Composition-based API - great for complex layouts ``` **Use when**: You're building complex hierarchical UI with custom item rendering --- ### DatePicker (2 Implementations) **DatePicker** (`inputs/DatePicker`) ```typescript import { DatePicker } from '@/fakemui' // Simple HTML input-based console.log(val)} format="date" /> ``` **Use when**: You need a simple date input field in forms --- **DatePickerAdvanced** (`x/DatePicker`) ```typescript import { DatePickerAdvanced } from '@/fakemui' // Advanced with calendar picker UI console.log(date)} views={['year', 'month', 'day']} /> ``` **Use when**: You want a full calendar UI with advanced date selection **Also available**: `TimePickerAdvanced`, `DateTimePicker`, `DesktopDatePicker`, `MobileDatePicker`, `CalendarPicker`, `ClockPicker` --- ## Export Map ### From Main Index (`index.ts`) #### Inputs (28 components) Button, ButtonGroup, IconButton, Fab, Input, Textarea, Select, NativeSelect, Checkbox, Radio, RadioGroup, Switch, Slider, FormControl, TextField, ToggleButton, ToggleButtonGroup, Autocomplete, Rating, ButtonBase, InputBase, FilledInput, OutlinedInput, FormField, DatePicker, TimePicker, ColorPicker, FileUpload #### Surfaces (7 components) Paper, Card, CardHeader, CardContent, CardActions, CardActionArea, CardMedia, Accordion, AccordionSummary, AccordionDetails, AccordionActions, AppBar, Toolbar, Drawer #### Layout (8 components) Box, Container, Grid, Stack, Flex, ImageList, ImageListItem, ImageListItemBar #### Data Display (18+ components) Typography, Avatar, Badge, Chip, Divider, List, ListItem, ListItemButton, ListItemText, ListItemIcon, ListItemAvatar, ListSubheader, AvatarGroup, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableFooter, TablePagination, TableSortLabel, Tooltip, Icon, Markdown, Separator, TreeViewFlat #### Feedback (7 components) Alert, Backdrop, CircularProgress, LinearProgress, Skeleton, Snackbar, Spinner #### Navigation (21 components) Breadcrumbs, Link, Menu, MenuItem, MenuList, Pagination, PaginationItem, Stepper, Step, StepLabel, StepButton, StepContent, StepConnector, StepIcon, Tabs, Tab, BottomNavigation, BottomNavigationAction, SpeedDial, SpeedDialAction, SpeedDialIcon #### Utils (18+ components/hooks) Modal, Dialog, DialogOverlay, DialogPanel, DialogHeader, DialogTitle, DialogContent, DialogActions, Popover, Popper, Portal, ClickAwayListener, CssBaseline, ScopedCssBaseline, GlobalStyles, NoSsr, TextareaAutosize, Fade, Grow, Slide, Zoom, Collapse, useMediaQuery, useMediaQueryUp, useMediaQueryDown, useMediaQueryBetween, ToastProvider, useToast, Iframe, classNames #### Atoms (10 components) Text, Title, Label, Panel, Section, StatBadge, States, EditorWrapper, AutoGrid #### Lab (11 experimental components) LoadingButton, Masonry, Timeline, TimelineItem, TimelineSeparator, TimelineDot, TimelineConnector, TimelineContent, TimelineOppositeContent, TreeViewComponent, TreeItem #### X (8+ advanced components) DataGrid, DataGridPro, DataGridPremium, DatePickerAdvanced, TimePickerAdvanced, DateTimePicker, DesktopDatePicker, MobileDatePicker, StaticDatePicker, CalendarPicker, ClockPicker --- ## Icons (42 icons) **Action Icons**: Plus, Trash, Copy, Check, X, Filter, FilterOff **Navigation Icons**: ArrowUp, ArrowDown, ArrowClockwise, ChevronUp, ChevronDown, ChevronLeft, ChevronRight **File/UI Icons**: FloppyDisk, Search, Settings, User, UserCheck, Menu (as MenuIcon), Eye, EyeSlash, Pencil **Communication/Time**: Calendar, Clock, Mail, Bell **Social**: Star, Heart, Share --- ## Material Design 3 Compliance All components follow Material Design 3 principles: - **Color System**: Dynamic theming with custom color palettes - **Typography**: 6-level hierarchy (Display, Headline, Title, Body, Label) - **Elevation**: 5 elevation levels (0-5) with consistent shadows - **Motion**: 3 animation speeds (short: 150ms, standard: 300ms, long: 450ms) - **Shape**: Rounded corners using CSS custom properties ### Using Design Tokens ```typescript import { Box, Button } from '@/fakemui' ``` --- ## Usage Patterns ### Pattern 1: Simple Composition ```typescript import { Card, CardContent, CardActions, Button, Typography, Stack } from '@/fakemui' export function MyCard() { return ( Title Description ) } ``` ### Pattern 2: Layout with Box & Stack ```typescript import { Box, Stack, Button, TextField } from '@/fakemui' export function MyForm() { return ( ) } ``` ### Pattern 3: Data Display with Table ```typescript import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper } from '@/fakemui' export function MyTable() { return ( Name Value {data.map((row) => ( {row.name} {row.value} ))}
) } ``` ### Pattern 4: Dialogs ```typescript import { Dialog, DialogTitle, DialogContent, DialogActions, Button } from '@/fakemui' import { useState } from 'react' export function MyDialog() { const [open, setOpen] = useState(false) return ( <> setOpen(false)}> Confirm Action Are you sure? ) } ``` ### Pattern 5: Notifications with Toast ```typescript import { ToastProvider, useToast, Button } from '@/fakemui' function MyComponent() { const { showToast } = useToast() return ( ) } export function App() { return ( ) } ``` --- ## Migration Guide: Custom Styles → Fakemui ### Before (Custom SCSS) ```typescript // project-canvas.module.scss .canvas { /* 500+ lines */ } .toolbar { /* custom flex */ } .workflowCard { /* custom styling */ } // page.tsx import styles from './project-canvas.module.scss' export function ProjectCanvas() { return (
) } ``` ### After (Fakemui) ```typescript import { Box, Stack, Button, Card, CardContent, Toolbar, AppBar } from '@/fakemui' export function ProjectCanvas() { return ( {/* Workflow cards */} ) } ``` **Benefits**: - 90% less code - Material Design 3 compliance - Responsive by default - Consistent across project --- ## TypeScript Support All components are fully typed: ```typescript import type { ButtonProps, CardProps, BoxProps } from '@/fakemui' interface MyComponentProps extends ButtonProps { custom?: string } export function MyComponent({ variant, custom, ...rest }: MyComponentProps) { return