<div class="absolute inset-0 flex flex-col justify-center items-center space-y-20">

  <div class="flex justify-center items-center space-x-20">
    <div class="spinningasset coin">
      <div>
        <div></div>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <em></em>
        <em></em>
        <div></div>
      </div>
    </div>

    <div class="spinningasset token">
      <div>
        <div></div>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <em></em>
        <em></em>
        <div></div>
      </div>
    </div>

    <!--
  <div class="spinningasset ticket">
    <div>
      <div></div>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <i></i>
      <em></em>
      <em></em>
      <div></div>
    </div>
  </div>
-->

    <div class="spinningasset ticket2">
      <div>
        <div></div>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <i></i>
        <em></em>
        <em></em>
        <div></div>
      </div>
    </div>
  </div>

  <div class="flex space-x-4">
    <div class="card">
      <div class="card-content p-0 flex">
        <div class="spinningasset coin is-sm">
          <div>
            <div></div>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <em></em>
            <em></em>
            <div></div>
          </div>
        </div>
        <div class="ml-2">
          12
        </div>
      </div>
    </div>
    <div class="card">
      <div class="card-content p-0 flex">
        <div class="spinningasset token is-sm">
          <div>
            <div></div>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <em></em>
            <em></em>
            <div></div>
          </div>
        </div>
        <div class="ml-2">
          8
        </div>
      </div>
    </div>
    <div class="card">
      <div class="card-content p-0 flex">
        <div class="spinningasset ticket2 is-sm">
          <div>
            <div></div>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <i></i>
            <em></em>
            <em></em>
            <div></div>
          </div>
        </div>
        <div class="ml-2">
          3
        </div>
      </div>
    </div>
  </div>

</div>
/*----------------------------*/
/* GENERAL */
/*----------------------------*/

*,
*::before,
*::after {
  box-sizing: border-box;
}

@import url("https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@300;700&display=swap");

html {
  background: #1a1b3a;
  font-size: 16px;
  font-family: "Roboto Condensed", sans-serif;
}

body {
  color: white;
}

/*----------------------------*/
/* SPINNING OBJECTS */
/*----------------------------*/

@keyframes brightness {
  0%,
  50%,
  100% {
    filter: blur(0px) brightness(120%)
      drop-shadow(0 0 2.5px rgba(255, 255, 255, 0.1))
      drop-shadow(0 0 5px rgba(255, 255, 255, 0.075))
      drop-shadow(0 0 7.5px rgba(255, 255, 255, 0.045))
      drop-shadow(0 0 10px rgba(255, 255, 255, 0.025));
  }
  25%,
  75% {
    filter: blur(1px) brightness(50%)
      drop-shadow(0 0 2.5px rgba(255, 255, 255, 0.1))
      drop-shadow(0 0 5px rgba(255, 255, 255, 0.075))
      drop-shadow(0 0 7.5px rgba(255, 255, 255, 0.045))
      drop-shadow(0 0 10px rgba(255, 255, 255, 0.025));
  }
}

@keyframes spin {
  0% {
    transform: rotateY(-180deg);
  }
  100% {
    transform: rotateY(180deg);
  }
}
.spinningasset {
  text-align: left;
  transition: all 0.4s ease-out;
  cursor: pointer;
  animation: brightness 2.5s infinite linear;
  &::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    border-radius: 8px;
    width: 11px;
    margin: auto;
    background-size: 100px 400%;
    background-position: center;
  }
  > div {
    position: relative;
    z-index: 2;
    perspective: 10000px;
    transform-style: preserve-3d;
    transform-origin: center;
    animation: spin 2.5s infinite linear;
    > * {
      width: 100%;
      height: 100%;
      position: absolute;
      backface-visibility: inherit;
      background-size: cover;
    }

    > div:first-child {
      transform: translateZ(-6px);
    }
    > div:last-child {
      transform: translateZ(6px);
      background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632752594/Marketing/202109_gloot2/Coins_side_front.svg);
    }
    em {
      filter: blur(0.5px);
      &:first-of-type {
        transform: translateZ(0px) rotateY(-6deg);
      }
      &:last-of-type {
        transform: translateZ(0px) rotateY(6deg);
      }
    }
    i {
      filter: blur(0.5px);
      &:nth-of-type(1) {
        transform: translateZ(-5px);
      }
      &:nth-of-type(2) {
        transform: translateZ(-4px);
      }
      &:nth-of-type(3) {
        transform: translateZ(-3px);
      }
      &:nth-of-type(4) {
        transform: translateZ(-2px);
      }
      &:nth-of-type(5) {
        transform: translateZ(-1px);
      }
      &:nth-of-type(6) {
        transform: translateZ(0px);
      }
      &:nth-of-type(7) {
        transform: translateZ(1px);
      }
      &:nth-of-type(8) {
        transform: translateZ(2px);
      }
      &:nth-of-type(9) {
        transform: translateZ(3px);
      }
      &:nth-of-type(10) {
        transform: translateZ(4px);
      }
      &:nth-of-type(11) {
        transform: translateZ(5px);
      }
    }
  }

  &.is-sm {
    width: 24px;
    height: 24px;
    transform: scale(0.24);
    transform-origin: left top;
    filter: none;
    &,
    > div {
    }
  }

  &.coin {
    > div {
      width: 100px;
      height: 100px;
      > div:first-child {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632752594/Marketing/202109_gloot2/Coins_side_back.svg);
      }
      > div:last-child,
      &::after,
      i,
      em {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632752594/Marketing/202109_gloot2/Coins_side_front.svg);
      }
    }
  }

  &.token {
    filter: drop-shadow(0 0 3px rgba(236, 121, 254, 0.3))
      drop-shadow(0 0 6px rgba(236, 121, 254, 0.2))
      drop-shadow(0 0 20px rgba(236, 121, 254, 0.1))
      drop-shadow(0 0 30px rgba(236, 121, 254, 0.05));
    &:hover {
      filter: drop-shadow(0 0 3px rgba(236, 121, 254, 0.8))
        drop-shadow(0 0 6px rgba(236, 121, 254, 0.6))
        drop-shadow(0 0 20px rgba(236, 121, 254, 0.4))
        drop-shadow(0 0 30px rgba(236, 121, 254, 0.2));
    }
    > div {
      width: 100px;
      height: 112px;
      > div:first-child {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632768480/Marketing/202109_gloot2/Tokens_side_back.svg);
      }
      > div:last-child,
      &::after,
      i,
      em {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632768480/Marketing/202109_gloot2/Tokens_side_front.svg);
      }
    }

    &.is-sm {
      transform: scale(0.24) translateY(-33%);
    }
  }

  &.ticket {
    transform: translate;
    filter: drop-shadow(0 0 3px rgba(250, 234, 148, 0.4))
      drop-shadow(0 0 6px rgba(250, 234, 148, 0.3))
      drop-shadow(0 0 20px rgba(250, 234, 148, 0.2))
      drop-shadow(0 0 30px rgba(250, 234, 148, 0.1));

    &:hover {
      filter: drop-shadow(0 0 3px rgba(250, 234, 148, 0.6))
        drop-shadow(0 0 6px rgba(250, 234, 148, 0.4))
        drop-shadow(0 0 20px rgba(250, 234, 148, 0.2))
        drop-shadow(0 0 30px rgba(250, 234, 148, 0.1));
    }
    > div {
      width: 150px;
      height: 80px;
      > div:first-child {
        transform: translateZ(-1px);
      }
      > div:last-child {
        transform: translateZ(1px);
      }
      i {
        display: none;
      }
      em {
        &:first-of-type {
          transform: translateZ(0px) rotateY(-1deg);
        }
        &:last-of-type {
          transform: translateZ(0px) rotateY(1deg);
        }
      }
      > div:first-child {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632816242/Marketing/202109_gloot2/ticket_side_back.svg);
      }
      > div:last-child,
      &::after,
      i,
      em {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632816242/Marketing/202109_gloot2/ticket_side_front.svg);
      }
    }
  }

  &.ticket2 {
    transform: translate;
    > div {
      width: 173px;
      height: 150px;
      > div:first-child {
        transform: translateZ(-1px);
      }
      > div:last-child {
        transform: translateZ(1px);
      }
      i {
        display: none;
      }
      em {
        &:first-of-type {
          transform: translateZ(0px) rotateY(-1deg);
        }
        &:last-of-type {
          transform: translateZ(0px) rotateY(1deg);
        }
      }
      > div:first-child {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632818517/Marketing/202109_gloot2/ticket_2_back.svg);
      }
      > div:last-child,
      &::after,
      i,
      em {
        background-image: url(https://res.cloudinary.com/gloot/image/upload/v1632818305/Marketing/202109_gloot2/ticket_2_front.svg);
      }
    }

    &.is-sm {
      width: 40px;
      transform: scale(0.24) translateY(-100%);
    }
  }
}

/*----------------------------*/
/* CARD */
/*----------------------------*/

.card {
  background: radial-gradient(
    100% 100% at 50% 5%,
    rgba(255, 255, 255, 0.05) 0%,
    rgba(255, 255, 255, 0.03) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 1rem;
  padding: 0.5rem;
  backdrop-filter: blur(4px);
  > div {
    position: relative;
    z-index: 2;
    background: #2d2d59;
    border-radius: 0.5rem;
    padding: 1rem;
    backdrop-filter: blur(8px);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05),
      0 1.5px 1.1px rgba(0, 0, 0, 0.034), 0 3.6px 2.5px rgba(0, 0, 0, 0.048),
      0 6.8px 4.8px rgba(0, 0, 0, 0.06), 0 12.1px 8.5px rgba(0, 0, 0, 0.072),
      0 22.6px 15.9px rgba(0, 0, 0, 0.086), 0 54px 38px rgba(0, 0, 0, 0.12);
  }

  &.is-alt {
    background: transparent;
    border: none;
    > .card-content {
      background: #191a2f;
    }
    &::before,
    &::after {
      content: "";
      position: absolute;
      z-index: 1;
      top: 1.5rem;
      bottom: 1.5rem;
      width: 4rem;
      background: linear-gradient(to bottom, #00a6fb 0%, #00fddc 100%);
      border-radius: 0.25rem;
      transition: all 0.6s ease-out 0.22s;
    }
    &::before {
      left: 0;
      transform: translateX(1rem);
    }
    &::after {
      right: 0;
      transform: translateX(-1rem);
    }
  }
}
View Compiled

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.16/tailwind.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.