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

Skip to content

A set of beautifully-designed, accessible components and a code distribution platform. Built on top of..you know who

License

Notifications You must be signed in to change notification settings

haikelareff/tamanjali

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Taman Jali - Design System & Component Library

Beautiful, accessible, and customizable React components

A comprehensive design system built with React, TypeScript, and Tailwind CSS

✨ Features

  • 🎨 Beautiful Design - Modern, clean, and professional components
  • β™Ώ Accessible - Built with accessibility in mind, WCAG compliant
  • 🎯 Copy & Paste - No complex installation, just copy and paste
  • πŸ”§ Customizable - Fully customizable with CSS variables and Tailwind CSS
  • πŸ“± Responsive - Mobile-first design that works on all devices
  • πŸŒ™ Dark Mode - Built-in dark mode support
  • πŸ“š Well Documented - Comprehensive documentation with examples
  • ⚑ TypeScript - Full TypeScript support with proper type definitions

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm/yarn/pnpm
  • A React project with Tailwind CSS

Installation

  1. Install dependencies:
npm install @radix-ui/react-label @radix-ui/react-slot class-variance-authority clsx tailwind-merge lucide-react
  1. Copy the utils function:

Create lib/utils.ts:

import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}
  1. Configure Tailwind CSS:

Add the following to your tailwind.config.js:

module.exports = {
  darkMode: ["class"],
  content: [
    './pages/**/*.{ts,tsx}',
    './components/**/*.{ts,tsx}',
    './app/**/*.{ts,tsx}',
    './src/**/*.{ts,tsx}',
  ],
  theme: {
    extend: {
      colors: {
        border: "hsl(var(--border))",
        input: "hsl(var(--input))",
        ring: "hsl(var(--ring))",
        background: "hsl(var(--background))",
        foreground: "hsl(var(--foreground))",
        primary: {
          DEFAULT: "hsl(var(--primary))",
          foreground: "hsl(var(--primary-foreground))",
        },
        secondary: {
          DEFAULT: "hsl(var(--secondary))",
          foreground: "hsl(var(--secondary-foreground))",
        },
        destructive: {
          DEFAULT: "hsl(var(--destructive))",
          foreground: "hsl(var(--destructive-foreground))",
        },
        muted: {
          DEFAULT: "hsl(var(--muted))",
          foreground: "hsl(var(--muted-foreground))",
        },
        accent: {
          DEFAULT: "hsl(var(--accent))",
          foreground: "hsl(var(--accent-foreground))",
        },
        popover: {
          DEFAULT: "hsl(var(--popover))",
          foreground: "hsl(var(--popover-foreground))",
        },
        card: {
          DEFAULT: "hsl(var(--card))",
          foreground: "hsl(var(--card-foreground))",
        },
      },
      borderRadius: {
        lg: "var(--radius)",
        md: "calc(var(--radius) - 2px)",
        sm: "calc(var(--radius) - 4px)",
      },
    },
  },
  plugins: [require("tailwindcss-animate")],
}
  1. Add CSS variables:

Add the following to your globals.css:

@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
    --card: 0 0% 100%;
    --card-foreground: 222.2 84% 4.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 222.2 84% 4.9%;
    --primary: 222.2 47.4% 11.2%;
    --primary-foreground: 210 40% 98%;
    --secondary: 210 40% 96%;
    --secondary-foreground: 222.2 47.4% 11.2%;
    --muted: 210 40% 96%;
    --muted-foreground: 215.4 16.3% 46.9%;
    --accent: 210 40% 96%;
    --accent-foreground: 222.2 47.4% 11.2%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;
    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
    --ring: 222.2 84% 4.9%;
    --radius: 0.5rem;
  }

  .dark {
    --background: 222.2 84% 4.9%;
    --foreground: 210 40% 98%;
    --card: 222.2 84% 4.9%;
    --card-foreground: 210 40% 98%;
    --popover: 222.2 84% 4.9%;
    --popover-foreground: 210 40% 98%;
    --primary: 210 40% 98%;
    --primary-foreground: 222.2 47.4% 11.2%;
    --secondary: 217.2 32.6% 17.5%;
    --secondary-foreground: 210 40% 98%;
    --muted: 217.2 32.6% 17.5%;
    --muted-foreground: 215 20.2% 65.1%;
    --accent: 217.2 32.6% 17.5%;
    --accent-foreground: 210 40% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 210 40% 98%;
    --border: 217.2 32.6% 17.5%;
    --input: 217.2 32.6% 17.5%;
    --ring: 212.7 26.8% 83.9%;
  }
}
  1. Start using components:
import { Button } from "@/components/ui/button"

export function MyComponent() {
  return <Button>Click me</Button>
}

πŸ“– Documentation

Visit our documentation site to:

  • Browse all available components
  • View live examples
  • Copy component code
  • Learn about customization options

🧩 Available Components

  • Button - Versatile button with multiple variants and sizes
  • Card - Flexible container for content
  • Input - Form input with validation support
  • Label - Accessible form labels
  • Textarea - Multi-line text input
  • Mode Toggle - Dark/light theme switcher

πŸ—οΈ Development

Running Locally

  1. Clone the repository:
git clone https://github.com/taman-jali/taman-jali-app.git
cd taman-jali-app
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open http://localhost:3000 in your browser.

Project Structure

taman-jali-app/
β”œβ”€β”€ app/                    # Next.js app directory
β”œβ”€β”€ components/             # Reusable components
β”‚   β”œβ”€β”€ ui/                # UI components
β”‚   └── ...
β”œβ”€β”€ content/               # Documentation content
β”œβ”€β”€ lib/                   # Utility functions
β”œβ”€β”€ public/                # Static assets
β”œβ”€β”€ registry/              # Component registry
└── ...

πŸš€ Deployment

Deploy to Vercel

  1. Push your code to GitHub
  2. Import your repository on Vercel
  3. Deploy with one click

Environment Variables

Set the following environment variables for production:

NEXT_PUBLIC_BASE_URL=https://your-domain.com

🀝 Contributing

We welcome contributions! Please read our Contributing Guide for details on:

  • Code of Conduct
  • Development process
  • Submitting pull requests
  • Reporting issues

πŸ“„ License

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

πŸ™ Acknowledgments

  • shadcn/ui - Inspiration for the component architecture
  • Radix UI - Unstyled, accessible components
  • Tailwind CSS - Utility-first CSS framework
  • Lucide - Beautiful & consistent icons

Built with ❀️ by the Taman Jali team

GitHub β€’ Documentation β€’ Components

About

A set of beautifully-designed, accessible components and a code distribution platform. Built on top of..you know who

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •