feat: SEO cleanup, A11y, Next.js 16 dynamic routes, hide unverified content

This commit is contained in:
MichalC
2026-08-01 13:01:08 +02:00
parent 88cb4c516d
commit f07f2c2407
15 changed files with 59 additions and 398 deletions
+6 -14
View File
@@ -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 (
<html
lang="pl"
className={`${fontSans.variable} ${fontHeading.variable} antialiased`}
className="antialiased"
>
<head>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
</head>
<body className="min-h-screen flex flex-col bg-background text-foreground">
<a href="#main-content" className="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-[9999] focus:px-4 focus:py-2 focus:bg-accent focus:text-white focus:rounded-md focus:font-bold">
Przejdź do głównej treści
</a>
{process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY && (
<Script
src={`https://www.google.com/recaptcha/api.js?render=${process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY}`}
@@ -75,7 +67,7 @@ export default function RootLayout({
/>
)}
<Header />
<main className="flex-grow">{children}</main>
<main id="main-content" tabIndex={-1} className="flex-grow focus:outline-none">{children}</main>
<TrustBar />
<Footer />
<AnalyticsWrapper />