Last active
December 12, 2015 14:55
-
-
Save jakob-e/8ab58aef1a4e559b57e6 to your computer and use it in GitHub Desktop.
SCSS mixin based on Animate.css (Autoprefixer required)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ----------------------------------------------------------------------- | |
| // | |
| // SCSS mixin based on Animate.css | |
| // | |
| // Animate.css http://daneden.github.io/animate.css | |
| // Licensed under the MIT license - http://opensource.org/licenses/MIT | |
| // Copyright (c) 2015 Daniel Eden | |
| // | |
| // ----------------------------------------------------------------------- | |
| // | |
| // Syntax: | |
| // @include animate-css($type, [$duration, $repeat]); | |
| // | |
| // Requirements: Autoprefixer | |
| // | |
| // Notes: | |
| // @keyframes will boubble why extend placeholders will | |
| // cause keyframes to be printed – even if not used. | |
| // | |
| // To avoid class dependencies the classes .animate and | |
| // .infinite has been removed. .animate values comes | |
| // with each include and .infinite can be set by passing | |
| // $repeat: infinite | |
| // | |
| // Type values: | |
| // bounce | |
| // flash | |
| // pulse | |
| // rubberBand | |
| // shake | |
| // headShake | |
| // swing | |
| // tada | |
| // wobble | |
| // jello | |
| // bounceIn | |
| // bounceInDown | |
| // bounceInLeft | |
| // bounceInRight | |
| // bounceInUp | |
| // bounceOut | |
| // bounceOutDown | |
| // bounceOutLeft | |
| // bounceOutRight | |
| // bounceOutUp | |
| // fadeIn | |
| // fadeInDown | |
| // fadeInDownBig | |
| // fadeInLeft | |
| // fadeInLeftBig | |
| // fadeInRight | |
| // fadeInRightBig | |
| // fadeInUp | |
| // fadeInUpBig | |
| // fadeOut | |
| // fadeOutDown | |
| // fadeOutDownBig | |
| // fadeOutLeft | |
| // fadeOutLeftBig | |
| // fadeOutRight | |
| // fadeOutRightBig | |
| // fadeOutUp | |
| // fadeOutUpBig | |
| // flipInX | |
| // flipInY | |
| // flipOutX | |
| // flipOutY | |
| // lightSpeedIn | |
| // lightSpeedOut | |
| // rotateIn | |
| // rotateInDownLeft | |
| // rotateInDownRight | |
| // rotateInUpLeft | |
| // rotateInUpRight | |
| // rotateOut | |
| // rotateOutDownLeft | |
| // rotateOutDownRight | |
| // rotateOutUpLeft | |
| // rotateOutUpRight | |
| // hinge | |
| // rollIn | |
| // rollOut | |
| // zoomIn | |
| // zoomInDown | |
| // zoomInLeft | |
| // zoomInRight | |
| // zoomInUp | |
| // zoomOut | |
| // zoomOutDown | |
| // zoomOutLeft | |
| // zoomOutRight | |
| // zoomOutUp | |
| // slideInDown | |
| // slideInLeft | |
| // slideInRight | |
| // slideInUp | |
| // slideOutDown | |
| // slideOutLeft | |
| // slideOutRight | |
| // slideOutUp | |
| // | |
| // ----------------------------------------------------------------------- | |
| @mixin animate-css($type, $duration:null, $repeat: null){ | |
| // Animation name prefix | |
| $prefix: ''; | |
| // Type | |
| animation-name: unquote($prefix + $type); | |
| // Duration | |
| $duration:if(not $duration and index(hinge,$type), 2s, $duration); | |
| $duration:if(not $duration and index(bounceIn bounceOut flipOutX flipOutY,$type), 0.75s, $duration); | |
| animation-duration: $duration or 1s; | |
| // Repeat | |
| animation-iteration-count: if($repeat == infinite, infinite, $repeat); | |
| // Fill mode | |
| animation-fill-mode: both; | |
| // Custom | |
| @if $type == bounce { transform-origin: center bottom; } | |
| @if $type == headShake { animation-timing-function: ease-in-out; } | |
| @if $type == swing { transform-origin: top center; } | |
| @if $type == jello { transform-origin: center; } | |
| @if $type == flip { backface-visibility: visible; } | |
| @if $type == flipInX { backface-visibility: visible !important; } | |
| @if $type == flipInY { backface-visibility: visible !important; } | |
| @if $type == flipOutX { backface-visibility: visible !important; } | |
| @if $type == flipOutY { backface-visibility: visible !important; } | |
| @if $type == lightSpeedIn { animation-timing-function: ease-out; } | |
| @if $type == lightSpeedOut { animation-timing-function: ease-in } | |
| // Keyframes | |
| $keyframerenderonce: if(global-variable-exists(keyframerenderonce), $keyframerenderonce, ()) !global; | |
| @if not index($keyframerenderonce, $type) { | |
| $keyframerenderonce:append($keyframerenderonce, $type) !global; | |
| @keyframes #{$prefix + $type} { | |
| // Attention Seekers | |
| @if $type == bounce { | |
| 20%, 53%, 80%, from, to { animation-timing-function: cubic-bezier(0.215, .61, .355, 1); transform: translate3d(0, 0, 0); } | |
| 40%, 43% { animation-timing-function: cubic-bezier(0.755, .050, .855, .060); transform: translate3d(0, -30px, 0); } | |
| 70% { animation-timing-function: cubic-bezier(0.755, .050, .855, .060); transform: translate3d(0, -15px, 0); } | |
| 90% { transform: translate3d(0, -4px, 0); } | |
| } | |
| @if $type == flash { | |
| 50%, from, to { opacity: 1; } | |
| 25%, 75% { opacity: 0; } | |
| } | |
| @if $type == pulse { | |
| from { transform: scale3d(1, 1, 1); } | |
| 50% { transform: scale3d(1.05, 1.05, 1.05); } | |
| to { transform: scale3d(1, 1, 1); } | |
| } | |
| @if $type == rubberBand { | |
| from { transform: scale3d(1, 1, 1); } | |
| 30% { transform: scale3d(1.25, .75, 1); } | |
| 40% { transform: scale3d(0.75, 1.25, 1); } | |
| 50% { transform: scale3d(1.15, .85, 1); } | |
| 65% { transform: scale3d(.95, 1.05, 1); } | |
| 75% { transform: scale3d(1.05, .95, 1); } | |
| to { transform: scale3d(1, 1, 1); } | |
| } | |
| @if $type == shake { | |
| from, to { transform: translate3d(0, 0, 0); } | |
| 10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0, 0); } | |
| 20%, 40%, 60%, 80% { transform: translate3d(10px, 0, 0); } | |
| } | |
| @if $type == headShake { | |
| 0% { transform: translateX(0); } | |
| 6.5% { transform: translateX(-6px) rotateY(-9deg); } | |
| 18.5% { transform: translateX(5px) rotateY(7deg); } | |
| 31.5% { transform: translateX(-3px) rotateY(-5deg); } | |
| 43.5% { transform: translateX(2px) rotateY(3deg); } | |
| 50% { transform: translateX(0); } | |
| } | |
| @if $type == swing { | |
| 20% { transform: rotate3d(0, 0, 1, 15deg); } | |
| 40% { transform: rotate3d(0, 0, 1, -10deg); } | |
| 60% { transform: rotate3d(0, 0, 1, 5deg); } | |
| 80% { transform: rotate3d(0, 0, 1, -5deg); } | |
| to { transform: rotate3d(0, 0, 1, 0deg); } | |
| } | |
| @if $type == tada { | |
| from { transform: scale3d(1, 1, 1); } | |
| 10%, 20% { transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } | |
| 30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } | |
| 40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } | |
| to { transform: scale3d(1, 1, 1); } | |
| } | |
| @if $type == wobble { | |
| from { transform: none; } | |
| 15% { transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } | |
| 30% { transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } | |
| 45% { transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } | |
| 60% { transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } | |
| 75% { transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } | |
| to { transform: none } | |
| } | |
| @if $type == jello { | |
| 11.1%, from, to { transform: none; } | |
| 22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); } | |
| 33.3% { transform: skewX(6.25deg) skewY(6.25deg); } | |
| 44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); } | |
| 55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); } | |
| 66.6% { transform: skewX(-.78125deg) skewY(-.78125deg); } | |
| 77.7% { transform: skewX(0.390625deg) skewY(0.390625deg); } | |
| 88.8% { transform: skewX(-.1953125deg) skewY(-.1953125deg); } | |
| } | |
| // Bouncing Entrances | |
| @if $type == bounceIn { | |
| 20%, 40%, 60%, 80%, from, to { animation-timing-function: cubic-bezier(0.215, .61, .355, 1); } | |
| 0% { opacity: 0; transform: scale3d(.3, .3, .3); } | |
| 20% { transform: scale3d(1.1, 1.1, 1.1); } | |
| 40% { transform: scale3d(.9, .9, .9); } | |
| 60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); } | |
| 80% { transform: scale3d(.97, .97, .97); } | |
| to { opacity: 1; transform: scale3d(1, 1, 1); } | |
| } | |
| @if $type == bounceInDown { | |
| 60%, 75%, 90%, from, to { animation-timing-function: cubic-bezier(0.215, .61, .355, 1); } | |
| 0% { opacity: 0; transform: translate3d(0, -3000px, 0); } | |
| 60% { opacity: 1; transform: translate3d(0, 25px, 0); } | |
| 75% { transform: translate3d(0, -10px, 0); } | |
| 90% { transform: translate3d(0, 5px, 0); } | |
| to { transform: none } | |
| } | |
| @if $type == bounceInLeft { | |
| 60%, 75%, 90%, from, to { animation-timing-function: cubic-bezier(0.215, .61, .355, 1); } | |
| 0% { opacity: 0; transform: translate3d(-3000px, 0, 0); } | |
| 60% { opacity: 1; transform: translate3d(25px, 0, 0); } | |
| 75% { transform: translate3d(-10px, 0, 0); } | |
| 90% { transform: translate3d(5px, 0, 0); } | |
| to { transform: none } | |
| } | |
| @if $type == bounceInRight { | |
| 60%, 75%, 90%, from, to { animation-timing-function: cubic-bezier(0.215, .61, .355, 1); } | |
| from { opacity: 0; transform: translate3d(3000px, 0, 0); } | |
| 60% { opacity: 1; transform: translate3d(-25px, 0, 0); } | |
| 75% { transform: translate3d(10px, 0, 0); } | |
| 90% { transform: translate3d(-5px, 0, 0); } | |
| to { transform: none } | |
| } | |
| @if $type == bounceInUp { | |
| 60%, 75%, 90%, from, to { animation-timing-function: cubic-bezier(0.215, .61, .355, 1); } | |
| from { opacity: 0; transform: translate3d(0, 3000px, 0); } | |
| 60% { opacity: 1; transform: translate3d(0, -20px, 0); } | |
| 75% { transform: translate3d(0, 10px, 0); } | |
| 90% { transform: translate3d(0, -5px, 0); } | |
| to { transform: translate3d(0, 0, 0); } | |
| } | |
| // Bouncing Exits | |
| @if $type == bounceOut { | |
| 20% { transform: scale3d(.9, .9, .9); } | |
| 50%, 55% { opacity: 1; transform: scale3d(1.1, 1.1, 1.1); } | |
| to { opacity: 0; transform: scale3d(.3, .3, .3); } | |
| } | |
| @if $type == bounceOutDown { | |
| 20% { transform: translate3d(0, 10px, 0); } | |
| 40%, 45% { opacity: 1; transform: translate3d(0, -20px, 0); } | |
| to { opacity: 0; transform: translate3d(0, 2000px, 0); } | |
| } | |
| @if $type == bounceOutLeft { | |
| 20% { opacity: 1; transform: translate3d(20px, 0, 0); } | |
| to { opacity: 0; transform: translate3d(-2000px, 0, 0); } | |
| } | |
| @if $type == bounceOutRight { | |
| 20% { opacity: 1; transform: translate3d(-20px, 0, 0); } | |
| to { opacity: 0; transform: translate3d(2000px, 0, 0); } | |
| } | |
| @if $type == bounceOutUp { | |
| 20% { transform: translate3d(0, -10px, 0); } | |
| 40%, 45% { opacity: 1; transform: translate3d(0, 20px, 0); } | |
| to { opacity: 0; transform: translate3d(0, -2000px, 0); } | |
| } | |
| // Fading Entrances | |
| @if $type == fadeIn { | |
| from { opacity: 0; } | |
| to { opacity: 1; } | |
| } | |
| @if $type == fadeInDown { | |
| from { opacity: 0; transform: translate3d(0, -100%, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == fadeInDownBig { | |
| from { opacity: 0; transform: translate3d(0, -2000px, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == fadeInLeft { | |
| from { opacity: 0; transform: translate3d(-100%, 0, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == fadeInLeftBig { | |
| from { opacity: 0; transform: translate3d(-2000px, 0, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == fadeInRight { | |
| from { opacity: 0; transform: translate3d(100%, 0, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == fadeInRightBig { | |
| from { opacity: 0; transform: translate3d(2000px, 0, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == fadeInUp { | |
| from { opacity: 0; transform: translate3d(0, 100%, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == fadeInUpBig { | |
| from { opacity: 0; transform: translate3d(0, 2000px, 0); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| // Fading Exits | |
| @if $type == fadeOut { | |
| from { opacity: 1; } | |
| to { opacity: 0; } | |
| } | |
| @if $type == fadeOutDown { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(0, 100%, 0); } | |
| } | |
| @if $type == fadeOutDownBig { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(0, 2000px, 0); } | |
| } | |
| @if $type == fadeOutLeft { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(-100%, 0, 0); } | |
| } | |
| @if $type == fadeOutLeftBig { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(-2000px, 0, 0); } | |
| } | |
| @if $type == fadeOutRight { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(100%, 0, 0); } | |
| } | |
| @if $type == fadeOutRightBig { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(2000px, 0, 0); } | |
| } | |
| @if $type == fadeOutUp { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(0, -100%, 0); } | |
| } | |
| @if $type == fadeOutUpBig { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(0, -2000px, 0); } | |
| } | |
| // Flippers | |
| @if $type == flip { | |
| from { transform: perspective(400px) rotate3d(0, 1, 0, -360deg); animation-timing-function: ease-out; } | |
| 40% { transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); animation-timing-function: ease-out; } | |
| 50% { transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); animation-timing-function: ease-in; } | |
| 80% { transform: perspective(400px) scale3d(.95, .95, .95); animation-timing-function: ease-in; } | |
| to { transform: perspective(400px); animation-timing-function: ease-in; } | |
| } | |
| @if $type == flipInX { | |
| from { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); animation-timing-function: ease-in; opacity: 0; } | |
| 40% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); animation-timing-function: ease-in; } | |
| 60% { transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } | |
| 80% { transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } | |
| to { transform: perspective(400px); } | |
| } | |
| @if $type == flipInY { | |
| from { transform: perspective(400px) rotate3d(0, 1, 0, 90deg); animation-timing-function: ease-in; opacity: 0; } | |
| 40% { transform: perspective(400px) rotate3d(0, 1, 0, -20deg); animation-timing-function: ease-in; } | |
| 60% { transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } | |
| 80% { transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } | |
| to { transform: perspective(400px); } | |
| } | |
| @if $type == flipOutX { | |
| from { transform: perspective(400px); } | |
| 30% { transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } | |
| to { transform: perspective(400px) rotate3d(1, 0, 0, 90deg); ; opacity: 0; } | |
| } | |
| @if $type == flipOutY { | |
| from { transform: perspective(400px); } | |
| 30% { transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } | |
| to { transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } | |
| } | |
| // Lightspeed | |
| @if $type == lightSpeedIn { | |
| from { transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } | |
| 60% { transform: skewX(20deg); opacity: 1; } | |
| 80% { transform: skewX(-5deg); opacity: 1; } | |
| to { transform: none; opacity: 1; } | |
| } | |
| @if $type == lightSpeedOut { | |
| from { opacity: 1 } | |
| to { transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } | |
| } | |
| // Rotating Entrances | |
| @if $type == rotateIn { | |
| from { transform-origin: center; transform: rotate3d(0, 0, 1, -200deg); ; opacity: 0 } | |
| to { transform-origin: center; transform: none; opacity: 1 } | |
| } | |
| @if $type == rotateInDownLeft { | |
| from { transform-origin: left bottom; transform: rotate3d(0, 0, 1, -45deg); ; opacity: 0; } | |
| to { transform-origin: left bottom; transform: none; opacity: 1; } | |
| } | |
| @if $type == rotateInDownRight { | |
| from { transform-origin: right bottom; transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } | |
| to { transform-origin: right bottom; transform: none; opacity: 1; } | |
| } | |
| @if $type == rotateInUpLeft { | |
| from { transform-origin: left bottom; transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } | |
| to { transform-origin: left bottom; transform: none; opacity: 1; } | |
| } | |
| @if $type == rotateInUpRight { | |
| from { transform-origin: right bottom; transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } | |
| to { transform-origin: right bottom; transform: none; opacity: 1; } | |
| } | |
| // Rotating Exits | |
| @if $type == rotateOut { | |
| from { transform-origin: center; opacity: 1; } | |
| to { transform-origin: center; transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } | |
| } | |
| @if $type == rotateOutDownLeft { | |
| from { transform-origin: left bottom; opacity: 1; } | |
| to { transform-origin: left bottom; transform: rotate3d(0, 0, 1, 45deg); ; opacity: 0; } | |
| } | |
| @if $type == rotateOutDownRight { | |
| from { transform-origin: right bottom; opacity: 1; } | |
| to { transform-origin: right bottom; transform: rotate3d(0, 0, 1, -45deg); ; opacity: 0; } | |
| } | |
| @if $type == rotateOutUpLeft { | |
| from { transform-origin: left bottom; opacity: 1; } | |
| to { transform-origin: left bottom; transform: rotate3d(0, 0, 1, -45deg); ; opacity: 0; } | |
| } | |
| @if $type == rotateOutUpRight { | |
| from { transform-origin: right bottom; opacity: 1; } | |
| to { transform-origin: right bottom; transform: rotate3d(0, 0, 1, 90deg); ; opacity: 0; } | |
| } | |
| // Sliding Entrances | |
| @if $type == slideInDown { | |
| from { transform: translate3d(0, -100%, 0); visibility: visible; } | |
| to { transform: translate3d(0, 0, 0); } | |
| } | |
| @if $type == slideInLeft { | |
| from { transform: translate3d(-100%, 0, 0); visibility: visible; } | |
| to { transform: translate3d(0, 0, 0); } | |
| } | |
| @if $type == slideInRight { | |
| from { transform: translate3d(100%, 0, 0); visibility: visible; } | |
| to { transform: translate3d(0, 0, 0); } | |
| } | |
| @if $type == slideInUp { | |
| from { transform: translate3d(0, 100%, 0); visibility: visible; } | |
| to { transform: translate3d(0, 0, 0); } | |
| } | |
| // Sliding Exits | |
| @if $type == slideOutUp { | |
| from { transform: translate3d(0, 0, 0); } | |
| to { visibility: hidden; transform: translate3d(0, -100%, 0); } | |
| } | |
| @if $type == slideOutDown { | |
| from { transform: translate3d(0, 0, 0); } | |
| to { visibility: hidden; transform: translate3d(0, 100%, 0); } | |
| } | |
| @if $type == slideOutLeft { | |
| from { transform: translate3d(0, 0, 0); } | |
| to { visibility: hidden; transform: translate3d(-100%, 0, 0); } | |
| } | |
| @if $type == slideOutRight { | |
| from { transform: translate3d(0, 0, 0); } | |
| to { visibility: hidden; transform: translate3d(1800%, 0, 0); } | |
| } | |
| // Zoom Entrances | |
| @if $type == zoomIn { | |
| from { opacity: 0; transform: scale3d(.3, .3, .3); } | |
| 50% { opacity: 1; } | |
| } | |
| @if $type == zoomInDown { | |
| from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); animation-timing-function: cubic-bezier(0.55, .055, .675, .19); } | |
| 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); animation-timing-function: cubic-bezier(0.175, .885, .32, 1); } | |
| } | |
| @if $type == zoomInLeft { | |
| from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); animation-timing-function: cubic-bezier(0.55, .055, .675, .19); } | |
| 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); animation-timing-function: cubic-bezier(0.175, .885, .32, 1); } | |
| } | |
| @if $type == zoomInRight { | |
| from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); animation-timing-function: cubic-bezier(0.55, .055, .675, .19); } | |
| 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); animation-timing-function: cubic-bezier(0.175, .885, .32, 1); } | |
| } | |
| @if $type == zoomInUp { | |
| from { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); animation-timing-function: cubic-bezier(0.55, .055, .675, .19); } | |
| 60% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); animation-timing-function: cubic-bezier(0.175, .885, .32, 1); } | |
| } | |
| // Zoom Exits | |
| @if $type == zoomOut { | |
| from { opacity: 1; } | |
| 50% { opacity: 0; transform: scale3d(.3, .3, .3); } | |
| to { opacity: 0; } | |
| } | |
| @if $type == zoomOutDown { | |
| 40% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); animation-timing-function: cubic-bezier(0.55, .055, .675, .19); } | |
| to { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); transform-origin: center bottom; animation-timing-function: cubic-bezier(0.175, .885, .32, 1); } | |
| } | |
| @if $type == zoomOutLeft { | |
| 40% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); } | |
| to { opacity: 0; transform: scale(.1) translate3d(-2000px, 0, 0); transform-origin: left center; } | |
| } | |
| @if $type == zoomOutRight { | |
| 40% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); } | |
| to { opacity: 0; transform: scale(.1) translate3d(2000px, 0, 0); transform-origin: right center; } | |
| } | |
| @if $type == zoomOutUp { | |
| 40% { opacity: 1; transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); animation-timing-function: cubic-bezier(0.55, .055, .675, .19); } | |
| to { opacity: 0; transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); transform-origin: center bottom; animation-timing-function: cubic-bezier(0.175, .885, .32, 1); } | |
| } | |
| // Specials | |
| @if $type == hinge { | |
| 0% { transform-origin: top left; animation-timing-function: ease-in-out } | |
| 20%, 60% { transform: rotate3d(0, 0, 1, 80deg); ; transform-origin: top left; animation-timing-function: ease-in-out } | |
| 40%, 80% { transform: rotate3d(0, 0, 1, 60deg); ; transform-origin: top left; animation-timing-function: ease-in-out; opacity: 1 } | |
| to { transform: translate3d(0, 700px, 0); ; opacity: 0; } | |
| } | |
| @if $type == rollIn { | |
| from { opacity: 0; transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } | |
| to { opacity: 1; transform: none; } | |
| } | |
| @if $type == rollOut { | |
| from { opacity: 1; } | |
| to { opacity: 0; transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } | |
| } | |
| } | |
| } | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment