A community-driven, open-source library of reusable UI components for modern web development.
- Multi-Framework Support: Components for React, Vue, Svelte, HTML/CSS, and Tailwind
- Production Ready: All components are tested and production-ready
- Fully Responsive: Mobile-first design approach
- Well Documented: Comprehensive documentation and examples
- Type Safe: TypeScript support for applicable frameworks
- Accessible: Built with accessibility best practices
This is a monorepo managed with pnpm workspaces:
open-ui-library/
├── apps/
│ └── web/ # Next.js preview site
├── packages/
│ ├── ui-metadata/ # Component metadata schema
│ └── tooling/ # Development tools
├── components/
│ ├── navbar/
│ ├── footer/
│ └── button/
└── .github/ # GitHub templates and workflows
Visit the live preview site to browse all available components.
- Clone the repository
git clone https://github.com/alirezazim03/OpenUI-Library.git
cd open-ui-library
- Install dependencies
pnpm install
- Start the development server
pnpm dev
- Open your browser
Navigate to
http://localhost:3000
to view the component library.
Each component comes with detailed documentation and examples. Navigate to any component page to see:
- Live preview
- Complete source code
- Usage instructions
- Customization options
- Browse the component you want to use
- Copy the source code from the component page
- Install any required dependencies (like Tailwind CSS)
- Customize as needed for your project
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Add your component following our component structure
- Ensure all validations pass:
pnpm validate
- Submit a pull request
Each component should follow this structure:
components/[category]/[framework]/[component-name]/
├── component.json # Metadata (required)
├── [Component files] # Main component files
└── README.md # Documentation
# Start development server
pnpm dev
# Build the preview site
pnpm build
# Run linting
pnpm lint
# Validate component metadata
pnpm validate:metadata
# Run all validations
pnpm validate
All components must include a component.json
file with the following schema:
{
"name": "component-name",
"category": "navbar|footer|button|form|card|hero|section",
"framework": "react|vue|tailwind|html|svelte",
"tags": ["tag1", "tag2"],
"author": "Your Name",
"license": "MIT",
"version": "1.0.0",
"preview": "Component description",
"demoUrl": "https://optional-demo-url.com"
}
- Frontend: Next.js, React, Tailwind CSS
- Package Management: pnpm workspaces
- Validation: JSON Schema, ESLint, Prettier
- CI/CD: GitHub Actions
- Deployment: Vercel
This project is licensed under the MIT License - see the LICENSE file for details.
- All our amazing contributors
- The open-source community
- Inspiration from other UI libraries