JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class='items'>
    <li class='item'>
        <div class='header'>Item A Header</div>
        <div class='content'>Item A Content This content is
            <br> really
            <br> really
            <br> really
            <br> really
            <br> long.
        </div>
    </li>
    <li class='item'>
        <div class='header'>Item B Header</div>
        <div class='content'>
            Item B Content This content is
            <br> short.
        </div>
    </li>
</ul>

CSS

*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    height: 100%;
    margin: 0;
}

ul,
li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.items {
    display: flex;
    flex-direction: column;
    height: 100%;
    flex: 1;
}

.item {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: flex-grow 1s;
    flex: 1 0 48px;
    max-height: min-content;
}

.header {
    display: flex;
    height: 48px;
    padding: 16px;
    align-items: center;
    flex-shrink: 0;
}

.isCollapsed {
    flex-grow: .001;
}

JavaScript

$('.header').click(function() {
    $(this).parent().toggleClass('isCollapsed');
});