Created
January 13, 2012 17:37
-
Star
(115)
You must be signed in to star a gist -
Fork
(22)
You must be signed in to fork a gist
-
-
Save mirisuzanne/1607696 to your computer and use it in GitHub Desktop.
A Keyframes Mixin (Sass only)
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
@-webkit-keyframes bgcolor { 0% { background-color: #ffccf2; } | |
50% { background-color: #ccffcc; } | |
100% { background-color: #ccffff; } } | |
@-moz-keyframes bgcolor { 0% { background-color: #ffccf2; } | |
50% { background-color: #ccffcc; } | |
100% { background-color: #ccffff; } } | |
@-ms-keyframes bgcolor { 0% { background-color: #ffccf2; } | |
50% { background-color: #ccffcc; } | |
100% { background-color: #ccffff; } } | |
@keyframes bgcolor { 0% { background-color: #ffccf2; } | |
50% { background-color: #ccffcc; } | |
100% { background-color: #ccffff; } } |
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
/* | |
Syntax error: Invalid CSS after "...bkit-keyframes ": expected "}", was "#{$name} {" |
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
// keyframes mixin | |
=keyframes($name) | |
@-webkit-keyframes #{$name} | |
@content | |
@-moz-keyframes #{$name} | |
@content | |
@-ms-keyframes #{$name} | |
@content | |
@keyframes #{$name} | |
@content | |
// use of keyframes mixin | |
+keyframes(bgcolor) | |
0% | |
background-color: #ffccf2 | |
50% | |
background-color: #ccffcc | |
100% | |
background-color: #ccffff |
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
// keyframes mixin | |
@mixin keyframes($name) { | |
@-webkit-keyframes #{$name} { | |
@content; | |
} | |
@-moz-keyframes #{$name} { | |
@content; | |
} | |
@-ms-keyframes #{$name} { | |
@content; | |
} | |
@keyframes #{$name} { | |
@content; | |
} | |
} | |
// use of keyframes mixin | |
@include keyframes(bgcolor) { | |
0% { | |
background-color: #ffccf2; | |
} | |
50% { | |
background-color: #ccffcc; | |
} | |
100% { | |
background-color: #ccffff; | |
} | |
} |
Careful if you have any transform
attributes in your animation, they need to be -webkit-transform
in the webkit version.
I've gone for the following (need separate ones hardcoded for the number of steps in your animation):
@mixin keyframes-transform-3($name, $transform1, $transform2, $transform3) {
@-webkit-keyframes #{$name} {
0% { -webkit-transform: $transform1; }
50% { -webkit-transform: $transform2; }
100% { -webkit-transform: $transform3; }
}
@keyframes #{$name} {
0% { transform: $transform1; }
50% { transform: $transform2; }
100% { transform: $transform3; }
}
}
Thank you
Thanks 🍺
Thanks! Very helpful!
Thanks for your insightful code!
I needed a same default animation with a dynamic color (depending of a status).
Here is my adaptation of your scss schema:
@mixin animateBox($name, $color) { animation: #{$name} 1s infinite; @keyframes #{$name} { 50% { border-color: $color; } } }
Using:
.is-open{ @include animateBox(open, var(--color)); }
Thank you @meninomiel I needed that.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for the SCSS version. Saved me a lot of time.