以下是 纯CSS3逼真三维球效果 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Creating an Animated 3D Bouncing Ball with CSS3</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Tutorial about how to create an animated 3D bouncing ball with CSS3" />
<meta name="keywords" content="css3, animation, transition, bouncing, 3d, ball, round, web development, web design, tutorial, Daniel Sternlicht" />
<meta name="author" content="Daniel Sternlicht for Codrops" />
<link rel="shortcut icon" href="../favicon.ico">
<link rel="stylesheet" type="text/css" href="css/demo.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<!--<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700,300,300italic' rel='stylesheet' type='text/css'>-->
<script type="text/javascript" src="js/modernizr.custom.79639.js"></script>
<!--[if IE]><style>.main{display:none;}</style><![endif]-->
</head>
<body>
<div class="container">
<!-- Codrops top bar -->
<div class="codrops-top">
<a href="http://tympanus.net/Tutorials/Animated3DBarChart/">
<strong>« Previous Demo: </strong>Animated 3D Bar Chart with CSS3
</a>
<span class="right">
<a href="http://tympanus.net/codrops/2012/05/22/creating-an-animated-3d-bouncing-ball-with-css3/">
<strong>Back to the Codrops Article</strong>
</a>
</span>
<div class="clr"></div>
</div><!--/ Codrops top bar -->
<header>
<h1>3D Bouncing Ball <span>with CSS3</span></h1>
<h2>Create an animated 3D bouncing ball using CSS3 transitions and animations</h2>
<div class="support-note"><!-- with modernizr we check browser support -->
<span class="no-cssanimations">CSS animations are not supported in your browser</span>
<span class="no-csstransforms">CSS transforms are not supported in your browser</span>
<!--span class="no-csstransforms3d">CSS 3D transforms are not supported in your browser</span-->
<span class="no-csstransitions">CSS transitions are not supported in your browser</span>
</div>
</header>
<section class="main">
<h3 class="explanation">Click and hold the ball to make it move back!</h3>
<div id="ballWrapper">
<div id="ball"></div>
<div id="ballShadow"></div>
</div>
</section>
</div>
</body>
</html>
JS代码(modernizr.custom.79639.js):
/* Modernizr 2.5.3 (Custom Build) | MIT & BSD * Build:http://www.modernizr.com/download/#-cssanimations-csstransforms-csstransforms3d-csstransitions-shiv-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes */
;
window.Modernizr=function(a,b,c){
function z(a){
j.cssText=a}
function A(a,b){
return z(m.join(a+";
")+(b||""))}
function B(a,b){
return typeof a===b}
function C(a,b){
return!!~(""+a).indexOf(b)}
function D(a,b){
for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;
return!1}
function E(a,b,d){
for(var e in a){
var f=b[a[e]];
if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}
return!1}
function F(a,b,c){
var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");
return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}
var d="2.5.3",e={
}
,f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={
}
.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={
}
,r={
}
,s={
}
,t=[],u=t.slice,v,w=function(a,c,d,e){
var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");
if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);
return f=["­
","<style>",a,"</style>"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i}
,x={
}
.hasOwnProperty,y;
!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){
return x.call(a,b)}
:y=function(a,b){
return b in a&&B(a.constructor.prototype[b],"undefined")}
,Function.prototype.bind||(Function.prototype.bind=function(b){
var c=this;
if(typeof c!="function")throw new TypeError;
var d=u.call(arguments,1),e=function(){
if(this instanceof e){
var a=function(){
}
;
a.prototype=c.prototype;
var f=new a,g=c.apply(f,d.concat(u.call(arguments)));
return Object(g)===g?g:f}
return c.apply(b,d.concat(u.call(arguments)))}
;
return e}
);
var G=function(a,c){
var d=a.join(""),f=c.length;
w(d,function(a,c){
var d=b.styleSheets[b.styleSheets.length-1],g=d?d.cssRules&&d.cssRules[0]?d.cssRules[0].cssText:d.cssText||"":"",h=a.childNodes,i={
}
;
while(f--)i[h[f].id]=h[f];
e.csstransforms3d=(i.csstransforms3d&&i.csstransforms3d.offsetLeft)===9&&i.csstransforms3d.offsetHeight===3}
,f,c)}
([,["@media (",m.join("transform-3d),("),h,")","{
#csstransforms3d{
left:9px;
position:absolute;
height:3px;
}
}
"].join("")],[,"csstransforms3d"]);
q.cssanimations=function(){
return F("animationName")}
,q.csstransforms=function(){
return!!F("transform")}
,q.csstransforms3d=function(){
var a=!!F("perspective");
return a&&"webkitPerspective"in g.style&&(a=e.csstransforms3d),a}
,q.csstransitions=function(){
return F("transition")}
;
for(var H in q)y(q,H)&&(v=H.toLowerCase(),e[v]=q[H](),t.push((e[v]?"":"no-")+v));
return z(""),i=k=null,function(a,b){
function g(a,b){
var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;
return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}
function h(){
var a=k.elements;
return typeof a=="string"?a.split(" "):a}
function i(a){
var b={
}
,c=a.createElement,e=a.createDocumentFragment,f=e();
a.createElement=function(a){
var e=(b[a]||(b[a]=c(a))).cloneNode();
return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e}
,a.createDocumentFragment=Function("h,f","return function(){
var n=f.cloneNode(),c=n.createElement;
h.shivMethods&&("+h().join().replace(/\w+/g,function(a){
return b[a]=c(a),f.createElement(a),'c("'+a+'")'}
)+");
return n}
")(k,f)}
function j(a){
var b;
return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{
display:block}
audio{
display:none}
canvas,video{
display:inline-block;
*display:inline;
*zoom:1}
[hidden]{
display:none}
audio[controls]{
display:inline-block;
*display:inline;
*zoom:1}
mark{
background:#FF0;
color:#000}
")),f||(b=!i(a)),b&&(a.documentShived=b),a)}
var c=a.html5||{
}
,d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;
(function(){
var a=b.createElement("a");
a.innerHTML="<xyz></xyz>",e="hidden"in a,f=a.childNodes.length==1||function(){
try{
b.createElement("a")}
catch(a){
return!0}
var c=b.createDocumentFragment();
return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}
()}
)();
var k={
elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j}
;
a.html5=k,j(b)}
(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){
return D([a])}
,e.testAllProps=F,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}
(this,this.document);
CSS代码(demo.css):
@import url('normalize.css');/* General Demo Style */
body{font-family:'Open Sans Condensed','Arial Narrow',serif;background:#ddd url(../images/bg.png) repeat top left;font-weight:400;font-size:15px;color:#333;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased;}
a{color:#555;text-decoration:none;}
.container{width:100%;position:relative;}
.clr{clear:both;padding:0;height:0;margin:0;}
.container > header{margin:10px;padding:20px 10px 10px 10px;position:relative;display:block;text-shadow:1px 1px 1px rgba(0,0,0,0.2);text-align:center;}
.container > header h1{font-size:40px;line-height:40px;margin:0;position:relative;font-weight:300;color:#186B9E;text-shadow:1px 1px 1px rgba(255,255,255,0.7);}
.container > header h1 span{font-weight:700;}
.container > header h2{font-size:14px;font-weight:300;margin:0;padding:15px 60px 15px;border-bottom:1px solid #ddd;box-shadow:0 1px 0 rgba(255,255,255,0.6);color:#8c8c8c;font-family:Cambria,Georgia,serif;font-style:italic;text-shadow:1px 1px 1px rgba(255,255,255,0.9);}
/* Header Style */
.codrops-top{line-height:24px;font-size:11px;background:#fff;background:rgba(255,255,255,0.6);text-transform:uppercase;z-index:9999;position:relative;font-family:Cambria,Georgia,serif;box-shadow:1px 0px 2px rgba(0,0,0,0.2);}
.codrops-top a{padding:0px 10px;letter-spacing:1px;color:#333;display:inline-block;}
.codrops-top a:hover{background:rgba(255,255,255,0.3);}
.codrops-top span.right{float:right;}
.codrops-top span.right a{float:left;display:block;}
.explanation{text-align:center;color:#888;text-shadow:1px 1px 1px rgba(255,255,255,0.7);-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}
.support-note span{color:#ac375d;font-size:16px;display:none;font-weight:bold;text-align:center;padding:5px 0;}
.no-cssanimations .support-note span.no-cssanimations,.no-csstransforms .support-note span.no-csstransforms,.no-csstransforms3d .support-note span.no-csstransforms3d,.no-csstransitions .support-note span.no-csstransitions{display:block;}
CSS代码(style.css):
/* 3D Bouncing ball */
#ballWrapper{width:140px;height:300px;position:fixed;left:50%;top:35%;margin-left:-70px;z-index:100;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:all 5s linear 0s;-moz-transition:all 5s linear 0s;transition:all 5s linear 0s;cursor:pointer;}
#ballWrapper:active{-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);cursor:pointer;}
#ball{width:140px;height:140px;border-radius:70px;background:rgb(187,187,187);background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JiYmJiYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9Ijk5JSIgc3RvcC1jb2xvcj0iIzc3Nzc3NyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);background:-moz-linear-gradient(top,rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(187,187,187,1)),color-stop(99%,rgba(119,119,119,1)));background:-webkit-linear-gradient(top,rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%);background:-o-linear-gradient(top,rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%);background:-ms-linear-gradient(top,rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%);background:linear-gradient(top,rgba(187,187,187,1) 0%,rgba(119,119,119,1) 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#bbbbbb',endColorstr='#777777',GradientType=0 );box-shadow:inset 0 -5px 15px rgba(255,255,255,0.4),inset -2px -1px 40px rgba(0,0,0,0.4),0 0 1px #000;position:absolute;top:0;z-index:11;-webkit-animation:jump 1s infinite;-moz-animation:jump 1s infinite;-o-animation:jump 1s infinite;-ms-animation:jump 1s infinite;animation:jump 1s infinite;cursor:pointer;}
#ball::after{content:"";width:80px;height:40px;position:absolute;left:30px;top:10px;z-index:10;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U4ZThlOCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjElIiBzdG9wLWNvbG9yPSIjZThlOGU4IiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=);background:-moz-linear-gradient(top,rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(232,232,232,1)),color-stop(1%,rgba(232,232,232,1)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(top,rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(top,rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(top,rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%);background:linear-gradient(top,rgba(232,232,232,1) 0%,rgba(232,232,232,1) 1%,rgba(255,255,255,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#e8e8e8',endColorstr='#00ffffff',GradientType=0 );border-radius:40px / 20px;}
#ballShadow{position:absolute;left:50%;bottom:0;z-index:10;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-webkit-transform:scaleY(.3);-moz-transform:scaleY(.3);-ms-transform:scaleY(.3);-o-transform:scaleY(.3);transform:scaleY(.3);-webkit-animation:shrink 1s infinite;-moz-animation:shrink 1s infinite;-o-animation:shrink 1s infinite;-ms-animation:shrink 1s infinite;animation:shrink 1s infinite;}
/* Animations */
@-webkit-keyframes jump{0%{top:0;-webkit-animation-timing-function:ease-in;}
40%{}
50%{top:140px;height:140px;-webkit-animation-timing-function:ease-out;}
55%{top:160px;height:120px;border-radius:70px / 60px;-webkit-animation-timing-function:ease-in;}
65%{top:120px;height:140px;border-radius:70px;-webkit-animation-timing-function:ease-out;}
95%{top:0;-webkit-animation-timing-function:ease-in;}
100%{top:0;-webkit-animation-timing-function:ease-in;}
}
@-moz-keyframes jump{0%{top:0;-moz-animation-timing-function:ease-in;}
40%{}
50%{top:140px;height:140px;-moz-animation-timing-function:ease-out;}
55%{top:160px;height:120px;border-radius:70px / 60px;-moz-animation-timing-function:ease-in;}
65%{top:120px;height:140px;border-radius:70px;-moz-animation-timing-function:ease-out;}
95%{top:0;-moz-animation-timing-function:ease-in;}
100%{top:0;-moz-animation-timing-function:ease-in;}
}
@-o-keyframes jump{0%{top:0;-o-animation-timing-function:ease-in;}
40%{}
50%{top:140px;height:140px;-o-animation-timing-function:ease-out;}
55%{top:160px;height:120px;border-radius:70px / 60px;-o-animation-timing-function:ease-in;}
65%{top:120px;height:140px;border-radius:70px;-o-animation-timing-function:ease-out;}
95%{top:0;-o-animation-timing-function:ease-in;}
100%{top:0;-o-animation-timing-function:ease-in;}
}
@-ms-keyframes jump{0%{top:0;-ms-animation-timing-function:ease-in;}
40%{}
50%{top:140px;height:140px;-ms-animation-timing-function:ease-out;}
55%{top:160px;height:120px;border-radius:70px / 60px;-ms-animation-timing-function:ease-in;}
65%{top:120px;height:140px;border-radius:70px;-ms-animation-timing-function:ease-out;}
95%{top:0;-ms-animation-timing-function:ease-in;}
100%{top:0;-ms-animation-timing-function:ease-in;}
}
@keyframes jump{0%{top:0;animation-timing-function:ease-in;}
50%{top:140px;height:140px;animation-timing-function:ease-out;}
55%{top:160px;height:120px;border-radius:70px / 60px;animation-timing-function:ease-in;}
65%{top:120px;height:140px;border-radius:70px;animation-timing-function:ease-out;}
95%{top:0;animation-timing-function:ease-in;}
100%{top:0;animation-timing-function:ease-in;}
}
@-webkit-keyframes shrink{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-webkit-animation-timing-function:ease-in;}
50%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0px 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-webkit-animation-timing-function:ease-out;}
100%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-webkit-animation-timing-function:ease-in;}
}
@-moz-keyframes shrink{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-moz-animation-timing-function:ease-in;}
50%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0px 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-moz-animation-timing-function:ease-out;}
100%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-moz-animation-timing-function:ease-in;}
}
@-o-keyframes shrink{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-o-animation-timing-function:ease-in;}
50%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0px 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-o-animation-timing-function:ease-out;}
100%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-o-animation-timing-function:ease-in;}
}
@-ms-keyframes shrink{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-ms-animation-timing-function:ease-in;}
50%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0px 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-ms-animation-timing-function:ease-out;}
100%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-ms-animation-timing-function:ease-in;}
}
@keyframes shrink{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;animation-timing-function:ease-in;}
50%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0px 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;animation-timing-function:ease-out;}
100%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0px 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;animation-timing-function:ease-in;}
}