<div class="accordions">
  <div class="accordion">
    <div class="accordion__title">Title Lorem ipsum, dolor sit amet</div>
    <div class="accordion__content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, mollitia ut! Recusandae cupiditate exercitationem pariatur non ad? Laborum, quibusdam obcaecati! Repudiandae voluptas consectetur voluptatem recusandae minima, ipsum optio dignissimos a?</div>
  </div>
  <div class="accordion">
    <div class="accordion__title">Title Lorem ipsum, dolor sit amet</div>
    <div class="accordion__content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, mollitia ut! Recusandae cupiditate exercitationem pariatur non ad? Laborum, quibusdam obcaecati! Repudiandae voluptas consectetur voluptatem recusandae minima, ipsum optio dignissimos a?</div>
  </div>
  <div class="accordion">
    <div class="accordion__title">Title Lorem ipsum, dolor sit amet</div>
    <div class="accordion__content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, mollitia ut! Recusandae cupiditate exercitationem pariatur non ad? Laborum, quibusdam obcaecati! Repudiandae voluptas consectetur voluptatem recusandae minima, ipsum optio dignissimos a?</div>
  </div>
  <div class="accordion">
    <div class="accordion__title">Title Lorem ipsum, dolor sit amet</div>
    <div class="accordion__content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, mollitia ut! Recusandae cupiditate exercitationem pariatur non ad? Laborum, quibusdam obcaecati! Repudiandae voluptas consectetur voluptatem recusandae minima, ipsum optio dignissimos a?</div>
  </div>
  <div class="accordion">
    <div class="accordion__title">Title Lorem ipsum, dolor sit amet</div>
    <div class="accordion__content">Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptates, mollitia ut! Recusandae cupiditate exercitationem pariatur non ad? Laborum, quibusdam obcaecati! Repudiandae voluptas consectetur voluptatem recusandae minima, ipsum optio dignissimos a?</div>
  </div>
</div>
.accordions {
  display: grid;
  grid-gap: 0.5rem;
}
.accordion {
  background: #ccc;
  border-radius: 1rem;
  &__title {
    padding: 1rem;
    cursor: pointer;
  }
  &__content {
    padding: 0 1rem 1rem;
    display: none;
  }
  &.open &__content {
    display: block;
  }
}
View Compiled
document.querySelectorAll(".accordions").forEach((block) => {
  const accordions = block.querySelectorAll(".accordion");
  block.addEventListener("click", (e) => {
    const trigger = e.target.closest(".accordion__title");
    if (trigger) {
      const accordion = e.target.closest(".accordion");
      if (accordion.classList.contains("open")) {
        accordion.classList.remove("open");
      } else {
        block.querySelectorAll(".accordion.open").forEach((acc) => {
          acc.classList.remove("open");
        });
        accordion.classList.add("open");
      }
    }
  });
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.