JSFiddle - React, Tailwind, and code Playground

by social_quotient

HTML

<div class="box">
    <div class="ellipsis">SUBSTANTIAL IMPROVEMENT/SUBSTANTIAL DAMAGE
</div>
</div>

CSS

.box {
    width: 200px;
}

.ellipsis:before {
    float: right;
    content: attr(data-tail);
}

.ellipsis {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

JavaScript

var NUM_CHARS = 4;
var ellipsisDivs = document.querySelectorAll(".ellipsis");
for (var i = 0; i < ellipsisDivs.length; ++i){
    var e = ellipsisDivs[i];
    if (e.offsetWidth < e.scrollWidth){
        var text = e.textContent;
        e.dataset.tail = text.slice(text.length - NUM_CHARS);
    }
}