JSFiddle - React, Tailwind, and code Playground

by Bahman ParsaManesh

HTML

<li class="dropdown">
   <a class="drop" href="#">
      <span>Dropdown</span>
      <i class="down-caret"></i>
   </a>
</li>

CSS

a {
  text-decoration: none;
}
.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown .drop {
  background-color: #3498db;
  color: #fff;
  padding: 1rem;
  border-radius: 6px;
  position: relative;
  display: inline-block;
}
.down-caret {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 5px 0 5px;
  border-color: #ffffff transparent transparent transparent;
  display: inline-block;
  margin-left: 6px;
  top: -3px;
  position: relative;
  transform: rotate(0deg);
  transition: all 0.25s ease-in;
}
.open-caret {
  transform: rotate(180deg);
  transition: all 0.25s ease-out;
}

JavaScript

$(document).ready(function(){
  $('.dropdown').click(function(e){
    $($('.dropdown').find('.down-caret').toggleClass('open-caret'));
    /* e.stopPropagation() */;
    /* $(document).click(function(){
      $('.dropdown-menu').removeClass('open');
      $('.down-caret').removeClass('open-caret');
    }); */
  });
});