Ying & Yang Cats with hover effect using HTML and CSS

Share your love

In the whimsical world of web design, combining creativity and interactivity can lead to delightful surprises. Picture this: a pair of adorable yin and yang cats gracefully floating on your webpage, their tails intertwined in a mesmerizing dance.

In this blog post, we embark on a charming journey to create yin and yang cats with a captivating hover effect using only HTML and CSS. By tapping into the magic of these core web technologies, we’ll unlock the secrets to infusing your website with charm and whimsy.

I would recommend you don’t just copy and paste the code, just look at the code and type by understanding it.

Demo

See the Pen Yin & yang cats by Mikael Ainalem (@ainalem) on CodePen.

HTML Code 

Starter Template

<!doctype html>
<html lang="en">

<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSS -->
    <link rel="stylesheet" href="style.css">

    <title>Ying & Yang Cats with hover effect using HTML and CSS - Coding Torque</title>
</head>

<body>
    <!-- Further code here -->

    <script src="script.js"></script>
</body>

</html>

Paste the below code in your <body> tag.

<div class="box">
  <div class="activator white"></div>
  <div class="activator black"></div>
  <div class="drop"></div>
  <svg class="cats" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300" height="300" width="300">
    <path d="M198.63 43.54c-8.535-4.018 3.727 22.035-12.55 45.9-20.702 30.36-48.977 21.085-41.787 33.538 6.11 10.582 14.963 5.18 22.04 1.094 14.174-8.184 27.137-10.15 28.113 3.987 1.042 15.096-20.733 19.503-38.7 21.456-14.98 1.746-26.072.598-39.257 7.506-7.503 3.93-12.945 8.577-11.272 16.88 1.543 7.663 6.38 9.685 14.245 8.033 14.377-3.02 29.986-17.01 35.77-5.653 5.19 10.192-17.612 11.026-28.038 18.733-13.19 9.75-18.697 22.952-23.197 36.583-1.806 5.473-6.094 20.647-2.37 25.047 11.313 2.326 21.947-8.24 31.515-4.824 9.426 3.366 18.753 8.822 24.982 16.656 6.99 8.79.88 29.34 11.896 31.524 91.172-57.992 104.09-103.495 104.09-139.778 0-46.43-24.75-92.793-75.48-116.68z" fill="#f2f2f2" />
    <path d="M101.38 256.46c8.535 4.018-3.726-22.035 12.55-45.9 20.703-30.36 48.978-21.085 41.788-33.538-6.11-10.582-14.963-5.18-22.04-1.094-14.174 8.184-27.138 10.148-28.113-3.987-1.042-15.096 20.732-19.503 38.7-21.456 14.978-1.746 26.072-.598 39.257-7.506 7.502-3.93 12.943-8.578 11.27-16.88-1.543-7.663-6.38-9.685-14.244-8.033-14.378 3.02-29.987 17.01-35.77 5.653-5.19-10.192 17.612-11.026 28.037-18.733 13.19-9.75 18.697-22.952 23.197-36.583 1.807-5.473 6.094-20.647 2.372-25.047-11.314-2.326-21.948 8.24-31.517 4.824-9.425-3.366-18.752-8.822-24.98-16.656-6.992-8.79-.88-29.34-11.897-31.524C38.82 57.99 25.9 103.495 25.9 139.778c0 46.43 24.75 92.793 75.48 116.68z" fill="#1a1a1a" />
    <path d="M110.677 57.635s-1.826 3.912 2.206 7.82c4.032 3.91 7.86.79 7.86.79M143.635 85.076s-1.826 3.912 2.206 7.82c4.032 3.91 7.86.79 7.86.79" fill="none" stroke="#ececec" stroke-width="6.774" stroke-linecap="round" />
    <path d="M104.733 80.926s3.077 8.615 6.49 10.237c3.416 1.623 10.488-1.248 10.488-1.248l3.996-4.744 5.243-.25-6.742-3.494 1.498 3.745-4.245 5.494s.47 8.58 2.997 10.736c2.53 2.157 8.74 1 8.74 1" fill="none" stroke="#ececec" stroke-width="6.774" stroke-linecap="round" stroke-linejoin="round" />
    <g stroke="#1a1a1a" fill="none" stroke-width="6" stroke-linecap="round">
      <path d="M189.063 252.215s1.826-3.912-2.206-7.82c-4.032-3.91-7.86-.79-7.86-.79M156.105 224.773s1.826-3.91-2.206-7.82c-4.033-3.91-7.862-.79-7.862-.79" stroke-width="6.77406" />
      <path d="M195.007 228.923s-3.077-8.614-6.492-10.236c-3.414-1.623-10.486 1.248-10.486 1.248l-3.996 4.744-5.243.25 6.742 3.494-1.498-3.745 4.245-5.494s-.47-8.58-2.997-10.736c-2.53-2.157-8.74-1-8.74-1" stroke-linejoin="round" stroke-width="6.77406" />
    </g>
  </svg>
</div>
<div class="text">Yin & yang cats</div>

CSS Code 

Create a file style.css and paste the code below.

body {
  align-items: center;
  background-color: #f9abab;
  display: flex;
  flex-direction: column;
  font-family: sans-serif;
  font-weight: 900;
  height: 100vh;
  justify-content: center;
  margin: 0;
}

.box {
  --box-width: 300px;
  /* background-color: #f9f; */
  border-radius: 50%;
  /* Chromium work-around */
  clip-path: circle(150px at 150px);
  height: var(--box-width);
  overflow: hidden;
  position: relative;
  width: var(--box-width);
}

.activator {
  height: 100%;
  position: absolute;
  width: 100%;
}

.activator.white {
  clip-path: polygon(
    35.66% 85.67%,
    44.99% 83.13%,
    54.08% 90.2%,
    55.1% 101.27%,
    64.89% 94.58%,
    74.59% 86.97%,
    82.83% 78.07%,
    88.86% 67.82%,
    91.48% 56.61%,
    90.3% 42.78%,
    86.06% 31.29%,
    77.45% 21.44%,
    67.34% 14.67%
  );
}

.activator.black {
  /* background-color: red; */
  clip-path: polygon(
    35% 86%,
    23% 79.33%,
    15.86% 70.67%,
    11.63% 61.78%,
    8.63% 52.71%,
    8.45% 43.74%,
    10.78% 32.35%,
    16.65% 22.15%,
    26.05% 12.86%,
    34.44% 6.24%,
    44.4% 0%,
    47.15% 11%,
    56.69% 17.26%,
    66.57% 14.04%
  );
}

.activator:hover {
  /* Safari work-around */
  clip-path: circle(150px at 150px);
  cursor: alias;
  z-index: 1;
}

.drop {
  background-color: #ffffff00;
  height: 100%;
  pointer-events: none;
  position: absolute;
  transition: background-color 400ms cubic-bezier(0.4, 0, 0.2, 1);
  width: 100%;
}

.cats {
  pointer-events: none;
  position: absolute;
  transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1);
}

.activator.black:hover ~ .drop {
  background-color: #f2f2f2;
}

.activator.black:hover ~ .cats {
  transform: translateX(45px) translateY(95px) scale(1.4) rotate(0deg);
}

.activator.white:hover ~ .drop {
  background-color: #1a1a1a;
}

.activator.white:hover ~ .cats {
  transform: translateX(45px) translateY(95px) scale(1.4) rotate(180deg);
}

.text {
  font-size: 32px;
  font-weight: 600;
  margin-top: 32px;
}

Final Output

Written by: Piyush Patil

Code Credits: https://codepen.io/ainalem/full/VwbyjLQ

If you found any mistakes or have any doubts please feel free to Contact Us

Hope you find this post helpful💖

Share your love