Installation
Prerequisites
Before installing Nim UI, make sure you have:
- Node.js 18.0 or later
- React 19.2.0 or later
- TypeScript 5.9.0 or later (recommended)
Install the Package
Install Nim UI and its peer dependencies using your preferred package manager:
pnpm add @nim-ui/componentspnpm add -D tailwindcss @tailwindcss/postcssnpm install @nim-ui/componentsnpm install -D tailwindcss @tailwindcss/postcssyarn add @nim-ui/componentsyarn add -D tailwindcss @tailwindcss/postcssbun add @nim-ui/componentsbun add -D tailwindcss @tailwindcss/postcssConfigure Tailwind CSS
Nim UI uses Tailwind CSS v4 for styling. Set up Tailwind in your project:
1. Create Tailwind Config
Create a tailwind.config.js file in your project root:
/** @type {import('tailwindcss').Config} */export default { content: [ './src/**/*.{js,ts,jsx,tsx}', './node_modules/@nim-ui/components/dist/**/*.js', ], theme: { extend: {}, }, plugins: [],};2. Add Tailwind to PostCSS
Create a postcss.config.js file:
export default { plugins: { '@tailwindcss/postcss': {}, },};3. Import Styles
Import Nim UI styles in your main CSS file:
@import '@nim-ui/components/styles';
@tailwind base;@tailwind components;@tailwind utilities;Then import this CSS file in your app entry point:
import React from 'react';import './index.css';import ReactDOM from 'react-dom/client';import App from './App';
ReactDOM.createRoot(document.getElementById('root')!).render( <React.StrictMode> <App /> </React.StrictMode>);TypeScript Configuration
For optimal TypeScript support, add these settings to your tsconfig.json:
{ "compilerOptions": { "target": "ES2020", "module": "ESNext", "lib": ["ES2020", "DOM", "DOM.Iterable"], "jsx": "react-jsx", "strict": true, "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, "esModuleInterop": true, "skipLibCheck": true, "allowSyntheticDefaultImports": true }, "include": ["src"]}Vite Configuration
If you’re using Vite, ensure your vite.config.ts includes React plugin:
import { defineConfig } from 'vite';import react from '@vitejs/plugin-react';
export default defineConfig({ plugins: [react()],});Verify Installation
Create a simple component to verify everything is working:
import { Button } from '@nim-ui/components';
export default function App() { return ( <div className="p-8"> <h1 className="text-2xl font-bold mb-4">Nim UI Test</h1> <Button variant="primary" onClick={() => alert('It works!')}> Click me </Button> </div> );}If you see a styled button, congratulations! Nim UI is successfully installed.
What’s Next?
- Quick Start Guide - Build your first component
- Configuration - Customize the theme
- Browse Components - Explore all components
Framework-Specific Guides
Next.js
For Next.js projects, additional configuration is needed:
/** @type {import('next').NextConfig} */const nextConfig = { transpilePackages: ['@nim-ui/components'],};
export default nextConfig;Remix
For Remix, add to your remix.config.js:
/** @type {import('@remix-run/dev').AppConfig} */export default { serverDependenciesToBundle: ['@nim-ui/components'],};Troubleshooting
Styles Not Loading
If styles aren’t appearing:
-
Verify Tailwind content paths include Nim UI:
content: ['./node_modules/@nim-ui/components/dist/**/*.js'] -
Ensure you imported the component styles:
@import '@nim-ui/components/styles'; -
Check that PostCSS is configured correctly
TypeScript Errors
If you get TypeScript errors:
- Ensure TypeScript version is 5.9.0 or later
- Enable
skipLibCheck: truein tsconfig.json - Restart your TypeScript server
Build Errors
If you encounter build errors:
- Clear your build cache and
node_modules - Reinstall dependencies
- Ensure all peer dependencies are installed
For more help, check our GitHub Issues.