پرش به محتوا

Installation

کامپوننت‌های React نئوبروتالیستی را با یک دستور shadcn CLI نصب کنید — بدون بسته، بدون پیکربندی. به‌همراه فونت‌ها و توکن‌های Tailwind v4 که ظاهر متمایز را می‌سازند.

Neobrutalism.com این یک رجیستری برای shadcn CLI است. هیچ بسته‌ای برای نصب وجود ندارد و هیچ ارائه‌دهنده‌ای برای پیچاندن اپلیکیشن شما در آن نیست — CLI هر مؤلفه را از neobrutalism.com در پروژه شما کپی می‌کند و از آن نقطه، این کد شماست.

راه‌اندازی در سه مرحله و حدود پنج دقیقه طول می‌کشد:

  1. نصب یک کامپوننت — یک دستور، بدون پیکربندی.
  2. فونت‌ها را اضافه کنیدArchivo Black برای عناوین، Space Grotesk برای متن اصلی.
  3. توکن‌های تم را اضافه کنید — حاشیه‌ها، سایه‌ها و پالت رنگی که آن را نئوبروتالیسم می‌سازند.

نصب یک کامپوننت

هر مؤلفه در دو نسخه عرضه می‌شود: Base UI و Radix UI. URL نصب تعیین می‌کند که کدام نسخه را دریافت می‌کنید:

pnpm dlx shadcn@latest add https://neobrutalism.com/r/base/button.json
npx shadcn@latest add https://neobrutalism.com/r/base/button.json
yarn dlx shadcn@latest add https://neobrutalism.com/r/base/button.json
bunx --bun shadcn@latest add https://neobrutalism.com/r/base/button.json
pnpm dlx shadcn@latest add https://neobrutalism.com/r/radix/button.json
npx shadcn@latest add https://neobrutalism.com/r/radix/button.json
yarn dlx shadcn@latest add https://neobrutalism.com/r/radix/button.json
bunx --bun shadcn@latest add https://neobrutalism.com/r/radix/button.json

این تمام داستان نصب است. button را با هر مؤلفه‌ای جایگزین کنید — الگو همیشه https://neobrutalism.com/r/<base|radix>/<component>.json است و هر صفحهٔ مؤلفه دستور دقیق برای هر دو گزینه را نشان می‌دهد.

فونت‌ها را اضافه کنید

سربرگ‌ها با فونت Archivo Black و متن اصلی با فونت Space Grotesk تنظیم شده‌اند. با Next.js، آن‌ها را از next/font/google بارگذاری کنید:

app/layout.tsx
import { Archivo_Black, Space_Grotesk } from "next/font/google"
 
const archivoBlack = Archivo_Black({
  subsets: ["latin"],
  weight: "400",
  variable: "--font-head",
  display: "swap",
})
 
const spaceGrotesk = Space_Grotesk({
  subsets: ["latin"],
  variable: "--font-sans",
  display: "swap",
})
 
export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="en">
      <body className={`${archivoBlack.variable} ${spaceGrotesk.variable}`}>
        {children}
      </body>
    </html>
  )
}

موضوع را اضافه کنید

این توکن‌ها را در globals.css خود قرار دهید. سایه‌های آفست سخت و --radius: 0 بخش عمده کار را انجام می‌دهند — بقیه مربوط به پالت است و همه‌اش تم‌گذاری ساده Tailwind v4 است که بعداً می‌توانید آن را تغییر دهید:

globals.css
@import "tailwindcss";
 
@theme inline {
  --font-head: var(--font-head);
  --font-sans: var(--font-sans);
  --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-card: var(--card);
  --color-card-foreground: var(--card-foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary-hover: var(--primary-hover);
  --color-secondary: var(--secondary);
  --color-secondary-foreground: var(--secondary-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);
  --color-input: var(--input);
  --color-ring: var(--ring);
}
 
:root {
  --radius: 0;
  --background: #fff7e8;
  --foreground: #000;
  --card: #fff;
  --card-foreground: #000;
  --primary: #ffdc58;
  --primary-hover: #ffd12e;
  --primary-foreground: #000;
  --secondary: #000;
  --secondary-foreground: #fff;
  --muted: #efe7d6;
  --muted-foreground: #6b6355;
  --accent: #ffe7a3;
  --accent-foreground: #000;
  --destructive: #e63946;
  --destructive-foreground: #fff;
  --border: #000;
  --input: #fff;
  --ring: #000;
}
 
.dark {
  --background: #1a1815;
  --foreground: #f5f0e6;
  --card: #262320;
  --card-foreground: #f5f0e6;
  --primary: #ffdc58;
  --primary-hover: #ffd12e;
  --primary-foreground: #000;
  --secondary: #3a352f;
  --secondary-foreground: #f5f0e6;
  --muted: #2e2a24;
  --muted-foreground: #b3ac9e;
  --accent: #38342b;
  --accent-foreground: #f5f0e6;
  --destructive: #ff6b6b;
  --destructive-foreground: #1a1815;
  --border: #000;
  --input: #262320;
  --ring: #ffdc58;
}

آیا پروژهٔ جدیدی را شروع می‌کنید؟

راهنمای چارچوب همه چیز را از اولین دستورالعمل توضیح می‌دهد:

  • Next.jscreate-next-app، init، فونت‌ها، تم، اولین کامپوننت.
  • Vite — Tailwind، نام‌های مسیر، init، اولین کامپوننت.

قبل از نصب پیش‌نمایش کنید

منبع هر کامپوننت را از ترمینال بررسی کنید:

pnpm dlx shadcn@latest view https://neobrutalism.com/r/base/button.json
npx shadcn@latest view https://neobrutalism.com/r/base/button.json
yarn dlx shadcn@latest view https://neobrutalism.com/r/base/button.json
bunx --bun shadcn@latest view https://neobrutalism.com/r/base/button.json

فضاهای نام رجیستری (اختیاری)

آدرس‌های کامل همه‌چیز هستند که همیشه به آن‌ها نیاز دارید. اما اگر در حال راه‌اندازی سرور MCP هستید — که اجزا را از طریق رجیستری‌های نام‌گذاری‌شده حل می‌کند — یا می‌خواهید دستورات search و list در CLI را داشته باشید، رجیستری را در components.json خود مستعار کنید:

components.json
{
  "registries": {
    "@neobrutalism": "https://neobrutalism.com/r/radix/{name}.json",
    "@neobrutalism-base": "https://neobrutalism.com/r/base/{name}.json"
  }
}

با قرار گرفتن نام مستعار، CLI می‌تواند کل رجیستری را کاوش کند:

pnpm dlx shadcn@latest search @neobrutalism
npx shadcn@latest search @neobrutalism
yarn dlx shadcn@latest search @neobrutalism
bunx --bun shadcn@latest search @neobrutalism
pnpm dlx shadcn@latest list @neobrutalism
npx shadcn@latest list @neobrutalism
yarn dlx shadcn@latest list @neobrutalism
bunx --bun shadcn@latest list @neobrutalism

مونورپو

CLI را به فضای کاری مناسب با -c / --cwd نشانه بگیرید:

pnpm dlx shadcn@latest init -c ./apps/web
npx shadcn@latest init -c ./apps/web
yarn dlx shadcn@latest init -c ./apps/web
bunx --bun shadcn@latest init -c ./apps/web
pnpm dlx shadcn@latest add https://neobrutalism.com/r/base/button.json -c ./apps/web
npx shadcn@latest add https://neobrutalism.com/r/base/button.json -c ./apps/web
yarn dlx shadcn@latest add https://neobrutalism.com/r/base/button.json -c ./apps/web
bunx --bun shadcn@latest add https://neobrutalism.com/r/base/button.json -c ./apps/web

کمک می‌خواهید؟

در کاری گیر کرده‌اید؟ دیسکورد فعال است — بیایید و سلام کنید.