Vite
FlexiUI integrates seamlessly with Vite for blazing-fast development.
Create a New Project
Create a new Vite + React project:
pnpm create vite my-app --template react-ts
cd my-appInstallation
Install FlexiUI and its peer dependencies:
pnpm add @flexi-ui/react
pnpm add -D tailwindcss postcss autoprefixerSetup Tailwind CSS
1. Initialize Tailwind
npx tailwindcss init -p2. Configure Tailwind
Update tailwind.config.js:
/** @type {import('tailwindcss').Config} */
export default {
content: [
'./index.html',
'./src/**/*.{js,ts,jsx,tsx}',
'./node_modules/@flexi-ui/**/*.{js,ts,jsx,tsx}'
],
plugins: [require('@flexi-ui/tailwind-plugin')]
}3. Add Tailwind Directives
Create or update src/index.css:
@tailwind base;
@tailwind components;
@tailwind utilities;Setup FlexiUI Provider
Update src/main.tsx:
import React from 'react'
import ReactDOM from 'react-dom/client'
import { FlexiUIProvider } from '@flexi-ui/react'
import App from './App'
import './index.css'
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<FlexiUIProvider>
<App />
</FlexiUIProvider>
</React.StrictMode>
)Using Components
Import and use FlexiUI components in your app:
import { Button } from '@flexi-ui/button'
import { Input } from '@flexi-ui/input'
function App() {
return (
<div className="p-8">
<h1 className="text-3xl font-bold mb-4">FlexiUI + Vite</h1>
<div className="space-y-4">
<Input label="Email" type="email" />
<Button>Submit</Button>
</div>
</div>
)
}
export default AppDevelopment
Start the development server:
pnpm devBuild for Production
Build your app for production:
pnpm buildVite Configuration
Optimize your Vite configuration for FlexiUI:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
optimizeDeps: {
include: ['@flexi-ui/react']
}
})