Skip to content

🚀 Modern React 19 Admin Dashboard Template with TypeScript, Tailwind CSS & Shadcn/ui. Features dark/light themes, multi-language support (TR/EN), responsive design, charts, authentication pages & comprehensive admin interface.

License

Notifications You must be signed in to change notification settings

sametuca/react19-clapton-admin-template-free

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React 19 Clapton Admin Template - Premium Edition

React TypeScript Vite Tailwind CSS License

The most advanced React 19 admin template with premium components, modern design, and enterprise-grade architecture

https://react19-clapton-admin-template-free.vercel.app/

Features

Premium UI Components

  • 200+ Unique Components - Professionally designed React components
  • Dark/Light Theme - Built-in theme switching with CSS variables
  • Responsive Design - Mobile-first approach with Tailwind CSS
  • Modern Animations - Smooth transitions powered by Framer Motion
  • Glassmorphism Effects - Contemporary design trends

AI-Powered Components

  • AI Chat Assistant - Intelligent conversational interface
  • Smart Search - Semantic search with auto-suggestions
  • AI Insights - Automated analytics and predictions
  • Machine Learning - Pre-trained models integration

React 19 Technology Stack

  • React 19 - Latest React with concurrent features
  • TypeScript - Full type safety and IntelliSense
  • Vite - Lightning-fast build tool
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Production-ready animations

Admin Dashboard Features

  • 50+ Admin Pages - Complete admin interface
  • Data Tables - Sortable, filterable, paginated tables
  • Charts & Analytics - Interactive data visualization
  • Form Wizards - Multi-step form components
  • User Management - Role-based access control

Installation

Prerequisites

  • Node.js 18.0 or higher
  • npm 9.0 or yarn 1.22 or bun 1.0
  • Git for version control

Quick Start

# Clone the repository
git clone https://github.com/sametuca/react19-clapton-admin-template-premium

# Navigate to project directory
cd react19-clapton-admin-template

# Install dependencies
npm install
# or
yarn install
# or
bun install

# Start development server
npm run dev
# or
yarn dev
# or
bun dev

Environment Setup

# Copy environment variables
cp .env.example .env.local

# Edit environment variables
nano .env.local

Getting Started

1. Project Structure

src/
├── components/          # Reusable UI components
│   ├── ui/            # Base UI components (shadcn/ui)
│   └── ai/            # AI-powered components
├── pages/              # Application pages
│   ├── showcase/       # Component showcase
│   └── ...            # Other pages
├── contexts/           # React contexts
├── hooks/              # Custom React hooks
├── lib/                # Utility functions
└── layouts/            # Layout components

2. First Steps

  1. Welcome Page - Landing page with React 19 features
  2. Dashboard - Main admin interface at /dashboard
  3. Component Showcase - Browse all components at /showcase
  4. AI Components - Test AI features at /showcase/ai

3. Customization

// src/contexts/ThemeContext.tsx
export const ThemeContext = createContext({
  theme: 'dark',
  toggleTheme: () => {},
});

// Customize theme colors
// src/index.css
:root {
  --primary: 59 130 246;
  --secondary: 139 92 246;
  --accent: 16 185 129;
}

Component Usage

Basic Component

import { Button } from '@/components/ui/button';

function MyComponent() {
  return (
    <Button variant="default" size="lg">
      Click Me
    </Button>
  );
}
  • Add a New Page
    1. Create a component in src/pages/
    2. Add the route in src/App.tsx
    3. Update navigation in src/components/AppSidebar.tsx
  • Add a New Language
    1. Extend translations in src/contexts/LanguageContext.tsx
    2. Add the language selector in src/layouts/AppLayout.tsx
  • Modify Themes
    • Edit Tailwind configuration in tailwind.config.ts
    • Update logic in src/contexts/ThemeContext.tsx

function PremiumPage() { return (

); }


## Theming & Styling

### **Theme Switching**
```tsx
import { useTheme } from '@/contexts/ThemeContext';

function ThemeToggle() {
  const { theme, toggleTheme } = useTheme();
  
  return (
    <button onClick={toggleTheme}>
      Current: {theme}
    </button>
  );
}

Custom Colors

/* src/index.css */
@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
    --primary: 59 130 246;
    --primary-foreground: 210 40% 98%;
  }
  
  .dark {
    --background: 222.2 84% 4.9%;
    --foreground: 210 40% 98%;
    --primary: 59 130 246;
    --primary-foreground: 222.2 84% 4.9%;
  }
}
  • Mobile-first approach
  • Collapsible sidebar on small screens
  • Touch-friendly interface elements
  • Optimized layouts for all devices

🧑‍💻 Tech Stack

  • React 19 with TypeScript
  • Tailwind CSS
  • shadcn/ui component library
  • Lucide React icon set
  • Recharts for data visualization
  • React Router DOM for routing
  • React Context API for state management
  • Vite as the build tool
  • npm or bun as package manager

⚙️ Development Scripts

  • npm run dev – Start development server
  • npm run build – Build for production
  • npm run preview – Preview production build
  • npm run lint – Run ESLint checks

Code Standards:
TypeScript, ESLint, Prettier


Responsive Design

Breakpoints

/* Tailwind CSS breakpoints */
sm: 640px   /* Small devices */
md: 768px   /* Medium devices */
lg: 1024px  /* Large devices */
xl: 1280px  /* Extra large devices */
2xl: 1536px /* 2X large devices */

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


Mobile-First Approach

function ResponsiveComponent() {
  return (
    <div className="
      grid 
      grid-cols-1          /* Mobile: 1 column */
      md:grid-cols-2      /* Medium: 2 columns */
      lg:grid-cols-3      /* Large: 3 columns */
      gap-4
    ">
      {/* Content */}
    </div>
  );
}

Development

Available Scripts

{
  "scripts": {
    "dev": "vite",                    // Development server
    "build": "tsc && vite build",     // Production build
    "preview": "vite preview",        // Preview production build
    "lint": "eslint . --ext ts,tsx", // Lint code
    "type-check": "tsc --noEmit"     // Type checking
  }
}

Code Quality

# Run ESLint
npm run lint

# Type checking
npm run type-check

# Format code (if Prettier is configured)
npx prettier --write src/

Building for Production

# Build the application
npm run build

# Preview production build
npm run preview

# Build with analysis
npm run build -- --analyze

Deployment

Netlify

# Build the project
npm run build

# Deploy dist/ folder to Netlify
# Or connect GitHub repository

Docker

# Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

API Integration

REST API Example

import { useState, useEffect } from 'react';

function UserList() {
  const [users, setUsers] = useState([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    fetch('/api/users')
      .then(res => res.json())
      .then(data => {
        setUsers(data);
        setLoading(false);
      });
  }, []);

  if (loading) return <div>Loading...</div>;
  
  return (
    <div>
      {users.map(user => (
        <div key={user.id}>{user.name}</div>
      ))}
    </div>
  );
}

GraphQL Integration

import { useQuery, gql } from '@apollo/client';

const GET_USERS = gql`
  query GetUsers {
    users {
      id
      name
      email
    }
  }
`;

function UserList() {
  const { loading, error, data } = useQuery(GET_USERS);
  
  if (loading) return <div>Loading...</div>;
  if (error) return <div>Error: {error.message}</div>;
  
  return (
    <div>
      {data.users.map(user => (
        <div key={user.id}>{user.name}</div>
      ))}
    </div>
  );
}

Security

Authentication

import { useAuth } from '@/hooks/useAuth';

function ProtectedRoute({ children }) {
  const { user, loading } = useAuth();
  
  if (loading) return <div>Loading...</div>;
  if (!user) return <Navigate to="/login" />;
  
  return children;
}

Environment Variables

# .env.local
VITE_API_URL=https://api.example.com
VITE_AUTH_DOMAIN=auth.example.com
VITE_CLIENT_ID=your-client-id

Performance

Lazy Loading

import { lazy, Suspense } from 'react';

const HeavyComponent = lazy(() => import('./HeavyComponent'));

function App() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <HeavyComponent />
    </Suspense>
  );
}

Code Splitting

// Automatic code splitting with React.lazy
const Dashboard = lazy(() => import('./pages/Dashboard'));
const Analytics = lazy(() => import('./pages/Analytics'));

Image Optimization

import { Image } from '@/components/ui/image';

function OptimizedImage() {
  return (
    <Image
      src="/hero.jpg"
      alt="Hero Image"
      width={800}
      height={400}
      loading="lazy"
      placeholder="blur"
    />
  );
}

Testing

Unit Testing

# Install testing dependencies
npm install --save-dev @testing-library/react @testing-library/jest-dom

# Run tests
npm test

# Run tests with coverage
npm test -- --coverage

Component Testing

import { render, screen } from '@testing-library/react';
import { Button } from '@/components/ui/button';

test('renders button with text', () => {
  render(<Button>Click me</Button>);
  expect(screen.getByText('Click me')).toBeInTheDocument();
});

Package Management

Dependencies

{
  "dependencies": {
    "react": "^19.0.0",
    "react-dom": "^19.0.0",
    "framer-motion": "^11.0.0",
    "tailwindcss": "^3.4.0"
  },
  "devDependencies": {
    "typescript": "^5.0.0",
    "vite": "^5.0.0",
    "@types/react": "^19.0.0"
  }
}

Updating Dependencies

# Check for updates
npm outdated

# Update packages
npm update

# Update to latest versions
npx npm-check-updates -u
npm install

Troubleshooting

Common Issues

Port Already in Use

# Kill process using port 8080
npx kill-port 8080

# Or use different port
npm run dev -- --port 3001

TypeScript Errors

# Clear TypeScript cache
rm -rf node_modules/.cache/typescript/

# Reinstall dependencies
rm -rf node_modules package-lock.json
npm install

Build Errors

# Clear build cache
rm -rf dist/ .vite/

# Check for syntax errors
npm run type-check

Performance Issues

// Use React.memo for expensive components
const ExpensiveComponent = React.memo(function ExpensiveComponent({ data }) {
  // Component logic
});

// Use useMemo for expensive calculations
const expensiveValue = useMemo(() => {
  return heavyCalculation(data);
}, [data]);

Additional Resources

Documentation

Community

Tools & Extensions

License

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

Acknowledgments

  • React Team - For the amazing framework
  • Vite Team - For the fast build tool
  • Tailwind CSS - For the utility-first CSS framework
  • Framer Motion - For the smooth animations
  • shadcn/ui - For the beautiful component library

Made with love by the Clapton Team

Ready to build amazing React applications? Get started with Clapton Admin Template today!

Routing (Yeni Showcase Sayfaları)

Aşağıdaki örnek App.tsx (veya router giriş dosyanıza) ekleyin:

// src/App.tsx (örnek)
// ...existing imports...
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Welcome from "./pages/Welcome";
import ComponentShowcaseIndex from "./pages/showcase/ComponentShowcaseIndex";
import AdvancedComponents from "./pages/showcase/AdvancedComponents";
import UniqueComponents from "./pages/showcase/UniqueComponents";
import ModernGallery from "./pages/showcase/ModernGallery";

// Lazy kullanım isterseniz:
// const AdvancedComponents = lazy(() => import("./pages/showcase/AdvancedComponents"));
// const UniqueComponents = lazy(() => import("./pages/showcase/UniqueComponents"));
// const ModernGallery = lazy(() => import("./pages/showcase/ModernGallery"));

export default function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Welcome />} />

        {/* Showcase ana indeks */}
        <Route path="/showcase" element={<ComponentShowcaseIndex />} />

        {/* Yeni eklenen gelişmiş sayfalar */}
        <Route path="/showcase/advanced" element={<AdvancedComponents />} />
        <Route path="/showcase/unique" element={<UniqueComponents />} />
        <Route path="/showcase/gallery" element={<ModernGallery />} />

        {/* Diğer mevcut rotalarınız */}
        {/* <Route path="/showcase/ai" element={<AIComponents />} /> */}
        {/* <Route path="/dashboard" element={<Dashboard />} /> */}
      </Routes>
    </BrowserRouter>
  );
}

Lazy load + Suspense örneği:

import { Suspense, lazy } from "react";
const AdvancedComponents = lazy(() => import("./pages/showcase/AdvancedComponents"));

<Suspense fallback={<div>Loading...</div>}>
  <AdvancedComponents />
</Suspense>

About

🚀 Modern React 19 Admin Dashboard Template with TypeScript, Tailwind CSS & Shadcn/ui. Features dark/light themes, multi-language support (TR/EN), responsive design, charts, authentication pages & comprehensive admin interface.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages