feat(header): Beta sürüm rozeti ve sürümleme kuralı (→ 1.0.0)
All checks were successful
Deploy / deploy (push) Successful in 11m16s

Logonun yanına Arc UI Badge biçiminde, akademik gösterge morunda (bg-indigo-500)
"Beta" hapı ve package.json'dan okunan sürüm numarası eklendi. Canlı sistem
1.0.0 olarak işaretlendi; semantik sürümleme kuralı AGENTS.md'ye, rozetin
tasarım tanımı DESIGN.md §2.2/§4.14'e yazıldı.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-10-07 23:02:43 +03:00
parent a3cb058a3b
commit b2bab50337
6 changed files with 73 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
import { Suspense } from "react";
import Link from "next/link";
import { AnimasyonluMark } from "@/components/animasyonlu-mark";
import { SurumRozeti } from "@/components/surum-rozeti";
import { KatalogArama } from "@/features/katalog/components/katalog-arama";
import { UserNav, UserNavFallback } from "@/features/kullanici/components/user-nav";
import { getRehberAramaKayitlari } from "@/lib/rehber";
@@ -32,6 +33,9 @@ export function SiteHeader() {
Tercih
</span>
</span>
{/* Beta rozeti + sürüm (surum-rozeti.tsx); yazı logosuyla aynı
fade'i taşır ki NavBaslik yuvası açılınca birlikte sönsün. */}
<SurumRozeti className="ml-2 transition-[opacity,translate] duration-300 ease-out in-data-[nav-baslik]:pointer-events-none in-data-[nav-baslik]:-translate-y-2 in-data-[nav-baslik]:opacity-0 motion-reduce:transition-opacity sm:ml-3" />
</Link>
<div
id="nav-baslik-yuvasi"

View File

@@ -0,0 +1,26 @@
import { SURUM } from "@/lib/surum";
/**
* Header'da logonun yanındaki "Beta" rozeti + sürüm numarası (DESIGN.md
* §4.21). Rozet Arc UI Badge (uiarc.dev/components/badge, `sm` boyu: 22px,
* px-2, pill; yazı §3 gereği 12 px) biçiminde; rengi akademik gösterge karesinin moru
* (`bg-indigo-500`, §2.2 istisnası). Sürüm rozetin içinde değil, yanında
* küçük puntoyla; dar ekranda yalnız rozet kalır. Logo fade'iyle birlikte
* söner (NavBaslik yuvası açılınca), o yüzden site-header'daki fade
* sınıflarını aynen taşır.
*/
export function SurumRozeti({ className = "" }: { className?: string }) {
return (
<span className={`inline-flex shrink-0 items-center gap-1.5 ${className}`}>
<span className="inline-flex h-[22px] items-center rounded-full bg-indigo-500 px-2 text-xs leading-none font-semibold tracking-[-0.01em] whitespace-nowrap text-white">
Beta
</span>
<span
className="hidden text-xs leading-none font-medium tracking-[-0.01em] text-slate-500 tabular-nums sm:inline"
aria-label={`Sürüm ${SURUM}`}
>
v{SURUM}
</span>
</span>
);
}

8
src/lib/surum.ts Normal file
View File

@@ -0,0 +1,8 @@
import pkg from "../../package.json";
/**
* Sitenin sürümü — tek kaynak package.json `version` alanıdır (AGENTS.md
* "Sürümleme"). Header'daki rozet bunu okur; build'e girdiği için canlıda
* görünen sayı her zaman deploy edilen commit'in package.json'ıdır.
*/
export const SURUM: string = pkg.version;