116 lines
2.7 KiB
JavaScript
Executable File
116 lines
2.7 KiB
JavaScript
Executable File
/** @type {import("tailwindcss").Config} */
|
|
module.exports = {
|
|
darkMode: ["class"],
|
|
content: [
|
|
"./app/**/*.{js,jsx}",
|
|
"./pages/**/*.{js,jsx}",
|
|
"./components/**/*.{js,jsx}",
|
|
"./src/**/*.{js,jsx}"
|
|
],
|
|
theme: {
|
|
extend: {
|
|
borderRadius: {
|
|
lg: 'var(--radius)',
|
|
md: 'calc(var(--radius) - 2px)',
|
|
sm: 'calc(var(--radius) - 4px)'
|
|
},
|
|
colors: {
|
|
background: 'hsl(var(--background))',
|
|
foreground: 'hsl(var(--foreground))',
|
|
card: {
|
|
DEFAULT: 'hsl(var(--card))',
|
|
foreground: 'hsl(var(--card-foreground))'
|
|
},
|
|
popover: {
|
|
DEFAULT: 'hsl(var(--popover))',
|
|
foreground: 'hsl(var(--popover-foreground))'
|
|
},
|
|
primary: {
|
|
DEFAULT: 'hsl(var(--primary))',
|
|
foreground: 'hsl(var(--primary-foreground))'
|
|
},
|
|
secondary: {
|
|
DEFAULT: 'hsl(var(--secondary))',
|
|
foreground: 'hsl(var(--secondary-foreground))'
|
|
},
|
|
muted: {
|
|
DEFAULT: 'hsl(var(--muted))',
|
|
foreground: 'hsl(var(--muted-foreground))'
|
|
},
|
|
accent: {
|
|
DEFAULT: 'hsl(var(--accent))',
|
|
foreground: 'hsl(var(--accent-foreground))'
|
|
},
|
|
destructive: {
|
|
DEFAULT: 'hsl(var(--destructive))',
|
|
foreground: 'hsl(var(--destructive-foreground))'
|
|
},
|
|
border: 'hsl(var(--border))',
|
|
input: 'hsl(var(--input))',
|
|
ring: 'hsl(var(--ring))',
|
|
chart: {
|
|
'1': 'hsl(var(--chart-1))',
|
|
'2': 'hsl(var(--chart-2))',
|
|
'3': 'hsl(var(--chart-3))',
|
|
'4': 'hsl(var(--chart-4))',
|
|
'5': 'hsl(var(--chart-5))'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
plugins: [require("tailwindcss-animate")]
|
|
};
|
|
"EOF"
|
|
|
|
cat > postcss.config.js <<EOF
|
|
module.exports = {
|
|
plugins: { tailwindcss: {}, autoprefixer: {} }
|
|
};
|
|
"EOF"
|
|
|
|
cat > app/globals.css <<EOF
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
:root { --radius: 0.5rem; }
|
|
@layer base { html { -webkit-font-smoothing: antialiased; } }
|
|
"EOF"
|
|
|
|
cat > jsconfig.json <<EOF
|
|
{ "compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["*"] } } }
|
|
"EOF"
|
|
|
|
cat > components.json <<EOF
|
|
{
|
|
"": "https://ui.shadcn.com/schema.json",
|
|
"style": "default",
|
|
"rsc": true,
|
|
"tsx": false,
|
|
"tailwind": {
|
|
"config": "tailwind.config.js",
|
|
"css": "app/globals.css",
|
|
"baseColor": "slate",
|
|
"cssVariables": true
|
|
},
|
|
"aliases": {
|
|
"components": "@/components",
|
|
"utils": "@/lib/utils"
|
|
}
|
|
}
|
|
"EOF"
|
|
|
|
cat > lib/utils.js <<EOF
|
|
import { clsx } from "clsx";
|
|
import { twMerge } from "tailwind-merge";
|
|
export function cn(...inputs){ return twMerge(clsx(inputs)); }
|
|
"EOF"
|
|
|
|
npx -p shadcn@latest shadcn init -t next -y
|
|
npx -p shadcn@latest shadcn add -y button badge card input tabs progress dropdown-menu tooltip switch
|
|
|
|
chown -R 1000:1000 /app
|
|
|
|
echo "✅ shadcn + tailwind generated under /app"
|
|
ls -la components/ui | head
|