Material Design 3 component library for React
A modern, accessible, and customizable React component library built with Material Design 3, TypeScript, and Tailwind CSS v4.
Released: v0.1.0 (2026-04-15)
Phase 1a (Button, IconButton, FAB) and Phase 1b (TextField, Checkbox, Switch, Radio, RadioGroup) are complete and published to npm.
Watch this repository to follow our progress!
- π¨ Material Design 3 - Implements the latest MD3 design system with full token support
- βοΈ React 18+ - Built for modern React with hooks and concurrent features
- π― TypeScript First - 100% TypeScript with full type safety and IntelliSense
- π Dark Mode Built-in - Automatic system preference detection via
prefers-color-schemeplus.dark/.lightclass overrides - βΏ Accessibility - WCAG 2.1 AA compliant with comprehensive keyboard navigation
- π¨ Tailwind CSS v4 - Powered by the latest Tailwind with utility-first styling
- π¦ Tree-shakable - Import only what you need, optimized bundle size
- π§ͺ Well Tested - Comprehensive unit tests and component testing
- π Storybook - Interactive component documentation and testing
- π TypeScript Declarations - Full type definitions included
- π§ Customizable - Easy theming and customization with CSS variables
- π Modern Build - ESM and CJS formats, optimized for all bundlers
npm install @tinybigui/react
# or
pnpm add @tinybigui/react
# or
yarn add @tinybigui/reactimport { Button } from "@tinybigui/react";
import "@tinybigui/react/styles.css";
function App() {
return (
<div>
<Button variant="filled" color="primary">
Click me
</Button>
<Button variant="outlined" color="secondary">
Learn more
</Button>
</div>
);
}This is a monorepo containing multiple packages:
| Package | Description | Version | Status |
|---|---|---|---|
@tinybigui/react |
React components | 0.1.0 | Released |
@tinybigui/tokens |
Design tokens (CSS variables) | 0.1.0 | Released |
- Monorepo setup (pnpm workspaces)
- TypeScript configuration
- Build tooling (tsup, PostCSS)
- Tailwind CSS v4 integration
- Material Design 3 design tokens (120 tokens)
- Base utilities (color, typography, cn)
- Testing setup (Vitest + React Testing Library)
- Storybook 10 configuration
- Code quality tools (ESLint, Prettier, Husky, lint-staged)
- CI/CD (GitHub Actions)
- Documentation structure
- Button component (53 tests)
- IconButton component (49 tests)
- FloatingActionButton (FAB) component (51 tests)
- Comprehensive tests
- Accessibility compliance
- TextField component (56 tests)
- Checkbox component (49 tests)
- Radio component (47 tests)
- Switch component (50 tests)
- First npm release (v0.1.0) β released 2026-04-15
- Card component
- Dialog component
- Drawer component
- Tabs component
- Navigation components
- Documentation site launch
- Table component
- List component
- Chip component
- Badge component
- Tooltip component
- Performance optimization
- Bundle size optimization
- Comprehensive documentation
- Migration guides
- v1.0.0 stable release
We welcome contributions! TinyBigUI is an open-source project and we're excited to build it with the community.
- Star the repo β - Show your support!
- Report bugs π - Open an issue
- Suggest features π‘ - Start a discussion
- Submit PRs π§ - Help us build components!
# 1. Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/tinybigui.git
cd tinybigui
# 2. Install dependencies (requires Node.js 18+ and pnpm 9+)
pnpm install
# 3. Start Storybook for development
pnpm storybook
# 4. Run tests
pnpm test
# 5. Build packages
pnpm build
# 6. Run linting
pnpm lint
# 7. Format code
pnpm formattinybigui/
βββ packages/
β βββ react/ # React components
β β βββ src/
β β β βββ components/
β β β βββ utils/
β β β βββ index.ts
β β βββ test/
β βββ tokens/ # Design tokens
β βββ src/
β βββ tokens.css
βββ .github/
βββ workflows/ # CI/CD
We use Conventional Commits:
feat: add new button component
fix: resolve focus ring issue
docs: update installation guide
style: format code with prettier
refactor: simplify color utilities
test: add button accessibility tests
chore: update dependenciesAll contributions must pass:
- β ESLint (no errors, zero warnings)
- β Prettier (formatted code)
- β TypeScript (no type errors)
- β Tests (all passing)
- β Build (successful compilation)
These are automatically checked via Git hooks and CI/CD.
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test -- --coverage
# Type check
pnpm typecheck- GitHub Repository: github.com/buildinclicks/tinybigui
- Documentation Site: Coming soon at tinybigui.dev
- Storybook: Storybook 10 is set up β run
pnpm storybookinpackages/reactto explore components locally - QA Phases: See /.qa-phases for milestone tracking
TinyBigUI is built on these core principles:
- Accessibility First - Every component is keyboard navigable and screen reader friendly
- Type Safety - Full TypeScript support with no compromises
- Performance - Optimized bundle sizes and runtime performance
- Customization - Easy to theme and customize without fighting the library
- Developer Experience - Clear APIs, great documentation, helpful error messages
- Standards-Based - Follows Material Design 3 specifications faithfully
- Modern Stack - Uses the latest stable versions of React, TypeScript, and Tailwind
- React 18.3+ - UI framework
- TypeScript 5.7+ - Type safety
- Tailwind CSS v4 - Styling framework
- Material Design 3 - Design system
- Vitest - Unit testing
- React Testing Library - Component testing
- Storybook 10 - Component development
- tsup - Build tool
- ESLint - Code linting
- Prettier - Code formatting
- pnpm - Package manager
- GitHub Actions - CI/CD
MIT Β© buildinclicks
See LICENSE for details.
TinyBigUI stands on the shoulders of giants:
- Material Design 3 - Design system and guidelines
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Inspiration for accessibility patterns
- Chakra UI - Inspiration for component API design
- Mantine - Inspiration for developer experience
- React - UI library
- TypeScript - Type system
Special thanks to all open-source contributors who make projects like this possible! π
Thanks to all our contributors!
If you like this project, please consider:
- β Starring the repository
- ποΈ Watching for updates
- π¦ Sharing on social media
- π¬ Joining discussions
- π§ Contributing code or documentation
Built with β€οΈ by buildinclicks
GitHub β’ Issues β’ Discussions