Close Menu

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    What's Hot

    How to make Husky Dog Animation using HTML and CSS

    10 November 2025

    How to make 3D Login and Sign Up Form in HTML and CSS

    8 November 2025

    How to make Animated Search Bar Input using HTML and CSS

    5 November 2025
    Facebook X (Twitter) Instagram YouTube Telegram Threads
    Coding StellaCoding Stella
    • Home
    • Blog
    • HTML & CSS
      • Login Form
    • JavaScript
    • Hire us!
    Coding StellaCoding Stella
    Home - HTML & CSS - How to make Husky Dog Animation using HTML and CSS
    HTML & CSS

    How to make Husky Dog Animation using HTML and CSS

    Coding StellaBy Coding Stella10 November 2025Updated:10 November 2025No Comments19 Mins Read
    Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Email WhatsApp Copy Link

    Let’s create a Husky Dog Animation using HTML and CSS! 🐶
    This fun and creative project will bring a cute husky dog to life using only code – no JavaScript needed! We’ll use shapes, colors, and smooth CSS animations to make the husky move, blink, or wag its tail.

    We’ll use:

    • HTML to structure the husky’s body parts (head, ears, eyes, tail, etc.).
    • CSS to style, color, and animate the husky with smooth, playful motion.

    Whether you’re a beginner learning CSS animations or an experienced developer exploring creative web design, this project is a perfect way to mix coding with art. Let’s get started and make our adorable husky come to life! 🐾💙

    HTML :

    This CSS styles and animates the husky dog made in HTML. Each part of the husky (head, ears, eyes, nose, body, legs, tail, etc.) is shaped using positioned <div> elements, colors, borders, and rounded corners. The animations (like head, tail, eyes, etc.) make it look alive – its head moves, tail wags, and tongue sticks out. The cubic-bezier timing function creates smooth, natural motion, while filters and keyframes (defined elsewhere) add a “squiggly” cartoon-like effect. In short, this CSS brings the husky to life with clever shapes and continuous motion.

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Husky Dog Animation CSS | @coding.stella</title>
      <link rel="stylesheet" href="https://public.codepenassets.com/css/normalize-5.0.0.min.css">
      <link rel="stylesheet" href="./style.css">
    
    </head>
    
    <body>
      <div class="husky">
        <div class="mane">
          <div class="coat"></div>
        </div>
        <div class="body">
          <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="mouth">
                <div class="lips"></div>
                <div class="tongue"></div>
              </div>
            </div>
          </div>
          <div class="torso"></div>
        </div>
        <div class="legs">
          <div class="front-legs">
            <div class="leg"></div>
            <div class="leg"></div>
          </div>
          <div class="hind-leg">
          </div>
        </div>
        <div class="tail">
          <div class="tail">
            <div class="tail">
              <div class="tail">
                <div class="tail">
                  <div class="tail">
                    <div class="tail"></div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    
      <svg xmlns="http://www.w3.org/2000/svg" version="1.1" style="position:absolute">
        <defs>
    
    
          <filter id="squiggly-0">
            <feTurbulence id="turbulence" baseFrequency="0.02" numOctaves="3" result="noise" seed="0" />
            <feDisplacementMap id="displacement" in="SourceGraphic" in2="noise" scale="2" />
          </filter>
          <filter id="squiggly-1">
            <feTurbulence id="turbulence" baseFrequency="0.02" numOctaves="3" result="noise" seed="1" />
            <feDisplacementMap in="SourceGraphic" in2="noise" scale="3" />
          </filter>
    
          <filter id="squiggly-2">
            <feTurbulence id="turbulence" baseFrequency="0.02" numOctaves="3" result="noise" seed="2" />
            <feDisplacementMap in="SourceGraphic" in2="noise" scale="2" />
          </filter>
          <filter id="squiggly-3">
            <feTurbulence id="turbulence" baseFrequency="0.02" numOctaves="3" result="noise" seed="3" />
            <feDisplacementMap in="SourceGraphic" in2="noise" scale="3" />
          </filter>
    
          <filter id="squiggly-4">
            <feTurbulence id="turbulence" baseFrequency="0.02" numOctaves="3" result="noise" seed="4" />
            <feDisplacementMap in="SourceGraphic" in2="noise" scale="1" />
          </filter>
        </defs>
      </svg>
    
    </body>
    
    </html>

    CSS :

    The provided code is a CSS stylesheet that styles a navigation menu using the “Poppins” font from Google Fonts. The stylesheet sets the font-family to “Poppins” for all elements and applies various styles to create a visually appealing navigation menu. The menu items have a hover effect and an active state that changes the background color and adds a glowing effect. The code also includes some CSS animations for the menu items.

    asa

    JavaScript:

    The provided code selects all the <li> elements within the .navigation class and assigns them to the list variable. It then defines a function called activeLink that removes the “active” class from all the <li> elements and adds the “active” class to the clicked element. Finally, it adds an event listener to each <li> element that triggers the activeLink function when clicked.

    *,
    *:before,
    *:after {
      box-sizing: border-box;
      position: relative;
    }
    
    html,
    body {
      background-repeat: no-repeat;
      background-size: contain;
      background-position: center center;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      background-color: #4F8EDB;
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0;
    }
    
    @-webkit-keyframes head {
      0% {
        transform: rotate(0);
      }
    
      6.6666666667% {
        transform: rotate(0);
      }
    
      20% {
        transform: rotate(-14deg);
      }
    
      40% {
        transform: rotate(-7deg);
      }
    
      46.6666666667% {
        transform: rotate(-14deg);
      }
    
      60% {
        transform: rotate(-7deg);
      }
    
      73.3333333333% {
        transform: rotate(0);
      }
    
      80% {
        transform: rotate(0);
      }
    }
    
    @keyframes head {
      0% {
        transform: rotate(0);
      }
    
      6.6666666667% {
        transform: rotate(0);
      }
    
      20% {
        transform: rotate(-14deg);
      }
    
      40% {
        transform: rotate(-7deg);
      }
    
      46.6666666667% {
        transform: rotate(-14deg);
      }
    
      60% {
        transform: rotate(-7deg);
      }
    
      73.3333333333% {
        transform: rotate(0);
      }
    
      80% {
        transform: rotate(0);
      }
    }
    
    @-webkit-keyframes mouth {
      0% {
        transform: translateX(0);
      }
    
      6.6666666667% {
        transform: translateX(0);
      }
    
      13.3333333333% {
        transform: translateX(35%);
      }
    
      20% {
        transform: translateX(35%);
      }
    
      26.6666666667% {
        transform: translateX(35%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-5%);
      }
    }
    
    @keyframes mouth {
      0% {
        transform: translateX(0);
      }
    
      6.6666666667% {
        transform: translateX(0);
      }
    
      13.3333333333% {
        transform: translateX(35%);
      }
    
      20% {
        transform: translateX(35%);
      }
    
      26.6666666667% {
        transform: translateX(35%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-5%);
      }
    }
    
    @-webkit-keyframes nose {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translate(0);
      }
    
      13.3333333333% {
        transform: translateX(100%);
      }
    
      26.6666666667% {
        transform: translateX(100%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-15%);
      }
    }
    
    @keyframes nose {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translate(0);
      }
    
      13.3333333333% {
        transform: translateX(100%);
      }
    
      26.6666666667% {
        transform: translateX(100%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-15%);
      }
    }
    
    @-webkit-keyframes body {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translateY(3%);
      }
    
      13.3333333333% {
        transform: translate(0);
      }
    
      20% {
        transform: translate(0);
      }
    
      26.6666666667% {
        transform: translateY(2%);
      }
    
      33.3333333333% {
        transform: translateY(0);
      }
    }
    
    @keyframes body {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translateY(3%);
      }
    
      13.3333333333% {
        transform: translate(0);
      }
    
      20% {
        transform: translate(0);
      }
    
      26.6666666667% {
        transform: translateY(2%);
      }
    
      33.3333333333% {
        transform: translateY(0);
      }
    }
    
    @-webkit-keyframes mane {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translateY(5%);
      }
    
      13.3333333333% {
        transform: translate(0);
      }
    
      20% {
        transform: translate(0);
      }
    
      26.6666666667% {
        transform: translateY(3%);
      }
    
      33.3333333333% {
        transform: translateY(0);
      }
    }
    
    @keyframes mane {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translateY(5%);
      }
    
      13.3333333333% {
        transform: translate(0);
      }
    
      20% {
        transform: translate(0);
      }
    
      26.6666666667% {
        transform: translateY(3%);
      }
    
      33.3333333333% {
        transform: translateY(0);
      }
    }
    
    @-webkit-keyframes face {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translate(0);
      }
    
      13.3333333333% {
        transform: translateX(15%);
      }
    
      20% {
        transform: translateX(15%) translateY(0);
      }
    
      26.6666666667% {
        transform: translateX(15%) translateY(0);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-15%);
      }
    
      40% {
        transform: translateX(0) translateY(-15%);
      }
    
      46.6666666667% {
        transform: translateX(0) translateY(0);
      }
    }
    
    @keyframes face {
      0% {
        transform: translate(0);
      }
    
      6.6666666667% {
        transform: translate(0);
      }
    
      13.3333333333% {
        transform: translateX(15%);
      }
    
      20% {
        transform: translateX(15%) translateY(0);
      }
    
      26.6666666667% {
        transform: translateX(15%) translateY(0);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-15%);
      }
    
      40% {
        transform: translateX(0) translateY(-15%);
      }
    
      46.6666666667% {
        transform: translateX(0) translateY(0);
      }
    }
    
    @-webkit-keyframes left-eye {
      2.6666666667% {
        transform: scaleY(1);
      }
    
      3.3333333333% {
        transform: scaleY(0.3);
      }
    
      4% {
        transform: scaleY(1);
      }
    
      6.6666666667% {
        transform: translateX(0);
      }
    
      9.3333333333% {
        transform: scaleY(1) translateX(75%);
      }
    
      10% {
        transform: scaleY(0.3) translateX(75%);
      }
    
      10.6666666667% {
        transform: scaleY(1) translateX(75%);
      }
    
      13.3333333333% {
        transform: translateX(150%);
      }
    
      22% {
        transform: scaleY(1) translateX(150%);
      }
    
      22.6666666667% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      23.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      25.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      26% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      26.6666666667% {
        transform: scaleY(1) translateX(150%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-170%);
      }
    
      36% {
        transform: scaleY(1) translateY(-170%);
      }
    
      36.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      37.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      39.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      53.3333333333% {
        transform: translateY(0);
      }
    
      65.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    
      66% {
        transform: scaleY(0.3) translateY(0);
      }
    
      66.6666666667% {
        transform: scaleY(1) translateY(0);
      }
    
      70% {
        transform: scaleY(1) translateY(0);
      }
    
      70.6666666667% {
        transform: scaleY(0.3) translateY(0);
      }
    
      71.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    }
    
    @keyframes left-eye {
      2.6666666667% {
        transform: scaleY(1);
      }
    
      3.3333333333% {
        transform: scaleY(0.3);
      }
    
      4% {
        transform: scaleY(1);
      }
    
      6.6666666667% {
        transform: translateX(0);
      }
    
      9.3333333333% {
        transform: scaleY(1) translateX(75%);
      }
    
      10% {
        transform: scaleY(0.3) translateX(75%);
      }
    
      10.6666666667% {
        transform: scaleY(1) translateX(75%);
      }
    
      13.3333333333% {
        transform: translateX(150%);
      }
    
      22% {
        transform: scaleY(1) translateX(150%);
      }
    
      22.6666666667% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      23.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      25.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      26% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      26.6666666667% {
        transform: scaleY(1) translateX(150%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-170%);
      }
    
      36% {
        transform: scaleY(1) translateY(-170%);
      }
    
      36.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      37.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      39.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      53.3333333333% {
        transform: translateY(0);
      }
    
      65.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    
      66% {
        transform: scaleY(0.3) translateY(0);
      }
    
      66.6666666667% {
        transform: scaleY(1) translateY(0);
      }
    
      70% {
        transform: scaleY(1) translateY(0);
      }
    
      70.6666666667% {
        transform: scaleY(0.3) translateY(0);
      }
    
      71.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    }
    
    @-webkit-keyframes right-eye {
      2.6666666667% {
        transform: scaleY(1);
      }
    
      3.3333333333% {
        transform: scaleY(0.3);
      }
    
      4% {
        transform: scaleY(1);
      }
    
      6.6666666667% {
        transform: translateX(0);
      }
    
      9.3333333333% {
        transform: scaleY(1) translateX(75%);
      }
    
      10% {
        transform: scaleY(0.3) translateX(75%);
      }
    
      10.6666666667% {
        transform: scaleY(1) translateX(75%);
      }
    
      13.3333333333% {
        transform: translateX(150%);
      }
    
      22% {
        transform: scaleY(1) translateX(150%);
      }
    
      22.6666666667% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      23.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      25.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      26% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      26.6666666667% {
        transform: scaleY(1) translateX(150%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-170%);
      }
    
      36% {
        transform: scaleY(1) translateY(-170%);
      }
    
      36.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      37.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      39.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      53.3333333333% {
        transform: translateY(0);
      }
    
      65.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    
      66% {
        transform: scaleY(0.3) translateY(0);
      }
    
      66.6666666667% {
        transform: scaleY(1) translateY(0);
      }
    
      70% {
        transform: scaleY(1) translateY(0);
      }
    
      70.6666666667% {
        transform: scaleY(0.3) translateY(0);
      }
    
      71.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    }
    
    @keyframes right-eye {
      2.6666666667% {
        transform: scaleY(1);
      }
    
      3.3333333333% {
        transform: scaleY(0.3);
      }
    
      4% {
        transform: scaleY(1);
      }
    
      6.6666666667% {
        transform: translateX(0);
      }
    
      9.3333333333% {
        transform: scaleY(1) translateX(75%);
      }
    
      10% {
        transform: scaleY(0.3) translateX(75%);
      }
    
      10.6666666667% {
        transform: scaleY(1) translateX(75%);
      }
    
      13.3333333333% {
        transform: translateX(150%);
      }
    
      22% {
        transform: scaleY(1) translateX(150%);
      }
    
      22.6666666667% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      23.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      25.3333333333% {
        transform: scaleY(1) translateX(150%);
      }
    
      26% {
        transform: scaleY(0.3) translateX(150%);
      }
    
      26.6666666667% {
        transform: scaleY(1) translateX(150%);
      }
    
      33.3333333333% {
        transform: translateX(0) translateY(-170%);
      }
    
      36% {
        transform: scaleY(1) translateY(-170%);
      }
    
      36.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      37.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38% {
        transform: scaleY(1) translateY(-170%);
      }
    
      38.6666666667% {
        transform: scaleY(0.3) translateY(-170%);
      }
    
      39.3333333333% {
        transform: scaleY(1) translateY(-170%);
      }
    
      53.3333333333% {
        transform: translateY(0);
      }
    
      65.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    
      66% {
        transform: scaleY(0.3) translateY(0);
      }
    
      66.6666666667% {
        transform: scaleY(1) translateY(0);
      }
    
      70% {
        transform: scaleY(1) translateY(0);
      }
    
      70.6666666667% {
        transform: scaleY(0.3) translateY(0);
      }
    
      71.3333333333% {
        transform: scaleY(1) translateY(0);
      }
    }
    
    @-webkit-keyframes tongue {
      46.6666666667% {
        transform: translateY(0);
      }
    
      53.3333333333% {
        transform: translateY(100%) rotate(10deg);
      }
    
      73.3333333333% {
        transform: translateY(100%) rotate(10deg);
      }
    
      80% {
        transform: translateY(0);
      }
    }
    
    @keyframes tongue {
      46.6666666667% {
        transform: translateY(0);
      }
    
      53.3333333333% {
        transform: translateY(100%) rotate(10deg);
      }
    
      73.3333333333% {
        transform: translateY(100%) rotate(10deg);
      }
    
      80% {
        transform: translateY(0);
      }
    }
    
    @-webkit-keyframes mouth-cover-left {
      40% {
        transform: rotate(0);
      }
    
      60% {
        transform: rotate(90deg);
      }
    
      73.3333333333% {
        transform: rotate(90deg);
      }
    
      86.6666666667% {
        transform: rotate(0);
      }
    }
    
    @keyframes mouth-cover-left {
      40% {
        transform: rotate(0);
      }
    
      60% {
        transform: rotate(90deg);
      }
    
      73.3333333333% {
        transform: rotate(90deg);
      }
    
      86.6666666667% {
        transform: rotate(0);
      }
    }
    
    @-webkit-keyframes mouth-cover-right {
      40% {
        transform: rotate(0);
      }
    
      60% {
        transform: rotate(-90deg);
      }
    
      73.3333333333% {
        transform: rotate(-90deg);
      }
    
      86.6666666667% {
        transform: rotate(0);
      }
    }
    
    @keyframes mouth-cover-right {
      40% {
        transform: rotate(0);
      }
    
      60% {
        transform: rotate(-90deg);
      }
    
      73.3333333333% {
        transform: rotate(-90deg);
      }
    
      86.6666666667% {
        transform: rotate(0);
      }
    }
    
    @-webkit-keyframes tail {
      6.6666666667% {
        transform: rotate(0);
      }
    
      10% {
        transform: rotate(30deg);
      }
    
      13.3333333333% {
        transform: rotate(0);
      }
    
      20% {
        transform: rotate(0);
      }
    
      26.6666666667% {
        transform: rotate(30deg);
      }
    
      46.6666666667% {
        transform: rotate(30deg);
      }
    
      48.3333333333% {
        transform: rotate(0);
      }
    
      50% {
        transform: rotate(28deg);
      }
    
      50.8333333333% {
        transform: rotate(0);
      }
    
      51.6666666667% {
        transform: rotate(28deg);
      }
    
      52.5% {
        transform: rotate(0);
      }
    
      53.3333333333% {
        transform: rotate(28deg);
      }
    
      54.1666666667% {
        transform: rotate(0);
      }
    
      55% {
        transform: rotate(28deg);
      }
    
      55.8333333333% {
        transform: rotate(0);
      }
    
      56.6666666667% {
        transform: rotate(28deg);
      }
    
      57.5% {
        transform: rotate(0);
      }
    
      58.3333333333% {
        transform: rotate(28deg);
      }
    
      59.1666666667% {
        transform: rotate(0);
      }
    
      60% {
        transform: rotate(28deg);
      }
    
      60.8333333333% {
        transform: rotate(0);
      }
    
      61.6666666667% {
        transform: rotate(28deg);
      }
    
      62.5% {
        transform: rotate(0);
      }
    
      63.3333333333% {
        transform: rotate(28deg);
      }
    
      64.1666666667% {
        transform: rotate(0);
      }
    
      65% {
        transform: rotate(28deg);
      }
    
      65.8333333333% {
        transform: rotate(0);
      }
    
      66.6666666667% {
        transform: rotate(28deg);
      }
    
      67.5% {
        transform: rotate(0);
      }
    
      68.3333333333% {
        transform: rotate(28deg);
      }
    
      69.1666666667% {
        transform: rotate(0);
      }
    
      70% {
        transform: rotate(28deg);
      }
    
      70.8333333333% {
        transform: rotate(0);
      }
    
      71.6666666667% {
        transform: rotate(28deg);
      }
    
      72.5% {
        transform: rotate(0);
      }
    }
    
    @keyframes tail {
      6.6666666667% {
        transform: rotate(0);
      }
    
      10% {
        transform: rotate(30deg);
      }
    
      13.3333333333% {
        transform: rotate(0);
      }
    
      20% {
        transform: rotate(0);
      }
    
      26.6666666667% {
        transform: rotate(30deg);
      }
    
      46.6666666667% {
        transform: rotate(30deg);
      }
    
      48.3333333333% {
        transform: rotate(0);
      }
    
      50% {
        transform: rotate(28deg);
      }
    
      50.8333333333% {
        transform: rotate(0);
      }
    
      51.6666666667% {
        transform: rotate(28deg);
      }
    
      52.5% {
        transform: rotate(0);
      }
    
      53.3333333333% {
        transform: rotate(28deg);
      }
    
      54.1666666667% {
        transform: rotate(0);
      }
    
      55% {
        transform: rotate(28deg);
      }
    
      55.8333333333% {
        transform: rotate(0);
      }
    
      56.6666666667% {
        transform: rotate(28deg);
      }
    
      57.5% {
        transform: rotate(0);
      }
    
      58.3333333333% {
        transform: rotate(28deg);
      }
    
      59.1666666667% {
        transform: rotate(0);
      }
    
      60% {
        transform: rotate(28deg);
      }
    
      60.8333333333% {
        transform: rotate(0);
      }
    
      61.6666666667% {
        transform: rotate(28deg);
      }
    
      62.5% {
        transform: rotate(0);
      }
    
      63.3333333333% {
        transform: rotate(28deg);
      }
    
      64.1666666667% {
        transform: rotate(0);
      }
    
      65% {
        transform: rotate(28deg);
      }
    
      65.8333333333% {
        transform: rotate(0);
      }
    
      66.6666666667% {
        transform: rotate(28deg);
      }
    
      67.5% {
        transform: rotate(0);
      }
    
      68.3333333333% {
        transform: rotate(28deg);
      }
    
      69.1666666667% {
        transform: rotate(0);
      }
    
      70% {
        transform: rotate(28deg);
      }
    
      70.8333333333% {
        transform: rotate(0);
      }
    
      71.6666666667% {
        transform: rotate(28deg);
      }
    
      72.5% {
        transform: rotate(0);
      }
    }
    
    @-webkit-keyframes left-ear {
      0% {
        transform: rotate(6deg);
      }
    
      6.6666666667% {
        transform: rotate(6deg);
      }
    
      13.3333333333% {
        transform: rotate(15deg);
      }
    
      26.6666666667% {
        transform: rotate(15deg);
      }
    
      33.3333333333% {
        transform: rotate(30deg);
      }
    
      40% {
        transform: rotate(30deg);
      }
    
      46.6666666667% {
        transform: rotate(0deg);
      }
    
      53.3333333333% {
        transform: rotate(0deg);
      }
    
      60% {
        transform: rotate(15deg);
      }
    
      80% {
        transform: rotate(15deg);
      }
    
      93.3333333333% {
        transform: rotate(6deg);
      }
    
      100% {
        transform: rotateZ(6deg);
      }
    }
    
    @keyframes left-ear {
      0% {
        transform: rotate(6deg);
      }
    
      6.6666666667% {
        transform: rotate(6deg);
      }
    
      13.3333333333% {
        transform: rotate(15deg);
      }
    
      26.6666666667% {
        transform: rotate(15deg);
      }
    
      33.3333333333% {
        transform: rotate(30deg);
      }
    
      40% {
        transform: rotate(30deg);
      }
    
      46.6666666667% {
        transform: rotate(0deg);
      }
    
      53.3333333333% {
        transform: rotate(0deg);
      }
    
      60% {
        transform: rotate(15deg);
      }
    
      80% {
        transform: rotate(15deg);
      }
    
      93.3333333333% {
        transform: rotate(6deg);
      }
    
      100% {
        transform: rotateZ(6deg);
      }
    }
    
    @-webkit-keyframes right-ear {
      0% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    
      6.6666666667% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    
      13.3333333333% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      26.6666666667% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      33.3333333333% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      36.6666666667% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      37.3333333333% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      38% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      40% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      40.6666666667% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      41.3333333333% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      46.6666666667% {
        transform: rotateZ(-9deg) rotateY(180deg);
      }
    
      53.3333333333% {
        transform: rotateZ(-9deg) rotateY(180deg);
      }
    
      60% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      60.6666666667% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      61.3333333333% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      62.6666666667% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      63.3333333333% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      64% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      80% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      93.3333333333% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    
      100% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    }
    
    @keyframes right-ear {
      0% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    
      6.6666666667% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    
      13.3333333333% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      26.6666666667% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      33.3333333333% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      36.6666666667% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      37.3333333333% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      38% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      40% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      40.6666666667% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      41.3333333333% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      46.6666666667% {
        transform: rotateZ(-9deg) rotateY(180deg);
      }
    
      53.3333333333% {
        transform: rotateZ(-9deg) rotateY(180deg);
      }
    
      60% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      60.6666666667% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      61.3333333333% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      62.6666666667% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      63.3333333333% {
        transform: rotateZ(-30deg) rotateY(180deg);
      }
    
      64% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      80% {
        transform: rotateZ(-19deg) rotateY(180deg);
      }
    
      93.3333333333% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    
      100% {
        transform: rotateZ(-16deg) rotateY(180deg);
      }
    }
    
    *,
    *:before,
    *:after {
      -webkit-animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1) !important;
      animation-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1) !important;
    }
    
    .husky {
      -webkit-animation: squiggly-anim 0.3s infinite;
      animation: squiggly-anim 0.3s infinite;
      height: 60vmin;
      width: 84vmin;
    }
    
    @media screen and (max-width: 400px) {
      .husky {
        -webkit-animation: none;
        animation: none;
      }
    }
    
    .husky:before {
      width: 90%;
      height: 0.5vmin;
      background: #30508F;
      border-radius: 0.5vmin;
      top: 100%;
      left: 5%;
      z-index: 2;
    }
    
    .husky:after {
      width: 100%;
      height: 10%;
      top: calc(100% + 0.5vmin);
      z-index: 3;
      background: #4F8EDB;
    }
    
    div:before,
    div:after {
      content: "";
      display: block;
      position: absolute;
    }
    
    .head {
      -webkit-animation: head 12s none infinite;
      animation: head 12s none infinite;
      position: absolute;
      height: 45%;
      width: 58%;
      left: 34%;
      top: 5%;
      transform-origin: bottom center;
    }
    
    .head:before {
      background: #30508F;
      border-top-left-radius: 50% 40%;
      border-top-right-radius: 50% 40%;
      border-bottom-right-radius: 10% 60%;
      height: 100%;
      width: 100%;
    }
    
    .face {
      -webkit-animation: face 12s none infinite;
      animation: face 12s none infinite;
      position: absolute;
      width: 98%;
      height: 62%;
      top: 15%;
      left: 2%;
    }
    
    .face:before {
      z-index: 1;
      width: 94%;
      height: 70%;
      left: 3%;
      background-color: white;
      bottom: 5%;
      border-top-left-radius: 40% 50%;
      border-top-right-radius: 40% 50%;
      border-bottom-left-radius: 30% 50%;
      border-bottom-right-radius: 30% 40%;
    }
    
    .eye {
      -webkit-animation: eyes 12s none infinite;
      animation: eyes 12s none infinite;
      position: absolute;
      width: 30%;
      height: 40%;
      background-color: white;
      right: 45%;
      border-top-left-radius: 55% 50%;
      border-top-right-radius: 45% 50%;
      z-index: 2;
    }
    
    .eye:before {
      -webkit-animation: left-eye 12s none infinite;
      animation: left-eye 12s none infinite;
      height: 15%;
      width: 15%;
      border-radius: 100%;
      background: #343C60;
      top: 45%;
      left: 45%;
      transform-origin: center center;
    }
    
    .eye+.eye {
      z-index: 1;
      right: initial;
      left: 48%;
      border-top-right-radius: 55% 50%;
      border-top-left-radius: 45% 50%;
    }
    
    .nose {
      -webkit-animation: nose 12s none infinite;
      animation: nose 12s none infinite;
      z-index: 2;
      position: absolute;
      width: 20%;
      height: 20%;
      top: 29%;
      left: 42%;
    }
    
    .nose:after {
      background: #30508F;
      height: 100%;
      width: 100%;
      border-top-left-radius: 20% 20%;
      border-top-right-radius: 30% 20%;
      border-bottom-right-radius: 55% 80%;
      border-bottom-left-radius: 50% 80%;
    }
    
    .nose:before {
      height: 100%;
      width: 200%;
      background: white;
      top: 50%;
      left: -50%;
      z-index: -1;
      border-radius: 50%;
    }
    
    .ear {
      -webkit-animation: left-ear 12s both infinite;
      animation: left-ear 12s both infinite;
      position: absolute;
      top: 3%;
      left: -10%;
      width: 48%;
      height: 30%;
      border-bottom-left-radius: 100% 90%;
      border-top-left-radius: 10%;
      transform-origin: 80% center;
      overflow: hidden;
      background: #30508F;
    }
    
    .ear:before {
      width: 70%;
      height: 55%;
      border: 2px solid #30508F;
      background: #DE6465;
      top: 20%;
      left: 15%;
      transform-origin: top left;
      transform: skewX(30deg) rotate(-5deg);
    }
    
    .ear:after {
      width: 70%;
      height: 100%;
      border-top-left-radius: 100%;
      background: #30508F;
      left: 32%;
      transform-origin: top left;
      transform: rotate(-5deg);
    }
    
    .ear+.ear {
      -webkit-animation: right-ear 12s both infinite;
      animation: right-ear 12s both infinite;
      background-color: #343C60;
      left: 15%;
      top: 5%;
      z-index: -1;
      transform-origin: right center;
    }
    
    .ear+.ear:before {
      border-color: #343C60;
    }
    
    .ear+.ear:after {
      background: #343C60;
    }
    
    .mouth {
      z-index: 1;
      -webkit-animation: mouth 12s none infinite;
      animation: mouth 12s none infinite;
      position: absolute;
      width: 48%;
      height: 55%;
      bottom: -5%;
      left: 28%;
      overflow: hidden;
    }
    
    .mouth:before,
    .mouth:after {
      -webkit-animation: mouth-cover-left 12s none infinite;
      animation: mouth-cover-left 12s none infinite;
      width: 28%;
      height: 100%;
      background: white;
      top: -50%;
      left: 0;
      z-index: 3;
      transform-origin: right top;
    }
    
    .mouth:after {
      -webkit-animation: mouth-cover-right 12s none infinite;
      animation: mouth-cover-right 12s none infinite;
      left: initial;
      right: 0;
      transform-origin: left top;
    }
    
    .lips {
      z-index: 2;
      height: 35%;
      width: 100%;
    }
    
    .lips:before,
    .lips:after {
      background: white;
      width: calc(50% + 1.5px);
      border-color: #9EB6D7;
      border-width: 3px;
      border-style: solid;
      height: 100%;
      border-bottom-left-radius: 65% 100%;
      border-bottom-right-radius: 35% 50%;
      border-top-right-radius: 50%;
      border-right-color: transparent;
      border-top-color: transparent;
    }
    
    .lips:after {
      transform: rotateY(180deg);
      left: initial;
      right: 0;
    }
    
    .tongue {
      -webkit-animation: tongue 12s none infinite;
      animation: tongue 12s none infinite;
      position: absolute;
      height: 100%;
      width: 44%;
      background: #DE6465;
      left: 25%;
      bottom: 100%;
      z-index: 1;
      border-bottom-left-radius: 50% 20%;
      border-bottom-right-radius: 50% 20%;
    }
    
    .body {
      -webkit-animation: body 12s none infinite;
      animation: body 12s none infinite;
      width: 45%;
      height: 100%;
      position: absolute;
      left: 25%;
    }
    
    .torso {
      position: absolute;
      height: 55%;
      width: 100%;
      bottom: 0;
    }
    
    .torso:before {
      background: #30508F;
      height: 100%;
      width: 50%;
      transform: translateX(-20%) skewX(-30deg);
      transform-origin: left bottom;
      border-radius: 0 30% 0 60%;
    }
    
    .torso:after {
      background: #30508F;
      height: 100%;
      width: 60%;
      top: 0;
      right: 0;
      border-radius: 10% 40% 60% 0;
    }
    
    .mane {
      -webkit-animation: mane 12s none infinite;
      animation: mane 12s none infinite;
      z-index: 2;
      position: absolute;
      width: 31.5%;
      height: 30%;
      top: 44%;
      left: 37%;
    }
    
    .mane:before {
      background: white;
      height: 40%;
      width: 100%;
      border-top-left-radius: 10% 50%;
      border-top-right-radius: 20% 100%;
      border-bottom-left-radius: 10% 50%;
    }
    
    .mane:after {
      background: white;
      top: 25%;
      height: 76%;
      width: 30%;
      right: 23%;
      border-top-right-radius: 100% 80%;
      transform: rotate(47deg);
      transform-origin: bottom right;
    }
    
    .coat {
      position: absolute;
      width: 50%;
      height: 50%;
      background: white;
      transform-origin: bottom right;
      left: 10%;
      top: 21%;
      transform: rotate(25deg) skewX(-30deg);
    }
    
    .legs {
      background-color: #30508F;
      position: absolute;
      height: 30%;
      width: 42%;
      left: 23%;
      bottom: 0;
      border-top-left-radius: 20% 37%;
      border-bottom-left-radius: 10% 37%;
      border-top-right-radius: 50%;
      z-index: 1;
    }
    
    .front-legs {
      position: absolute;
      width: 55%;
      height: 117%;
      bottom: 0;
      right: -12%;
    }
    
    .front-legs:before {
      width: 4%;
      height: 6%;
      background: transparent;
      bottom: 0;
      left: 47%;
      box-shadow: -1.3vmin 0 0 #9EB6D7, -2.8vmin 0 0 #9EB6D7, 1.3vmin 0 0 #4F8EDB, 2.8vmin 0 0 #4F8EDB;
      z-index: 2;
    }
    
    .front-legs>.leg {
      width: 51%;
      height: 100%;
      position: absolute;
      bottom: 0;
      right: 50%;
      overflow: hidden;
    }
    
    .front-legs>.leg:before {
      background: #C8DAF2;
      height: 100%;
      width: 100%;
      transform: skewY(-30deg) skewX(10deg);
      transform-origin: top right;
    }
    
    .front-legs>.leg+.leg {
      right: 0;
      transform: rotateY(180deg);
    }
    
    .front-legs>.leg+.leg:before {
      background: #9EB6D7;
    }
    
    .hind-leg {
      position: absolute;
      background: #9EB6D7;
      width: 35%;
      height: 25%;
      border-top-left-radius: 35% 100%;
      border-top-right-radius: 40% 100%;
      bottom: 0%;
      right: 45%;
    }
    
    .hind-leg:before {
      width: 6%;
      height: 20%;
      background: transparent;
      bottom: 0;
      left: 70%;
      box-shadow: -0.8vmin 0 0 #4F8EDB, 0.8vmin 0 0 #4F8EDB;
    }
    
    .tail {
      position: absolute;
      width: 15%;
      height: 6%;
      bottom: 0;
      right: 72%;
      background: #343C60;
      z-index: 0;
    }
    
    .tail>.tail {
      -webkit-animation: tail 12s none infinite;
      animation: tail 12s none infinite;
      height: 100%;
      width: 4vmin;
      right: 26%;
      transform-origin: center right;
      border-top-left-radius: 50% 50%;
      border-bottom-left-radius: 50% 50%;
      transform: rotate(26deg);
      transform: rotate(0deg);
    }
    
    .husky>.tail {
      border-top-left-radius: 10% 50%;
      border-bottom-left-radius: 10% 50%;
    }
    
    .husky>.tail>.tail {
      right: 88%;
    }
    
    @-webkit-keyframes squiggly-anim {
      0% {
        filter: url("#squiggly-0");
      }
    
      25% {
        filter: url("#squiggly-1");
      }
    
      50% {
        filter: url("#squiggly-2");
      }
    
      75% {
        filter: url("#squiggly-3");
      }
    
      100% {
        filter: url("#squiggly-4");
      }
    }
    
    @keyframes squiggly-anim {
      0% {
        filter: url("#squiggly-0");
      }
    
      25% {
        filter: url("#squiggly-1");
      }
    
      50% {
        filter: url("#squiggly-2");
      }
    
      75% {
        filter: url("#squiggly-3");
      }
    
      100% {
        filter: url("#squiggly-4");
      }
    }

    In conclusion, creating a Husky Dog Animation using HTML and CSS is a fun and creative project that helps you learn how to use CSS shapes, keyframes, and animations effectively. With simple code and imagination, you can turn static elements into lively, animated characters 🐕✨

    If your project has problems, don’t worry. Just click to download the source code and face your coding challenges with excitement. Have fun coding!

    Animation Web Design
    Share. Copy Link Twitter Facebook LinkedIn Email WhatsApp
    Previous ArticleHow to make 3D Login and Sign Up Form in HTML and CSS
    Coding Stella
    • Website

    Related Posts

    HTML & CSS Login Form

    How to make 3D Login and Sign Up Form in HTML and CSS

    8 November 2025
    HTML & CSS

    How to make Animated Search Bar Input using HTML and CSS

    5 November 2025
    JavaScript

    How to make Magic Navigation Tabs Menu using HTML CSS & JavaScript

    2 November 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Trending Post

    Master Frontend in 100 Days Ebook

    2 March 202430K Views

    How to make Modern Login Form using HTML & CSS | Glassmorphism

    11 January 202428K Views

    How to make I love you Animation in HTML CSS & JavaScript

    14 February 202422K Views

    How to make Valentine’s Day Card using HTML & CSS

    13 February 202414K Views
    Follow Us
    • Instagram
    • Facebook
    • YouTube
    • Twitter
    ads
    Featured Post

    How to create Glowing Neon Cursor using HTML CSS and JS

    2 August 2025

    How to create Animated LogOut Button using HTML CSS and JS

    18 October 2025

    How to make Password Strength Checker using HTML CSS & JavaScript

    9 March 2024

    How to make a Sticky Navigation Bar using HTML, CSS, And JavaScript

    12 January 2024
    Latest Post

    How to make Husky Dog Animation using HTML and CSS

    10 November 2025

    How to make 3D Login and Sign Up Form in HTML and CSS

    8 November 2025

    How to make Animated Search Bar Input using HTML and CSS

    5 November 2025

    How to make Magic Navigation Tabs Menu using HTML CSS & JavaScript

    2 November 2025
    Facebook X (Twitter) Instagram YouTube
    • About Us
    • Privacy Policy
    • Return and Refund Policy
    • Terms and Conditions
    • Contact Us
    • Buy me a coffee
    © 2025 Coding Stella. Made with 💙 by @coding.stella

    Type above and press Enter to search. Press Esc to cancel.

    Ad Blocker Enabled!
    Ad Blocker Enabled!
    Looks like you're using an ad blocker. We rely on advertising to help fund our site.
    Okay! I understood