From dfda08085b47d390d0920348069928cc9c7a59c1 Mon Sep 17 00:00:00 2001 From: consultoria-as Date: Sun, 22 Feb 2026 03:58:03 +0000 Subject: [PATCH] feat: add Navbar, Footer, and LanguageSwitcher layout components Install framer-motion and create shared layout components with i18n support. Update locale layout to include fixed navbar, flex-col body, and footer. Co-Authored-By: Claude Opus 4.6 --- apps/web/package.json | 1 + apps/web/src/app/[locale]/layout.tsx | 8 +++- apps/web/src/components/layout/Footer.tsx | 13 +++++++ .../components/layout/LanguageSwitcher.tsx | 36 +++++++++++++++++ apps/web/src/components/layout/Navbar.tsx | 39 +++++++++++++++++++ package-lock.json | 1 + 6 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 apps/web/src/components/layout/Footer.tsx create mode 100644 apps/web/src/components/layout/LanguageSwitcher.tsx create mode 100644 apps/web/src/components/layout/Navbar.tsx diff --git a/apps/web/package.json b/apps/web/package.json index f051e98..bc96979 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@afterlife/shared": "*", + "framer-motion": "^12.34.3", "next": "^15", "next-intl": "^4.8.3", "react": "^19", diff --git a/apps/web/src/app/[locale]/layout.tsx b/apps/web/src/app/[locale]/layout.tsx index bedbd09..202f004 100644 --- a/apps/web/src/app/[locale]/layout.tsx +++ b/apps/web/src/app/[locale]/layout.tsx @@ -3,6 +3,8 @@ import { NextIntlClientProvider } from "next-intl"; import { getMessages } from "next-intl/server"; import { notFound } from "next/navigation"; import { routing } from "@/i18n/routing"; +import { Navbar } from "@/components/layout/Navbar"; +import { Footer } from "@/components/layout/Footer"; import "./globals.css"; export const metadata: Metadata = { @@ -25,9 +27,11 @@ export default async function LocaleLayout({ return ( - + - {children} + +
{children}
+