پیش‌نمایش زنده
کد HTML
<div class="like-dislike-container">
  <div class="tool-box">
    <button class="btn-close">×</button>
  </div>
  <p class="text-content">What did you think<br />of this post?</p>
  <div class="icons-box">
    <div class="icons">
      <label class="btn-label" for="like-checkbox">
        <span class="like-text-content">123</span>
        <input class="input-box" id="like-checkbox" type="checkbox" />
        <svg
          class="svgs"
          id="icon-like-solid"
          xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 512 512"
        >
          <path
            d="M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"
          ></path>
        </svg>
        <svg
          class="svgs"
          id="icon-like-regular"
          xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 512 512"
        >
          <path
            d="M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.1s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16H286.5c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8H384c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H32z"
          ></path>
        </svg>
        <div class="fireworks">
          <div class="checked-like-fx"></div>
        </div>
      </label>
    </div>
    <div class="icons">
      <label class="btn-label" for="dislike-checkbox">
        <input class="input-box" id="dislike-checkbox" type="checkbox" />
        <div class="fireworks">
          <div class="checked-dislike-fx"></div>
        </div>
        <svg
          class="svgs"
          id="icon-dislike-solid"
          xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 512 512"
        >
          <path
            d="M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"
          ></path>
        </svg>
        <svg
          class="svgs"
          id="icon-dislike-regular"
          xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 512 512"
        >
          <path
            d="M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.1s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16H286.5c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8H384c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H32z"
          ></path>
        </svg>
        <span class="dislike-text-content">4</span>
      </label>
    </div>
  </div>
</div>
کد CSS
.like-dislike-container {
  --dark-grey: #353535;
  --middle-grey: #767676;
  --lightest-grey: #e5e7eb;
  --shadow: 0 5px 15px 0 #00000026;
  --shadow-active: 0 5px 5px 0 #00000026;
  --border-radius-main: 10px;
  --border-radius-icon: 50px;
  position: relative;
  display: flex;
  text-align: center;
  flex-direction: column;
  align-items: center;
  cursor: default;
  color: var(--dark-grey);
  opacity: 0.9;
  margin: auto;
  padding: 1.5rem;
  font-weight: 600;
  background: var(--lightest-grey);
  max-width: max-content;
  border-radius: var(--border-radius-main);
  transition: 0.2s ease all;
  box-shadow:
    -10px -10px 20px white,
    10px 10px 20px rgb(153, 161, 175),
    inset -10px -10px 20px rgb(209, 213, 220);
}

.like-dislike-container:hover {
  box-shadow:
    -5px -5px 10px white,
    5px 5px 10px rgb(153, 161, 175),
    inset -5px -5px 10px rgb(209, 213, 220);
}

.like-dislike-container .tool-box {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  top: 0;
  right: 0;
  border-radius: var(--border-radius-main);
}

.like-dislike-container .btn-close {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 0.8rem;
  height: 0.8rem;
  color: transparent;
  font-size: 0;
  cursor: pointer;
  background-color: #ff000080;
  border: none;
  border-radius: var(--border-radius-main);
  transition: 0.2s ease all;
}

.like-dislike-container .btn-close:hover {
  width: 1rem;
  height: 1rem;
  font-size: 1rem;
  color: #ffffff;
  background-color: #ff0000cc;
  box-shadow: var(--shadow-active);
}

.like-dislike-container .btn-close:active {
  width: 0.9rem;
  height: 0.9rem;
  font-size: 0.9rem;
  color: #ffffffde;
  --shadow-btn-close: 0 3px 3px 0 #00000026;
  box-shadow: var(--shadow-btn-close);
}

.like-dislike-container .text-content {
  margin-bottom: 1rem;
  font-size: 18px;
  line-height: 1.6;
  cursor: default;
}

.like-dislike-container .icons-box {
  display: flex;
}

.like-dislike-container .icons {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0.6;
  margin: 0 0.5rem;
  cursor: pointer;
  user-select: none;
  border: 1px solid var(--middle-grey);
  border-radius: var(--border-radius-icon);
  transition: 0.2s ease all;
  box-shadow:
    -5px -5px 10px white,
    5px 5px 10px rgb(153, 161, 175),
    inset -5px -5px 10px rgb(209, 213, 220);
}

.like-dislike-container .icons:hover {
  opacity: 0.9;
}

.like-dislike-container .icons:active {
  opacity: 0.9;
}

.like-dislike-container .icons .btn-label {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 0.5rem;
  cursor: pointer;
  position: relative;
}

.like-dislike-container .like-text-content {
  border-right: 0.1rem solid var(--dark-grey);
  padding: 0 0.6rem 0 0.5rem;
  pointer-events: none;
}

.like-dislike-container .dislike-text-content {
  border-left: 0.1rem solid var(--dark-grey);
  padding: 0 0.5rem 0 0.6rem;
  pointer-events: none;
}

.like-dislike-container .icons .svgs {
  width: 1.3rem;
  fill: #000000;
  box-sizing: content-box;
  padding: 10px 10px;
  transition: 0.2s ease all;
}

/* Hide the default checkbox */
.like-dislike-container .icons .input-box {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.like-dislike-container .icons #icon-like-regular {
  display: block;
}

.like-dislike-container .icons #icon-like-solid {
  display: none;
}

.like-dislike-container .icons:hover :is(#icon-like-solid, #icon-like-regular) {
  animation: rotate-icon-like 0.7s ease-in-out both;
}

.like-dislike-container .icons #like-checkbox:checked ~ #icon-like-regular {
  display: none;
  animation: checked-icon-like 0.5s;
}

.like-dislike-container .icons #like-checkbox:checked ~ #icon-like-solid {
  display: block;
  animation: checked-icon-like 0.5s;
}

.like-dislike-container .icons #icon-dislike-regular {
  display: block;
  transform: rotate(180deg);
}

.like-dislike-container .icons #icon-dislike-solid {
  display: none;
  transform: rotate(180deg);
}

.like-dislike-container
  .icons:hover
  :is(#icon-dislike-solid, #icon-dislike-regular) {
  animation: rotate-icon-dislike 0.7s ease-in-out both;
}

.like-dislike-container
  .icons
  #dislike-checkbox:checked
  ~ #icon-dislike-regular {
  display: none;
  animation: checked-icon-dislike 0.5s;
}

.like-dislike-container .icons #dislike-checkbox:checked ~ #icon-dislike-solid {
  display: block;
  animation: checked-icon-dislike 0.5s;
}

.like-dislike-container .icons .fireworks {
  transform: scale(0.4);
}

.like-dislike-container
  .icons
  #like-checkbox:checked
  ~ .fireworks
  > .checked-like-fx {
  position: absolute;
  width: 10px;
  height: 10px;
  right: 40px;
  border-radius: 50%;
  box-shadow:
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff;
  animation:
    1s fireworks-bang ease-out forwards,
    1s fireworks-gravity ease-in forwards,
    5s fireworks-position linear forwards;
  animation-duration: 1.25s, 1.25s, 6.25s;
}

.like-dislike-container
  .icons
  #dislike-checkbox:checked
  ~ .fireworks
  > .checked-dislike-fx {
  position: absolute;
  width: 10px;
  height: 10px;
  left: 40px;
  border-radius: 50%;
  box-shadow:
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff,
    0 0 #fff;
  animation:
    1s fireworks-bang ease-out forwards,
    1s fireworks-gravity ease-in forwards,
    5s fireworks-position linear forwards;
  animation-duration: 1.25s, 1.25s, 6.25s;
}

/* Shake Animation */
@keyframes rotate-icon-like {
  0% {
    transform: rotate(0deg) translate3d(0, 0, 0);
  }

  25% {
    transform: rotate(3deg) translate3d(0, 0, 0);
  }

  50% {
    transform: rotate(-3deg) translate3d(0, 0, 0);
  }

  75% {
    transform: rotate(1deg) translate3d(0, 0, 0);
  }

  100% {
    transform: rotate(0deg) translate3d(0, 0, 0);
  }
}

@keyframes rotate-icon-dislike {
  0% {
    transform: rotate(180deg) translate3d(0, 0, 0);
  }

  25% {
    transform: rotate(183deg) translate3d(0, 0, 0);
  }

  50% {
    transform: rotate(177deg) translate3d(0, 0, 0);
  }

  75% {
    transform: rotate(181deg) translate3d(0, 0, 0);
  }

  100% {
    transform: rotate(180deg) translate3d(0, 0, 0);
  }
}

/* Checked Animation */
@keyframes checked-icon-like {
  0% {
    transform: scale(0);
    opacity: 0;
  }

  50% {
    transform: scale(1.2) rotate(-10deg);
  }
}

@keyframes checked-icon-dislike {
  0% {
    transform: scale(0) rotate(180deg);
    opacity: 0;
  }

  50% {
    transform: scale(1.2) rotate(170deg);
  }
}

/* Fireworks Animation */
@keyframes fireworks-position {
  0%,
  19.9% {
    margin-top: 10%;
    margin-left: 40%;
  }

  20%,
  39.9% {
    margin-top: 40%;
    margin-left: 30%;
  }

  40%,
  59.9% {
    margin-top: 20%;
    margin-left: 70%;
  }

  60%,
  79.9% {
    margin-top: 30%;
    margin-left: 20%;
  }

  80%,
  99.9% {
    margin-top: 30%;
    margin-left: 80%;
  }
}

@keyframes fireworks-gravity {
  to {
    transform: translateY(200px);
    opacity: 0;
  }
}

@keyframes fireworks-bang {
  to {
    box-shadow:
      114px -107.3333333333px #8800ff,
      212px -166.3333333333px #a600ff,
      197px -6.3333333333px #ff006a,
      179px -329.3333333333px #3300ff,
      -167px -262.3333333333px #ff0062,
      233px 65.6666666667px #ff008c,
      81px 42.6666666667px #0051ff,
      -13px 54.6666666667px #00ff2b,
      -60px -183.3333333333px #0900ff,
      127px -259.3333333333px #ff00e6,
      117px -122.3333333333px #00b7ff,
      95px 20.6666666667px #ff8000,
      115px 1.6666666667px #0004ff,
      -160px -328.3333333333px #00ff40,
      69px -242.3333333333px #000dff,
      -208px -230.3333333333px #ff0400,
      30px -15.3333333333px #e6ff00,
      235px -15.3333333333px #fb00ff,
      80px -232.3333333333px #d5ff00,
      175px -173.3333333333px #00ff3c,
      -187px -176.3333333333px #aaff00,
      4px 26.6666666667px #ff6f00,
      227px -106.3333333333px #ff0099,
      119px 17.6666666667px #00ffd5,
      -102px 4.6666666667px #ff0088,
      -16px -4.3333333333px #00fff7,
      -201px -310.3333333333px #00ffdd,
      64px -181.3333333333px #f700ff,
      -234px -15.3333333333px #00fffb,
      -184px -263.3333333333px #aa00ff,
      96px -303.3333333333px #0037ff,
      -139px 10.6666666667px #0026ff,
      25px -205.3333333333px #00ff2b,
      -129px -322.3333333333px #40ff00,
      -235px -187.3333333333px #26ff00,
      -136px -237.3333333333px #0091ff,
      -82px -321.3333333333px #6a00ff,
      7px -267.3333333333px #ff00c8,
      -155px 30.6666666667px #0059ff,
      -85px -73.3333333333px #6a00ff,
      60px -199.3333333333px #55ff00,
      -9px -289.3333333333px #00ffaa,
      -208px -167.3333333333px #00ff80,
      -13px -299.3333333333px #ff0004,
      179px -164.3333333333px #ff0044,
      -112px 12.6666666667px #0051ff,
      -209px -125.3333333333px #ff00bb,
      14px -101.3333333333px #00ff95,
      -184px -292.3333333333px #ff0099,
      -26px -168.3333333333px #09ff00,
      129px -67.3333333333px #0084ff,
      -17px -23.3333333333px #0059ff,
      129px 34.6666666667px #7300ff,
      35px -24.3333333333px #ffd900,
      -12px -297.3333333333px #ff8400,
      129px -156.3333333333px #0dff00,
      157px -29.3333333333px #1a00ff,
      -221px 6.6666666667px #ff0062,
      0px -311.3333333333px #ff006a,
      155px 50.6666666667px #00ffaa,
      -71px -318.3333333333px #0073ff;
  }
}
نوع: card
تاریخ ایجاد: 2026/06/06
آخرین بروزرسانی: 2026/06/06