JSFiddle - React, Tailwind, and code Playground

by Prathameshsb

HTML

<div class="accordion-container">
    <div class="accordion-item">
      <div class="accordion-header">Section 1</div>
      <div class="accordion-content">Content for Section 1</div>
    </div>
    <div class="accordion-item">
      <div class="accordion-header">Section 2</div>
      <div class="accordion-content">Content for Section 2</div>
    </div>
    <div class="accordion-item">
      <div class="accordion-header">Section 3</div>
      <div class="accordion-content">Content for Section 3</div>
    </div>
  </div>

CSS

body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin: 0;
  font-family: Arial, sans-serif;
}

.accordion-container {
  width: 300px;
}

.accordion-item {
  border: 1px solid #ccc;
  margin-bottom: 5px;
}

.accordion-header {
  padding: 10px;
  cursor: pointer;
  background-color: #f1f1f1;
  border-bottom: 1px solid #ccc;
}

.accordion-content {
  padding: 10px;
  display: none;
}

JavaScript

document.addEventListener('DOMContentLoaded', function () {
  const accordionItems = document.querySelectorAll('.accordion-item');

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

    header.addEventListener('click', () => {
      content.style.display = content.style.display === 'block' ? 'none' : 'block';
    });
  });
});