A curated collection of 6 beautiful, accessible, and reusable components built with React, TypeScript, and Tailwind CSS. Each component includes live interactive previews and copy-paste ready code examples.
- π― 6 Production-Ready Components: Interactive Card, Pricing Card, Statistics Card, Testimonial Card, Feature Card, Blog Card
- π§ Full TypeScript Support: Complete type definitions with IntelliSense
- π± Responsive Design: Mobile-first approach with responsive layouts
- βΏ Accessible: Built with ARIA attributes and keyboard navigation
- π¨ Highly Customizable: Easy to customize with Tailwind CSS and component props
- π Performance Optimized: Tree-shakeable exports and minimal bundle impact
- π Copy-Paste Ready: One-click code copying with complete examples
- π Live Previews: Interactive component demonstrations
- π Comprehensive Documentation: JSDoc comments and prop tables
- Clone the repository:
git clone https://github.com/tahmidbintaslim/shadcn-ui-library.git
cd shadcn-ui-library- Install dependencies:
npm install- Run the development server:
npm run dev- Open your browser:
Visit http://localhost:3000 to explore the component library.
A beautiful card component with hover effects, animations, and flexible content layout.
Key Features:
- Customizable hover animations
- Badge support with multiple variants
- Flexible content areas
- Click handlers and actions
import { InteractiveCard } from "@/components/custom/interactive-card";
<InteractiveCard
title="Product Launch"
description="Join us for the biggest tech event of the year!"
badge="Live"
badgeVariant="destructive"
hoverEffect={true}
actionText="Register Now"
onAction={() => alert("Registration clicked!")}
/>;Professional pricing cards with features list, call-to-action buttons, and responsive design.
Key Features:
- Popular plan highlighting
- Feature lists with included/excluded items
- Flexible pricing display
- Custom CTA buttons
import { PricingCard } from "@/components/custom/pricing-card";
<PricingCard
name="Pro Plan"
description="Perfect for growing teams"
price={29}
currency="$"
period="month"
features={[
{ text: "Unlimited projects", included: true },
{ text: "Priority support", included: true },
{ text: "Advanced analytics", included: true },
{ text: "Custom integrations", included: false },
]}
ctaText="Start Free Trial"
popular={true}
onSelect={() => alert("Plan selected!")}
/>;Display key metrics and statistics with beautiful icons and trend indicators.
Key Features:
- Trend indicators (up/down/neutral)
- Custom icons with colors
- Formatted number display
- Responsive layouts
import { StatisticsCard } from "@/components/custom/statistics-card";
import { DollarSign } from "lucide-react";
<StatisticsCard
title="Total Revenue"
value={45231}
prefix="$"
change={20.1}
changePeriod="from last month"
icon={DollarSign}
iconColor="text-green-600"
/>;Beautiful testimonial cards with ratings, user avatars, and authentic customer feedback.
Key Features:
- 5-star rating system
- Avatar support with fallbacks
- Multiple card variants
- Quote styling
import { TestimonialCard } from "@/components/custom/testimonial-card";
<TestimonialCard
testimonial="This component library has saved our team countless hours!"
author="Alex Chen"
role="Frontend Developer"
company="InnovateTech"
rating={5}
variant="elevated"
/>;Showcase product features with icons, descriptions, and call-to-action elements.
Key Features:
- Vertical and horizontal layouts
- Custom icon backgrounds
- Badge support
- Hover animations
import { FeatureCard } from "@/components/custom/feature-card";
import { BarChart3 } from "lucide-react";
<FeatureCard
title="Advanced Analytics"
description="Get detailed insights with our powerful analytics dashboard"
icon={BarChart3}
iconColor="text-blue-600"
iconBg="bg-blue-100"
badge="Popular"
ctaText="Explore Analytics"
onCtaClick={() => alert("Analytics clicked!")}
hoverEffect={true}
/>;Perfect for blog posts, articles, and news content with images, metadata, and multiple layout variants.
Key Features:
- Multiple layout variants (default, horizontal, minimal)
- Rich metadata support
- Category tags
- Like counters and read time
import { BlogCard } from "@/components/custom/blog-card";
<BlogCard
title="Building Modern UI Components"
excerpt="Learn how to create beautiful, reusable UI components..."
author="Sarah Wilson"
date="2024-01-15"
readTime="8 min read"
category="React"
categoryColor="bg-blue-100 text-blue-800"
likes={127}
variant="default"
/>;All components are built with Tailwind CSS and can be easily customized using the className prop:
<InteractiveCard
title="Custom Styled Card"
description="This card has custom styling"
className="bg-gradient-to-r from-blue-500 to-purple-600 text-white border-0"
hoverEffect={true}
/>Each component accepts a comprehensive set of props for customization:
- Styling:
className, variant-specific props - Content: titles, descriptions, custom content areas
- Interactions: click handlers, hover effects
- Accessibility: ARIA labels, keyboard navigation
- Theming: color variants, size options
src/
βββ app/
β βββ components/ # Components showcase page
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Homepage
βββ components/
βββ custom/ # Custom component library
β βββ interactive-card/
β βββ pricing-card/
β βββ statistics-card/
β βββ testimonial-card/
β βββ feature-card/
β βββ blog-card/
β βββ index.ts # Component exports
βββ ui/ # Base shadcn/ui components
This project is optimized for deployment on Vercel, Netlify, or any modern hosting platform:
- Push your code to GitHub
- Import your repository in Vercel
- Deploy automatically - Vercel will detect Next.js and configure everything
# Build the project
npm run build
# Start production server
npm startNo environment variables required for basic functionality.
npm run dev- Start development server with Turbopacknpm run build- Build for productionnpm start- Start production servernpm run lint- Run ESLint
- Create a new directory in
src/components/custom/ - Create the component file with TypeScript interfaces
- Add comprehensive JSDoc documentation
- Export from
index.ts - Add to the showcase page
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-component) - Add your component following the existing patterns
- Include documentation and examples
- Test thoroughly
- Submit a pull request
- Use TypeScript with comprehensive interfaces
- Include JSDoc documentation
- Follow accessibility best practices
- Add multiple usage examples
- Ensure responsive design
- Bundle Size: Optimized with tree-shaking
- Runtime: React 19 with concurrent features
- Build Time: Enhanced with Turbopack
- SEO: Next.js with proper metadata
- Framework: Next.js 15.3.5
- Language: TypeScript 5.0
- Styling: Tailwind CSS 4.0
- UI Primitives: Radix UI
- Icons: Lucide React
- Build: Turbopack
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the foundational component system
- Radix UI for accessible primitives
- Tailwind CSS for utility-first styling
- Lucide React for beautiful icons
- Next.js for the React framework
If you find this project helpful, please consider:
- β Starring the repository
- π Reporting bugs
- π‘ Suggesting new components
- π Contributing code
Made with β€οΈ by the open-source community
Ready to build amazing UIs? Get started now!