JSFiddle - React, Tailwind, and code Playground
HTML
<div class="main">
<textarea cols="60" rows="12">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas, asperiores quidem ab neque molestias voluptatum amet possimus dolore rem enim error, eaque pariatur adipisci praesentium consequuntur! Rerum maxime eveniet ipsam est voluptas, facere sequi cupiditate dolor exercitationem aspernatur distinctio in animi beatae earum! Ducimus provident ipsa vero in natus unde consequuntur ut, sapiente, reiciendis cumque illum exercitationem inventore asperiores enim architecto! Eveniet unde ipsa laudantium facilis placeat obcaecati quam magnam quibusdam.
</textarea>
</div>
<br>
<button onclick="bold()">Bold</button>
JavaScript
bold = function() {
var selection = window.getSelection().getRangeAt(0);
var selectedText = selection.extractContents();
var span = document.createElement("b");
span.appendChild(selectedText);
selection.insertNode(span);
}