JSFiddle - React, Tailwind, and code Playground

by michapixel

HTML

<span contenteditable>Foo Bar</span>

SASS

::root {
	 --active: #275EFE;
	 --active-inner: #fff;
	 --focus: 2px rgba(39, 94, 254, .3);
	 --border: #BBC1E1;
	 --border-hover: #275EFE;
	 --background: #fff;
	 --disabled: #F6F8FF;
	 --disabled-inner: #E1E6F9;
}
span[contenteditable] {
 -webkit-appearance: none;
 -moz-appearance: none;
 height: 21px;
 outline: none;
 display: inline-block;
 vertical-align: top;
 position: relative;
 margin: 0;
 
 border: 1px solid var(--bc, var(--border));
 background: var(--b, var(--background));
 transition: background .3s, border-color .3s, box-shadow .2s;
 &:after {
	content: '';
	display: block;
	left: 0;
	top: 0;
	position: absolute;
	transition: transform var(--d-t, .3s) var(--d-t-e, ease), opacity var(--d-o, .2s);
 }
 &:disabled {
	--b: var(--disabled);
	cursor: not-allowed;
	opacity: .9;
	&:checked {
	  --b: var(--disabled-inner);
	  --bc: var(--border);
	}
	& + label {
	  cursor: not-allowed;
	}
 }
 &:hover {
	&:not(:checked) {
	  &:not(:disabled) {
		 --bc: var(--border-hover);
	  }
	}
 }
 &:focus {
	box-shadow: 0 0 0 var(--focus);
 }
}




html {
  box-sizing: border-box;
}

* {
  box-sizing: inherit;
  &:before,
  &:after {
    box-sizing: inherit;
  }
}


span[contenteditable] {
  padding: 0.2em 0.6em 0.3em;
  width: auto;
}