Deploy / deploy (push) Failing after 5s
Каркас витрины дизайнера Ники: главная (hero + сетка галереи), страница работы (детали + место под аукцион), список аукционов, подписка-заглушка. Клиент к backend /api с graceful-фолбэком на демо-работы при недоступном API. Standalone-сборка + Dockerfile. Сборка npm run build и tsc --noEmit проходят. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
53 lines
1.6 KiB
TypeScript
53 lines
1.6 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 = {
|
|
title: {
|
|
default: 'Ника — галерея и аукцион',
|
|
template: '%s · Ника',
|
|
},
|
|
description:
|
|
'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка на новые работы.',
|
|
openGraph: {
|
|
title: 'Ника — галерея и аукцион',
|
|
description:
|
|
'Галерея работ дизайнера Ники: живопись и графика, аукцион, подписка.',
|
|
type: 'website',
|
|
locale: 'ru_RU',
|
|
},
|
|
};
|
|
|
|
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>
|
|
);
|
|
}
|