Skip to main content

Introduction & Setup

Welcome to Jiansu — Modern Crypto & Trading React Admin Dashboard Template Documentation.

Thank you for choosing Jiansu! This documentation provides in-depth guidance on how to install, configure, customize, and extend the template for your cryptocurrency exchange, Web3 analytics platform, trading terminal, or financial administration portal.

1. Product Overview: Jiansu Crypto & Trading Admin

Jiansu is a state-of-the-art, high-performance, and feature-complete Crypto & Trading Admin Dashboard template built with React 19, Tailwind CSS v4, and Vite 8. Engineered with modular architecture, isolated reusable UI components, and cutting-edge visual aesthetics, Jiansu delivers everything needed to build production-ready fintech applications.

Key Highlights:

  • Modern Tech Stack: Powered by React 19, Tailwind CSS v4, and Vite 8 for blazing fast Hot Module Replacement (HMR) and optimized build outputs.
  • 32+ Pre-built Pages: Comprehensive suite of specialized pages for Trading Desks, Portfolio Overview, Wallet Management, KYC Verifications, Security Audit, Transaction Logs, Support Tickets, Authentication, Errors, and UI Elements.
  • Dual Theme Mode: Native Dark and Light themes with animated View Transitions API support.
  • Bi-directional (LTR & RTL): Full Right-to-Left (RTL) language support with instantaneous toggle.
  • Dynamic 8-Color Accent Switcher: Emerald, Ocean Blue, Violet, Ruby Red, Amber, Aqua Cyan, Hot Pink, and Indigo with real-time CSS variable shade generation.
  • Lenis Smooth Scrolling: Silky-smooth desktop scrolling experience integrated at root.
  • Rich Interactive Visualizations: Financial candlestick charts, order books, spline area trends, and asset allocation donuts powered by ApexCharts and Recharts.
  • Code-Splitting & Lazy Loading: Dynamic page-level routing with React.lazy() and <Suspense>.
  • Clean & Modular Codebase: Strict component isolation, reusable UI library, and zero console errors or warnings.

Technology Stack:

Technology Version Description
React ^19.2.6 Latest modern frontend component framework
React DOM ^19.2.6 React package for DOM rendering
Tailwind CSS ^4.3.3 Next-generation utility-first CSS engine
@tailwindcss/vite ^4.3.0 Official Tailwind CSS v4 Vite integration plugin
Vite ^8.2.2 Lightning-fast development server & production bundler
React Router DOM ^7.15.1 Declarative client-side routing and layout rendering
ApexCharts ^5.13.0 Interactive charting engine for financial & candlestick data
React ApexCharts ^2.1.0 Official React wrapper component for ApexCharts
Recharts ^3.8.1 Composable React SVG charting library for analytics
Framer Motion ^12.43.0 Production-ready motion library for fluid UI animations
GSAP ^3.15.0 Professional-grade JavaScript animation engine
Lenis ^1.3.26 Modern smooth scrolling library
Lucide React ^1.16.0 Crisp, clean, consistent SVG iconography
React Icons ^5.6.0 Comprehensive icon collection
@headlessui/react ^2.2.10 Completely unstyled, accessible UI components
React Hot Toast ^2.6.0 Lightweight, animated notification toast manager
clsx & tailwind-merge ^2.1.1 / ^3.6.0 Dynamic class string composition and conflict resolution

2. License & Usage Terms

ThemeForest / Envato Market license types and their usage guidelines:

Regular License

Use this for a single end product that end-users are not charged for. Perfect for personal projects, client websites, internal dashboards, or company tools where no subscription fee is required from users.

Extended License

Use this for a single end product where end-users can be charged for access (e.g., a commercial SaaS exchange, paid trading terminal, subscription analytics platform, or product for sale).

Important Notice

Each license grants rights for a single end product. You may not re-distribute, sub-license, resell, or share the source code publicly. For official terms, please review the Envato License Terms.

3. Changelog

Track the continuous evolution, features, and releases of Jiansu.

v1.0.0 — Initial Release
Current Release

Date: 28 October 2026

  • Core Framework: Built from the ground up with React 19, Tailwind CSS v4, and Vite 8.
  • 32+ Pre-built Pages:
    • Dashboards: Portfolio Overview, Live Trading Desk (Orderbook & Candlesticks), Security Center (2FA & Audit Logs), Transaction History.
    • App Modules: Multi-currency Wallet Balances, Tiered KYC Verification, Supported Trading Pairs Status, Support Ticket Portal, Payment & Transaction Management, Platform & Account Settings.
    • Authentication Suite: Clean, split-view modern layouts for Sign In, Sign Up, Forgot Password, Reset Password, and Email / OTP Verification.
    • System & Error Pages: Custom interactive 404 Not Found & 500 Internal Server Error pages with automatic recovery routes.
    • UI Elements Library: Comprehensive showcase for Accordion, Alerts, Avatars, Badges, Breadcrumbs, Buttons, Cards, Charts, Dropdowns, Input & Forms, Modals, Progress Bars, Pagination, Spinners, and Data Tables.
  • Theme & Direction Engine:
    • Native dual-theme engine (Dark & Light Mode) with View Transitions API support.
    • Full RTL (Right-to-Left) & LTR bi-directional layout support for internationalization.
    • Dynamic 8-color primary palette switcher with real-time CSS variable shade generation.
  • Visualizations: Interactive Candlestick and spline area charts using ApexCharts, plus asset allocation donut and performance area charts using Recharts.
  • UX & Motion: Silky-smooth scrolling experience powered by Lenis and fluid micro-animations powered by Framer Motion.
  • Developer Experience: Zero console errors, zero warnings, clean ESLint flat configuration, and optimized Rollup chunking.

4. File Structure

Jiansu follows a clean, modular folder organization adhering to React 19 and Vite best practices:

jiansu/
├── public/                     # Static assets accessible directly
│   ├── documentation/          # Standalone offline documentation
│   │   ├── css/                # Documentation stylesheets (app.css, bootstrap)
│   │   ├── images/             # Documentation visual assets
│   │   ├── js/                 # Documentation scripts
│   │   ├── doc.html            # Main documentation page
│   │   └── index.html          # Documentation showcase landing
│   ├── favicon.ico             # Browser tab favicon
│   └── icons.svg               # SVG icons sprite
├── src/
│   ├── assets/                 # Static media and brand assets
│   │   ├── logo/               # Brand logos (logo-dark.png, logo-light.png, logo-sm.png)
│   │   ├── user/               # Demo avatars and profile images
│   │   └── card-img/           # Showcase cards and banners
│   ├── components/
│   │   ├── context/            # Global context providers
│   │   │   └── theme-context.jsx # Dark/Light mode, RTL/LTR, dynamic primary color
│   │   ├── layout/             # Shell and layout architecture
│   │   │   ├── dashboard.jsx   # Master layout wrapper with header, sidebar & rightbar
│   │   │   ├── navbar.jsx      # Top sticky header with search, notifications, profile
│   │   │   ├── sidebar.jsx     # Collapsible navigation sidebar
│   │   │   ├── menu-data.jsx   # Structured menu routes, labels, and icons
│   │   │   ├── rightbar.jsx    # Slide-out theme customizer drawer
│   │   │   ├── footer.jsx      # Footer bar with copyright
│   │   │   └── style-helpers.jsx # Shared style utility functions
│   │   ├── mockdata/           # Curated JSON mock datasets
│   │   │   ├── overview-data.json
│   │   │   ├── trading-data.json
│   │   │   ├── wallet-data.json
│   │   │   ├── chart-data.json
│   │   │   ├── kyc-data.json
│   │   │   ├── security-data.json
│   │   │   ├── table-data.json
│   │   │   └── settings-data.json
│   │   ├── pages/              # Application pages
│   │   │   ├── auth/           # Login, Register, Forgot Password, Reset, Verify
│   │   │   ├── dashboard/      # Overview, Trading, Security, KYC, Wallet, etc.
│   │   │   └── errors/         # 404 Not Found, 500 Server Error
│   │   ├── ui/                 # Reusable atomic UI components (Button, Card, Input...)
│   │   └── ui-elements/        # Interactive showcase pages for UI components
│   ├── routes/
│   │   └── routes-path.jsx     # Master route configuration with lazy loading & Suspense
│   ├── App.jsx                 # Top-level component with Lenis smooth scroll
│   ├── index.css               # Tailwind CSS v4 setup, font imports, custom animations
│   └── main.jsx                # React 19 root entry with BrowserRouter & ThemeProvider
├── eslint.config.js            # ESLint flat configuration
├── index.html                  # Root HTML template with meta SEO tags
├── jsconfig.json               # Path aliasing configuration
├── package.json                # Project dependencies, scripts, and metadata
├── vite.config.js              # Vite build setup with Rollup vendor chunking
└── README.md                   # Project summary & quick reference

5. Installation Guide

Follow these quick steps to get Jiansu up and running on your local machine.

System Prerequisites:

  • Node.js: v18.0.0 or higher (v20+ LTS recommended). Check with node -v.
  • Package Manager: npm (v9+), yarn, or pnpm. Check with npm -v.
  • Browser: Modern Chromium, Firefox, or Safari with modern CSS support.

Step 1: Extract the Archive

Download the ZIP archive from ThemeForest and extract it to your preferred working directory.

Step 2: Open Terminal in Project Folder

cd jiansu

Step 3: Install Node Dependencies

Execute your preferred package manager to install all required libraries:

# Using npm (recommended)
npm install

# Or using yarn
yarn install

# Or using pnpm
pnpm install

Step 4: Launch the Development Server

Start the Vite development server with Hot Module Replacement (HMR):

npm run dev

Your terminal will display the local development URL, typically:

Server active: Open http://localhost:5173 in your web browser.

6. Deployment & Production Build

To compile and optimize Jiansu for a production environment:

npm run build

This command compiles all JSX, minifies stylesheets, tree-shakes unused dependencies, and generates an optimized production bundle inside the dist/ directory.

Preview the Production Build Locally:

npm run preview

Deployment Targets:

  • Vercel: Import the repository and set the framework preset to Vite. The build command is npm run build and the output directory is dist.
  • Netlify: Connect your Git repository, set the build command to npm run build, and publish directory to dist. Ensure client-side routing redirect is configured (/* /index.html 200).
  • Apache / Nginx / Traditional Hosting: Upload all files inside dist/ directly to your web server root (public_html or /var/www/html). Ensure fallback routing to index.html is enabled for React Router.

7. Theme & Dark Mode Management

Jiansu features a comprehensive, state-of-the-art theme system managed via ThemeProvider in src/components/context/theme-context.jsx. It provides persistent theme state in localStorage and animated View Transitions API support.

How to Change the Default Theme Mode:

By default, Jiansu opens in dark mode (ideal for crypto & trading interfaces). If you prefer light mode by default, open src/components/context/theme-context.jsx and edit line 49:

// src/components/context/theme-context.jsx
// Change "dark" to "light"
const [theme, setTheme] = useState("light");

Accessing Theme State via Hook:

You can read or toggle the theme anywhere in your application using the custom useTheme() hook:

import { useTheme } from '../components/context/theme-context';

const ThemeToggleButton = () => {
  const { theme, toggleTheme } = useTheme();

  return (
    <button onClick={() => toggleTheme('circle-blur', 'top-right')}>
      Current Mode: {theme === 'dark' ? 'Dark' : 'Light'}
    </button>
  );
};

8. Color Customization & Accent Switcher

Jiansu features a dynamic primary color system. When a color is selected, the application automatically computes CSS variables for --primary-color and all 11 tint/shade stops (--primary-50 to --primary-950).

Changing the Default Primary Accent:

Open src/components/context/theme-context.jsx and modify the DEFAULT_PRIMARY constant (default is Emerald Green #22c55e):

// src/components/context/theme-context.jsx
// Change to any hex color of your choice
const DEFAULT_PRIMARY = "#22c55e"; // Emerald (Crypto default)

Curated 8-Color Palette in Theme Customizer:

The slide-out settings drawer (src/components/layout/rightbar.jsx) provides 8 pre-configured palette presets:

Accent Name Hex Code Use Case
Emerald #22c55e Default crypto profit green & exchange theme
Ocean Blue #3b82f6 Corporate fintech, banking & institutional trading
Violet #8b5cf6 Web3, DeFi protocols, NFT marketplaces
Ruby Red #ef4444 High-energy trading desks & risk monitors
Amber #f59e0b Bitcoin gold, commodities, and token sales
Aqua Cyan #06b6d4 Futures, derivatives & liquidity analytics
Hot Pink #ec4899 Modern creative decentralized applications
Indigo #6366f1 Data-heavy analytical dashboards

9. Font Customization

Jiansu uses Google's modern geometric font Montserrat as the default typography across all components, headings, and data values.

How Montserrat is Configured:

In src/index.css:

/* src/index.css */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

html {
  font-family: "Montserrat", sans-serif;
}

To Change the Font Family:

  1. Visit Google Fonts and select your preferred font (e.g. Inter, Outfit, Poppins).
  2. Copy the provided @import link.
  3. Replace the import at line 1 of src/index.css and update the font-family definition under html.

10. RTL (Right-to-Left) & Bi-directional Support

Jiansu provides full, out-of-the-box support for Right-to-Left (RTL) languages such as Arabic, Hebrew, Persian, and Urdu.

How Direction Works:

  • Managed via toggleDirection() in ThemeContext.
  • Dynamically toggles the dir="rtl" or dir="ltr" attribute on the root <html> element.
  • Tailwind CSS logical properties (e.g., ps-, pe-, ms-, me-, border-s, border-e, start-, end-) automatically flip all alignments, paddings, and margins seamlessly.

Set RTL as the Default Direction:

Open src/components/context/theme-context.jsx and update line 50:

// src/components/context/theme-context.jsx
// Change "ltr" to "rtl"
const [direction, setDirection] = useState("rtl");

11. Layout Architecture

All core layout containers and shell components are located in src/components/layout/.

Component File Path Role & Functionality
DashboardLayout src/components/layout/dashboard.jsx Master layout wrapper providing the sidebar, top navbar, page outlet, footer, and theme drawer.
Navbar src/components/layout/navbar.jsx Top sticky navigation bar with search bar, notification drawer, currency switcher, user dropdown, and theme toggles.
Sidebar src/components/layout/sidebar.jsx Collapsible navigation sidebar rendering grouped routes with badge indicators and active route styling.
Menu Data src/components/layout/menu-data.jsx Centralized configuration array defining all navigation links, icons, labels, and routes.
Rightbar src/components/layout/rightbar.jsx Slide-out customization drawer allowing live adjustments to Theme Mode, Layout Direction, Sticky Navbar, and Accent Colors.
Footer src/components/layout/footer.jsx Bottom footer component displaying copyright notices and support links.

12. Routing Setup & Adding Pages

Jiansu uses React Router DOM v7 with dynamic code-splitting via React.lazy() and <Suspense> inside src/routes/routes-path.jsx.

Step 1: Create Your New Page Component

Create a new component file inside src/components/pages/dashboard/:

// src/components/pages/dashboard/staking.jsx
import React from 'react';
import Card from '../../ui/card';

const StakingPage = () => {
  return (
    <div className="space-y-6">
      <h1 className="text-2xl font-bold text-gray-900 dark:text-white">
        Crypto Staking Pool
      </h1>
      <Card>
        <p className="text-gray-600 dark:text-gray-400">
          Lock tokens and earn estimated APY yields.
        </p>
      </Card>
    </div>
  );
};

export default StakingPage;

Step 2: Register Route in src/routes/routes-path.jsx

// 1. Add lazy import near the top
const Staking = lazy(() => import('../components/pages/dashboard/staking'));

// 2. Add route inside <Route path="/" element={<DashboardLayout />}>
<Route path="staking" element={<Staking />} />

Step 3: Add to Navigation Menu in src/components/layout/menu-data.jsx

// src/components/layout/menu-data.jsx
{
  title: "Staking Pool",
  path: "/staking",
  icon: "Coins" // Lucide icon name
}

13. Core UI Components Library

All reusable atomic components are located in src/components/ui/. Each component is self-contained, typed with clean props, and styled with responsive Tailwind CSS classes for Dark and Light themes.

Available Reusable Components:

  • Accordion — src/components/ui/accordion.jsx
  • Alerts — src/components/ui/alerts.jsx
  • Avatars — src/components/ui/avatars.jsx
  • Badges — src/components/ui/badges.jsx
  • Breadcrumbs — src/components/ui/breadcrumbs.jsx
  • Buttons — src/components/ui/buttons.jsx
  • Card & InnerCard — src/components/ui/card.jsx
  • Charts — src/components/ui/charts.jsx
  • Dropdowns — src/components/ui/dropdowns.jsx
  • Input & Form Controls — src/components/ui/input.jsx
  • Modals & Dialogs — src/components/ui/modals.jsx
  • Page Loader — src/components/ui/page-loader.jsx
  • Pagination — src/components/ui/pagination.jsx
  • Progress Bars — src/components/ui/progressbars.jsx
  • Select & Spinners — src/components/ui/select.jsx
  • Data Table — src/components/ui/table.jsx

Usage Example:

import Card from '../ui/card';
import { Button } from '../ui/buttons';
import { Badge } from '../ui/badges';

function PortfolioSummary() {
  return (
    <Card className="p-6">
      <div className="flex items-center justify-between">
        <h3 className="text-lg font-bold">Total Asset Balance</h3>
        <Badge variant="success">+14.8% APY</Badge>
      </div>
      <p className="text-3xl font-extrabold mt-3">$84,230.50</p>
      <div className="mt-4 flex gap-3">
        <Button variant="primary">Deposit</Button>
        <Button variant="outline">Withdraw</Button>
      </div>
    </Card>
  );
}

14. Trading & Data Charts

Jiansu integrates ApexCharts and Recharts for high-frequency financial and portfolio visualizations.

ApexCharts Candlestick & Financial Chart:

import ReactApexChart from 'react-apexcharts';

const candlestickSeries = [{
  data: [
    { x: new Date('2026-10-28').getTime(), y: [65200, 66100, 64900, 65800] },
    { x: new Date('2026-10-29').getTime(), y: [65800, 67400, 65500, 67150] }
  ]
}];

const candlestickOptions = {
  chart: {
    type: 'candlestick',
    height: 350,
    background: 'transparent',
    toolbar: { show: false }
  },
  theme: { mode: 'dark' },
  xaxis: { type: 'datetime' },
  plotOptions: {
    candlestick: {
      colors: {
        upward: '#22c55e',   // Green for price surge
        downward: '#ef4444'  // Red for price dip
      }
    }
  }
};

<ReactApexChart 
  options={candlestickOptions} 
  series={candlestickSeries} 
  type="candlestick" 
  height={350} 
/>

Mock Data Source:

All chart data series and timeline configurations are stored in src/components/mockdata/chart-data.json. You can easily replace these with real REST or WebSocket endpoints.

15. Tables & Mock Data Integration

Jiansu features structured, responsive data tables with pagination, search, status badges, and copyable transaction hashes.

Mock Data Architecture:

Data throughout the application is cleanly organized in src/components/mockdata/:

  • overview-data.json — Portfolio balances, recent trading activities, top gainers/losers.
  • trading-data.json — Order book bids/asks, market depth, execution logs.
  • wallet-data.json — Crypto assets (BTC, ETH, SOL, USDT), available balances, lockups.
  • transaction-data.json — Deposit/withdrawal transactions with TXID and confirmations.
  • kyc-data.json — Identity verification applicants, document status, tier ratings.
  • security-data.json — 2FA status, API keys, session logs, IP whitelist rules.

16. FAQ (Frequently Asked Questions)

Replace the logo images inside src/assets/logo/:
  • logo-dark.png (used in dark mode)
  • logo-light.png (used in light mode)
  • logo-sm.png (used when sidebar is collapsed)
These are imported into src/components/layout/sidebar.jsx and src/components/layout/navbar.jsx.

Inside your trading component (e.g., src/components/pages/dashboard/trading.jsx), replace the static mock data with a native WebSocket connection inside a useEffect hook:
useEffect(() => {
  const ws = new WebSocket('wss://stream.binance.com:9443/ws/btcusdt@ticker');
  ws.onmessage = (event) => {
    const data = JSON.parse(event.data);
    setPrice(data.c);
  };
  return () => ws.close();
}, []);

Open src/components/context/theme-context.jsx and modify DEFAULT_PRIMARY = "#22c55e" to your preferred brand hex code. All shades (50 through 950) are computed automatically at runtime.

In src/components/context/theme-context.jsx, change useState("ltr") to useState("rtl") on line 50. Jiansu will automatically render in RTL direction on initial load.

Ensure you are using Node.js v18.0.0+. Then run:
# Delete lockfile and dependencies
rm -rf node_modules package-lock.json

# Clean npm cache and re-install
npm cache clean --force
npm install

Yes! Jiansu is 100% responsive across mobile smartphones, tablets, laptops, and ultra-wide desktop monitors. The navigation sidebar collapses into an intuitive mobile slide drawer on small screens.

17. Credits & Sources

Libraries, frameworks, and assets integrated in Jiansu:

Resource Description Official Website
React.js Frontend JavaScript Framework react.dev
Tailwind CSS v4 Utility-First CSS Framework tailwindcss.com
Vite Next Generation Frontend Tooling vitejs.dev
ApexCharts Financial & Candlestick Charts apexcharts.com
Recharts Composable React SVG Charts recharts.org
Lucide React Clean & Lightweight SVG Icons lucide.dev
Framer Motion React Motion & Animation Library motion.dev
Lenis Smooth Scroll Engine darkroom.engineering
Google Fonts Montserrat Typography fonts.google.com

Note: All brand logos and demo graphics are for demonstration purposes only. Please replace them with your own brand assets in production.

18. Support & Contact

We provide dedicated support for any inquiries, setup assistance, or technical questions.

Mantraksh Devs Support Channel: