🇮🇳 IndiaCN UI — Community Design System for India
IndiaCN is an open-source design system built for India's digital services — especially government and public-service applications. Based on the , it ships as a shadcn-compatible registry with 25+ production-ready components.
- Accessibility-first — WCAG 2.1 AA compliant, built on Radix UI primitives
- Copy-pasteable — source lands directly in your repo; no runtime dependency, no version lock
- Registered in the shadcn registry — install with a single
npx shadcn addcommand - Dark mode — all components support light and dark themes out of the box
This project is not affiliated with the Government of India — it is a community initiative inspired by UX4G design principles.
📌 Status
🟢 Active development
- 25+ components (Button, Card, Modal, Tabs, Toast, and more)
- UX4G 2.0 theme with 8 semantic color scales, dark mode, and focus rings
- Registered in the
- Full documentation at
📦 Using IndiaCN in your project
IndiaCN ships as a shadcn-compatible registry. Install components into any Tailwind CSS v4 + React project.
Requires Tailwind CSS v4. The theme uses
@theme inlinesyntax — it does not work on Tailwind v3.
1. Initialize shadcn (if not already done)
2. Add the IndiaCN theme
Installs all design tokens: 8 semantic color scales, focus rings, dark mode variables, radius ladder, and keyframe animations.
3. Add components
Dependencies (theme, typography, etc.) are pulled in automatically.
Shorthand with @indiacn namespace
Add the registry to your components.json for a cleaner install syntax:
Then install with the @indiacn/ prefix:
What ships with theme
The theme item is a registry:theme preset that writes into your globals.css:
- 8 semantic color scales (50–900):
primary,secondary,neutral,success,danger,warning,info - Light and dark variants of every scale
--shadow-focus-*ring utilities (4 px primary-tinted focus halo)--radius-*ladder derived from a single--radiusvariable- Keyframes:
accordion-up/down,collapsible-up/down,progress-bar-stripes,spinner-grow,shimmer - Global
:focus-visibleoutline usingvar(--primary)
Each registry:ui item carries the exact source file plus its npm dependencies and registryDependencies. The shadcn CLI walks the dependency graph and pulls everything required.
🛠 Local development
Open in your browser.
See for the full contribution guide.
🛠 Maintainer notes — building the registry
The single source of truth is registry.json at the repo root. After editing it, regenerate the per-item JSON files in public/r/:
This runs npx shadcn build, which inlines source from each files[].path, validates against the shadcn schema, and writes public/r/*.json. The output is committed and served as static assets by Next.js with permissive CORS (see next.config.mjs).
📜 License
MIT — Free for commercial and government use.