DEV Community

Cover image for How to Use Tailwind CSS to Create a Modern Website Design
Rowsan Ali
Rowsan Ali

Posted on

How to Use Tailwind CSS to Create a Modern Website Design

In the world of web development, creating a modern, responsive, and visually appealing website is crucial. While there are many CSS frameworks available, Tailwind CSS has gained immense popularity due to its utility-first approach, which allows developers to build custom designs directly in their HTML. In this blog post, we’ll explore how to use Tailwind CSS to create a modern website design, complete with code examples.

What is Tailwind CSS?

Tailwind CSS is a utility-first CSS framework that provides low-level utility classes to build designs directly in your markup. Unlike traditional CSS frameworks like Bootstrap, Tailwind doesn’t come with pre-designed components. Instead, it gives you the building blocks to create unique designs without writing custom CSS.

Key Features of Tailwind CSS:

  • Utility-First Approach: Small, single-purpose classes that can be combined to create complex designs.
  • Responsive Design: Built-in support for responsive layouts with breakpoints.
  • Customization: Highly customizable via a configuration file (tailwind.config.js).
  • Dark Mode: Easy implementation of dark mode.
  • PurgeCSS: Removes unused CSS in production for smaller file sizes.

Getting Started with Tailwind CSS

Before diving into creating a modern website, let’s set up Tailwind CSS in your project.

Step 1: Install Tailwind CSS

You can install Tailwind CSS via npm or yarn. Here’s how to do it with npm:

npm install tailwindcss
Enter fullscreen mode Exit fullscreen mode

Step 2: Create a Tailwind Configuration File

Generate a tailwind.config.js file to customize your setup:

npx tailwindcss init
Enter fullscreen mode Exit fullscreen mode

Step 3: Add Tailwind to Your CSS

Create a CSS file (e.g., styles.css) and include Tailwind’s base, components, and utilities:

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

Step 4: Process Your CSS with Tailwind

Use a build tool like PostCSS to process your CSS. If you’re using a framework like Next.js or Vue.js, Tailwind integrates seamlessly.

Building a Modern Website with Tailwind CSS

Now that Tailwind is set up, let’s create a modern website design. We’ll build a simple landing page with a hero section, features section, and footer.

1. Hero Section

The hero section is the first thing users see. Let’s create a responsive hero section with a background image, a headline, and a call-to-action button.

<section class="bg-cover bg-center h-screen flex items-center justify-center" style="background-image: url('hero-bg.jpg');">
  <div class="text-center">
    <h1 class="text-6xl font-bold text-white mb-4">Welcome to Our Modern Website</h1>
    <p class="text-xl text-white mb-8">We create stunning designs that captivate your audience.</p>
    <a href="#" class="bg-blue-600 text-white px-8 py-3 rounded-lg hover:bg-blue-700 transition duration-300">Get Started</a>
  </div>
</section>
Enter fullscreen mode Exit fullscreen mode

2. Features Section

Next, let’s create a features section with a grid layout to showcase key offerings.

<section class="py-16 bg-gray-100">
  <div class="container mx-auto px-4">
    <h2 class="text-4xl font-bold text-center mb-12">Our Features</h2>
    <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
      <div class="bg-white p-8 rounded-lg shadow-lg text-center">
        <h3 class="text-2xl font-bold mb-4">Responsive Design</h3>
        <p class="text-gray-600">Our designs look great on all devices, from desktops to smartphones.</p>
      </div>
      <div class="bg-white p-8 rounded-lg shadow-lg text-center">
        <h3 class="text-2xl font-bold mb-4">Fast Performance</h3>
        <p class="text-gray-600">Optimized for speed to ensure a seamless user experience.</p>
      </div>
      <div class="bg-white p-8 rounded-lg shadow-lg text-center">
        <h3 class="text-2xl font-bold mb-4">Easy Customization</h3>
        <p class="text-gray-600">Tailwind’s utility-first approach makes customization a breeze.</p>
      </div>
    </div>
  </div>
</section>
Enter fullscreen mode Exit fullscreen mode

3. Footer

Finally, let’s add a simple footer with social media links.

<footer class="bg-gray-800 text-white py-8">
  <div class="container mx-auto px-4 text-center">
    <p class="mb-4">&copy; 2023 Modern Website. All rights reserved.</p>
    <div class="flex justify-center space-x-4">
      <a href="#" class="text-gray-400 hover:text-white transition duration-300">Facebook</a>
      <a href="#" class="text-gray-400 hover:text-white transition duration-300">Twitter</a>
      <a href="#" class="text-gray-400 hover:text-white transition duration-300">Instagram</a>
    </div>
  </div>
</footer>
Enter fullscreen mode Exit fullscreen mode

Making the Design Responsive

Tailwind CSS makes it easy to create responsive designs using its built-in breakpoints. For example, you can adjust the layout for different screen sizes:

<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
  <!-- Content goes here -->
</div>
Enter fullscreen mode Exit fullscreen mode

In this example:

  • On small screens (< 768px), the grid will have one column.
  • On medium screens (≥ 768px), it will have two columns.
  • On large screens (≥ 1024px), it will have three columns.

Adding Dark Mode

Tailwind CSS provides built-in support for dark mode. To enable it, add the dark: prefix to your utility classes and configure your tailwind.config.js:

module.exports = {
  darkMode: 'class', // or 'media'
  // Other configurations...
};
Enter fullscreen mode Exit fullscreen mode

Then, toggle dark mode by adding the dark class to your HTML:

<body class="bg-white dark:bg-gray-900 text-black dark:text-white">
  <!-- Your content -->
</body>
Enter fullscreen mode Exit fullscreen mode

Optimizing for Production

To ensure your website loads quickly, use Tailwind’s PurgeCSS feature to remove unused CSS. Update your tailwind.config.js:

module.exports = {
  purge: ['./src/**/*.html', './src/**/*.js'],
  // Other configurations...
};
Enter fullscreen mode Exit fullscreen mode

Conclusion

Tailwind CSS is a powerful tool for creating modern, responsive, and customizable website designs. Its utility-first approach allows you to build unique designs without writing custom CSS, making it a favorite among developers. By following the steps and examples in this blog post, you can create a stunning website with Tailwind CSS.

Top comments (1)

Collapse
 
juniourrau profile image
Ravin Rau

I believe with Tailwind 4.0 you don't have to configure the tailwind.config.js part. Do check the documentation