A modern React UI component library built with Material-UI, featuring custom design system components optimized for AI-powered applications.
Experience Joyn AI Components: https://joyn-ai-component-library.vercel.app
- Features
- Quick Start
- Installation
- Usage
- Components
- Design System
- Development
- Storybook
- Contributing
- License
- π¨ Custom Design System - Carefully crafted components following modern design principles
- β‘ Material-UI Integration - Built on top of Material-UI v4 for consistency and accessibility
- π§ TypeScript Ready - Full TypeScript support with comprehensive prop definitions
- π± Responsive Design - Mobile-first approach with responsive breakpoints
- βΏ Accessibility First - WCAG compliant components with proper ARIA attributes
- π Storybook Integration - Interactive component documentation and testing
- π― SEO Optimized - Built with performance and search engine optimization in mind
- π Production Ready - Optimized bundle size and performance
- Node.js 14+
- Yarn or npm
- Modern web browser
# Clone the repository
git clone https://github.com/your-username/joyn-ai-prototype.git
# Navigate to project directory
cd joyn-ai-prototype
# Install dependencies
yarn install
# or
npm install
# Start development server
yarn start
# or
npm startimport React from 'react';
import JoynButton from './components/JoynButton';
import { ReactComponent as SaveIcon } from './assets/icons/svgs/save.svg';
function App() {
return (
<div>
{/* Primary Button */}
<JoynButton type="primary">
Save Changes
</JoynButton>
{/* Button with Icon */}
<JoynButton
type="primary"
startIcon={<SaveIcon />}
>
Save
</JoynButton>
{/* Loading State */}
<JoynButton
type="primary"
loading
>
Processing...
</JoynButton>
</div>
);
}// Primary Button (Main actions)
<JoynButton type="primary">Primary Action</JoynButton>
// Secondary Button (Secondary actions)
<JoynButton type="secondary">Secondary Action</JoynButton>
// Tertiary Button (Subtle actions)
<JoynButton type="tertiary">Tertiary Action</JoynButton>A customizable button component with three variants and multiple states.
Props:
type:'primary' | 'secondary' | 'tertiary'- Button variantloading:boolean- Shows loading spinnerdisabled:boolean- Disables the buttonstartIcon:ReactElement- Icon at the start of buttonendIcon:ReactElement- Icon at the end of buttononClick:function- Click handlerclassName:string- Additional CSS classes
Example:
<JoynButton
type="primary"
loading={isLoading}
startIcon={<SaveIcon />}
onClick={handleSave}
>
Save Document
</JoynButton>Our design system features a carefully curated color palette:
- Primary:
#424f62- Main brand color for primary actions - Secondary:
#45a49c- Supporting color for secondary elements - Error:
#f3775b- Error states and destructive actions - Warning:
#fad97d- Warning states and caution - Success:
#6ab6af- Success states and confirmations
Built with the custom Gustanlp font family:
- Headings: 500-700 font weight, optimized for readability
- Body Text: 400 font weight, optimized for long-form content
- Buttons: 500 font weight, optimized for action clarity
- Consistent 8px grid system
- Responsive breakpoints for all screen sizes
- Optimized for both desktop and mobile experiences
# Start development server
yarn start
# Build for production
yarn build
# Run tests
yarn test
# Run linting
yarn lint
# Fix linting issues
yarn lint-fix
# Format code
yarn format
# Analyze bundle size
yarn analyze-webpack-bundle# Start Storybook
yarn storybook
# Build Storybook
yarn build-storybookExplore all components interactively in our Storybook:
yarn storybookVisit: http://localhost:6006
- Interactive Component Playground - Test components with live props
- Design Tokens - Visual design system documentation
- Accessibility Testing - Built-in accessibility checks
- Responsive Testing - Test components across different screen sizes
# Deploy to Netlify
yarn netlify-deployLive Site: https://joyn-ai-component-library.vercel.app
- Code Splitting - Automatic code splitting for optimal loading
- Tree Shaking - Unused code elimination
- Bundle Analysis - Built-in webpack bundle analyzer
- Performance Monitoring - Core Web Vitals optimization
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
yarn test - Run linting:
yarn lint - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
React, Material-UI, UI Components, Design System, TypeScript, Storybook, Accessibility, Responsive Design, AI, Machine Learning, Frontend, JavaScript, Web Development, Component Library, User Interface, UX Design
Built with β€οΈ by the Joyn AI Team
Optimized for modern web applications with a focus on performance, accessibility, and developer experience.