JSFiddle - React, Tailwind, and code Playground

HTML

<p>Edit the text below and then hit "Enter" or "ESC" to lose focus.</p>
<div class="editable" contenteditable="true">Text</div>

CSS

html, body {
    font: 14px arial, sans-serif;
    padding: 2em;
}

p {
    margin: 0 0 2em 0;
}

div {
    background: #eee;
    box-sizing: border-box;
    border: 1px solid transparent;
    opacity: .55;
    padding: 5px;
    width: 200px;
    
    transition: all .5s ease;
}

div:hover {
    border: 1px solid #ddd;
    opacity: 1;
}

div.focus {
    box-shadow: 0 0 10px rgba(26, 154, 245, .5);
    border: 1px solid #1a9af5;  
    outline: 0px solid transparent;
}

JavaScript

$(".editable").bind("keydown", function(event) {
    var target = $(event.target);
    c = event.keyCode;
    
    if(c === 13 || c === 27)
        $('<div contenteditable="true"></div>').appendTo('body').focus().remove();
})

$("[contenteditable='true']").on("focus", function() {
    $(".editable").toggleClass("focus");
})

$("[contenteditable='true']").on("blur", function() {
    $(".editable").toggleClass("focus");
})