پیش‌نمایش زنده
کد HTML
<div aria-label="Cartoon of a smiling koala" role="img" class="article">
  <div class="body">
    <div class="shadow"></div>
    <div class="chest">
      <div class="leg"></div>
      <div class="leg"></div>
      <div class="arm"></div>
      <div class="arm"></div>
    </div>
  </div>
  <div class="head">
    <div class="ear"></div>
    <div class="ear"></div>
    <div class="face">
      <div class="eye"></div>
      <div class="eye"></div>
      <div class="nose"></div>
      <div class="cheek"></div>
      <div class="cheek"></div>
      <div class="mouth"></div>
      <div class="hair"></div>
    </div>
  </div>
</div>
کد CSS
.article {
  --fur: #aac;
  --detail: #222;
  --mouth: radial-gradient(49% 55% at 50% 89%, #0000, #c001 40%, #0000 0),
    radial-gradient(50% 50% at 50% 88%, #fff 38%, #0000, #00000003 40%, #0000 0),
    linear-gradient(130deg, #bbc0cc88, #bbccc000),
    linear-gradient(-130deg, #0081, #0080),
    linear-gradient(#0084 10%, #0000 50%);
  --dots: radial-gradient(circle, #0001 0.1em, #0000 0) 1em 1em / 3em 7em,
    radial-gradient(circle, #0001 0.1em, #0000 0) 1em 1em / 7em 3em,
    radial-gradient(circle, #0001 0.1em, #0000 0) 1em 1em / 11em 13em,
    radial-gradient(circle, #fff2 0.1em, #0000 0) 1em 1em / 13em 11em,
    radial-gradient(circle, #fff3 0.1em, #0000 0) 1em 1em / 5em 5em,
    radial-gradient(circle, #fff4 0.1em, #0000 0) 1em 1em / 4em 9em;
  --light: radial-gradient(at 35% 30%, #fff5, #fff0 40%),
    radial-gradient(at 45% 40%, #fff6, #fff0 70%);
  position: relative;
  font-size: 1vmin;
  width: 80em;
  aspect-ratio: 1;
  transform: scale(0.5);
  animation: floating 5s ease-in-out infinite;

  .body {
    width: 63%;
    height: 45%;
    left: 50%;
    translate: -50%;
    top: 50%;

    .shadow {
      width: 120%;
      height: 33%;
      background: radial-gradient(#0009, #0000 50%),
        radial-gradient(60% 100% at 26% 40%, #0009, #0000 30%),
        radial-gradient(60% 100% at 75% 45%, #0009, #0000 30%),
        radial-gradient(#8001 30%, #8000 50%),
        radial-gradient(#0082 40%, #0084 60%), #0003;
      opacity: 0.6;
      border-radius: 50%;
      bottom: 2%;
      left: 53%;
      transform: translate(-50%, 14%);
      filter: blur(1.2em);
    }

    .chest {
      --mouth: radial-gradient(49% 55% at 50% 70%, #0000, #c001 80%, #0000 0),
        radial-gradient(
          50% 55% at 50% 69%,
          #fff 78%,
          #0000,
          #00000003 80%,
          #0000 0
        ),
        linear-gradient(130deg, #bbc0cc88, #bbccc000),
        linear-gradient(-130deg, #0081, #0080),
        linear-gradient(#0084 10%, #0000 50%);
      left: 50%;
      translate: -50%;
      border-radius: 100% / 155% 155% 56% 56%;
      width: 60%;
      height: 90%;
      box-shadow:
        inset 0 40em 4em -25em #8003,
        inset 0 40em 6em -26em #0083,
        inset 0 43em 5em -28em #0004,
        inset 0 48em 2em -35em #0006,
        inset 0 0 4em -2.75em,
        inset -4em 0 4em -2em #0083,
        inset 0 -6em 8em -4em #8004,
        inset 0 -4em 4em -2em #0083,
        inset 1em 1em 3em #fff5;
      background: radial-gradient(60% 100% at 50% 80%, #0000 40%, #3002),
        radial-gradient(10% 5% at 50% 0, #0001, #0000 80%), var(--dots),
        var(--light), var(--mouth), var(--fur);

      .arm {
        width: 30%;
        height: 70%;
        border-radius: 100% / 100% 20% 40% 100%;
        bottom: 7%;
        left: 0;
        rotate: -10deg;
        background: linear-gradient(200deg, #400c, #0000 30%),
          radial-gradient(200% 80% at 65% 5%, #6003 5%, #0080 25%),
          radial-gradient(200% 70% at 80% 10%, #0082, #0080 40%),
          radial-gradient(60% 100% at 50% 80%, #0000 40%, #3002),
          radial-gradient(10% 5% at 50% 0, #0001, #0000 80%), var(--dots),
          var(--fur);
        box-shadow:
          inset 0 0 5em -2.75em,
          inset -4em 0 4em -2em #0083,
          inset 0 -6em 8em -4em #8004,
          inset 0 -4em 4em -2em #0083,
          inset 1em 1em 3em #fff5,
          0 0.75em 0.5em #0002;
        filter: drop-shadow(1em 1.5em 1em #8004)
          drop-shadow(1.25em 2em 1.5em #0074);

        & ~ & {
          scale: -1 1;
          rotate: 12deg;
          left: auto;
          right: 3%;
          /*           rotate: 15deg;
          right: 5%; */

          box-shadow:
            inset 0 0 5em -2.75em,
            inset 4em 0 4em -2em #0083,
            inset 0 -6em 8em -4em #8004,
            inset 0 -4em 4em -2em #0083,
            inset 1em 1em 3em #fff5,
            0 0.75em 0.5em #0002;
        }
      }

      .leg {
        width: 53%;
        height: 40%;
        background: #f005;
        bottom: 0;
        transform: translate(-50%, -10%) rotate(-20deg);
        transform-origin: 80% 50%;
        left: -8%;
        border-radius: 10em 90% 40% 10em;
        box-shadow:
          inset 0 0 4em -2.75em,
          inset -4em 0 4em -2em #0083,
          inset 0 -6em 8em -4em #8004,
          inset 0 -4em 4em -2em #0083,
          inset 1em 1em 3em #fff5;
        --light: radial-gradient(at 35% 30%, #fff2, #fff0 40%),
          radial-gradient(at 45% 40%, #fff3, #fff0 70%);
        background:
          radial-gradient(60% 100% at 50% 80%, #0000 40%, #3002),
          radial-gradient(10% 5% at 50% 0, #0001, #0000 80%),
          var(--dots),
          var(--light),
          /*           radial-gradient(30% 40% at 30% 50%, pink 80%, #0000 0), */
            var(--fur);

        &::before {
          --s1: 0.75em 0.6em 1.5em -1.25em #3007, 1em 0.5em 1.5em -1em #3007;
          --s2: inset -1.5em -0.5em 0.35em -0.75em #4002,
            inset -1.5em 0.5em 0.25em -0.75em #4002;
          --c1: #e99;
          content: "";
          width: 45%;
          height: 70%;
          background: pink;
          top: 50%;
          left: -4%;

          border-radius: 50%;
          transform: translate(0%, -50%) rotate(6deg);
          background: radial-gradient(at 35% 40%, #fff8 10%, #fff0), var(--c1);
          box-shadow:
            inset 0 0 0.25em #4008,
            inset 0.25em 0.1em 0.5em 0.1em #fff8,
            inset 0.5em 0.25em 0.75em #c002,
            var(--s2),
            inset 0 0 1em 0.5em #f553,
            var(--s1),
            0.75em 0 0.5em 0.25em #0083,
            1em 0 0.5em 0.25em #fff4;
        }

        &::after {
          acontent: "";
          inset: 0;
          border-radius: 10em 90% 40% 10em;
          box-shadow:
            inset 0 0 4em -2.75em,
            inset -4em 0 4em -2em #0083,
            inset 0 -6em 8em -4em #8004,
            inset 0 -4em 4em -2em #0083,
            inset 1em 1em 3em #fff5;
        }

        & ~ & {
          left: auto;
          right: 0;
          transform: scaleX(-1) translate(-5%, -10%) rotate(-20deg);
          clip-path: polygon(0 0, 80% 0, 85% 100%, 0 100%);
          mask: radial-gradient(47% 80% at 118% 42%, #0000 60%, #000);
          /*            radial-gradient(25% 160% at 100% 0, #0000 70%, #000) */
          background: radial-gradient(60% 100% at 50% 80%, #0000 40%, #3002),
            radial-gradient(10% 5% at 50% 0, #0001, #0000 80%), var(--dots),
            var(--light), radial-gradient(60% 50% at 30% 50%, #0082 60%, #0000),
            var(--fur);

          box-shadow:
            inset 0 0 4em -2.75em,
            inset -4em 0 4em -2em #0083,
            inset 0 -6em 8em -4em #8004,
            inset 0 -4em 4em -2em #0083,
            inset 1em 1em 3em #fff5,
            inset 3em 0 4em #0084;
          &::before {
            --c1: #d88;
            --s1: 0.75em 1em 1.5em -1.25em #3007, 1em 0.5em 1.5em -1em #3007;
            --s2: inset -1.5em -0.5em 0.35em -0.75em #4002,
              inset -0.5em -1em 0.5em -0.5em #4002;
            background: radial-gradient(at 35% 40%, #fff6, #fff0), var(--c1);
          }
        }
      }
    }
  }

  .head {
    width: 63%;
    height: 59%;
    left: 50%;
    top: 5%;
    translate: -50%;

    .ear {
      --pos: -5%;
      top: 20%;
      left: var(--pos);
      width: 55%;
      aspect-ratio: 1;
      background: pink;
      border-radius: 50%;
      transform: translate(-50%, -50%);
      box-shadow:
        inset 0 0 4em -2.75em,
        inset -4em 0 4em -2em #0082,
        inset 0 -6em 8em -4em #8001,
        inset 0 -4em 4em -2em #0082,
        inset 1em 1em 3em #fff5;
      background: 
/*         radial-gradient(60% 100% at 50% 80%, #0000 40%, #3002), */ radial-gradient(
          10% 5% at 50% 0,
          #0001,
          #0000 80%
        ),
        var(--dots), var(--light), var(--fur);

      &::after {
        content: "";
        inset: 0;
        border-radius: inherit;
        box-shadow: inherit;
        background: radial-gradient(60% 65% at 105% 90%, #8005 0%, #0000 90%),
          radial-gradient(60% 65% at 110% 95%, #0085 0%, #0000 95%),
          radial-gradient(65% 70% at 110% 95%, #0005 0%, #0000);
      }

      &::before {
        content: "";
        --pos: 55%;
        --s1: 0.75em 0.6em 1.5em -1.25em #3007, 1em 0.5em 1.5em -1em #3007;
        --s2: inset -1.5em -0.5em 0.35em -0.75em #4002,
          inset -1.5em 0.5em 0.25em -0.75em #4002;
        --c1: #e99;
        width: 75%;
        aspect-ratio: 1;
        border-radius: 50% 45% 55% 50%;
        top: 54%;
        left: var(--pos);
        transform: translate(-50%, -50%) rotate(25deg);
        background: radial-gradient(at 35% 40%, #fff8 10%, #fff0), var(--c1);
        box-shadow:
          inset 0 0 0.25em #4008,
          inset 0.25em 0.1em 0.5em 0.1em #fff8,
          inset 0.5em 0.25em 0.75em #c002,
          var(--s2),
          inset 0 0 1em 0.5em #f553,
          var(--s1);
      }

      & ~ & {
        left: calc(100% - var(--pos));

        &::after {
          scale: -1 1;
          box-shadow:
            inset 0 0 4em -2.75em,
            inset 4em 0 4em -2em #0082,
            inset 0 -6em 8em -4em #8001,
            inset 0 -4em 4em -2em #0082,
            inset 1em 1em 3em #fff5;
        }

        &::before {
          left: calc(100% - var(--pos));
          transform: translate(-50%, -50%) rotate(-25deg);
          --c1: #d88;
          --s1: 0.75em 1em 1.5em -1.25em #3007, 1em 0.5em 1.5em -1em #3007;
          --s2: inset -1.5em -0.5em 0.35em -0.75em #4002,
            inset -0.5em -1em 0.5em -0.5em #4002;
          background: radial-gradient(at 35% 40%, #fff6, #fff0), var(--c1);

          border-radius: 50%;
        }
      }
    }

    .face {
      inset: 0;
      border-radius: 100% / 128% 130% 70% 70%;
      box-shadow:
        inset 0 0 4em -2.75em,
        inset -4em 0 4em -2em #0083,
        inset 0 -6em 8em -4em #8004,
        inset 0 -4em 4em -2em #0083,
        inset 1em 1em 3em #fff5;
      background: radial-gradient(60% 100% at 50% 80%, #0000 40%, #3002),
        radial-gradient(10% 5% at 50% 0, #0001, #0000 80%), var(--dots),
        var(--light), var(--mouth), var(--fur);

      .hair {
        width: 15%;
        height: 6%;
        background: var(--fur);
        border-radius: 50%;
        left: 50%;
        top: -4%;
        transform: translate(-80%, 0) rotate(10deg);
        box-shadow:
          inset 0 0 1em 0em #0001,
          inset 0.4em 0 0.2em 0.2em #0081,
          inset 0 0.6em 0.4em 0.4em #8001,
          inset 0 0.4em 0.2em 0.2em #0081,
          inset 0.1em 0.1em 1em #fff5;
        --light: radial-gradient(at 35% 30%, #fff2, #fff0 30%),
          radial-gradient(at 45% 40%, #fff4, #fff0 70%);
        background: var(--light), var(--fur);

        &::before {
          content: "";
          inset: 0;
          background: inherit;
          border-radius: 50%;
          transform-origin: 90% 50%;
          transform: rotate(45deg);
          box-shadow: inherit;
          mix-blend-mode: lighten;
        }
      }

      .nose {
        width: 22%;
        height: 35%;
        top: 62%;
        left: 50%;
        translate: -50% -50%;
        border-radius: 100% / 120% 120% 66% 66%;
        box-shadow:
          inset 0 0 4em -1.5em,
          inset 2em 2em 1.5em -1.5em #fff5,
          inset -5em 0 4em -4em #0088,
          0 0 1em #0004,
          1em 1em 2em -1em #3007,
          1.5em 0.75em 2em -0.75em #3007;
        background: radial-gradient(at 35% 30%, #fff5, #fff0 36%),
          radial-gradient(at 40% 40%, #fff4, #fff0 60%), var(--detail);
      }

      .eye {
        --pos: 26%;
        --c1: #fff7;
        --p1: 35%;
        --b1: 1.25em -1.5em 0.75em #0000660c, 0.25em -1em 2em 2em #0061;
        --b2: 0.125em 0em 0.5em 0.5em #0001, 0 0 0.3em 0.85em #fff2;
        width: 16%;
        aspect-ratio: 1;
        border-radius: 50%;
        translate: -50% -50%;
        top: 57%;
        left: var(--pos);
        box-shadow:
          inset 0 0 4em -1.5em,
          inset 0 -2em 1em -0.5em #c003,
          inset -2em 0 1em -1em #00c3,
          inset 2em 2em 1.5em -1.5em #fff5,
          inset -5em 0 4em -4em #c003,
          inset -5em 0 4em -4em #0088,
          0 0 1em #0004,
          var(--b2),
          0.5em 1em 2em -1em #3007,
          0.75em 0.5em 2em -0.75em #3007,
          var(--b1);
        background: radial-gradient(
            var(--p1) 35% at 35% 30%,
            var(--c1) 10%,
            #fff0
          ),
          radial-gradient(at 40% 40%, #fff4, #fff0 60%), var(--detail);

        & ~ & {
          --c1: #fff5;
          --p1: 50%;
          --b1: -1.25em -1.5em 0.75em #0000660c, 0.25em -1em 2em 2em #00006608;
          left: calc(100% - var(--pos));
        }
      }

      .mouth {
        width: 14%;
        aspect-ratio: 2.5;
        border-radius: 50% / 0 0 100% 100%;
        border: 0.5em solid #900;
        border-top: 0;
        top: 83%;
        left: 50%;
        translate: -50% -50%;
        clip-path: polygon(
          0 40%,
          10% 30%,
          90% 30%,
          100% 40%,
          150% 40%,
          150% 150%,
          0 150%
        );
        /*         mask: radial-gradient(farthest-side at 50% 100%, #000 99%, #0000); */
        filter: drop-shadow(0.1em 0.1em 0.2em #800c)
          drop-shadow(-0.1em -0.1em 0.1em #fff);
      }

      .cheek {
        --pos: 18%;
        --s1: 0.75em 0.6em 1.5em -1.25em #3007, 1em 0.5em 1.5em -1em #3007;
        --s2: inset -1.5em -0.5em 0.35em -0.75em #4002,
          inset -1.5em 0.5em 0.25em -0.75em #4002;
        --c1: #e99;
        width: 20%;
        height: 14%;
        border-radius: 50% 45% 55% 50%;
        top: 75%;
        left: var(--pos);
        transform: translate(-50%, -50%) rotate(25deg);
        background: radial-gradient(at 35% 40%, #fff8 10%, #fff0), var(--c1);
        box-shadow:
          inset 0 0 0.25em #4008,
          inset 0.25em 0.1em 0.5em 0.1em #fff8,
          inset 0.5em 0.25em 0.75em #c002,
          var(--s2),
          inset 0 0 1em 0.5em #f553,
          var(--s1);

        & ~ & {
          left: calc(100% - var(--pos));
          transform: translate(-50%, -50%) rotate(-25deg);
          --c1: #d88;
          --s1: 0.75em 1em 1.5em -1.25em #3007, 1em 0.5em 1.5em -1em #3007;
          --s2: inset -1.5em -0.5em 0.35em -0.75em #4002,
            inset -0.5em -1em 0.5em -0.5em #4002;
          background: radial-gradient(at 35% 40%, #fff6, #fff0), var(--c1);
        }
      }
    }
  }
}

.article .body,
.article .shadow,
.article .chest,
.article .chest .arm,
.article .chest .leg,
.article .head,
.article .head .ear,
.article .head .face,
.article .head .face .eye,
.article .head .face .nose,
.article .head .face .cheek,
.article .head .face .mouth,
.article .head .face .hair,
.article .head .face .hair::before,
.article .head .ear::before,
.article .head .ear::after,
.article .chest .leg::before,
.article .chest .leg::after,
.article .head .face .cheek::before,
.article .head .face .cheek::after,
.article .head .face .eye::before,
.article .head .face .eye::after {
  position: absolute;
  box-sizing: border-box;
}

@keyframes floating {
  0% {
    transform: translateY(50px) scale(0.5);
  }
  50% {
    transform: translateY(0px) scale(0.5);
  }
  100% {
    transform: translateY(50px) scale(0.5);
  }
}
نوع: loader
تاریخ ایجاد: 2026/06/06
آخرین بروزرسانی: 2026/06/06