Files
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

248 lines
5.8 KiB
Plaintext

---
title: Vite
description: RetroUI ❤️ Vite
lastUpdated: 30 May, 2025
---
### 1. Create Project
Start by creating a new React project using vite. Select the React + TypeScript template:
<CliCommand npmCommand="npm create vite@latest" />
<br />
### 2. Install Tailwind CSS
Install Tailwind CSS using the following command:
<CliCommand npmCommand="npm install tailwindcss @tailwindcss/vite" />
Replace everything in src/index.css with the following:
```css
@import "tailwindcss";
```
<br />
### 3. Edit tsconfig.json file
The current version of Vite splits TypeScript configuration into three files, two of which need to be edited. Add the `baseUrl` and `paths` properties to the `compilerOptions` section of the `tsconfig.json` and `tsconfig.app.json` files:
```json
{
"files": [],
"references": [
{
"path": "./tsconfig.app.json"
},
{
"path": "./tsconfig.node.json"
}
],
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}
```
<br />
### 4. Edit tsconfig.app.json file
Add the following code to the tsconfig.app.json file to resolve paths, for your IDE:
```json
{
"compilerOptions": {
// ...
"baseUrl": ".",
"paths": {
"@/*": [
"./src/*"
]
}
// ...
}
}
```
<br />
### 5. Update vite.config.ts
Add the following code to the vite.config.ts so your app can resolve paths without error:
<CliCommand npmCommand="npm install -D @types/node" />
vite.config.ts
```ts
import path from "path"
import tailwindcss from "@tailwindcss/vite"
import react from "@vitejs/plugin-react"
import { defineConfig } from "vite"
// https://vite.dev/config/
export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
})
```
<br />
### 6. Install Shadcn
Run the `shadcn init` command to setup your project:
<CliCommand npmCommand="npx shadcn@latest init" />
You will be asked a few questions to configure components.json. Select the option you want to use.
<br />
### 7. Add RetroUI Theme
To make your app look like RetroUI, you need to add the theme to your app. You can later customize it to your liking.
#### 1. Install fonts
We are using `Archivo Black` for headings and `Space Grotesk` for everything else. You can install them from Google fonts.
Once your have the fonts, import them in your `index.html` or `styles.css` file:
```html
<!-- index.html -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Grotesk:wght@300..700&display=swap"
rel="stylesheet"
/>
```
or,
```css
/* styles.css */
@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
```
<br />
#### 2. Add Theme
Save your theme as CSS variables in `styles.css` file:
```scss
@theme {
--font-head: 'Archivo Black', sans-serif;
--font-sans: 'Space Grotesk', sans-serif;
--radius: var(--radius);
--shadow-xs: 1px 1px 0 0 var(--border);
--shadow-sm: 2px 2px 0 0 var(--border);
--shadow: 3px 3px 0 0 var(--border);
--shadow-md: 4px 4px 0 0 var(--border);
--shadow-lg: 6px 6px 0 0 var(--border);
--shadow-xl: 10px 10px 0 1px var(--border);
--shadow-2xl: 16px 16px 0 1px var(--border);
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-primary-hover: var(--primary-hover);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
}
:root {
--radius: 0;
--background: #fff;
--foreground: #000;
--card: #fff;
--card-foreground: #000;
--primary: #ffdb33;
--primary-hover: #ffcc00;
--primary-foreground: #000;
--secondary: #000;
--secondary-foreground: #fff;
--muted: #aeaeae;
--muted-foreground: #5a5a5a;
--accent: #fae583;
--accent-foreground: #000;
--destructive: #e63946;
--destructive-foreground: #fff;
--border: #000;
}
.dark {
--radius: 0;
--background: #1a1a1a;
--foreground: #f5f5f5;
--card: #242424;
--card-foreground: #f5f5f5;
--primary: #ffdb33;
--primary-hover: #ffcc00;
--primary-foreground: #000;
--secondary: #3a3a3a;
--secondary-foreground: #f5f5f5;
--muted: #3f3f46;
--muted-foreground: #a0a0a0;
--accent: #fae583;
--accent-foreground: #000;
--destructive: #e63946;
--destructive-foreground: #fff;
--border: #3a3a3a;
}
```
<br />
### 8. That's it!
Now you can start using RetroUI components in your project. You can install them through CLI or manually.
<br />
<ComponentInstall>
<ComponentInstall.Cli npmCommand="npx shadcn@latest add 'https://retroui.dev/r/button.json'" />
<ComponentInstall.Manual>
#### 1. Install dependencies:
<CliCommand npmCommand="npm install class-variance-authority" />
<br />
#### 2. Copy the code 👇 into your project:
<ComponentSource name="button" />
</ComponentInstall.Manual>
</ComponentInstall>
After installing the component in your project, you can then simply import it like this:
```tsx
import { Button } from "@/components/retroui/Button";
export default function ButtonExample() {
return <Button>Click Me!</Button>;
}
```
If you need any additional help, you can feel free to ask it in our [Discord community](https://discord.gg/Jum3NJxK6Q).