Introducción:
En este ejemplo vamos a crear un muñeco o minion (la verdad no se bien como llamarlo); pero la idea es que este muñequito sonríe, en eso consiste esta animación. Se que es sencillo, al menos esta vez puse las etiquetas en el orden adecuado (eso creo).😋
Creando un Muñequito con CSS
A continuación veremos el código en HTML, ya que necesitamos empezar por la estructura.
<!DOCTYPE html> <html lang="en-ES"> <head> <meta charset="UTF-8"> <title>doll</title> </head> <body> <div class="container-0"> <div class="message"> <h1 class="text"> I will kill you</h1> </div> <div class="head" id="Color" > <div id="eye-1"> <div class="pupil-1"></div> <div class="pupil-2"></div> </div> <div id="eye-2"> <div class="pupil-1"></div> <div class="pupil-2right"></div> </div> </div> <div class="mouth"></div> <div class="body" id="Color"></div> <div class="arm1" id="Color"></div> <div class="arm2" id="Color"></div> <div class="leg1" id="Color"></div> <div class="leg2" id="Color"></div> </div> <script src="codigo.js"></script> </body> </html>
Ahora vamos a continuar agregando el CSS, con la intención de ir dibujando las partes del cuerpo, en esto creo que pude ahorrarme algunas líneas de código y no repetir atributos; pero aun no lo consigo. Bueno veamos el código en CSS.
#Color{ background:darkorange; } .text{ text-align:center; font-family: Verdana, sans-serif; font-weight: bold; color:white; } .message{ height: 60px; width: 250px; clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 62% 100%, 60% 77%, 0% 75%); background: black; margin:0 auto; animation:MessageOn 6s infinite; } .container-0{ position:absolute; margin:0 auto; left: 0px; right: 0px; background:transparent; width: 800px; height: 800px; z-index: -1; } .head{ width: 300px; height: 300px; position:absolute; margin:0 auto; left: 0px; right: 0px; border-radius: 50%; animation:BodyChange 1s infinite; } .body{ width: 300px; height: 250px; border-radius: 25px 25px 50px 50px; position:absolute; margin:0 auto; left: 0px; right: 0px; top:200px; z-index:-1; } .arm1{ width: 70px; height: 200px; z-index:-1; position:absolute; margin:0 auto; left: 190px; top: 235px; border-radius: 50px 0px 50px 50px; transform: rotate(45deg); } .arm2{ width: 70px; height: 200px; background: #ff62ab; z-index:-1; position:absolute; margin:0 auto; right: 190px; top: 235px;; border-radius: 50px 0px 50px 50px; transform: rotate(-45deg); } .leg1{ width: 70px; height: 250px; z-index:-1; position:absolute; margin:0 auto; left: 440px; top: 310px; border-radius: 0px 0px 20px 20px; } .leg2{ width: 70px; height: 250px; z-index:-1; position:absolute; margin:0 auto; right: 440px; top: 310px; border-radius: 00px 0px 20px 20px; transform: rotateY(180deg); } #eye-1{ height: 40px; width: 40px; border-radius: 20px; background: black; margin-top: 90px; margin-left: 50px; } #eye-2{ height: 40px; width: 40px; border-radius: 20px; background: black; margin-top: -43px; margin-left: 210px; } .pupil-1{ width: 20px; height: 20px; background: white; border-radius: 20px; margin: 0px 0px 0px 10px; } .pupil-2{ width: 10px; height: 10px; background: white; border-radius: 5px; margin: 5px 0px 0px 10px; } .pupil-2right{ width: 10px; height: 10px; background: white; border-radius: 5px; margin: 5px 0px 0px 15px; } .mouth{ Background: #000; height:110px; width: 7px; border-radius:3px; transform: rotate(-90deg); position: absolute; margin:0 auto; left: 0px; right: 0px; top: 200px; animation:MouthChange 6s infinite; }
Como pueden ver en el código ya esta escrita la parte en la que establecemos la animación, entonces solo queda definirla, como lo vemos más abajo.
@keyframes MessageOn{ 0%{ background:transparent; color:transparent; } 25% { background:transparent; color:transparent; } 50%{ background: black; color: white; } 100%{ background:transparent; color:transparent; } } @keyframes MouthChange{ 0%{ height:110px; width: 7px; border-radius:3px; } 50%{ height: 150px; width: 75px; border-radius: 160px 0 0 160px; } 100%{ height:110px; width: 7px; border-radius:3px; } }
Pueden ver y descargar los archivos con el código aquí, y si desean ver este código corriendo o funcionando clic aquí.
Extra:
- Para ver una animación anterior de Tetris clic aquí ( es más cool a mi parecer).
- Para saber sobre rutas y carpetas (directorios) o archivos en HTML clic aquí.
Y eso es todo, no es una explicación muy detallada porque tardaría más en publicar algo nuevo.😋