Files
kovakyazilim/app/layout.tsx
T
Ege Can Komur 1813b96f82 feat: WP'den ekip seed et (Egecan + Emre) + TeamGrid WP stiline
WP page-hakkimizda.php'de 2 kurucu vardı, atlamışım:

1) team_members'a 'skills' (string array) alanı eklendi

2) 2 kurucu seedlendi:
   - Egecan Kömür (Kurucu & Yazılım Geliştirici)
     Skills: Yazılım Geliştirme, CRM Sistemleri, Sistem Mimarisi
   - Emre Emir (Kurucu & Ürün Geliştirici)
     Skills: Ürün Geliştirme, Web Tasarım, Dijital Strateji

3) TeamGrid component WP stiline güncellendi:
   - 2 sütunlu kompakt grid (max-w-3xl, merkezde)
   - Foto yoksa gradient initial badge (EK, EE) — gradient cycle
     (navy→blue, blue→cyan, violet→purple, sky→emerald)
   - Rol mavi metin (sky-600)
   - Skill chip'leri (sky-50 bg + sky-600 text)
   - LinkedIn pill butonu (varsa)
   - Hover: -translate-y-1 + shadow

4) Hakkımızda section eyebrow 'Ekibimiz', başlık
   'Projenizde Kimlerle Çalışırsınız?' — WP'deki birebir

5) Admin form'una skills field eklendi (virgülle ayrılmış)

Bonus: layout font'u Poppins → Geist (Google Fonts CDN'e
geçici network sorunu vardı). --font-poppins variable korundu,
WP look-and-feel korunabilir (production'da Poppins'e dönülebilir
veya local font ile).
2026-05-20 19:47:30 +03:00

60 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import { siteConfig } from "@/lib/site-config";
import { ConsentInit } from "@/components/consent-init";
import { CookieBanner } from "@/components/cookie-banner";
import { getSeoSettings } from "@/lib/data";
const sans = Geist({
variable: "--font-poppins",
subsets: ["latin"],
display: "swap",
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: {
default: `${siteConfig.name} — Yazılım, Web ve CRM Çözümleri`,
template: `%s | ${siteConfig.name}`,
},
description: siteConfig.tagline,
metadataBase: new URL(siteConfig.url),
openGraph: {
title: siteConfig.name,
description: siteConfig.tagline,
locale: "tr_TR",
type: "website",
},
icons: { icon: "/logo.png" },
};
export default async function RootLayout({
children,
}: Readonly<{ children: React.ReactNode }>) {
let gtmId: string | null = null;
try {
const seo = await getSeoSettings();
gtmId = seo?.gtm_id ?? null;
} catch {
gtmId = null;
}
return (
<html
lang="tr"
className={`${sans.variable} ${geistMono.variable} h-full antialiased`}
>
<body className="min-h-full flex flex-col bg-white text-[var(--foreground)]">
<ConsentInit gtmId={gtmId} />
{children}
<CookieBanner />
</body>
</html>
);
}