init
This commit is contained in:
148
app/layout.tsx
Normal file
148
app/layout.tsx
Normal file
@@ -0,0 +1,148 @@
|
||||
import type { Metadata } from "next";
|
||||
import { Inter } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import Link from "next/link";
|
||||
import MobileMenu from "@/components/mobile-menu";
|
||||
|
||||
const inter = Inter({ subsets: ["latin", "cyrillic"] });
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "WorkParking — Умные парковки",
|
||||
description:
|
||||
"Апгрейд дворовых шлагбаумов в Москве: въезд и выезд по номеру, приложение, история проездов и подписка на сервис.",
|
||||
};
|
||||
|
||||
const navLinks = [
|
||||
{ href: "/services", label: "Услуги" },
|
||||
{ href: "/cases", label: "Кейсы" },
|
||||
{ href: "/for-uk", label: "Для УК" },
|
||||
{ href: "/pricing", label: "Цены" },
|
||||
{ href: "/about", label: "О компании" },
|
||||
{ href: "/contacts", label: "Контакты" },
|
||||
];
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
return (
|
||||
<html lang="ru">
|
||||
<body className={`${inter.className} bg-neutral-950 text-white`}>
|
||||
<header className="sticky top-0 z-50 border-b border-white/10 bg-black">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 py-4 flex items-center justify-between gap-4">
|
||||
<Link href="/" className="text-xl sm:text-2xl font-bold">
|
||||
WorkParking
|
||||
</Link>
|
||||
|
||||
<nav className="hidden md:flex items-center gap-6 text-sm text-neutral-200">
|
||||
{navLinks.map((link) => (
|
||||
<Link
|
||||
key={link.href}
|
||||
href={link.href}
|
||||
className="hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
{link.label}
|
||||
</Link>
|
||||
))}
|
||||
</nav>
|
||||
|
||||
<MobileMenu navLinks={navLinks} />
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{children}
|
||||
|
||||
<footer className="border-t border-white/10 bg-black">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 py-10 sm:py-12">
|
||||
<div className="flex flex-col gap-10 md:flex-row md:items-start md:justify-between">
|
||||
<div className="max-w-md">
|
||||
<div className="text-white text-xl font-semibold">WorkParking</div>
|
||||
<p className="mt-3 text-sm leading-relaxed text-neutral-400">
|
||||
Апгрейд дворовых шлагбаумов в Москве: въезд и выезд по номеру,
|
||||
приложение для жителей, история проездов и подписка на сервис.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 sm:grid-cols-3 gap-8 md:gap-10">
|
||||
<div>
|
||||
<div className="text-xs uppercase tracking-[0.2em] text-neutral-500 mb-4">
|
||||
Навигация
|
||||
</div>
|
||||
<div className="flex flex-col gap-3 text-sm">
|
||||
{navLinks.map((link) => (
|
||||
<Link
|
||||
key={link.href}
|
||||
href={link.href}
|
||||
className="text-neutral-300 hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
{link.label}
|
||||
</Link>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div className="text-xs uppercase tracking-[0.2em] text-neutral-500 mb-4">
|
||||
Контакты
|
||||
</div>
|
||||
<div className="flex flex-col gap-3 text-sm">
|
||||
<a
|
||||
href="tel:+79999698149"
|
||||
className="text-neutral-300 hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
+7 (999) 969-81-49
|
||||
</a>
|
||||
<a
|
||||
href="mailto:sale@parkflow.ru"
|
||||
className="text-neutral-300 hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
sale@parkflow.ru
|
||||
</a>
|
||||
<a
|
||||
href="mailto:info@parkflow.ru"
|
||||
className="text-neutral-300 hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
info@parkflow.ru
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div className="text-xs uppercase tracking-[0.2em] text-neutral-500 mb-4">
|
||||
Мы в сети
|
||||
</div>
|
||||
<div className="flex flex-col gap-3 text-sm">
|
||||
<a
|
||||
href="#"
|
||||
className="text-neutral-300 hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
VK
|
||||
</a>
|
||||
<a
|
||||
href="#"
|
||||
className="text-neutral-300 hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
Telegram
|
||||
</a>
|
||||
<a
|
||||
href="#"
|
||||
className="text-neutral-300 hover:text-emerald-300 transition-colors"
|
||||
>
|
||||
MAX
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="mt-10 border-t border-white/10 pt-5 flex flex-col gap-2 text-sm text-neutral-500 md:flex-row md:items-center md:justify-between">
|
||||
<div>© 2026 WorkParking</div>
|
||||
<div>ООО «Пракфлоу» • ИНН 7777773333</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user