From f07f2c2407297e9dcab92b022021c05df6b85288 Mon Sep 17 00:00:00 2001 From: MichalC <103170279+wSBMichalee@users.noreply.github.com> Date: Sat, 1 Aug 2026 13:01:08 +0200 Subject: [PATCH] feat: SEO cleanup, A11y, Next.js 16 dynamic routes, hide unverified content --- app/blog/[slug]/page.tsx | 4 +- app/globals.css | 20 ++- app/klimatyzacja/wroclaw/[dzielnica]/page.tsx | 4 + app/layout.tsx | 20 +-- app/o-nas/page.tsx | 9 +- app/page.tsx | 11 +- app/realizacje/page.tsx | 4 + app/sitemap.ts | 13 +- app/sklep/[slug]/page.tsx | 7 +- app/zapytanie-multisplit/[slug]/page.tsx | 6 +- components/ui/JsonLd.tsx | 8 + content/company.ts | 20 +-- refactor_buttons.cjs | 134 --------------- replace_unsplash.cjs | 41 ----- update_images.cjs | 156 ------------------ 15 files changed, 59 insertions(+), 398 deletions(-) create mode 100644 components/ui/JsonLd.tsx delete mode 100644 refactor_buttons.cjs delete mode 100644 replace_unsplash.cjs delete mode 100644 update_images.cjs diff --git a/app/blog/[slug]/page.tsx b/app/blog/[slug]/page.tsx index dcb6725..d811660 100644 --- a/app/blog/[slug]/page.tsx +++ b/app/blog/[slug]/page.tsx @@ -8,9 +8,9 @@ import { Calendar, User, ArrowLeft, ArrowRight } from 'lucide-react'; import { companyDetails } from '@/content/company'; interface BlogPostPageProps { - params: { + params: Promise<{ slug: string; - }; + }>; } // Generowanie ścieżek statycznych dla wpisów diff --git a/app/globals.css b/app/globals.css index fa8decc..3eedda6 100644 --- a/app/globals.css +++ b/app/globals.css @@ -11,9 +11,9 @@ --color-foreground: var(--foreground); --color-text: var(--foreground); --color-text-muted: var(--muted-foreground); - --font-sans: var(--font-sans); - --font-mono: var(--font-geist-mono); - --font-heading: var(--font-heading); + --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --font-heading: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); @@ -158,6 +158,20 @@ @apply border-border outline-ring/50; } + *:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; + } + + @media (prefers-reduced-motion: reduce) { + *, ::before, ::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } + } + body { @apply bg-background text-foreground overflow-x-hidden; } diff --git a/app/klimatyzacja/wroclaw/[dzielnica]/page.tsx b/app/klimatyzacja/wroclaw/[dzielnica]/page.tsx index 9711ce4..f468f58 100644 --- a/app/klimatyzacja/wroclaw/[dzielnica]/page.tsx +++ b/app/klimatyzacja/wroclaw/[dzielnica]/page.tsx @@ -28,6 +28,10 @@ export async function generateMetadata({ params }: Props): Promise { return { title: district.seoTitle, description: district.seoDescription, + robots: { + index: false, + follow: false, + }, alternates: { canonical: `/klimatyzacja/wroclaw/${district.slug}` }, openGraph: { title: district.seoTitle, diff --git a/app/layout.tsx b/app/layout.tsx index 7468915..5f3b43c 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,5 +1,5 @@ import type { Metadata } from "next"; -import { Inter, Poppins } from "next/font/google"; + import { Header } from "@/components/layout/Header"; import { TrustBar } from "@/components/layout/TrustBar"; import { Footer } from "@/components/layout/Footer"; @@ -10,16 +10,7 @@ import { AnalyticsWrapper } from "@/components/ui/AnalyticsWrapper"; import { CookieSettingsFloatingIcon } from "@/components/ui/CookieSettingsFloatingIcon"; import "./globals.css"; -const fontSans = Inter({ - subsets: ["latin"], - variable: "--font-sans", -}); -const fontHeading = Poppins({ - subsets: ["latin"], - weight: ["600", "700", "800"], - variable: "--font-heading", -}); export const metadata: Metadata = { title: { @@ -61,13 +52,14 @@ export default function RootLayout({ return ( - - + + Przejdź do głównej treści + {process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY && (