HomeReact
Chapter 6

06 — Styling in React

Multiple approaches to styling React components — from simple inline styles to full CSS-in-JS solutions.

Approaches Comparison

ApproachScoped?Dynamic?Bundle ImpactLearning Curve
Inline styles✅ Per element✅ JS valuesNoneNone
CSS Modules✅ Per file⚠️ Class toggleSmallLow
Tailwind CSS✅ Utility✅ Class logicTree-shakenMedium
Styled Components✅ Per component✅ Props-basedRuntime CSSMedium
Global CSS❌ Global❌ StaticSmallNone

When to Use What

Use CaseBest Approach
Quick prototypeInline styles or Tailwind
Component libraryCSS Modules or Styled Components
Design systemTailwind with config
Dynamic themeStyled Components or CSS variables
Animation-heavyTailwind + Framer Motion

CSS Modules (Recommended Default)

import styles from './Button.module.css';
<button className={styles.primary}>Click</button>
  • Class names are auto-scoped (no collisions)
  • Zero runtime cost (compiled at build time)
  • Works out of the box with Vite

Tailwind CSS (Most Popular)

<button className="bg-blue-500 hover:bg-blue-700 text-white px-4 py-2 rounded">
  Click
</button>

File

  • styling.tsx — inline styles, CSS Modules, Tailwind, Styled Components, conditional classes, dynamic theming