JSFiddle - React, Tailwind, and code Playground

HTML

<div class="widget">
    <div class="widget-body">Инвестиционный продукт стабилизирует принцип восприятия, признавая определенные рыночные тенденции. Рыночная ситуация, вопреки мнению П.Друкера, по-прежнему востребована. Искусство медиапланирования программирует системный анализ, учитывая результат предыдущих медиа-кампаний. Презентационный материал, как принято считать, стабилизирует экспериментальный бизнес-план, повышая конкуренцию. Селекция бренда достижимо в разумные сроки. Спонсорство настроено позитивно.</div>
    <div class="widget-header">Header
    </div>
    <div class="widget-footer">
        Footer
    </div>
</div>

CSS

body {
    overflow-y: auto;
    height: 1000px;
}
.widget {
    margin: 20px auto;
    width: 300px;
    border: solid 1px #f0f0f0;
    padding: 40px 0 30px;
    position: relative;
    min-height: 10px;
    overflow:hidden;
}
.widget-body {
    background: #fbfbfc;
    height: 100%;
    overflow:auto;
}
.widget-header {
    background: #f6f6f6;
    border-bottom: solid 1px #f0f0f0;
    height: 40px;
    position: absolute;
    top: 0;
    width: 100%;
}
.widget-footer {
    background: #f6f6f6;
    border-top: solid 1px #f0f0f0;
    height: 30px;
    position: absolute;
    bottom: 0;
    width: 100%;    
}


/*resizable, not important*/
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }

JavaScript

$(function () {
    $('div.widget').resizable({
        handles: 's'
    });
});