--- name: kolaytercih-tasarim description: KolayTercih'in kendi görsel dili — piksel imzası (SectionEyebrow, PixelDivider, PixelCorner), Cal Sans/Clarity City/Bricolage tipografisi, mavi bilgi + turuncu aksiyon rengi, slate nötrler, sondaki ArrowRight'lı CTA. Yeni ekran, bileşen, kart, modal, buton, form ya da sayfa tasarlarken; mevcut arayüzü değiştirirken; "AI gibi duruyor", "sitenin diline uymuyor", "piksel detayı kaybolmuş" denince kullanılır. docs/tasarim/DESIGN.md'nin giriş kapısıdır. --- # KolayTercih tasarım dili Bu proje için genel tasarım kütüphanesi (stil katalogları, palet listeleri) **kullanılmaz**; yön zaten belli. Kaynak tek: `docs/tasarim/DESIGN.md`. Bu dosya onu nasıl uygulayacağını söyler. ## 1. Başlamadan önce (zorunlu) 1. `docs/tasarim/DESIGN.md` dosyasını **tamamını** oku (uzun bir belge; atlama). Özellikle §1.1 temel his, §4 tek kaynaklar, §6 hareket, §7 yap/yapma, §9.2 ölç-tahmin-etme ve **§11 deneyim ilkeleri**. Canlı referans ekran: `/universite/ankara-universitesi`. 2. Beş satırlık brief'i doldur (DESIGN.md §9.1): amaç · referans ekran · tek kaynak parçalar · durumlar · his. Yanına bir satır ekle: **§11.1'deki hangi vaka bu işe en yakın ve hangi *nedeni* taşıyacağım?** 3. Referans ekranı bul ve aç; kopyalayacağın sınıf dizilerini oradan al: ```bash grep -rn "SectionEyebrow" src --include='*.tsx' -l # rozetli başlık bloğu örnekleri grep -rn "bg-orange-500" src --include='*.tsx' -l # turuncu CTA örnekleri grep -rn "PixelCorner\|PagePixelDivider" src -l --include='*.tsx' # piksel imzası taşıyan ekranlar ``` Ana sayfa bölüm iskeleti: `src/app/page.tsx` ("Sorun" bölümü; `grep -n "SectionEyebrow" src/app/page.tsx`). Alt sayfa başlığı: `src/app/meraklisina/page.tsx`. ## 2. Yazarken - Kanonik parçaları içe aktar, yeniden çizme: `SectionEyebrow`, `PagePixelDivider`, `PixelCorner` (`@/components/pixel-decor`); `Button` (`@/components/ui/button`; turuncu CTA `variant="cta"`, ikincil `variant="ikincil"`); `Card` (`@/components/ui/card`); `AdimGostergesi` (`@/components/ui/adim-gostergesi`); `AltSayfa` (`@/components/ui/alt-sayfa`); `SayiRulo` (`@/components/ui/sayi-rulo`); `DialogContent` varsayılan çarpısı (`@/components/ui/dialog`); `ArrowRight`, `XIcon` (`lucide-react`). - Sınıf dizilerini DESIGN.md'den **birebir** kopyala; "yaklaşık aynı" yazma. - Her piksel süsüne o sayfaya özgü tek `seed` ver (mevcut seed'ler: `grep -rho "seed={[0-9]*}" src | sort -u`). - Risk rengi kullanıyorsan metin etiketini `RISK_ETIKET` / `DILIM_ETIKET`'ten (`src/lib/risk.ts`) al. - Türkçe tanımlayıcı, çevredeki kodla aynı yorum yoğunluğu (AGENTS.md). ## 2.1 Hareket ve deneyim (DESIGN.md §6, §11) Site "web sitesi değil web uygulaması" gibi hissettirir. Yazdığın her parça için: - **Her eylemin cevabı var.** Basınca `active:scale-[0.97]`; sonucu olan eylem sonucunu gösterir (sayı `SayiRulo` ile döner, seçim vurgusu `layoutId` ile kayar, tik `pathLength` ile çizilir). Koşullu render ile anında yer değiştiren içerik son çaredir. - **Durumu yansıt.** Sıra (`useTercihProfili`), liste doluluğu (`liste-store`), giriş: ekranın bunlardan haberi olmalı mı? Olmalıysa göster. - **Yay/eğri/süre uydurma.** Yalnız `src/lib/hareket.ts`: `YAY.varsayilan | akici | donusum | birakma | adim`, `EGRI.giris | standart | gucluCikis | yerlesme`, `SURE.*`. Sekme yalnız bir şey fırlıyorsa (`YAY.birakma`). - **Sahne tek.** Sıralı, sahnelenmiş belirme sayfanın ilk ekranında bir kez; alt bölümler `Reveal`. Yüzey açılıyorsa önce imza sonra içerik (`AcilisSahnesi`). - **Sade karşılığı yaz.** `useReducedMotion` (değişken adı `azalt`) ya da `motion-reduce:`; hareketi azalt'ta yalnız opaklık. - **Telefonda gizleme.** Hover'a bağlı her cevabın dokunmatik karşılığı olsun. - **Dış kaynaktan (Arc, React Bits, Skiper, Motion Primitives) alıyorsan** §11.3'ün yedi adımı: kod bizim dosyamızda + kaynak/lisans yorumu · yeni bağımlılık yok (`motion` ile yeniden yaz) · renk token'a · hareket `hareket.ts`'e · biçim bize (hap, `font-heading`, ≥44 px, gölge yok) · sade karşılık + klavye/aria · lisans notu. ## 3. Bitirmeden önce ```bash pnpm tasarim:denetim # sıfır hata olmadan iş bitmiş sayılmaz ``` Uyarıları raporda listele; hataları düzelt. **Yeni bir parça tasarladıysan ya da bir bölümü yeniden düzenlediysen ekrana bak** (AGENTS.md "Tarayıcı açma": 375 px + masaüstü ekran görüntüsü; önce Bilal'in açık sunucusunu ara). Küçük düzeltmede (metin, renk, tek sınıf) 375 px notu yeter: taşma, üst üste binme, dokunma hedefi < 44 px, uzun üniversite adı — koddan çıkarım yazıyorsan "koddan çıkarım" de. Sonra DESIGN.md §11.5 deneyim kontrol listesinden geç. ## 4. Örnekler **İstek:** "Bölüm sayfasına 'Bu bölümü okuyanlar ne diyor' başlığı ekle." **Çıktı:** ```tsx
…
URAP Türkiye
18 / 198