Files

MetaBuilder Python Packages

Python packages for MetaBuilder, including FakeMUI - a PyQt6-based Material UI component library.

Packages

fakemui

Material UI-style widgets for PyQt6. A complete replacement for complex Qt styling with simple, composable components.

Features:

  • 120+ Material Design 3 components
  • Full theming support (light/dark modes)
  • Consistent API mirroring MUI React components
  • Cross-platform desktop support via PyQt6

Component Categories:

  • Inputs (16): Button, IconButton, Fab, Input, TextArea, Select, CheckBox, RadioButton, Switch, Slider, FormGroup, FormLabel, FormHelperText, TextField, ToggleButton, ToggleButtonGroup
  • Data Display (19): Avatar, AvatarGroup, Badge, Chip, Divider, Icon, ListWidget, ListItem, ListItemButton, ListItemIcon, ListItemText, ListItemAvatar, ListSubheader, TableWidget, TableHeader, TableBody, TableRow, TableCell, Tooltip, Typography
  • Feedback (8): Alert, Backdrop, Spinner, CircularProgress, LinearProgress, Progress, Skeleton, Snackbar
  • Surfaces (14): Paper, Card, CardHeader, CardContent, CardActions, CardActionArea, CardMedia, Accordion, AccordionSummary, AccordionDetails, AccordionActions, AppBar, Toolbar, Drawer
  • Navigation (13): Breadcrumbs, Link, Menu, MenuItem, MenuList, TabWidget, Tab, Pagination, Stepper, Step, StepLabel, BottomNavigation, BottomNavigationAction
  • Layout (9): Box, Container, Grid, Stack, Flex, ImageList, ImageListItem, ImageListItemBar, Spacer
  • Utils (13): Modal, Dialog, DialogOverlay, DialogHeader, DialogTitle, DialogContent, DialogActions, Popover, Collapse, Fade, ClickAwayListener, apply_theme, get_theme, ThemeProvider
  • Atoms (14): Title, Subtitle, Label, Text, StatBadge, Section, SectionHeader, SectionTitle, SectionContent, EmptyState, LoadingState, ErrorState, Panel, AutoGrid
  • Theming (12): Theme, Palette, Typography, Shape, Shadows, Transitions, ZIndex, Breakpoints, default_theme, create_theme, ThemeProvider, use_theme, styled, process_sx_prop
  • Lab (11): LoadingButton, Timeline, TimelineItem, TimelineSeparator, TimelineConnector, TimelineContent, TimelineDot, TimelineOppositeContent, TreeView, TreeItem, Masonry
  • MUI X (12): DataGrid, DataGridPro, DataGridPremium, DataGridColumn, DatePicker, TimePicker, DateTimePicker, DesktopDatePicker, MobileDatePicker, StaticDatePicker, CalendarPicker, ClockPicker

Installation

# From project root
pip install -e ./python

# Or install dependencies directly
pip install PyQt6>=6.4.0

Usage

from fakemui import (
    Button, TextField, Card, CardContent,
    Box, Stack, Typography, ThemeProvider,
    create_theme
)

# Create a theme
theme = create_theme(palette={'mode': 'dark'})

# Build UI
app = QApplication(sys.argv)
with ThemeProvider(theme):
    window = Box()
    window.add_widget(
        Card(
            CardContent(
                Stack(spacing=2, children=[
                    Typography("Hello FakeMUI!", variant="h4"),
                    TextField(label="Name", variant="outlined"),
                    Button("Submit", variant="contained", color="primary")
                ])
            )
        )
    )
    window.show()
    app.exec()

Development

# Install dev dependencies
pip install -e ./python[dev]

# Run tests
pytest

# Type checking
mypy fakemui

License

MIT