From 978f76bfc2b44b99280360ff12daa5e35d82c0c2 Mon Sep 17 00:00:00 2001 From: poyrazavsever Date: Thu, 16 Jul 2026 09:02:41 +0300 Subject: [PATCH 1/4] feat: updated home section like projects section card, referance card --- app/[locale]/page.tsx | 4 +--- components/home-hero.tsx | 4 ++-- components/home-projects-section.tsx | 10 +++++----- components/home-videos-section.tsx | 2 +- components/reference-cards.tsx | 10 ++++++++-- components/references-section.tsx | 6 +++--- 6 files changed, 20 insertions(+), 16 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 42b1378..24cee3f 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -2,7 +2,6 @@ import { HomeHero } from "@/components/home-hero"; import { HomeProjectsSection } from "@/components/home-projects-section"; import { HomeVideosSection } from "@/components/home-videos-section"; import { ReferencesSection } from "@/components/references-section"; -import { SponsorsSection } from "@/components/sponsors-section"; import { getHomeBlogNews } from "@/data/blog"; export default async function Home({ @@ -14,12 +13,11 @@ export default async function Home({ const homeNews = await getHomeBlogNews(locale, 6); return ( -
+
-
); } diff --git a/components/home-hero.tsx b/components/home-hero.tsx index 2b621e2..09d23d5 100644 --- a/components/home-hero.tsx +++ b/components/home-hero.tsx @@ -31,7 +31,7 @@ export function HomeHero({ news }: HomeHeroProps) { const router = useRouter(); return ( -
+
-
+
+
-
+
{projects.map((project) => ( ))}
diff --git a/components/home-videos-section.tsx b/components/home-videos-section.tsx index 77216a9..29afcbb 100644 --- a/components/home-videos-section.tsx +++ b/components/home-videos-section.tsx @@ -10,7 +10,7 @@ export function HomeVideosSection() { const t = useTranslations("Content"); return ( -
+
); diff --git a/components/references-section.tsx b/components/references-section.tsx index d4be871..83d9eea 100644 --- a/components/references-section.tsx +++ b/components/references-section.tsx @@ -11,7 +11,7 @@ export function ReferencesSection() { const router = useRouter(); return ( -
+
{/* We use two sets of cards for seamless infinite marquee effect */}
- - + +
Date: Thu, 16 Jul 2026 09:02:54 +0300 Subject: [PATCH 2/4] fix: deleted sponsors section in home page --- components/sponsors-section.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/sponsors-section.tsx b/components/sponsors-section.tsx index 6e61490..5ed1a69 100644 --- a/components/sponsors-section.tsx +++ b/components/sponsors-section.tsx @@ -7,7 +7,7 @@ export function SponsorsSection() { if (!SPONSORS || SPONSORS.length === 0) return null; return ( -
+
{SPONSORS.map((sponsor) => { const logoContent = ( From f86e103b70a83e72fbda07b2a97fcc573c6e1100 Mon Sep 17 00:00:00 2001 From: poyrazavsever Date: Thu, 16 Jul 2026 09:13:33 +0300 Subject: [PATCH 3/4] feat: updated about content and design template --- components/about-content.tsx | 332 +++++++++++++++++++++++------------ messages/en.json | 7 +- messages/tr.json | 7 +- 3 files changed, 236 insertions(+), 110 deletions(-) diff --git a/components/about-content.tsx b/components/about-content.tsx index bddad86..4926ac6 100644 --- a/components/about-content.tsx +++ b/components/about-content.tsx @@ -1,133 +1,249 @@ "use client"; +import { Icon } from "@iconify/react"; import Image from "next/image"; -import { Link } from "@/i18n/routing"; -import { Badge, Card, Typography } from "poyraz-ui/atoms"; +import { useLocale, useTranslations } from "next-intl"; +import { Badge, Button, ButtonIcon, ButtonLabel, Card, Typography } from "poyraz-ui/atoms"; import { Sheet, SheetContent, SheetTitle, SheetTrigger } from "poyraz-ui/molecules"; -import { StaggerContainer, StaggerItem } from "@/components/motion-wrapper"; +import { Link, useRouter } from "@/i18n/routing"; import { BOOKMARKS } from "@/data/bookmarks"; import { certificates } from "@/data/certificates"; import { EDUCATION } from "@/data/education"; import { EXPERIENCE } from "@/data/experience"; -import { useTranslations, useLocale } from "next-intl"; import { getLocalizedValue } from "@/lib/locale"; +type TimelineItem = { + id: string; + title: string; + subtitle: string; + period: string; + description?: string; +}; + +function SectionHeading({ + title, + action, +}: { + title: string; + action?: React.ReactNode; +}) { + return ( +
+ + {title} + + {action} +
+ ); +} + +function TimelineList({ items }: { items: TimelineItem[] }) { + return ( +
+ {items.map((item) => ( +
+ + + + + +
+
+ + {item.title} + + + {item.subtitle} + +
+ + + {item.period} + +
+ + {item.description ? ( + + {item.description} + + ) : null} +
+
+ ))} +
+ ); +} + export function AboutContent() { const t = useTranslations("About"); const locale = useLocale(); + const router = useRouter(); + + const educationItems: TimelineItem[] = EDUCATION.map((item) => ({ + id: item.id, + title: getLocalizedValue(item.title, locale), + subtitle: item.institution, + period: getLocalizedValue(item.period, locale), + description: getLocalizedValue(item.description, locale), + })); + + const experienceItems: TimelineItem[] = EXPERIENCE.map((item) => ({ + id: item.id, + title: getLocalizedValue(item.role, locale), + subtitle: item.company, + period: getLocalizedValue(item.period, locale), + })); return ( -
-
- - - {t("aboutText")} - - - -
- - {EDUCATION.map((item) => ( - - - - {getLocalizedValue(item.title, locale)} - - - {item.institution} - - - {getLocalizedValue(item.period, locale)} - - - - ))} - -
-
- -
- - - + } + /> + + + {t("aboutText")} + +
+ +
+
+ + +
+ +
+ + +
+
+ +
+ + + + + + + {t("allCertificates")} +
+ {certificates.map((item) => ( + - {getLocalizedValue(item.name, -
+
+
+ {getLocalizedValue(item.name, +
+
+ + {getLocalizedValue(item.name, locale)} + + + {item.organization} + + + {getLocalizedValue(item.date, locale)} + +
+
+ ))}
+ + + } + /> + +
+
+ {certificates.slice(0, 8).map((item) => ( + +
+ {getLocalizedValue(item.name, +
+
+ + {getLocalizedValue(item.name, locale)} + + + {item.organization} + +
- - - - - {t("allCertificates")} -
- {certificates.map((item) => ( - -
-
- {getLocalizedValue(item.name, -
-
- - {getLocalizedValue(item.name, locale)} - - - {item.organization} - - - {getLocalizedValue(item.date, locale)} - -
-
-
- ))} -
-
- - -
- - {EXPERIENCE.map((item) => ( - - - - {getLocalizedValue(item.role, locale)} - - - {item.company} - - - {getLocalizedValue(item.period, locale)} - - - ))} - +
+ + -
+
@@ -190,7 +306,7 @@ export function AboutContent() { href={item.href} target="_blank" rel="noreferrer" - className="mt-2 inline-flex text-sm text-red-600 hover:underline" + className="mt-2 inline-flex text-sm text-primary hover:underline" > {item.href.replace("https://", "")} diff --git a/messages/en.json b/messages/en.json index d6a91fe..8dc006a 100644 --- a/messages/en.json +++ b/messages/en.json @@ -32,12 +32,17 @@ } }, "About": { + "title": "About me", + "contactCta": "Contact me", + "educationTitle": "Education", + "experienceTitle": "Experience", + "certificatesTitle": "My certificates", "aboutText": "Ever since I met software in middle school, I've been constantly learning and improving. My passion for learning grew in high school, where I explored different web development technologies. Near the end of high school, I stepped into the mobile world. Today, I actively build, develop, and most importantly, I am still learning.", "allCertificates": "All Certificates", "referencesTitle": "References", "referencesDesc": "View all references on a separate detail page.", "volunteerTitle": "Volunteering & Community", - "volunteerDesc": "Inspect timeline and contribution details on a separate page.", + "volunteerDesc": "Explore my community work and timeline.", "bookmarksTitle": "Bookmarks", "bookmarksDesc": "View quick access links inside a sheet.", "timelineLabel": "Timeline:", diff --git a/messages/tr.json b/messages/tr.json index b70dd32..1f03500 100644 --- a/messages/tr.json +++ b/messages/tr.json @@ -32,12 +32,17 @@ } }, "About": { + "title": "Hakkımda", + "contactCta": "İletişime geç", + "educationTitle": "Eğitim", + "experienceTitle": "Deneyim", + "certificatesTitle": "Sertifikalarım", "aboutText": "Ortaokulda yazılımla tanıştığımdan beri sürekli öğrenmeye ve kendimi geliştirmeye çalışıyorum. Lise yıllarında öğrenme hevesim daha da arttı ve web geliştirme tarafında farklı teknolojileri keşfetme fırsatı buldum. Lisenin sonlarına doğru mobil dünyasına da adım attım. Şu an aktif olarak üretiyor, geliştiriyor ve en önemlisi hâlâ öğrenmeye devam ediyorum.", "allCertificates": "Tüm Sertifikalar", "referencesTitle": "Referanslar", "referencesDesc": "Tüm referansları ayrı bir detay sayfasında görüntüle.", "volunteerTitle": "Gönüllülük ve Topluluk", - "volunteerDesc": "Zaman çizelgesi ve katkı detaylarını ayrı bir detay sayfasında incele.", + "volunteerDesc": "Topluluk katkılarımı ve zaman çizelgemi incele.", "bookmarksTitle": "Yer İmleri", "bookmarksDesc": "Hızlı erişim bağlantılarını bir sheet içinde görüntüle.", "timelineLabel": "Zaman Çizelgesi:", From 5aae35d2d12fdc860e12ed4632149db2666d7fae Mon Sep 17 00:00:00 2001 From: poyrazavsever Date: Thu, 16 Jul 2026 09:37:03 +0300 Subject: [PATCH 4/4] feat: updated about content --- components/about-content.tsx | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/components/about-content.tsx b/components/about-content.tsx index 4926ac6..7a37ec3 100644 --- a/components/about-content.tsx +++ b/components/about-content.tsx @@ -43,16 +43,19 @@ function SectionHeading({ function TimelineList({ items }: { items: TimelineItem[] }) { return ( -
+
{items.map((item) => ( -
- +
+ - -
-
+
+
+
{item.title} @@ -64,9 +67,12 @@ function TimelineList({ items }: { items: TimelineItem[] }) {
- + {item.period} - +
{item.description ? ( @@ -77,7 +83,7 @@ function TimelineList({ items }: { items: TimelineItem[] }) { {item.description} ) : null} - +
))}
@@ -94,7 +100,6 @@ export function AboutContent() { title: getLocalizedValue(item.title, locale), subtitle: item.institution, period: getLocalizedValue(item.period, locale), - description: getLocalizedValue(item.description, locale), })); const experienceItems: TimelineItem[] = EXPERIENCE.map((item) => ({ @@ -134,7 +139,7 @@ export function AboutContent() {
-
+