Global CSS lets you apply styles that affect your whole website. It helps keep your design consistent everywhere.
Global CSS in NextJS
/* In your Next.js project, create a CSS file like styles/globals.css */ /* styles/globals.css */ body { margin: 0; font-family: Arial, sans-serif; background-color: #f0f0f0; } /* Then import it in your app entry file */ // app/layout.js (Next.js 13+ App Router) import './globals.css'; export default function RootLayout({ children }) { return ( <html lang="en"> <body>{children}</body> </html> ); }
Global CSS files must be imported only once, usually in the root layout or _app.js.
Next.js requires global CSS imports to be in special files like app/layout.js or pages/_app.js.
/* styles/globals.css */ body { background-color: white; color: black; } // app/layout.js import './globals.css';
/* styles/globals.css */ h1 { font-size: 2rem; color: darkblue; } // app/layout.js import './globals.css';
This Next.js app uses a global CSS file to style the body and h1 elements. The background is a light teal color, text is dark teal, and the heading is centered with margin.
/* styles/globals.css */ body { margin: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #e0f7fa; color: #006064; } h1 { text-align: center; margin-top: 2rem; } // app/layout.js import './globals.css'; export default function RootLayout({ children }) { return ( <html lang="en"> <body> <h1>Welcome to My Next.js Site</h1> {children} </body> </html> ); }
Global CSS affects all components and pages, so use it for shared styles only.
For component-specific styles, use CSS Modules or styled components instead.
Remember to keep your global CSS file organized to avoid conflicts.
Global CSS applies styles across your entire Next.js app.
Import your global CSS file once in app/layout.js or pages/_app.js.
Use global CSS for fonts, colors, and base element styles.
Practice
Solution
Step 1: Understand global CSS import location
Global CSS must be imported once at the top-level layout or app file to apply styles app-wide.Step 2: Identify correct files for global CSS import
Next.js usesapp/layout.jsin the new app directory orpages/_app.jsin the pages directory for this purpose.Final Answer:
In app/layout.js or pages/_app.js -> Option AQuick Check:
Global CSS import location = A [OK]
- Importing global CSS in every component causes errors
- Placing CSS files in public folder expecting auto-import
- Trying to import CSS in next.config.js
styles.css in app/layout.js?Solution
Step 1: Recall global CSS import syntax in Next.js
Global CSS files are imported without assigning to a variable, just usingimport './filename.css';.Step 2: Evaluate each option
import styles from './styles.css'; tries to import as a module which is for CSS modules, not global CSS. require('./styles.css'); uses CommonJS require which is not standard in Next.js ES modules. link rel='stylesheet' href='./styles.css'; is HTML syntax, not JavaScript import.Final Answer:
import './styles.css'; -> Option BQuick Check:
Global CSS import syntax = D [OK]
- Using import with variable for global CSS
- Using require() instead of import
- Trying to add <link> tags inside JS files
app/layout.js snippet:import './globals.css';
export default function RootLayout({ children }) {
return <html><body>{children}</body></html>;
}If
globals.css sets body { background-color: lightblue; }, what will be the background color of the page?Solution
Step 1: Understand global CSS effect
Importingglobals.cssinapp/layout.jsapplies styles globally, including the body background color.Step 2: Check CSS rule impact
The CSS rulebody { background-color: lightblue; }sets the page background color to lightblue.Final Answer:
Lightblue -> Option DQuick Check:
Global CSS body background = B [OK]
- Thinking global CSS won't apply without explicit class
- Assuming default white background overrides CSS
- Confusing local CSS modules with global CSS
import './globals.css'; inside a React component file instead of app/layout.js. What problem will you most likely face?Solution
Step 1: Recall Next.js global CSS import rules
Next.js requires global CSS to be imported only inapp/layout.jsorpages/_app.js. Importing elsewhere causes errors.Step 2: Identify error behavior
Importing global CSS inside a component triggers a build error stating global CSS cannot be imported from non-top-level files.Final Answer:
Next.js build error about global CSS import location -> Option AQuick Check:
Global CSS import location error = A [OK]
- Importing global CSS in components expecting scoped styles
- Ignoring build errors and expecting styles to work
- Confusing global CSS with CSS modules
Solution
Step 1: Understand global styling needs
Global fonts and colors should be set once to apply app-wide, not repeated per page or component.Step 2: Choose correct global CSS usage
Creating aglobals.cssfile with base styles and importing it once inapp/layout.jsensures consistent global styles.Final Answer:
Create globals.css and import it once in app/layout.js -> Option CQuick Check:
Global base styles = C [OK]
- Using inline styles repeatedly instead of global CSS
- Relying on CSS modules for global styles
- Adding styles only on one page expecting global effect
Ready to prove it?
Pass the test and this pattern moves unknown
