Sample React component library project built with TypeScript, Tailwind CSS, class-variance-authority and testing with Vitest/Jest.
npm install divy-ui- Import the styles in your main application file:
import "divy-ui/style.css";- Import and use components:
import { Button } from "divy-ui";
function App() {
// Basic usage
return <Button>Click me</Button>;
// The Button component comes with customization options:
return (
<>
{/* Different variants */}
<Button variant="solid">Solid Button</Button>
<Button variant="outline">Outline Button</Button>
<Button variant="ghost">Ghost Button</Button>
{/* Color variants */}
<Button color="primary">Primary</Button>
<Button color="secondary">Secondary</Button>
<Button color="success">Success</Button>
<Button color="danger">Danger</Button>
{/* Loading state */}
<Button isLoading>Loading...</Button>
{/* Sizes */}
<Button size="sm">Small</Button>
<Button size="md">Medium</Button>
<Button size="lg">Large</Button>
{/* With custom icon */}
<Button icon={<YourIcon />}>With Icon</Button>
</>
);
}- Built with Tailwind CSS for modern, utility-first styling
- Written in TypeScript for better type safety
- Efficient styling with class-variance-authority and tailwind-merge
- Storybook documentation for component exploration
- Comprehensive test coverage with Vitest/Jest
- Button
- Input
- Card
- Divider
- Image
- Link
- Modal
- Progress bar
- Accordion
- Radio
- Sidebar
- Tooltip
- Badge
- Spinner
- Tabs
Node.js >= 18;
npm >= 9;- Clone the repository
git clone https://github.com/yourusername/divy-ui.git
cd divy-ui- Install dependencies
npm install- Create TypeScript build configuration
Create a
tsconfig.build.jsonfile in your project root:
{
"extends": "./tsconfig.app.json",
"compilerOptions": {
"declaration": true,
"declarationDir": "./dist",
"emitDeclarationOnly": true,
"noEmit": false,
"outDir": "./dist",
"moduleResolution": "node",
"allowImportingTsExtensions": false
},
"include": ["lib/**/*"],
"exclude": [
"public",
"types",
"node_modules",
"**/*.test.ts",
"**/*.test.tsx",
"**/*.stories.tsx",
"./src/setupTests.ts"
]
}This configuration ensures that only the component source files are included in the build, excluding test files, stories, and other development-only files. Scripts
npm run dev- Start development servernpm run build- Build for productionnpm run test- Run testsnpm run storybook- Start Storybook servernpm run lint- Run linting
- React
- TypeScript
- Vite
- Tailwind CSS
- class-variance-authority
- tailwind-merge
- Storybook
- Vitest/Jest
Contributions are welcome! Please feel free to submit a Pull Request.