import type { Metadata, Viewport } from 'next'; import './globals.css'; import { MobileTabBar } from '@/components/layout/mobile-tab-bar'; import { SearchProvider } from '@/components/layout/search-context'; import { SearchDialog } from '@/components/layout/search-dialog'; import { SiteFooter } from '@/components/layout/site-footer'; import { SiteHeader } from '@/components/layout/site-header'; import { fontMono, fontUi } from '@/lib/fonts'; import { DESCRIPTION, SITE_NAME, SITE_URL, TAGLINE } from '@/lib/site'; export const metadata: Metadata = { metadataBase: new URL(SITE_URL), title: { default: `${SITE_NAME} — ${TAGLINE}`, template: `%s | ${SITE_NAME}` }, description: DESCRIPTION, applicationName: SITE_NAME, robots: { index: true, follow: true }, alternates: { canonical: '/' }, openGraph: { type: 'website', siteName: SITE_NAME, url: SITE_URL, title: `${SITE_NAME} — ${TAGLINE}`, description: DESCRIPTION }, twitter: { card: 'summary_large_image', title: `${SITE_NAME} — ${TAGLINE}`, description: DESCRIPTION }, icons: { icon: [{ url: '/icon.svg', type: 'image/svg+xml' }], apple: [{ url: '/apple-icon', sizes: '180x180', type: 'image/png' }] }, }; export const viewport: Viewport = { width: 'device-width', initialScale: 1, viewportFit: 'cover', themeColor: '#060912', }; export default function RootLayout({ children }: { children: React.ReactNode }) { return (
Skip to content