Creating Tailwind CSS Accordion (FAQ) | Source Code Included


By Faraz -

Learn how to create a responsive accordion (FAQ) using Tailwind CSS with this step-by-step guide. Includes source code for easy implementation.

creating tailwind css accordion (faq)  source code included.jpg

In this tutorial, we will be exploring how to create a responsive accordion using Tailwind CSS. An accordion is a frequently used UI element that allows users to expand or collapse content within a web page. By creating an accordion, you can make your website more interactive and user-friendly.

Tailwind CSS is a utility-first CSS framework that is gaining popularity among web developers due to its ease of use and flexibility. It provides a set of pre-defined classes that can be combined to create custom designs without writing any CSS. This not only saves time but also ensures consistency across the website.

Throughout this tutorial, we will start by understanding the basics of Tailwind CSS and move on to setting up the HTML structure for the accordion. We will then use Tailwind CSS to style the accordion and add functionality with JavaScript. By the end of this tutorial, readers will be able to create a fully functional and responsive accordion using Tailwind CSS. We will also provide source code for easy implementation.

Let's start making an amazing accordion using Tailwind CSS and JavaScript step by step.

Join My Telegram Channel to Download the Projects Source Code: Click Here


Before starting this tutorial, you should have a basic understanding of HTML, CSS, and JavaScript. Additionally, you will need a code editor such as Visual Studio Code or Sublime Text to write and save your code.

Source Code

Step 1 (HTML Code):

To get started, we will first need to create a basic HTML file. In this file, we will include the main structure for our accordion.

After creating the files just paste the following codes into your file. Make sure to save your HTML document with a .html extension, so that it can be properly viewed in a web browser.

The code defines three accordion items, each with a header and content section. The accordion items can be expanded and collapsed by clicking on the header.

The HTML file includes a head section, where the title of the webpage is defined, along with the character encoding and viewport. The file also includes links to two CSS files: one for the Font Awesome icon library and one for custom styles defined in the "styles.css" file.

The body of the HTML file includes a container div with a flex layout, which centers the accordion on the page. The accordion is defined with a width of 644 pixels and contains three accordion items, each with a header and content section.

The accordion headers are defined with a gray background color and a hover effect. They also include a Font Awesome chevron icon, which rotates when the accordion item is expanded or collapsed.

The accordion content sections are initially hidden, but can be revealed when the corresponding header is clicked. They are defined with a light gray background color and a duration and ease-out animation effect.

Finally, the HTML file includes two script tags, which link to the Tailwind CSS and a custom JavaScript file named "script.js".

This is the basic structure of our accordion using HTML, and now we can move on to styling it using CSS.

Step 2 (CSS Code):

This is a piece of code written in Cascading Style Sheets (CSS), a language used for styling and formatting web pages.

The first section sets the font family for the entire webpage's body to "Inter", which is a sans-serif font.

The second section applies a transformation to an element with the class "accordion-icon" which is a part of an element with the class "accordion-item" and is currently in the active state. The transformation rotates the element by 90 degrees, which could be used to create an arrow pointing to the right or left, for example, to indicate an expanded or collapsed state of an accordion item.

body {
  font-family: "Inter", sans-serif;

.accordion-item.active .accordion-icon {
  transform: rotate(90deg);

Step 3 (JavaScript Code):

Finally, we need to write a JavaScript code that is used to create an accordion effect on a webpage.

The code starts by selecting all elements with the class "accordion-item" using the querySelectorAll method and assigns them to the accordionItems constant.

Next, a forEach loop is used to iterate through each item in the accordionItems collection. For each item, the code selects the header and content elements using the querySelector method and assigns them to the header and content constants, respectively.

An event listener is then added to the header element, which listens for a click event. When the header is clicked, the code first loops through all the accordionItems to find any items that are currently active and closes them by removing the "active" class and setting the height of their content element to 0. This ensures that only one accordion item is open at a time.

Next, the code toggles the "active" class of the clicked item using the classList.toggle method. If the item is now active, the height of its content element is set to its full height using the scrollHeight property. Otherwise, the height is set to 0 to close the accordion item.

Create a JavaScript file with the name of script.js and paste the given codes into your JavaScript file and make sure it's linked properly to your HTML document, so that the scripts are executed on the page. Remember, you’ve to create a file with .js extension.

const accordionItems = document.querySelectorAll(".accordion-item");

accordionItems.forEach((item) => {
  const header = item.querySelector(".accordion-header");
  const content = item.querySelector(".accordion-content");

  header.addEventListener("click", () => {
    // close other items
    accordionItems.forEach((otherItem) => {
      if (otherItem !== item && otherItem.classList.contains("active")) {
        otherItem.querySelector(".accordion-content").style.height = 0;


    if (item.classList.contains("active")) {
      content.style.height = `${content.scrollHeight}px`;
    } else {
      content.style.height = 0;

Final Output:

creating tailwind css accordion (faq)  source code included.gif


In this tutorial, we have learned how to create a responsive accordion using Tailwind CSS. We started by understanding the basics of Tailwind CSS and its benefits for web development. We then set up the HTML structure for the accordion and used Tailwind CSS to style it. Finally, we added functionality to the accordion using JavaScript.

By following the step-by-step guide, readers should now have the knowledge and skills to create their own custom accordion using Tailwind CSS. We encourage readers to experiment with different styles and functionality to make their accordions unique and user-friendly.

Tailwind CSS is a powerful CSS framework that can save developers a lot of time and effort while maintaining consistency across the website. We hope this tutorial has been helpful in introducing readers to Tailwind CSS and the creation of responsive accordions.

Thank you for following along with this tutorial. Happy coding!

That’s a wrap!

I hope you enjoyed this post. Now, with these examples, you can create your own amazing page.

Did you like it? Let me know in the comments below 🔥 and you can support me by buying me a coffee.

And don’t forget to sign up to our email newsletter so you can get useful content like this sent right to your inbox!

Faraz 😊

End of the article

Subscribe to my Newsletter

Get the latest posts delivered right to your inbox

Related Post