JSFiddle - React, Tailwind, and code Playground
HTML
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ipsum velit, placerat eu blandit nec, malesuada eget leo. Vestibulum a odio at odio euismod ultricies. Proin vitae dui id mauris eleifend dignissim eget ac arcu.</div>
<div class="shrink">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ipsum velit, placerat eu blandit nec, malesuada eget leo. Vestibulum a odio at odio euismod ultricies. Proin vitae dui id mauris eleifend dignissim eget ac arcu.</div>
CSS
div {
height:150px;
width:150px;
border:1px solid black;
float:left;
}
JavaScript
$(".shrink").each(function(){
var outer=$(this),fontSize=parseInt(outer.css('font-size'),10),
wrapper=$("<div style='height:auto;width:auto;border:0;'/>");
wrapper=outer.wrapInner(wrapper).children(":first");
while(outer.height()<wrapper.height() && fontSize>0) {
fontSize-=0.5;
wrapper.css("font-size",fontSize+"px");
}
outer.css("font-size",fontSize+"px");
wrapper.contents().unwrap();
});