JSFiddle - React, Tailwind, and code Playground

HTML

<div class="container">
  <h1>Groceries</h1>
  <ul>
  <li><div></div><p>carrot</p></li>
  <li><div></div><p>onion</p></li>
  <li><div></div><p>tomato</p></li>
  </ul>
</div>

CSS

.container {
    width: 360px;
    margin: 0 auto;
    border: 1px solid black;
}

ul{
  list-style: none;
  padding:0;
  margin:0;
}

li{
  width: 100%;
  border: 1px solid black;
  display: flex;
}

li div{
  background-color:red;
  width:0;
  transition: 0.1s linear;
  display:inline-block;
}

li:hover div{
  width: 40px;
}

.completed {
    color: grey;
    text-decoration: line-through;
}

JavaScript

var isMobile = false;
var isClicked = 0;

$('ul').on('click', 'li', function () {

    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera 					Mini/i.test(navigator.userAgent) ) {
       	  isMobile = true;
        	isClicked++;     
       }
      
    if(!isMobile || isClicked > 1){
        $(this).toggleClass('completed');
        isClicked = 0;   
    }
});

$('ul').on('click', 'div', function (event) {
    $(this).parent().fadeOut(250, function () {
        $(this).remove();
    });
    
    event.stopPropagation();
});