Thanks to visit codestin.com
Credit goes to github.com

Skip to content

pittaya-ui/ui-kit

Repository files navigation

Pittaya UI Logo

Pittaya UI

Components that scale with your ideas

A fully open-source UI library for React, powered by TypeScript and Tailwind CSS. Fast, composable, and ready for production.

Stars Contributors License Last Commit

Components Β· Report Bug Β· Request Feature


🌟 Overview

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

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm, yarn or pnpm

Installation

  1. Clone the repository
git clone https://github.com/pittaya-ui/ui-kit.git
cd ui-kit
  1. Install dependencies
npm install
  1. Run the development server
npm run dev
  1. Open your browser Navigate to http://localhost:3000

πŸ“¦ Available Components

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.


πŸ—οΈ Project Architecture

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

πŸ”§ Tech Stack

Core

Styling

UI Components

State & Data

Development


πŸ“š Documentation System

Pittaya UI features a comprehensive documentation system built with:

Key Features

  • 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

Adding New Components

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 docs registry

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


🎨 Design Principles

1. Accessibility First

All components follow WCAG guidelines and are keyboard navigable with proper ARIA attributes.

2. Composability

Components are designed to work together seamlessly with consistent APIs and behavior.

3. Performance

Server Components by default, minimal client-side JavaScript, and optimized bundle sizes.

4. Developer Experience

TypeScript support, IntelliSense autocomplete, and clear documentation.

5. Customization

Every component supports custom classes and can be styled with Tailwind utilities.


πŸ› οΈ Development

Available Scripts

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

Code Style

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.


🀝 Contributing

We welcome contributions! Here's how you can help:

Ways to Contribute

  • πŸ› Report bugs
  • πŸ’‘ Suggest new features
  • πŸ“– Improve documentation
  • 🎨 Add new components
  • βœ… Write tests
  • 🌍 Translate documentation

Contribution Process

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Commit with conventional commits
    git commit -m "feat: add amazing feature"
  5. Push to your branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Commit Convention

We follow Conventional Commits:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • style: - Code style changes (formatting)
  • refactor: - Code refactoring
  • test: - Adding tests
  • chore: - Maintenance tasks

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • 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

πŸ“ž Contact & Links

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!

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •