feat(web): privacy-first cookie banner
- New CookieBanner client component anchored at the bottom of the locale layout, dismissed via Button click and persisted via localStorage key ketopath:cookie-notice-ack (no cookie set for the dismissal itself) - Italian copy: only essential cookies for authentication/session, no analytics or third-party trackers (consistent with the ADR 0001 stance and CLAUDE.md "Privacy first" non-negotiable) - Layout body now uses bg-background / text-foreground tokens so dark mode toggling will work the day we add it Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
c85179659a
commit
50d68fc522
3 files changed
+50
-1
No files matched your search
@@ -5,6 +5,7 @@ import { NextIntlClientProvider } from 'next-intl';
|
||||
import { getMessages, getTranslations, setRequestLocale } from 'next-intl/server';
|
||||
import type { ReactNode } from 'react';
|
||||
|
||||
import { CookieBanner } from '@/components/cookie-banner';
|
||||
import { locales, type Locale } from '@/i18n';
|
||||
|
||||
import '@/styles/globals.css';
|
||||
@@ -48,9 +49,10 @@ export default async function LocaleLayout({
|
||||
|
||||
return (
|
||||
<html lang={locale} className={inter.variable}>
|
||||
<body className="min-h-screen bg-white font-sans text-slate-900 antialiased">
|
||||
<body className="bg-background text-foreground min-h-screen font-sans antialiased">
|
||||
<NextIntlClientProvider locale={locale} messages={messages}>
|
||||
{children}
|
||||
<CookieBanner />
|
||||
</NextIntlClientProvider>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in new issue
Block a user