<div>
  <input type="password" />
  <svg class="close" viewBox="0 0 100 100">
    <path id="top-eye-part" d="M10,50 Q50,-10 90,50" fill="none" stroke-width="5"></path>
    <path id="bottom-eye-part" d="M10,50 Q50,110 90,50" fill="none" stroke-width="5"></path>
    <circle cx="50" cy="50" r="10" fill="black"></circle>
  </svg>
</div>
:root {
  --primary: #6441a5;
  --white: #ffffff;
  --greyLight-1: #e4ebf5;
  --greyLight-2: #c8d0e7;
  --shadow: 0.3rem 0.3rem 0.6rem var(--greyLight-2),
    -0.2rem -0.2rem 0.5rem var(--white);
  --inner-shadow: inset 0.2rem 0.2rem 0.5rem var(--greyLight-2),
    inset -0.2rem -0.2rem 0.5rem var(--white);
}

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
body {
  background: var(--greyLight-1);
}
div {
  display: flex;
  align-items: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
input {
  width: 60vmin;
  height: 15vmin;
  border: none;
  border-radius: 1rem;
  outline: none;
  font-size: 7.5vmin;
  font-weight: bold;
  padding: 0 4vmin;
  box-shadow: var(--inner-shadow);
  background: var(--greyLight-1);
  color: var(--primary);
  caret-color: var(--primary);
}
svg {
  width: 12.5vmin;
  height: 12.5vmin;
  border-radius: 0.5rem;
  box-shadow: var(--shadow);
  margin: 0 4vmin;
  cursor: pointer;
}
svg path {
  transition: all 0.25s 0.25s ease, all 0.25s ease;
  transform-origin: center center;
  stroke: var(--primary);
}
svg circle {
  transition: all 0.25s ease, all 0.25s 0.25s ease;
  transform-origin: center center;
  fill: var(--primary);
}
svg.close circle {
  transition: all 0.25s 0.25s ease, all 0.25s ease;
  transform: scale(0);
}
svg.close #top-eye-part {
  transition: all 0.25s ease, all 0.25s 0.25s ease;
  d: path("M10,50 Q50,110 90,50");
}
const svg = document.querySelector("svg");
const input = document.querySelector("input");
svg.addEventListener("click", function () {
  this.classList.toggle("close");
  setTimeout(() => {
    input.type = input.type === "password" ? "text" : "password";
  }, 125);
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.