Problem
The _app.tsx file directly contains the HTML structure (<div className="min-h-screen...">) and the Navbar component, cluttering the Next.js root wrapper and preventing custom layouts on specific pages.
Expected behavior
The styling wrapper and Navbar are extracted into a dedicated src/components/Layout.tsx component that wraps the {children} props. _app.tsx is updated to utilize this new component.
Files to update
src/pages/_app.tsx
src/components/Layout.tsx (create)
Project relevance
Separates concerns, making the root application file cleaner and standardizing the global container properties in a dedicated UI file.
Acceptance criteria
Problem
The
_app.tsxfile directly contains the HTML structure (<div className="min-h-screen...">) and theNavbarcomponent, cluttering the Next.js root wrapper and preventing custom layouts on specific pages.Expected behavior
The styling wrapper and
Navbarare extracted into a dedicatedsrc/components/Layout.tsxcomponent that wraps the{children}props._app.tsxis updated to utilize this new component.Files to update
src/pages/_app.tsxsrc/components/Layout.tsx(create)Project relevance
Separates concerns, making the root application file cleaner and standardizing the global container properties in a dedicated UI file.
Acceptance criteria
Layout.tsxrenders the<main className="flex-grow p-6 md:p-8 max-w-7xl mx-auto w-full">wrapper