Pure CSS Accordion

by M Shameer

HTML

<h2>Accordion</h2>

<label for="section1"><div class="accordion">Section 1</div></label><input id="section1" type="radio" name="test" /> 
<div class="panel">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>

<label for="section2"><div class="accordion">Section 1</div></label><input id="section2" type="radio" name="test" /> 
<div class="panel">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>

<label for="section3"><div class="accordion">Section 1</div></label><input id="section3" type="radio" name="test" /> 
<div class="panel">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>

CSS

.accordion {
  background-color: #eee;
  color: #444;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  font-size: 15px;
  transition: all ease-in .2s;
}

.active, .accordion:hover {
  background-color: #ccc; 
}

.panel {
  padding: 0 18px;
  height:1px;
  background-color: white;
  overflow: hidden;
  opacity:0;
}
input[name="test"]{display:none;}
input[name="test"]:checked + .panel{
	height:auto;
    opacity:1;
    animation: fadeIn 1s;
}

@keyframes fadeIn {
  0% { opacity: 0; }
  20% { opacity: 0; }
  100% { opacity: 1; }
}