React component library and showcase admin app built with modern tools:
- 🎨 Shadcn UI + DaisyUI + Tailwind
- 📊 TanStack Table
- 🔄 Zustand + TanStack Query + React Hook Form
- 🏗️ Vite + TypeScript + pnpm
- 📚 Storybook + Vitest + Playwright
Install the UI kit package in your React project:
# From npm registry (recommended)
npm install @etherisc/ui-kit
# or
pnpm add @etherisc/ui-kit
# or
yarn add @etherisc/ui-kit
# From GitHub Packages (alternative)
npm install @etherisc/ui-kit --registry=https://npm.pkg.github.com
Make sure you have the required peer dependencies installed:
npm install react@>=18.0.0 react-dom@>=18.0.0
import { Button, TextInput, AppShell } from "@etherisc/ui-kit";
import "@etherisc/ui-kit/dist/style.css";
function App() {
return (
<AppShell>
<div className="p-4">
<h1>My App</h1>
<TextInput label="Name" placeholder="Enter your name" />
<Button variant="primary">Submit</Button>
</div>
</AppShell>
);
}
- Form Components: Button, TextInput, NumberInput, Select, Checkbox, RadioGroup, DatePicker
- Layout Components: AppShell, AuthShell, MainLayout
- Data Components: DataTable with pagination and sorting
- Feedback Components: Toast system, StatusBadge, ErrorBoundary
- Editor Components: MarkdownEditor, CodeEditor
For complete documentation and examples, visit our Storybook.
For the most consistent development experience:
- Install Docker Desktop and VS Code
- Install the Dev Containers extension
- Open project in VS Code and select "Reopen in Container"
- Everything is automatically set up! 🚀
# Install dependencies
pnpm install
# Start development
pnpm dev
# Build library
pnpm build
# Run tests
pnpm test
See setup.md for detailed setup instructions and .devcontainer/README.md for DevContainer documentation.
The UI kit includes automated bundle size monitoring to ensure optimal performance:
# Check current bundle size
pnpm run size-limit
# Build and check size in one command
pnpm build && pnpm run size-limit
- ES Module Bundle: 1 MB gzipped
- CommonJS Bundle: 1.5 MB gzipped
The CI pipeline automatically checks bundle sizes on every PR and will fail if the limits are exceeded. This helps prevent bundle bloat and maintains fast loading times for applications using the UI kit.
We welcome contributions to the UI Kit! Please read our Contributing Guidelines for detailed information about:
- 🚀 Getting Started: Development environment setup and quick start guide
- 🔧 Development Workflow: Branch strategy, commit conventions, and PR process
- 📋 Code Standards: TypeScript, React, and styling guidelines
- 🧪 Testing: Unit tests, Storybook stories, and accessibility requirements
- 📚 Documentation: How to document components and update guides
- Fork and clone the repository
- Set up development environment (DevContainer recommended)
- Create a feature branch from
develop
- Make your changes following our coding standards
- Test thoroughly with
pnpm test && pnpm lint
- Submit a pull request using our PR template
For bug reports and feature requests, please use our GitHub Issues.
This project follows a Code of Conduct to ensure a welcoming environment for all contributors.