- 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>
62 lines
2.0 KiB
TypeScript
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>
|
|
);
|
|
}
|