Next.js Styling Options — Global CSS, CSS Modules & Tailwind

▲ Next.js 15+ (App Router) 🟢 Chapter 13 of 43 📂 Phase 6: Styling & UI 📅 2026 Edition
📌 Covered in this chapter: Global CSS · CSS Modules · Tailwind CSS · Inline Styles · CSS Variables & Dark Mode
Next.js styling కోసం multiple approaches support చేస్తుంది — ప్రతి ఒక్కటి ఎప్పుడు వాడాలో ఈ chapter లో compare చేద్దాం.
1Global CSS

app/globals.css ఫైల్, root layout లో import చేయబడి, మొత్తం app కి apply అవుతుంది — resets, base typography, CSS variables కోసం ideal:

💻 Example 1: Importing Global Styles
app/layout.tsx ▶ Run in Compiler
import "./globals.css";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>{children}</body>
    </html>
  );
}
2CSS Modules — Component-Scoped Styles

CSS Modules (.module.css extension), styles ని ఆ component కి matrame scope చేస్తాయి — class name clashes never happen:

💻 Example 2: A Scoped Button Style
app/_components/Button.tsx ▶ Run in Compiler
import styles from "./Button.module.css";

export default function Button() {
  return <button className={styles.primary}>Start Learning</button>;
}

styles.primary, build time లో unique class name (e.g. Button_primary__a1b2c) కి map అవుతుంది — దాని valla ఏ ఇతర component styles తో collision జరగదు.

3Tailwind CSS — Utility-First Styling

create-next-app setup లో Tailwind ఎంచుకుంటే, ఇది pre-configured గా వస్తుంది. Utility classes direct ga JSX లో వాడతారు — separate CSS file rాయాల్సిన అవసరం చాలా తక్కువ:

💻 Example 3: A Card with Tailwind Utility Classes
app/_components/Card.tsx ▶ Run in Compiler
export default function Card() {
  return (
    <div className="rounded-lg shadow-md p-6 bg-white">
      <h2 className="text-xl font-bold">Next.js Course</h2>
    </div>
  );
}
4Choosing an Approach
ApproachBest For
Global CSSResets, typography, CSS variables, theme colors
CSS ModulesComponent-specific styles, no naming collisions
Tailwind CSSRapid development, consistent design system
Inline stylesSmall, dynamic, one-off style calculations
⚠️ Common Mistake: Mixing Approaches Inconsistently

Oka project లో Tailwind, CSS Modules, and inline styles anni కలిపి random గా వాడితే, codebase maintain చేయడం కష్టం అవుతుంది. Team-wide ఒక consistent approach (usually Tailwind) ఎంచుకుని, migతా project అంతటా follow చేయడం best practice.

💻 Hands-on Interactive Practice Challenge

Create a Badge.module.css file with a '.success' class (green background, white text, rounded corners), then use it in a Badge component.

app/_components/Badge.tsx ▶ Run in Compiler
import styles from "./Badge.module.css";

export default function Badge() {
  return <span className={styles.success}>Active</span>;
}
Run This Challenge in Online Node.js IDE →
Frequently Asked Questions (FAQ)

Q Tailwind, CSS Modules ఒకే project లో కలిపి వాడొచ్చా?

Technically avunu, kani recommended kadు — inconsistency valla codebase maintain చేయడం కష్టం అవుతుంది. ఒక approach ni project-wide standard గా ఎంచుకోవడం better.

Q globals.css ఎక్కడ import చేయాలి?

Root layout.tsx (app/layout.tsx) లో matrame import చేయాలి — అక్కడ import చేస్తే, మొత్తం app కి apply అవుతుంది. Deeni ni prathi page లో repeat గా import చేయాల్సిన అవసరం లేదు.

Q CSS Modules class name collision ఎలా avoid చేస్తాయి?

Build time లో, Next.js prathi class పేరుకు unique hash suffix add చేస్తుంది (e.g., Button_primary__xyz123) — దాని valla వేరే files లో అదే class పేరు వాడినా, styles collide అవ్వవు.

OC
Written by Our Compiler Technical Editorial Team
Reviewed for accuracy & tested on Next.js 15+ (App Router) · Last updated August 2026