JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="menu-container">
  <div class="menu">
    <ul>
      <li><a href="#">Home</a></li>
      <li><a href="#">Product</a>
        <ul>
          <li><a href="#">Product</a>
            <ul>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
            </ul>
          </li>
          <li><a href="#">Product</a>
            <ul>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
            </ul>
          </li>
          <li><a href="#">Product</a>
            <ul>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
            </ul>
          </li>
          <li><a href="#">Product</a>
            <ul>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
              <li><a href="#">ほにゃらら</a></li>
              <li><a href="#">ほげほげ</a></li>
            </ul>
          </li>
        </ul>
      </li>
      <li><a href="#">Blog</a> </li>
      <li><a href="#">Contact</a></li>
    </ul>
  </div>
</div>

CSS

* {
  box-sizing: border-box;
  font-family: '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック体', YuGothic, 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', 'Noto Sans Japanese', 'メイリオ', 'Meiryo', Osaka, 'MS Pゴシック', 'MS PGothic', sans-serif;
}

a {
  color: #333;
}

.menu-container {
  width: 100%;
  margin: 0 auto;
  background: #fff;
}

.menu-mobile {
  display: none;
  padding: 20px;
}

.menu-mobile:after {
  content: "\f103";
  font-family: "FontAwesome";
  font-size: 2.5rem;
  padding: 0;
  float: right;
  position: relative;
  top: 50%;
  transform: translateY(-25%);
}

.menu-dropdown-icon:before {
  content: "\f103";
  font-family: "FontAwesome";
  display: none;
  cursor: pointer;
  float: right;
  padding: 1.5em 2em;
  background: #fff;
  color: #333;
}

.menu > ul {
  margin: 0 auto;
  width: 100%;
  list-style: none;
  padding: 0;
  position: relative;
  text-align: center;
  /* IF .menu position=relative -> ul = container width, ELSE ul = 100% width */
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.menu > ul:before,
.menu > ul:after {
  content: "";
  display: table;
}

.menu > ul:after {
  clear: both;
}

.menu > ul > li {
  display: inline-block;
  background: #fff;
  padding: 0;
  margin: 0;
}

.menu > ul > li a {
  text-decoration: none;
  padding: .5em 3em;
  display: block;
}

.menu > ul > li:hover {
  background: #f0f0f0;
  color: #red;
}

.menu > ul > li > ul {
  display: none;
  width: 100%;
  background: #fff;
  padding: 20px;
  position: absolute;
  z-index: 99;
  left: 0;
  margin: 0;
  list-style: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.menu > ul > li > ul:before,
.menu > ul> li > ul:after {
  content: "";
  display: table;
}

.menu > ul > li > ul:after {
  clear: both;
}

.menu > ul > li > ul > li {
  margin: 0;
  padding-bottom: 0;
  list-style: none;
  width: 25%;
  background: none;
  float: left;
}

.menu > ul > li > ul > li a {
  color:...

JavaScript

$(document).ready(function() {

  "use strict";

  $('.menu > ul > li:has( > ul)').addClass('menu-dropdown-icon');
  $('.menu > ul > li > ul:not(:has(ul))').addClass('normal-sub');
  $(".menu > ul").before("<a href=\"#\" class=\"menu-mobile\">menu</a>");
  $(".menu > ul > li").hover(function(e) {
    if ($(window).width() > 943) {
      $(this).children("ul").stop(true, false).fadeToggle(150);
      e.preventDefault();
    }
  });
  $(".menu > ul > li").click(function() {
    if ($(window).width() <= 943) {
      $(this).children("ul").fadeToggle(150);
    }
  });
  $(".menu-mobile").click(function(e) {
    $(".menu > ul").toggleClass('show-on-mobile');
    e.preventDefault();
  });
});