<div class="accordion">
  <div class="accordion-item">
    <input type="checkbox" id="accordion-item-1" class="item-input" />
    <label for="accordion-item-1" class="item-label">Item 1</label>
    <div class="item-content">Lorem ipsum dolor 1</div>
  </div>
  <div class="accordion-item">
    <input type="checkbox" id="accordion-item-2" class="item-input" />
    <label for="accordion-item-2" class="item-label">Item 2</label>
    <div class="item-content">Lorem ipsum dolor 2</div>
  </div>
</div>
body .accordion {
  max-width: 300px;
}
.accordion {
  border: 1px solid #ccc;
  border-radius: 10px;
  overflow: hidden;
}
.accordion-item {
  overflow: hidden;
}
.accordion-item:not(:last-child) {
  border-bottom: 1px solid #fff;
}
.item-input {
  display: none;
}
.item-label {
  display: flex;
  justify-content: space-between;
  background-color: #282a36;
  color: #fff;
  padding: 16px;
}
.item-label::after {
  content: ">";
  width: 1em;
  height: 1em;
  text-align: center;
  transition: transform 0.3s ease-in-out;
}
.item-content {
  transition: all 0.3s ease-in-out;
  max-height: 0;
  padding: 0 16px;
}
.item-input:checked ~ .item-label::after {
  transform: rotate(90deg);
}
.item-input:checked ~ .item-content {
  max-height: 100vh;
  padding: 16px;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.