feat(tema): açık / koyu / sistem teması
All checks were successful
Deploy / deploy (push) Successful in 6m23s
All checks were successful
Deploy / deploy (push) Successful in 6m23s
- TemaSaglayici (next-themes) + alt bilgide TemaSecici - globals.css: .dark bloğunda palet token'ları çevrilir; bileşenlere dark: sınıfı yazılmaz - yüzeyler bg-white → bg-card, koyu haplar text-slate-50, SVG'lerde sabit renk yerine değişken - DESIGN.md §2.3 + tasarim-denetim kuralları (yuzey-beyaz, koyu-hap-beyaz-yazi, dark-sinif), AGENTS.md karanlık mod bölümü - docs: koyu tema denetimi raporu Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -264,7 +264,7 @@ export function ListeUretici({
|
||||
// Paketli kullanıcıya paket satma: onun ürünü top-up. Liste ve sohbet
|
||||
// geçmişi kalıcı; kredi yükleyince kaldığı yerden devam eder.
|
||||
return (
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-white p-8 text-center sm:p-12">
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-card p-8 text-center sm:p-12">
|
||||
<Lock className="mx-auto size-8 text-slate-400" aria-hidden />
|
||||
<h1 className="mt-4 font-heading text-xl font-bold">
|
||||
Kredin bu liste için yetmiyor
|
||||
@@ -294,7 +294,7 @@ export function ListeUretici({
|
||||
|
||||
if (durum.ad === "hata") {
|
||||
return (
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-white p-8 text-center sm:p-12">
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-card p-8 text-center sm:p-12">
|
||||
<h1 className="font-heading text-xl font-bold">Liste kurulamadı</h1>
|
||||
<p className="mx-auto mt-2 max-w-md text-sm text-slate-600">
|
||||
{durum.mesaj}
|
||||
@@ -344,7 +344,7 @@ function SunucuYokEkrani() {
|
||||
}
|
||||
|
||||
return (
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-white p-8 text-center sm:p-12">
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-card p-8 text-center sm:p-12">
|
||||
<h1 className="font-heading text-xl font-bold">
|
||||
Listen hazır, sunucuya şu an ulaşamıyoruz
|
||||
</h1>
|
||||
@@ -375,7 +375,7 @@ function SunucuYokEkrani() {
|
||||
* "Tekrar dene" yok: tekrar taze requestId üretip ikinci üretimi başlatırdı. */
|
||||
function SuruyorEkrani() {
|
||||
return (
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-white p-8 text-center sm:p-12">
|
||||
<section className="mx-auto w-full max-w-2xl rounded-2xl border border-slate-200 bg-card p-8 text-center sm:p-12">
|
||||
<h1 className="font-heading text-xl font-bold">Listen zaten hazırlanıyor</h1>
|
||||
<p className="mx-auto mt-2 max-w-md text-sm text-slate-600">
|
||||
Bunu başka bir sekmede başlatmışsın. İki kez kurmayalım — kredin bu
|
||||
@@ -436,7 +436,7 @@ function UretimGovdesi({ uzunSurdu }: { uzunSurdu: boolean }) {
|
||||
danışman sağda — üretim biter bitmez ekran aynı yerlere oturur. */}
|
||||
<div className="mt-8 grid grid-cols-[minmax(0,1fr)] items-start gap-6 lg:grid-cols-[minmax(0,1fr)_380px] xl:grid-cols-[minmax(0,1fr)_440px]">
|
||||
{/* Gelmekte olan tercih listesinin iskeleti */}
|
||||
<div className="flex min-w-0 flex-col gap-2 rounded-2xl border border-slate-200 bg-white p-6 sm:p-8">
|
||||
<div className="flex min-w-0 flex-col gap-2 rounded-2xl border border-slate-200 bg-card p-6 sm:p-8">
|
||||
<div className="flex items-center justify-between pb-2">
|
||||
<Skeleton className="h-6 w-44" />
|
||||
<Skeleton className="h-6 w-24 rounded-full" />
|
||||
@@ -453,7 +453,7 @@ function UretimGovdesi({ uzunSurdu }: { uzunSurdu: boolean }) {
|
||||
gördüğü ilk şey danışmanın çalıştığı olsun. */}
|
||||
<aside
|
||||
aria-label="Danışman paneli — listen hazırlanıyor"
|
||||
className="flex flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white max-lg:order-first lg:sticky lg:top-28"
|
||||
className="flex flex-col overflow-hidden rounded-2xl border border-slate-200 bg-card max-lg:order-first lg:sticky lg:top-28"
|
||||
>
|
||||
{/* SohbetClient başlığıyla aynı ibare/stil: üretim bitince panel
|
||||
yerini sohbete bırakırken başlık değişmez. */}
|
||||
|
||||
@@ -349,7 +349,7 @@ export function ListemGovde({
|
||||
|
||||
<section
|
||||
ref={kilitKartRef}
|
||||
className="overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-sm"
|
||||
className="overflow-hidden rounded-2xl border border-slate-200 bg-card shadow-sm"
|
||||
>
|
||||
<div className="border-b border-slate-100 p-6">
|
||||
<h3 className="font-heading text-xl font-bold tracking-tight">
|
||||
|
||||
@@ -104,13 +104,13 @@ export function RaporSatirDetayi({
|
||||
) : null}
|
||||
</div>
|
||||
<dl className="grid gap-3 text-base leading-relaxed sm:grid-cols-2">
|
||||
<div className="rounded-xl border border-slate-200 bg-white p-4">
|
||||
<div className="rounded-xl border border-slate-200 bg-card p-4">
|
||||
<dt className="text-sm font-semibold text-slate-900">
|
||||
Neden listede?
|
||||
</dt>
|
||||
<dd className="mt-1 text-slate-600">{gerekce}</dd>
|
||||
</div>
|
||||
<div className="rounded-xl border border-slate-200 bg-white p-4">
|
||||
<div className="rounded-xl border border-slate-200 bg-card p-4">
|
||||
<dt className="text-sm font-semibold text-slate-900">
|
||||
Risk ve Yapay Zeka yorumu
|
||||
</dt>
|
||||
@@ -310,7 +310,7 @@ export function RaporListesi({
|
||||
e.stopPropagation();
|
||||
tiklandi(t.sira);
|
||||
}}
|
||||
className={`inline-flex ${SATIR_DUGME_BOYU} cursor-pointer items-center justify-center rounded-full border border-slate-200 bg-white text-slate-500 transition-[background-color,border-color,color,transform] duration-150 hover:border-orange-500 hover:bg-orange-50/60 hover:text-orange-500 active:scale-[0.92] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`}
|
||||
className={`inline-flex ${SATIR_DUGME_BOYU} cursor-pointer items-center justify-center rounded-full border border-slate-200 bg-card text-slate-500 transition-[background-color,border-color,color,transform] duration-150 hover:border-orange-500 hover:bg-orange-50/60 hover:text-orange-500 active:scale-[0.92] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`}
|
||||
>
|
||||
<ChevronDown
|
||||
className={`size-4 transition-transform duration-200 ${acikMi ? "rotate-180" : ""}`}
|
||||
@@ -337,7 +337,7 @@ export function RaporListesi({
|
||||
Kişisel analiz pakette
|
||||
</span>
|
||||
</div>
|
||||
<div className="rounded-xl border border-dashed border-slate-300 bg-white p-4">
|
||||
<div className="rounded-xl border border-dashed border-slate-300 bg-card p-4">
|
||||
<p className="flex items-center gap-1.5 text-sm font-semibold text-slate-900">
|
||||
<Lock className="size-4" aria-hidden />
|
||||
Yapay Zeka karar desteği
|
||||
@@ -400,7 +400,7 @@ export function RaporListesi({
|
||||
</p>
|
||||
) : null}
|
||||
|
||||
<div className="mt-4 overflow-hidden rounded-2xl border border-slate-200 bg-white">
|
||||
<div className="mt-4 overflow-hidden rounded-2xl border border-slate-200 bg-card">
|
||||
<Table>
|
||||
<TableHeader>
|
||||
<TableRow className="hover:bg-transparent">
|
||||
|
||||
@@ -54,7 +54,7 @@ export async function RaporYazdir() {
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="mx-auto max-w-3xl bg-white p-8 text-slate-900 print:p-[10mm]">
|
||||
<div className="mx-auto max-w-3xl bg-card p-8 text-slate-900 print:p-[10mm]">
|
||||
<YazdirButonu />
|
||||
|
||||
<header className="border-b-2 border-slate-900 pb-4">
|
||||
@@ -159,7 +159,7 @@ export async function RaporYazdir() {
|
||||
// Rapor sorgusu beklenirken belge düzeninde iskelet.
|
||||
export function RaporYazdirSkeleton() {
|
||||
return (
|
||||
<div aria-live="polite" className="mx-auto w-full max-w-3xl bg-white p-8">
|
||||
<div aria-live="polite" className="mx-auto w-full max-w-3xl bg-card p-8">
|
||||
<div className="border-b-2 border-slate-200 pb-4">
|
||||
<Skeleton className="h-8 w-64" />
|
||||
<Skeleton className="mt-2 h-4 w-40" />
|
||||
|
||||
@@ -25,7 +25,7 @@ export function RevizyonKutusu({ kalanHak }: { kalanHak: number }) {
|
||||
return (
|
||||
<section
|
||||
id="revizyon"
|
||||
className="scroll-mt-24 rounded-2xl border border-slate-200 bg-white p-5"
|
||||
className="scroll-mt-24 rounded-2xl border border-slate-200 bg-card p-5"
|
||||
>
|
||||
<p className="text-sm text-slate-500">
|
||||
Revizyon hakların doldu. Danışman sohbetinden listen hakkında soru
|
||||
@@ -62,7 +62,7 @@ export function RevizyonKutusu({ kalanHak }: { kalanHak: number }) {
|
||||
return (
|
||||
<section
|
||||
id="revizyon"
|
||||
className="scroll-mt-24 rounded-2xl border border-slate-200 bg-white p-5"
|
||||
className="scroll-mt-24 rounded-2xl border border-slate-200 bg-card p-5"
|
||||
>
|
||||
<h2 className="font-heading text-base font-bold">
|
||||
Listede değişiklik mi istiyorsun?
|
||||
@@ -78,7 +78,7 @@ export function RevizyonKutusu({ kalanHak }: { kalanHak: number }) {
|
||||
maxLength={1000}
|
||||
placeholder="ör. İlk 5 tercihte daha fazla İstanbul olsun, güvenli dilimi genişlet…"
|
||||
disabled={pending}
|
||||
className="w-full rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50"
|
||||
className="w-full rounded-lg border border-slate-200 bg-card px-3 py-2 text-sm shadow-xs outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50"
|
||||
/>
|
||||
<div className="mt-3 flex items-center gap-3">
|
||||
<Button
|
||||
|
||||
@@ -151,7 +151,7 @@ export function TadimlikSatiri({
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="mt-6 rounded-2xl border border-slate-200 bg-white p-4 shadow-sm sm:p-6">
|
||||
<div className="mt-6 rounded-2xl border border-slate-200 bg-card p-4 shadow-sm sm:p-6">
|
||||
{/* Rapor listesinin satırıyla aynı düzen (§4.15): ad sarar,
|
||||
üniversite adı altında, taban sıra sağda iri. */}
|
||||
<div className="flex items-start gap-3">
|
||||
|
||||
Reference in New Issue
Block a user