# Faz 4 — Poyraz UI v3 foundation Tarih: 2026-07-16 Bu faz, freelancer ve portal sayfalarının dikey dönüşümünden önce ortak UI sözleşmesini kurar. Sayfa bazlı bilgi mimarisi ve görsel revizyonlar Faz 5–6'da kullanıcı yönlendirmesiyle yapılacaktır. ## Uygulanan temel - `poyraz-ui` `3.0.2` sürümüne yükseltildi; hem pnpm hem npm lockfile'ları eşitlendi. - Tailwind v4 girişine `poyraz-ui/preset.css` eklendi. - Atom, molecule ve organism importları yalnızca ilgili package subpath'inden yapılıyor. - Freelancer ve portal shell'i aynı Poyraz Sidebar organism bileşimini kullanıyor. - Masaüstü daraltma, mobil overlay ve mobil aç/kapat state'i `SidebarProvider` tarafından yönetiliyor. - Hesap menüsü custom event yönetimi yerine Poyraz `DropdownMenu`; icon-only shell aksiyonları Poyraz `Tooltip` kullanıyor. - Root feedback katmanı Poyraz `Toaster`; auth bildirimleri Poyraz `Alert` ve `toast` kullanıyor. - Auth alanları ve loading ekranları local kopyalar yerine Poyraz atomlarını kullanıyor. - Instance adı ve açık/koyu logo shell ile auth yüzeylerine taşındı. ## Import ve ownership kuralı ```ts import { Button, Input, Typography } from "poyraz-ui/atoms"; import { Alert, Dialog, Form, Select, toast } from "poyraz-ui/molecules"; import { DataTable, Sidebar } from "poyraz-ui/organisms"; ``` `poyraz-ui` package root importu kullanılmaz. Genel amaçlı UI primitive'i `components/ui` altında yeniden yazılmaz. Neta'ya özgü durum veya davranış, Poyraz bileşenlerinden `components/system` altında compose edilir. İzin verilen local davranış yardımcıları: - `OfflineIndicator`: browser bağlantı durumu davranışı. - `PendingLink`: Next.js navigasyon pending davranışı. - `PendingSubmitButton`: server action pending davranışı; görsel primitive olarak Poyraz `Button` kullanır. Bu sınır `pnpm phase4:ui-boundary` ile otomatik doğrulanır. ## Typography ve page header Poyraz `Typography` bütün yeni sayfalarda metin semantiğinin kaynağıdır: | Rol | Poyraz variant | HTML semantiği | | --- | --- | --- | | Sayfa başlığı | `h1` | `h1` | | Bölüm başlığı | `h2` / `h3` | sıradaki doğru heading seviyesi | | Kart başlığı | `h4` / `large` | bağlama göre `h2`–`h3` | | Gövde | `body` / `p` | `p` | | Yardımcı açıklama | `muted` | `p` | | Metadata | `caption` / `small` | `span` veya `p` | Yeni liste ve detay sayfaları `components/system/page-header.tsx` bileşimini kullanır. Header sırası: isteğe bağlı eyebrow, tek `h1`, kısa açıklama, secondary aksiyonlar ve en sağda bir primary aksiyon. Bir görünümde birincil aksiyon sayısı bir olmalıdır. Secondary aksiyonlar `secondary`, `outline` veya `ghost`; riskli aksiyonlar yalnızca `destructive` variant kullanır. ## Form standardı İki form yolu vardır: 1. Basit Server Action formları native `