Files
nika-gallery/frontend/app/layout.tsx
T
germanandClaude Opus 4.8 c6b26a93d8 polish(nika): фикс design-tokens, SEO-метаданные, favicon
- tailwind: восстановлены токены paper/accent/muted (их используют
  все компоненты — незакоммиченный оверхол их удалял → ломало палитру);
  serif/display указывают на реально загруженные next/font (Cormorant/Inter),
  а не на несуществующий --font-serif/Space Grotesk/Manrope;
  muted возвращён к #6b6b6b (WCAG-AA на белом). Новые токены gold/bg/graphite/
  радиусы/тени оставлены аддитивно.
- layout: metadataBase + canonical + OG url/siteName + twitter card (SEO/OG).
- 404: metadata title + robots noindex.
- app/icon.png: favicon (Next app-icon).

Сборка/типы: next build + tsc --noEmit — зелёные.
Бот-адаптер /api/bot/* и Яндекс-redirect не трогались (соответствуют SPEC).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-06 05:14:33 +03:00

62 lines
2.0 KiB
TypeScript

import type { Metadata } from 'next';
import { Cormorant_Garamond, Inter } from 'next/font/google';
import './globals.css';
import Nav from '@/components/Nav';
import Footer from '@/components/Footer';
// Заголовочный серифный шрифт — воздушный, «галерейный».
const display = Cormorant_Garamond({
subsets: ['latin', 'cyrillic'],
weight: ['400', '500', '600'],
variable: '--font-display',
display: 'swap',
});
// Текстовый гротеск — нейтральный, для интерфейса и подписей.
const body = Inter({
subsets: ['latin', 'cyrillic'],
variable: '--font-body',
display: 'swap',
});
export const metadata: Metadata = {
metadataBase: new URL('https://1nika.ru'),
title: {
default: 'Ника — галерея и аукцион',
template: '%s · Ника',
},
description:
'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка на новые работы.',
alternates: { canonical: '/' },
openGraph: {
title: 'Ника — галерея и аукцион',
description:
'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка.',
type: 'website',
locale: 'ru_RU',
url: 'https://1nika.ru',
siteName: 'Ника',
},
twitter: {
card: 'summary_large_image',
title: 'Ника — галерея и аукцион',
description: 'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка.',
},
};
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="ru" className={`${display.variable} ${body.variable}`}>
<body className="font-sans antialiased min-h-screen flex flex-col">
<Nav />
<main className="flex-1">{children}</main>
<Footer />
</body>
</html>
);
}