DEV Community

Maulik Paghdal for Script Binary

Posted on • Originally published at scriptbinary.com

Using Tailwind CSS to Build Complex Layouts Quickly

Using Tailwind CSS to Build Complex Layouts Quickly

๐Ÿš€ Using Tailwind CSS to Build Complex Layouts Quickly

Tailwind CSS is a utility-first CSS framework that enables rapid UI development. Unlike traditional CSS frameworks, Tailwind provides low-level utility classes, allowing you to design complex layouts with ease and flexibility.

In this guide, weโ€™ll explore how to build complex layouts quickly using Tailwind CSS.


โœจ Why Tailwind CSS for Layouts?

โœ… Utility-First Approach โ€“ No need to write custom CSS.

โœ… Responsive by Default โ€“ Mobile-first classes (sm:, md:, lg:, etc.).

โœ… Flexbox & Grid Utilities โ€“ Build layouts efficiently.

โœ… Dark Mode & Theming โ€“ Easy customization with Tailwindโ€™s configuration.


๐Ÿ”น 1. Setting Up Tailwind CSS

If you donโ€™t have Tailwind installed, start by setting up a new project:

๐Ÿ“Œ Install Tailwind via npm

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Enter fullscreen mode Exit fullscreen mode

๐Ÿ“Œ Configure tailwind.config.js

Enable JIT mode for faster builds:

module.exports = {
  mode: 'jit',
  content: ["./src/**/*.{html,js}"],
  theme: {
    extend: {},
  },
  plugins: [],
};
Enter fullscreen mode Exit fullscreen mode

๐Ÿ“Œ Include Tailwind in index.css

@tailwind base;
@tailwind components;
@tailwind utilities;
Enter fullscreen mode Exit fullscreen mode

Now, you're ready to start building layouts!


๐Ÿ”น 2. Building a Responsive Navbar

A responsive navigation bar using Tailwindโ€™s flex utilities:

<nav class="bg-gray-900 text-white p-4">
  <div class="container mx-auto flex justify-between items-center">
    <a href="#" class="text-2xl font-bold">MyApp</a>
    <ul class="hidden md:flex space-x-6">
      <li><a href="#" class="hover:text-gray-400">Home</a></li>
      <li><a href="#" class="hover:text-gray-400">About</a></li>
      <li><a href="#" class="hover:text-gray-400">Contact</a></li>
    </ul>
    <button class="md:hidden text-2xl">&#9776;</button>
  </div>
</nav>
Enter fullscreen mode Exit fullscreen mode

โœ… flex justify-between items-center aligns items.

โœ… hidden md:flex ensures mobile responsiveness.


๐Ÿ”น 3. Creating a Hero Section with Flexbox

A hero section with centered content:

<section class="h-screen flex items-center justify-center bg-gradient-to-r from-blue-500 to-purple-600 text-white">
  <div class="text-center">
    <h1 class="text-5xl font-bold">Build Faster with Tailwind CSS</h1>
    <p class="mt-4 text-lg">Create modern UIs effortlessly.</p>
    <button class="mt-6 px-6 py-3 bg-white text-blue-600 font-semibold rounded-lg hover:bg-gray-200">
      Get Started
    </button>
  </div>
</section>
Enter fullscreen mode Exit fullscreen mode

โœ… h-screen ensures full viewport height.

โœ… flex items-center justify-center centers content.


๐Ÿ”น 4. Designing a Responsive Grid Layout

Tailwindโ€™s grid system simplifies complex layouts:

<section class="p-10 grid grid-cols-1 md:grid-cols-3 gap-6">
  <div class="p-6 bg-white shadow-lg rounded-lg">Card 1</div>
  <div class="p-6 bg-white shadow-lg rounded-lg">Card 2</div>
  <div class="p-6 bg-white shadow-lg rounded-lg">Card 3</div>
</section>
Enter fullscreen mode Exit fullscreen mode

โœ… grid grid-cols-1 md:grid-cols-3 makes it responsive.

โœ… gap-6 adds spacing between items.


๐Ÿ”น 5. Building a Dashboard Layout

A complex dashboard layout using flexbox and grid:

<div class="flex h-screen">
  <!-- Sidebar -->
  <aside class="w-64 bg-gray-900 text-white p-5">
    <h2 class="text-xl font-bold">Dashboard</h2>
    <ul class="mt-4 space-y-3">
      <li><a href="#" class="block hover:bg-gray-700 p-2 rounded">Home</a></li>
      <li><a href="#" class="block hover:bg-gray-700 p-2 rounded">Settings</a></li>
      <li><a href="#" class="block hover:bg-gray-700 p-2 rounded">Profile</a></li>
    </ul>
  </aside>

  <!-- Main Content -->
  <main class="flex-1 p-6 bg-gray-100">
    <h1 class="text-2xl font-semibold">Welcome Back!</h1>
    <div class="mt-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
      <div class="p-6 bg-white shadow-lg rounded-lg">Widget 1</div>
      <div class="p-6 bg-white shadow-lg rounded-lg">Widget 2</div>
      <div class="p-6 bg-white shadow-lg rounded-lg">Widget 3</div>
    </div>
  </main>
</div>
Enter fullscreen mode Exit fullscreen mode

โœ… Sidebar with navigation

โœ… Main content using grid layout


๐Ÿ”น 6. Adding Dark Mode Support

Tailwind makes dark mode easy! Enable it in tailwind.config.js:

module.exports = {
  darkMode: 'class', // or 'media'
  theme: {
    extend: {},
  },
  plugins: [],
};
Enter fullscreen mode Exit fullscreen mode

Toggle dark mode in HTML:

<html class="dark">
<body class="bg-white dark:bg-gray-900 text-gray-900 dark:text-white">
  <button onclick="document.documentElement.classList.toggle('dark')">
    Toggle Dark Mode
  </button>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

โœ… dark:bg-gray-900 applies dark theme styles.


๐ŸŽฏ Conclusion

Tailwind CSS is a game-changer for building complex layouts fast. Whether youโ€™re creating dashboards, landing pages, or e-commerce sites, Tailwindโ€™s utility-first approach makes layout building effortless.

โœ… Responsive by default

โœ… Minimal custom CSS

โœ… Flexible grid & flex utilities

๐Ÿ“Œ Explore more Tailwind CSS tips on Script Binary! ๐Ÿš€


๐Ÿ’ฌ Letโ€™s Connect!

๐Ÿ”ฅ Whatโ€™s your favorite Tailwind CSS feature? Comment below!

๐Ÿ”” Follow me for more Tailwind & Frontend Development tips!

Top comments (0)