Publicidad

Introducción:

La idea es sencilla todo lo que quería era replicar la tarjeta Tinycards de Doulingo con CSS y HTML, para luego agregarle una animación que consiste en hacer que gire 360º grados sobre su eje.

Respecto al código intentare dar una breve explicación de ello a continuación.

1. Estructura en html

En esta parte solo esta el conjunto de elementos que forman la carta eso incluye 2 contenedores en el primero esta todo lo referente a la carta y en el segundo solo hay un texto.

<!DOCTYPE html>
<html lang="en-ES">
   <head>
      <meta charset="UTF-8">
      <title>Cart Spins</title>
      <link rel="stylesheet" type="text/css" href="style.css">
   </head>
   <body>
      <div class = "Contenedor1">
         <div class = "Cart" > 
            <div class = "Cart_Atras"></div>
            <div class = "Cart_Adelante" >
               <div id = "eye_1"></div>
               <div id = "eye_2"></div>
               <div id = "mouth">
                  <div id = "teeth"></div>
                  <div id = "tongue" ></div>
               </div> 
             </div>
          </div>
       </div> 
       <div class = "Contenedor2">
         < div class = "Texto">tinycards</div>
      </div>
   </body>
</html>

2. Apariencia de la carta

Como ya esta la estructura, lo siguiente es darle forma visualmente con CSS.

.Contenedor1{
	position: absolute;
	margin: 0 auto;
	left: 0px;
	right: 0px;
	background: transparent;
}

.Cart{
	transform-style: preserve-3d;
	position: relative;
	margin: 0 auto;
	display: block;
	width: 300px;
	top: calc(50vh - 175px);
}

.Cart_Adelante{
       background-color: #fff;
       width: 300px;
       height: 350px;
       position: absolute;
       left: 0px;
       right: 0px;
       border-radius: 20px;
       box-shadow: 0px 4px 15px 5px rgba(0, 0, 0, 0.37);
       display: inline-block;
}

.Cart_Atras{
      background-color: #b8f5ff;
      width: 300px;
      height: 350px;
      position: absolute;
      left: 0px;
      right: 0px;
      border-radius: 20px;
      box-shadow: 0px 4px 15px 5px rgba(0, 0, 0, 0.37);
      display: inline-block;
}

#eye_1{
	background: #6c6c77;
	width: 30px;
	height: 45px;
	border-radius: 50px;
	margin-top: 111px;
        margin-left: 200px;
		
}

#eye_2{
	background: #6c6c77;
	width: 30px;
	height: 45px;
	border-radius: 50px;
	margin-top: -45px;
	margin-left: 60px;
}

#mouth{
	background: #bf3434;
	width: 200px;
	height: 100px;
	border-radius: 4px 4px 100px 100px;
	position: absolute;
	margin: 0 auto;
	left: 0px;
	right: 0px;
	top: 180px;
	overflow: hidden;
}

#teeth{
	background-color: #fff;
	width: 160px;
	height: 20px;
	position: absolute;
	border-radius: 0px 0px 20px 20px;
	right: 11%;
	box-shadow: inset 8px 2px 1px #e1e1e1;
}

#tongue{
	background-color: #ff7575;
	width: 100px;
	height: 100px;
	margin-top: 50px;
	border-radius: 50px;
	margin: 72px auto 0 auto;   
}

.Contenedor2{
	margin: 0 auto;
	left: 0px;
	right: 0px;
	width: 300px;
	position: relative;
	top: calc(50vh - -204px);
}

.Texto{
	text-align: center;
	color: aliceblue;
	font-size: xx-large;
	font-family: sans-serif;
	font-weight: bold;
	color: #00e7ff;
}

3. Animación en CSS girar 360º grados

Publicidad

Aquí hacemos una transformación en el eje “y”, en la class “.Cart” escribimos lo siguiente.

animation: mymove 15s infinite;

Luego escribimos el keyframes

@keyframes mymove{
     50% {transform: rotatey(360deg);}
}

Para que podamos ver la carta girando en todos los ejes y no solo en un plano usamos “transfor-style” en la class “.Cart”.

transform-style: preserve-3d;

4. Espalda de la carta

En este punto del código no podemos ver la parte de atrás de la carta, así que añadimos la siguiente línea en la clase “.carta_atras”.

transform: translateZ(1px) rotateY(180deg);

Y bueno eso es todo, si quieren ver el código completo pueden hacer clic aquí. Por otro lado para ver la animación en CSS funcionando clic aquí.

Extra: Agradecimientos especiales a @emilio_xd14, ya que su interés por HTML y CSS me animo mientras yo terminaba esta animación.😃🤝

Conclusión:

Esto es solo un código de práctica, para aprender algunas cosas de CSS, en mi caso, aprendí a usar “transform-style” para ver ver el giro de las cartas en los 3 ejes “x”, “y”, “z”. transform-style: preserve-3d; También aprendí a usar “box-shadow” para darle un borde difuminado a la carta.

Publicidad


Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments