Kaynaklar
Kurulum: Next.js
BigBang'i Next.js App Router ile kullanmak; istemci bileşeni sınırı, paket derleme, Tailwind, marka ve Provider.
Ürün uygulamaları Next.js ile değil, Vite ile kurulur (D-05): katı, özet (hash) tabanlı CSP yalnızca istemci tarafında çizilen uygulama için kanıtlanmıştır. Bu rehber, BigBang’i Next.js kullanan bir iç araçta ya da prototipte kullanmak içindir. Genel koşullar React uygulaması sayfasındadır.
Sınırlar
Bölüm başlığı “Sınırlar”@bigbang/uibileşenleri istemci bileşenidir: React durumu ve tarayıcı olayları kullanırlar,'use client'yönergesi taşımazlar. Onları yalnızca'use client'ile başlayan dosyalardan içe aktarın.- Bileşenlerin sunucuda çizilmesi test edilmez. Sayfa iskeletini sunucu bileşeni olarak bırakıp etkileşimli bölümleri istemci bileşenlerine koyun.
- Paketler TypeScript kaynağı olarak gelir; Next.js’in onları derlemesi gerekir (
transpilePackages).
1. Paketler
Bölüm başlığı “1. Paketler”pnpm add @bigbang/tokens@workspace:* @bigbang/ui@workspace:* @fontsource-variable/inter@5.3.0pnpm add -D tailwindcss@4.3.3 @tailwindcss/postcss@4.3.32. Next.js ayarı
Bölüm başlığı “2. Next.js ayarı”import type { NextConfig } from 'next';
const config: NextConfig = { // The packages ship TypeScript source. transpilePackages: ['@bigbang/ui', '@bigbang/icons', '@bigbang/tokens'],};
export default config;export default { plugins: { '@tailwindcss/postcss': {} } };3. Stiller
Bölüm başlığı “3. Stiller”@import '@bigbang/ui/styles.css';@import '@bigbang/tokens/css/neutral-light.css';@import '@bigbang/tokens/css/neutral-dark.css';
@source '../node_modules/@bigbang/ui/src';4. Kök düzen ve Provider
Bölüm başlığı “4. Kök düzen ve Provider”'use client';
import { Provider } from '@bigbang/ui';import type { ReactNode } from 'react';
export function Providers({ children }: { children: ReactNode }) { return <Provider locale="tr-TR">{children}</Provider>;}import '@fontsource-variable/inter';import './globals.css';import type { ReactNode } from 'react';import { Providers } from './providers';
export default function RootLayout({ children }: { children: ReactNode }) { return ( <html lang="tr" data-brand="neutral" data-theme="light"> <body> <Providers>{children}</Providers> </body> </html> );}data-theme sunucuda sabit yazılır. Kullanıcının mod tercihini uygulamak için değeri bir çerezden okuyup html öğesine sunucuda yazın; tarayıcıda sonradan değiştirmek ilk boyamada bir renk sıçramasına yol açar.
5. İlk bileşen
Bölüm başlığı “5. İlk bileşen”'use client';
import { Button, Card } from '@bigbang/ui';
export function ExampleCard() { return ( <Card className="max-w-96"> <Card.Header> <Card.Title>Kart başlığı</Card.Title> <Card.Description>Kart açıklaması burada yer alır.</Card.Description> </Card.Header> <Card.Footer> <Button>Birincil buton</Button> </Card.Footer> </Card> );}import { ExampleCard } from './example-card';
export default function Page() { return ( <main className="p-xl"> <ExampleCard /> </main> );}