DEV Community

vuleolabs
vuleolabs

Posted on

# 🌙 How to Add Dark Mode to a Next.js Landing Page (Tailwind Guide)

Dark mode has become a standard feature for modern SaaS products.

Many users prefer dark interfaces because they reduce eye strain and feel more modern.

In this tutorial we’ll build a simple and clean dark mode system using Next.js and Tailwind CSS.


🧠 Why Dark Mode Matters

Dark mode improves:

• user experience
• accessibility
• modern UI perception

Many popular products support it:

• GitHub
• Notion
• Vercel

Adding dark mode to your landing page immediately makes it feel more polished.


🧩 Component Structure

Example structure:

components/
 theme/
   ThemeProvider.tsx
   ThemeToggle.tsx
Enter fullscreen mode Exit fullscreen mode

This keeps theme logic separate from UI components.


⚙️ Basic Theme Provider

Example simple theme provider:

"use client"

import { createContext, useState } from "react"

export const ThemeContext = createContext()

export function ThemeProvider({ children }) {
  const [theme, setTheme] = useState("light")

  return (
    <ThemeContext.Provider value={{ theme, setTheme }}>
      <div className={theme}>
        {children}
      </div>
    </ThemeContext.Provider>
  )
}
Enter fullscreen mode Exit fullscreen mode

🎨 Using Tailwind Dark Classes

Tailwind makes dark mode extremely easy.

Example:

<div className="bg-white dark:bg-gray-900 text-black dark:text-white">
Enter fullscreen mode Exit fullscreen mode

Tailwind automatically switches styles when the theme changes.


🔘 Theme Toggle Button

A simple toggle component:

export function ThemeToggle({ toggle }) {
  return (
    <button onClick={toggle} className="p-2 border rounded">
      Toggle Theme
    </button>
  )
}
Enter fullscreen mode Exit fullscreen mode

Users can now switch between light and dark mode.


🔎 Live Example

You can see a real landing page example here:

https://vuleo-ai-saas.vercel.app


💡 Full Template

If you're building a SaaS landing page and want a complete template with reusable components, dark mode, and responsive UI:

https://vuleolabs.gumroad.com/l/nharb

Top comments (1)

Collapse
 
vuleolabs profile image
vuleolabs

Would love feedback from other developers building SaaS products.