Pure CSS "angry" emoji.
By CurleyWebDev
<h1>Hover on me for animation!</h1> | |
<div class="head"> | |
<div class="face"> | |
<div class="mouth"></div> | |
<div class="left-eye"></div> | |
<div class="right-eye"></div> | |
<div class="censor"></div> | |
</div> | |
</div> |
Pure CSS "angry" emoji.
By CurleyWebDev
@import url('https://fonts.googleapis.com/css?family=Fredoka+One'); | |
:root{ | |
--faded-black: rgba(0, 0, 0, .3); | |
} | |
body{ | |
background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, darkred), color-stop(50%, black)); | |
background:linear-gradient(darkred 20%, black 50%); | |
background-repeat:no-repeat; | |
padding:0 30px; | |
} | |
h1{ width:100%; | |
text-align:center; | |
font-weight:700; | |
font-size:3em; | |
font-family:arial; | |
color:white; | |
background: black; border:2px solid white; | |
-webkit-box-shadow:0 5px 10px 2px black; | |
box-shadow:0 5px 10px 2px black; | |
position:relative; | |
} | |
.head{ | |
position:relative; | |
width:250px; | |
height:250px; | |
background:radial-gradient(yellow 10%, red, transparent); | |
border-radius:50%; | |
margin:100px auto; | |
} | |
.head:before{ | |
content:""; | |
position:absolute; | |
top:1%; | |
left:0; | |
width:100%; | |
height:100%; | |
border-radius:50%; | |
background:radial-gradient(circle at 50% 0, yellow 5%, red, transparent 70%); | |
-webkit-filter:blur(5px); | |
filter:blur(5px); | |
z-index:2; | |
} | |
.left-eye { | |
z-index: 3; | |
width: 30px; | |
height: 40px; | |
background: -webkit-gradient(linear, left top, left bottom, color-stop(30%, #121212), color-stop(90%, transparent)); | |
background: linear-gradient(#121212 30%, transparent 90%); | |
border-radius: 50%; | |
position: absolute; | |
top: 105px; | |
left: 75px; | |
-webkit-box-shadow: inset 0 5px 10px 5px black; | |
box-shadow: inset 0 5px 10px 5px black; | |
-webkit-animation: wink 4s linear infinite; | |
animation: wink 4s linear infinite; | |
} | |
.left-eye:before { | |
content: ""; | |
z-index: 3; | |
width: 47px; | |
height: 15px; | |
background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, black), color-stop(70%, transparent)); | |
background: linear-gradient(black 50%, transparent 70%); | |
border-radius: 50%; | |
position: absolute; | |
top: -10px; | |
left: -13px; | |
-webkit-transform: rotateZ(25deg); | |
transform: rotateZ(25deg); | |
} | |
.right-eye { | |
z-index: 3; | |
width: 30px; | |
height: 40px; | |
background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #121212), color-stop(90%, transparent)); | |
background: linear-gradient(#121212 50%, transparent 90%); | |
border-radius: 50%; | |
position: absolute; | |
-webkit-box-shadow: inset 0 5px 10px 5px black; | |
box-shadow: inset 0 5px 10px 5px black; | |
top: 105px; | |
right: 75px; | |
-webkit-animation: wink 4s linear infinite; | |
animation: wink 4s linear infinite; | |
} | |
.right-eye:before { | |
content: ""; | |
z-index: 3; | |
width: 47px; | |
height: 15px; | |
background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, black), color-stop(70%, transparent)); | |
background: linear-gradient(black 50%, transparent 70%); | |
border-radius: 50%; | |
position: absolute; | |
top: -10px; | |
right: -13px; | |
-webkit-transform: rotateZ(-25deg); | |
transform: rotateZ(-25deg); | |
} | |
.mouth { | |
z-index: 3; | |
width: 80px; | |
height: 80px; | |
background: radial-gradient(circle at 50% 100%, transparent 70%, black 70%, var(--faded-black)80%, black 90%); | |
border-radius: 50%; | |
position: relative; | |
top: 160px; | |
left: 85px; | |
} | |
.censor{ | |
opacity:0; | |
z-index:5; | |
position:absolute; | |
width:150px; | |
height:50px; | |
background:black; | |
top:155px; | |
left:50px; | |
border:1px solid darkgray; | |
-webkit-box-shadow: 0 0 10px 1px black; | |
box-shadow: 0 0 10px 1px black; | |
} | |
.censor:after{ | |
content:"#$!@"; | |
z-index:6; | |
position:absolute; | |
width:100%; | |
height:100%; | |
color:white; | |
font-size:2.5em; | |
left:15%; | |
bottom:3px; | |
letter-spacing:3px; | |
font-family: 'Fredoka One', cursive; | |
} | |
.head:hover{ | |
-webkit-animation:turn 500ms ease-in-out infinite; | |
animation:turn 500ms ease-in-out infinite; | |
} | |
.head:hover .censor{ | |
-webkit-animation:speech 275ms ease-in-out infinite; | |
animation:speech 275ms ease-in-out infinite; | |
} | |
@-webkit-keyframes turn{ | |
0%{ | |
-webkit-transform:perspective(200px)rotatey(0); | |
transform:perspective(200px)rotatey(0); | |
} | |
25%{ | |
-webkit-transform:perspective(200px)rotatex(-5deg)rotatey(-20deg)rotatez(5deg); | |
transform:perspective(200px)rotatex(-5deg)rotatey(-20deg)rotatez(5deg); | |
} | |
50%{ | |
-webkit-transform:perspective(200px)rotatex(5deg); | |
transform:perspective(200px)rotatex(5deg); | |
} | |
75%{ | |
-webkit-transform:perspective(200px)rotatex(-5deg)rotatey(20deg)rotatez(-5deg); | |
transform:perspective(200px)rotatex(-5deg)rotatey(20deg)rotatez(-5deg); | |
} | |
} | |
@keyframes turn{ | |
0%{ | |
-webkit-transform:perspective(200px)rotatey(0); | |
transform:perspective(200px)rotatey(0); | |
} | |
25%{ | |
-webkit-transform:perspective(200px)rotatex(-5deg)rotatey(-20deg)rotatez(5deg); | |
transform:perspective(200px)rotatex(-5deg)rotatey(-20deg)rotatez(5deg); | |
} | |
50%{ | |
-webkit-transform:perspective(200px)rotatex(5deg); | |
transform:perspective(200px)rotatex(5deg); | |
} | |
75%{ | |
-webkit-transform:perspective(200px)rotatex(-5deg)rotatey(20deg)rotatez(-5deg); | |
transform:perspective(200px)rotatex(-5deg)rotatey(20deg)rotatez(-5deg); | |
} | |
} | |
@-webkit-keyframes speech{ | |
0%{ | |
opacity:1; | |
-webkit-transform:scale(1)perspective(200px)rotatey(0); | |
transform:scale(1)perspective(200px)rotatey(0); | |
} | |
25%{ | |
-webkit-transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(-10deg)rotatez(20deg); | |
transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(-10deg)rotatez(20deg); | |
} | |
50%{ | |
-webkit-transform:scale(.5)perspective(200px)rotatey(0)rotatez(15deg); | |
transform:scale(.5)perspective(200px)rotatey(0)rotatez(15deg); | |
} | |
75%{ | |
-webkit-transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(10deg)rotatez(-20deg); | |
transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(10deg)rotatez(-20deg); | |
} | |
100%{ | |
opacity:1; | |
} | |
} | |
@keyframes speech{ | |
0%{ | |
opacity:1; | |
-webkit-transform:scale(1)perspective(200px)rotatey(0); | |
transform:scale(1)perspective(200px)rotatey(0); | |
} | |
25%{ | |
-webkit-transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(-10deg)rotatez(20deg); | |
transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(-10deg)rotatez(20deg); | |
} | |
50%{ | |
-webkit-transform:scale(.5)perspective(200px)rotatey(0)rotatez(15deg); | |
transform:scale(.5)perspective(200px)rotatey(0)rotatez(15deg); | |
} | |
75%{ | |
-webkit-transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(10deg)rotatez(-20deg); | |
transform:scale(1.5)perspective(200px)rotatex(-15deg)rotatey(10deg)rotatez(-20deg); | |
} | |
100%{ | |
opacity:1; | |
} | |
} | |
/*@media only screen and (max-width: 800px) { | |
h1{ | |
font-size:2em; | |
} | |
}*/ |