JSFiddle - React, Tailwind, and code Playground

HTML

<h1>Animované skrývání a odkrývání obsahu</h1>
<div class="obal">
    <h2 class="nadpis">Toto je nějaký nadpis</h2>
    <div class="obsah">
        <h2>Nový nadpis místo prvního</h2>
        <p>Dejme tomu, že je tady nějaký obsah</p>
        <h3>Například seznam položek</h3>        
        <ul>
            <li>Položka 1</li>
            <li>Položka 2</li>
            <li>Položka 3</li>
        </ul>
    </div>
</div>

CSS

* {
    margin: 0;
}
.obal {
    border: 1px solid red;
}
.nadpis {
    overflow: hidden;
    height: 1.2em;
    transition: all 1s;
}
.obsah {
    overflow: hidden;
    height: 0;
    transition: all 1s;
    opacity: 0;
}
.obal-open .nadpis {
    height: 0;
    opacity: 0;
}
.obal-open .obsah {
    height: 15em;
    opacity: 1;
}

JavaScript

$( ".obal" ).click(function() {
  $(this).toggleClass('obal-open');
});