5105310c92
Инфраструктура: - pnpm workspaces monorepo (apps/web, apps/api, packages/) - docker-compose.yml: PostgreSQL 16 - .env.example: DATABASE_URL, API_PORT, NEXT_PUBLIC_API_URL Backend (apps/api — NestJS 11): - Инициализирован NestJS с pnpm - Prisma 7 + prisma.config.ts подключен к PostgreSQL - Схема: User (role: viewer/editor), ExperimentalComponent (status: draft/review/approved) Frontend (apps/web — Next.js 16): - App Router, TypeScript, Tailwind CSS 4, Fira Sans (Google Fonts) - globals.css: CSS-токены бренда (цвета 053M–080M, шрифты) - layout.tsx: корневой layout с боковой навигацией - Sidebar.tsx: навигация по всем разделам (Фундамент, Компоненты, Блоки, Страницы, Оффлайн, Эксперименты) - page.tsx: редирект → /foundation/logo - /foundation/logo: полная страница «Логотип» - Иерархия и версии (Основной / Общий) - Цветовые варианты (основной, инвертированный, на форме) - Охранная зона с визуализацией - Таблица минимальных размеров (форма сотрудников) - Недопустимые варианты (6 правил) - Блок скачивания (placeholder до получения вектора) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
945 B
TypeScript
34 lines
945 B
TypeScript
import type { Metadata } from "next";
|
|
import { Fira_Sans } from "next/font/google";
|
|
import "./globals.css";
|
|
import { Sidebar } from "@/components/layout/Sidebar";
|
|
|
|
const firaSans = Fira_Sans({
|
|
subsets: ["latin", "cyrillic"],
|
|
weight: ["300", "400", "500", "600"],
|
|
variable: "--font-fira-sans",
|
|
display: "swap",
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Цифровой брендбук | Клиника УХО•ГОРЛО•НОС им. проф. Е.Н. Оленевой",
|
|
description: "Интерактивный брендбук — Living Styleguide oclinica.ru",
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<html lang="ru" className={firaSans.variable}>
|
|
<body className="flex h-screen overflow-hidden bg-white">
|
|
<Sidebar />
|
|
<main className="flex-1 overflow-y-auto">
|
|
{children}
|
|
</main>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|