How do you add global CSS in Next.js?
Assesses fundamental understanding of Next.js conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
Adding global CSS depends on whether you are using the modern App Router or the legacy Pages Router:
### 1. In App Router (app/ directory):
Import your global CSS file directly inside your root layout (app/layout.tsx):
// app/layout.tsx
import './globals.css';
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>{children}</body>
</html>
);
}
### 2. In Pages Router (pages/ directory):
Import global CSS only inside the custom pages/_app.js (or _app.tsx):
// pages/_app.tsx
import '../styles/globals.css';
import type { AppProps } from 'next/app';
export default function MyApp({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />;
}
*Note: In Pages Router, Next.js prohibits importing global stylesheets inside arbitrary page components to prevent global CSS rule ordering conflicts.*
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.