mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-07-08 06:28:37 +00:00
154 lines
3.9 KiB
Plaintext
154 lines
3.9 KiB
Plaintext
---
|
||
title: Laravel
|
||
description: Install and configure Laravel with Inertia
|
||
---
|
||
|
||
<Steps>
|
||
|
||
### Create project
|
||
|
||
Start by creating a new Laravel project with Inertia and React using the laravel installer `laravel new my-app`:
|
||
|
||
```bash
|
||
laravel new my-app --typescript --breeze --stack=react --git --no-interaction
|
||
```
|
||
|
||
### Run the CLI
|
||
|
||
Run the `shadcn-ui` init command to setup your project:
|
||
|
||
```bash
|
||
npx shadcn-ui@latest init
|
||
```
|
||
|
||
### Configure components.json
|
||
|
||
You will be asked a few questions to configure `components.json`:
|
||
|
||
```txt showLineNumbers
|
||
Would you like to use TypeScript (recommended)? no / yes
|
||
Which style would you like to use? › Default
|
||
Which color would you like to use as base color? › Slate
|
||
Where is your global CSS file? › resources/css/app.css
|
||
Do you want to use CSS variables for colors? › no / yes
|
||
Where is your tailwind.config.js located? › tailwind.config.js
|
||
Configure the import alias for components: › @/Components
|
||
Configure the import alias for utils: › @/lib/utils
|
||
Are you using React Server Components? › no / yes
|
||
```
|
||
|
||
### Update tailwind.config.js
|
||
|
||
The `shadcn-ui` CLI will automatically overwrite your `tailwind.config.js`. Update it to look like this:
|
||
|
||
```js
|
||
import forms from "@tailwindcss/forms"
|
||
import defaultTheme from "tailwindcss/defaultTheme"
|
||
|
||
/** @type {import('tailwindcss').Config} */
|
||
export default {
|
||
darkMode: "class",
|
||
content: [
|
||
"./vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php",
|
||
"./storage/framework/views/*.php",
|
||
"./resources/views/**/*.blade.php",
|
||
"./resources/js/**/*.tsx",
|
||
],
|
||
|
||
theme: {
|
||
container: {
|
||
center: true,
|
||
padding: "2rem",
|
||
screens: {
|
||
"2xl": "1400px",
|
||
},
|
||
},
|
||
extend: {
|
||
colors: {
|
||
border: "hsl(var(--border))",
|
||
input: "hsl(var(--input))",
|
||
ring: "hsl(var(--ring))",
|
||
background: "hsl(var(--background))",
|
||
foreground: "hsl(var(--foreground))",
|
||
primary: {
|
||
DEFAULT: "hsl(var(--primary))",
|
||
foreground: "hsl(var(--primary-foreground))",
|
||
},
|
||
secondary: {
|
||
DEFAULT: "hsl(var(--secondary))",
|
||
foreground: "hsl(var(--secondary-foreground))",
|
||
},
|
||
destructive: {
|
||
DEFAULT: "hsl(var(--destructive))",
|
||
foreground: "hsl(var(--destructive-foreground))",
|
||
},
|
||
muted: {
|
||
DEFAULT: "hsl(var(--muted))",
|
||
foreground: "hsl(var(--muted-foreground))",
|
||
},
|
||
accent: {
|
||
DEFAULT: "hsl(var(--accent))",
|
||
foreground: "hsl(var(--accent-foreground))",
|
||
},
|
||
popover: {
|
||
DEFAULT: "hsl(var(--popover))",
|
||
foreground: "hsl(var(--popover-foreground))",
|
||
},
|
||
card: {
|
||
DEFAULT: "hsl(var(--card))",
|
||
foreground: "hsl(var(--card-foreground))",
|
||
},
|
||
},
|
||
borderRadius: {
|
||
lg: `var(--radius)`,
|
||
md: `calc(var(--radius) - 2px)`,
|
||
sm: "calc(var(--radius) - 4px)",
|
||
},
|
||
fontFamily: {
|
||
sans: ["Figtree", ...defaultTheme.fontFamily.sans],
|
||
},
|
||
keyframes: {
|
||
"accordion-down": {
|
||
from: { height: 0 },
|
||
to: { height: "var(--radix-accordion-content-height)" },
|
||
},
|
||
"accordion-up": {
|
||
from: { height: "var(--radix-accordion-content-height)" },
|
||
to: { height: 0 },
|
||
},
|
||
},
|
||
animation: {
|
||
"accordion-down": "accordion-down 0.2s ease-out",
|
||
"accordion-up": "accordion-up 0.2s ease-out",
|
||
},
|
||
},
|
||
},
|
||
|
||
plugins: [forms, require("tailwindcss-animate")],
|
||
}
|
||
```
|
||
|
||
### That's it
|
||
|
||
You can now start adding components to your project.
|
||
|
||
```bash
|
||
npx shadcn-ui@latest add button
|
||
```
|
||
|
||
The command above will add the `Button` component to your project. You can then import it like this:
|
||
|
||
```tsx {1,6} showLineNumbers
|
||
import { Button } from "@/Components/ui/button"
|
||
|
||
export default function Home() {
|
||
return (
|
||
<div>
|
||
<Button>Click me</Button>
|
||
</div>
|
||
)
|
||
}
|
||
```
|
||
|
||
</Steps>
|