diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 254c06f..9b2bd08 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -10,7 +10,7 @@ export default async function Home({ params: Promise<{ locale: string }>; }) { const { locale } = await params; - const homeNews = await getHomeBlogNews(locale, 3); + const homeNews = await getHomeBlogNews(locale, 6); return (
diff --git a/app/globals.css b/app/globals.css index 27f0fa5..632a2b8 100644 --- a/app/globals.css +++ b/app/globals.css @@ -3,6 +3,16 @@ @source "../node_modules/poyraz-ui/dist"; +@theme { + --font-secondary: "Nunito", ui-rounded, "Avenir Next", system-ui, sans-serif; +} + +@layer base { + :root { + --poyraz-font-secondary: "Nunito", ui-rounded, "Avenir Next", system-ui, sans-serif; + } +} + @layer utilities { @keyframes marquee { 0% { transform: translateX(0%); } diff --git a/components/home-hero.tsx b/components/home-hero.tsx index 422ba37..2b621e2 100644 --- a/components/home-hero.tsx +++ b/components/home-hero.tsx @@ -1,10 +1,18 @@ "use client"; +import { Icon } from "@iconify/react"; import Image from "next/image"; -import { useRef, useState } from "react"; -import { Card, Typography } from "poyraz-ui/atoms"; +import { useLocale, useTranslations } from "next-intl"; +import { useRouter } from "@/i18n/routing"; +import { + Button, + ButtonIcon, + ButtonLabel, + TextEffect, + Typography, +} from "poyraz-ui/atoms"; import { NewsCard } from "poyraz-ui/molecules"; -import { useTranslations } from "next-intl"; +import { getResumeHref } from "@/lib/links"; type HomeHeroProps = { news: { @@ -18,78 +26,131 @@ type HomeHeroProps = { }; export function HomeHero({ news }: HomeHeroProps) { - const [frame, setFrame] = useState<1 | 2>(1); - const intervalRef = useRef | null>(null); const t = useTranslations("Home"); - - const handleMouseEnter = () => { - if (intervalRef.current) return; - - intervalRef.current = setInterval(() => { - setFrame((prev) => (prev === 1 ? 2 : 1)); - }, 260); - }; - - const handleMouseLeave = () => { - if (intervalRef.current) { - clearInterval(intervalRef.current); - intervalRef.current = null; - } - setFrame(1); - }; + const locale = useLocale(); + const router = useRouter(); return ( -
-
- {news.map((item) => ( -
- +
+
+
+ + Poyraz{" "} + + Avsever + + + + + {t("heroDescription")} + + +
+ + +
- ))} +
+ +
+ Poyraz Avsever +
- -
-
- - Poyraz{" "} - Avsever - -
- - {t.rich("role", { - strong: (chunks) => ( - {chunks} - ), - })} +
+
+ + {t("readMyPosts")} + +
-
-
- Poyraz Avsever +
+
+ {news.map((item) => ( + + ))}
+ + - +
); } diff --git a/components/language-switcher.tsx b/components/language-switcher.tsx index e67cfb6..4a0412d 100644 --- a/components/language-switcher.tsx +++ b/components/language-switcher.tsx @@ -17,11 +17,11 @@ export function LanguageSwitcher() { return ( +
+ +
{/* We use two sets of cards for seamless infinite marquee effect */} -
+
diff --git a/components/site-navbar.tsx b/components/site-navbar.tsx index b9c38c7..21f7384 100644 --- a/components/site-navbar.tsx +++ b/components/site-navbar.tsx @@ -42,9 +42,6 @@ const SearchCommand = dynamic( { ssr: false }, ); -const glassActionClassName = - "!border-border/80 hover:!border-border focus-visible:!border-border data-[state=open]:!border-border"; - const slowShineClassName = "[--poyraz-motion-duration-deliberate:1100ms]"; function getNavLinkClass(isActive: boolean) { @@ -85,12 +82,12 @@ function ThemeToggle() { return ( - + {label} @@ -161,7 +158,7 @@ export function SiteNavbar() { - + {languageLabel} @@ -170,7 +167,7 @@ export function SiteNavbar() { - + {locale === "tr" ? "Tema değiştir" : "Toggle theme"} @@ -234,11 +231,11 @@ export function SiteNavbar() { />