DEV Community

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

Posted on

29 1 1 1 1

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.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (4)

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

Collapse
 
sharma27 profile image
Nikhil Sharma

Bro I'm using tailwindcss 4.0
I gont get suggestions from intellisense extension
What to do?

Collapse
 
souradeep321 profile image
Souradeep Hazra

Check the tailwind intellisence extension properly, you'll dind out

Collapse
 
rowleks profile image
Rowland

I think you do if you want tailwind intellisense extension to work.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more