JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<h1>Validator</h1>

<section class="profile">

  <div class="profile__box">
    <div class="profile__box-content">
    
    <ul class="vertical-center">
      <li>
        <span>
          <!-- LABEL -->
          <span class="profile__data-label">
            Название поля
          </span>
        </span>
      </li>
      <li>
        <span>
          <!-- DATA VALUE -->
          <div class="profile__data-field">

            <div class="profile__data-input">
              <input type="text" name="fieldName" value="example@site.com">
              <span class="profile__data-validator-msg">
                Ошибка валидации в несколько строчек и еще по всякому
              </span>
            </div>
            <div class="profile__data-control">
              <button class="profile__data-control-save">
                <i class="fa fa-check" aria-hidden="true"></i>
              </button>
            </div>
          </div>

          <div class="profile__data-text">
            <ul class="vertical-center">
              <li><span>
                <div class="profile__data-value">
              example@site.com
              <span class="profile__data-status profile__data-status--success">
                <i class="fa fa-check" aria-hidden="true"></i>
              </span>
            </div>
              </span></li>
              <li><span>
                <div class="profile__data-edit">
                  <button>
                    <i class="fa fa-pencil" aria-hidden="true"></i>
                  </button>
                  <button>
                    <i class="fa fa-trash-o" aria-hidden="true"></i>
                  </button>
                </div>
              </span></li>
            </ul>
            
            
          </div>
        </span>
      </li>
      <li>
        <span>
          <!-- OPTIONS -->
          <div...

SCSS

$ff: BlinkMacSystemFont,
-apple-system,
"Segoe UI",
"Roboto",
"Oxygen",
"Ubuntu",
"Cantarell",
"Fira Sans",
"Droid Sans",
"Helvetica Neue",
"Helvetica",
"Arial",
sans-serif;
$text-muted: rgba(42, 42, 42, .5);
$input-bgc: rgb(241, 243, 250);
$input-border-focus: rgb(90, 146, 246);
$error-bg: rgb(255, 230, 230);
$error-color: rgb(220, 41, 41);
$btn-bgc: $input-bgc;
$success-bgc: rgb(229, 246, 231);
$success-color: rgb(129, 212, 137);

$btn-bgc: $input-bgc;
$btn-hover-bgc: rgb(223, 235, 255);

$msg-bgc: rgb(223, 235, 255);
$msg-color: rgb(34, 53, 107);

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-family: $ff;
  font-size: 14px;
}

input,
select,
textarea,
button {
  font-size: 14px;
  font-family: $ff;
}

.profile {
  
  &__box {
    background-color: #fff;
    width: 870px;
  }
  &__box-content {
    padding: 20px 30px;
    &:after {
      display: table;
      content: '';
      clear: both;
    }
  }
  &__data-label {
    color: $text-muted;
    width: 130px;
    margin-right: 10px;
    float: left;
    line-height: 38px;
  }
  &__data-field {
    width: 330px;
    float: left;
  }
  &__data-input {
    width: 260px;
    position: relative;
    float: left;
    input {
      display: inline-block;
      border: none;
      background-color: $input-bgc;
      border: 1px solid $input-bgc;
      outline: none;
      padding: 10px 15px;
      width: 100%;
      &:focus {
        border: 1px solid $input-border-focus;
        background-color: #fff;
      }
    }
  }
  &__data-validator-msg {
    max-width: 250px;
    min-width: 150px;
    background-color: $error-bg;
    padding: 10px;
    font-size: 12px;
    color: $error-color;
    position: absolute;
    top: 50%;
    display: block;

    transform: translateY(-50%);
    left: 280px;
    z-index: 100;
    &:before {
      content: "";
      position: absolute;
      border: 14px solid transparent;
      border-right: 7px solid $error-bg;
     ...

JavaScript

'use strict';