A fully open-source UI library for React, powered by TypeScript and Tailwind CSS. Fast, composable, and ready for production.
Pittaya UI is a modern, accessible, and highly customizable component library built on top of industry-leading tools like React, TypeScript, Tailwind CSS, Shadcn UI, and Radix UI.
Our mission is to provide developers with production-ready components that are:
- β‘ Fast β Optimized for performance with Server Components
- π¨ Beautiful β Modern design with smooth animations
- βΏ Accessible β Built with accessibility in mind (ARIA compliant)
- π§ Customizable β Full TypeScript support with flexible variants
- π± Responsive β Mobile-first approach for all screen sizes
- Node.js 18+
- npm, yarn or pnpm
- Clone the repository
git clone https://github.com/pittaya-ui/ui-kit.git
cd ui-kit- Install dependencies
npm install- Run the development server
npm run dev- Open your browser Navigate to http://localhost:3000
| Component | Status | Category | Description |
|---|---|---|---|
| Announcement Badge | β Stable | Components | Displays a badge with an icon and a title |
| Button | β Stable | Actions | Displays a button or a component that looks like a button |
| Card | β Stable | Components | Displays a card with a title, description, content and footer |
| Carousel | β Stable | Components | Displays a carousel of images or content |
| Copy Button | β Stable | Actions | Displays a copy button that copies text to clipboard when clicked |
| Installation Section | β Stable | Documentation | Displays installation instructions with code snippets |
| Orbit Images | β Stable | Components | Displays a set of images in an orbiting motion |
| Tabs | β Stable | Navigation | A set of layered sections of content displayed one at a time |
π§ More components coming soon! Check our roadmap for planned features.
pittaya-ui/
βββ src/
β βββ app/ # Next.js App Router
β β βββ docs/ # Documentation pages
β β β βββ components/[slug]/ # Dynamic component docs
β β
β βββ components/ # React components
β β βββ ui/ # UI primitives
β β βββ docs/ # Documentation components
β β
β βββ lib/ # Utility functions
β β βββ docs/ # Documentation system
β β βββ utils.ts # Helper functions
β β βββ query-client.ts # React Query config
β β
β βββ hooks/ # Custom React hooks
β β
β βββ services/ # API services
β β
β βββ providers/ # Context providers
β β
β βββ constants/ # Constants & config
β
βββ public/ # Static assets
β
βββ docs/ # Internal documentation
β
βββ package.json
βββ tsconfig.json
βββ next.config.ts
βββ README.md
- Next.js 15 - React framework with App Router
- React 19 - UI library
- TypeScript 5 - Type safety
- Tailwind CSS 4 - Utility-first CSS
- Radix UI - Unstyled, accessible components
@radix-ui/react-slot- Composition utility@radix-ui/react-separator- Separator component@radix-ui/react-tabs- Tabs component
- Class Variance Authority - Component variants
- Tailwind Merge - Merge Tailwind classes
- Lucide React - Icon library
- Sonner - Toast notifications
- React Syntax Highlighter - Code highlighting
- Unicorn Studio - Animated backgrounds
- clsx - Utility for constructing className strings
- TanStack Query - Server state management
- Next Themes - Theme management
- ESLint - Code linting
- Prettier - Code formatting
- Vercel Analytics - Performance monitoring
- Vercel Speed Insights - Real user metrics
Pittaya UI features a comprehensive documentation system built with:
- Live Code Preview - See components in action
- Copy-Paste Code - One-click code snippets
- API Reference - Complete props documentation
- Best Practices - Usage guidelines and patterns
- Accessibility - A11y notes for each component
- Table of Contents - Easy navigation within docs
- Responsive Layout - Mobile-friendly documentation
Follow these steps to document a new component:
1. Add to Component Index (src/lib/docs/components-index.ts)
{
slug: "your-component",
name: "Your Component",
description: "Brief description of what the component does.",
category: "Components", // or "Actions", "Documentation", etc.
status: "stable",
tags: ["feature", "interaction"],
dependencies: ["@radix-ui/react-slot"], // Optional: external dependencies
internalDependencies: ["button"] // Optional: other UI components used
}2. Create Documentation (src/lib/docs/component-details.tsx)
- Import the component
- Define metadata, sections, props, examples, and TOC
- Add to the
docsregistry
3. Test the Documentation
- Navigate to
/docs/components/your-component - Verify all sections render correctly
π For complete step-by-step instructions, including examples and troubleshooting, see COMPONENT_DOCS_GUIDE.md
All components follow WCAG guidelines and are keyboard navigable with proper ARIA attributes.
Components are designed to work together seamlessly with consistent APIs and behavior.
Server Components by default, minimal client-side JavaScript, and optimized bundle sizes.
TypeScript support, IntelliSense autocomplete, and clear documentation.
Every component supports custom classes and can be styled with Tailwind utilities.
| Command | Description |
|---|---|
npm run dev |
Start development server with Turbopack |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run type-check |
Run TypeScript type checking |
npm run analyze:ci |
Analyze bundle size |
This project follows strict code style guidelines:
- Functional Components - Use function keyword
- TypeScript - Interfaces over types
- Named Exports - For better tree-shaking
- Lowercase Directories - Use kebab-case
- Descriptive Names - Use auxiliary verbs (isLoading, hasError)
See .eslintrc and prettier.config.js for details.
We welcome contributions! Here's how you can help:
- π Report bugs
- π‘ Suggest new features
- π Improve documentation
- π¨ Add new components
- β Write tests
- π Translate documentation
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit with conventional commits
git commit -m "feat: add amazing feature" - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
We follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting)refactor:- Code refactoringtest:- Adding testschore:- Maintenance tasks
This project is licensed under the MIT License - see the LICENSE file for details.
- Shadcn UI - For component inspiration and architecture
- Radix UI - For accessible primitives
- Vercel - For hosting and deployment
- Tailwind CSS - For the utility-first CSS framework
Website: pittaya-ui.vercel.app
GitHub: @pittaya-ui
Issues: Report a bug or request a feature
Built with β€οΈ by the Pittaya team
β Star us on GitHub β it motivates us a lot!