saffron 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +43 -0
- data/MIT +21 -0
- data/README.md +63 -0
- data/Rakefile +16 -0
- data/app/assets/stylesheets/_variables.scss +18 -0
- data/app/assets/stylesheets/entrances/_drop-in.scss +19 -0
- data/app/assets/stylesheets/entrances/_fade-in-down.scss +13 -0
- data/app/assets/stylesheets/entrances/_fade-in-left.scss +13 -0
- data/app/assets/stylesheets/entrances/_fade-in-right.scss +13 -0
- data/app/assets/stylesheets/entrances/_fade-in-up.scss +13 -0
- data/app/assets/stylesheets/entrances/_fade-in-zoom-big.scss +20 -0
- data/app/assets/stylesheets/entrances/_fade-in-zoom.scss +14 -0
- data/app/assets/stylesheets/entrances/_fade-in.scss +13 -0
- data/app/assets/stylesheets/entrances/_newspaper.scss +14 -0
- data/app/assets/stylesheets/entrances/_pop-in.scss +14 -0
- data/app/assets/stylesheets/entrances/_rise-in.scss +13 -0
- data/app/assets/stylesheets/entrances/_slide-in.scss +35 -0
- data/app/assets/stylesheets/entrances/_stretch.scss +33 -0
- data/app/assets/stylesheets/entrances/_turn-in.scss +31 -0
- data/app/assets/stylesheets/exits/_compress.scss +25 -0
- data/app/assets/stylesheets/exits/_drop-out.scss +14 -0
- data/app/assets/stylesheets/exits/_explode.scss +14 -0
- data/app/assets/stylesheets/exits/_fade-out-down.scss +14 -0
- data/app/assets/stylesheets/exits/_fade-out-left.scss +13 -0
- data/app/assets/stylesheets/exits/_fade-out-right.scss +13 -0
- data/app/assets/stylesheets/exits/_fade-out-up.scss +14 -0
- data/app/assets/stylesheets/exits/_fade-out-zoom-big.scss +19 -0
- data/app/assets/stylesheets/exits/_fade-out-zoom.scss +14 -0
- data/app/assets/stylesheets/exits/_fade-out.scss +13 -0
- data/app/assets/stylesheets/exits/_poof.scss +17 -0
- data/app/assets/stylesheets/exits/_rise-out.scss +14 -0
- data/app/assets/stylesheets/exits/_slide-out.scss +29 -0
- data/app/assets/stylesheets/exits/_turn-out.scss +33 -0
- data/app/assets/stylesheets/helpers/_animation.scss +3 -0
- data/app/assets/stylesheets/helpers/_contains.scss +4 -0
- data/app/assets/stylesheets/helpers/_keyframes.scss +25 -0
- data/app/assets/stylesheets/helpers/_prefix.scss +39 -0
- data/app/assets/stylesheets/helpers/_transform.scss +9 -0
- data/app/assets/stylesheets/helpers/_transition.scss +7 -0
- data/app/assets/stylesheets/in-place/_around-the-world.scss +12 -0
- data/app/assets/stylesheets/in-place/_bounce.scss +24 -0
- data/app/assets/stylesheets/in-place/_colors.scss +23 -0
- data/app/assets/stylesheets/in-place/_contract.scss +7 -0
- data/app/assets/stylesheets/in-place/_cube-flip.scss +55 -0
- data/app/assets/stylesheets/in-place/_enlarge.scss +7 -0
- data/app/assets/stylesheets/in-place/_expand.scss +6 -0
- data/app/assets/stylesheets/in-place/_flip.scss +19 -0
- data/app/assets/stylesheets/in-place/_float.scss +17 -0
- data/app/assets/stylesheets/in-place/_ping.scss +13 -0
- data/app/assets/stylesheets/in-place/_pulsate.scss +14 -0
- data/app/assets/stylesheets/in-place/_quiver.scss +42 -0
- data/app/assets/stylesheets/in-place/_shake.scss +24 -0
- data/app/assets/stylesheets/in-place/_spin.scss +12 -0
- data/app/assets/stylesheets/in-place/_square-dance.scss +18 -0
- data/app/assets/stylesheets/in-place/_sunrise.scss +12 -0
- data/app/assets/stylesheets/in-place/_sway.scss +17 -0
- data/app/assets/stylesheets/in-place/_teeter.scss +29 -0
- data/app/assets/stylesheets/saffron.scss +62 -0
- data/bin/saffron +9 -0
- data/features/install.feature +28 -0
- data/features/step_definitions/saffron.rb +37 -0
- data/features/support/env.rb +1 -0
- data/features/update.feature +37 -0
- data/features/version.feature +10 -0
- data/lib/saffron.rb +13 -0
- data/lib/saffron/engine.rb +4 -0
- data/lib/saffron/installer.rb +55 -0
- data/lib/saffron/version.rb +3 -0
- data/saffron.gemspec +31 -0
- data/saffron/_variables.scss +18 -0
- data/saffron/entrances/_drop-in.scss +19 -0
- data/saffron/entrances/_fade-in-down.scss +13 -0
- data/saffron/entrances/_fade-in-left.scss +13 -0
- data/saffron/entrances/_fade-in-right.scss +13 -0
- data/saffron/entrances/_fade-in-up.scss +13 -0
- data/saffron/entrances/_fade-in-zoom-big.scss +20 -0
- data/saffron/entrances/_fade-in-zoom.scss +14 -0
- data/saffron/entrances/_fade-in.scss +13 -0
- data/saffron/entrances/_newspaper.scss +14 -0
- data/saffron/entrances/_pop-in.scss +14 -0
- data/saffron/entrances/_rise-in.scss +13 -0
- data/saffron/entrances/_slide-in.scss +35 -0
- data/saffron/entrances/_stretch.scss +33 -0
- data/saffron/entrances/_turn-in.scss +31 -0
- data/saffron/exits/_compress.scss +25 -0
- data/saffron/exits/_drop-out.scss +14 -0
- data/saffron/exits/_explode.scss +14 -0
- data/saffron/exits/_fade-out-down.scss +14 -0
- data/saffron/exits/_fade-out-left.scss +13 -0
- data/saffron/exits/_fade-out-right.scss +13 -0
- data/saffron/exits/_fade-out-up.scss +14 -0
- data/saffron/exits/_fade-out-zoom-big.scss +19 -0
- data/saffron/exits/_fade-out-zoom.scss +14 -0
- data/saffron/exits/_fade-out.scss +13 -0
- data/saffron/exits/_poof.scss +17 -0
- data/saffron/exits/_rise-out.scss +14 -0
- data/saffron/exits/_slide-out.scss +29 -0
- data/saffron/exits/_turn-out.scss +33 -0
- data/saffron/helpers/_animation.scss +3 -0
- data/saffron/helpers/_contains.scss +4 -0
- data/saffron/helpers/_keyframes.scss +25 -0
- data/saffron/helpers/_prefix.scss +39 -0
- data/saffron/helpers/_transform.scss +9 -0
- data/saffron/helpers/_transition.scss +7 -0
- data/saffron/in-place/_around-the-world.scss +12 -0
- data/saffron/in-place/_bounce.scss +24 -0
- data/saffron/in-place/_colors.scss +23 -0
- data/saffron/in-place/_contract.scss +7 -0
- data/saffron/in-place/_cube-flip.scss +55 -0
- data/saffron/in-place/_enlarge.scss +7 -0
- data/saffron/in-place/_expand.scss +6 -0
- data/saffron/in-place/_flip.scss +19 -0
- data/saffron/in-place/_float.scss +17 -0
- data/saffron/in-place/_ping.scss +13 -0
- data/saffron/in-place/_pulsate.scss +14 -0
- data/saffron/in-place/_quiver.scss +42 -0
- data/saffron/in-place/_shake.scss +24 -0
- data/saffron/in-place/_spin.scss +12 -0
- data/saffron/in-place/_square-dance.scss +18 -0
- data/saffron/in-place/_sunrise.scss +12 -0
- data/saffron/in-place/_sway.scss +17 -0
- data/saffron/in-place/_teeter.scss +29 -0
- data/saffron/saffron.scss +62 -0
- data/tasks/.csscomb.json +297 -0
- data/tasks/.csslintrc +19 -0
- data/tasks/Gruntfile.js +111 -0
- data/tasks/compiled/index.html +11 -0
- data/tasks/compiled/saffron.css +3049 -0
- data/tasks/compiled/test.css +3086 -0
- data/tasks/package.json +32 -0
- data/tasks/test.scss +13 -0
- metadata +278 -0
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
saffron (0.2.0)
|
5
|
+
sass (~> 3.2)
|
6
|
+
thor
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
aruba (0.5.4)
|
12
|
+
childprocess (>= 0.3.6)
|
13
|
+
cucumber (>= 1.1.1)
|
14
|
+
rspec-expectations (>= 2.7.0)
|
15
|
+
builder (3.2.2)
|
16
|
+
childprocess (0.5.2)
|
17
|
+
ffi (~> 1.0, >= 1.0.11)
|
18
|
+
cucumber (1.3.14)
|
19
|
+
builder (>= 2.1.2)
|
20
|
+
diff-lcs (>= 1.1.3)
|
21
|
+
gherkin (~> 2.12)
|
22
|
+
multi_json (>= 1.7.5, < 2.0)
|
23
|
+
multi_test (>= 0.1.1)
|
24
|
+
diff-lcs (1.2.5)
|
25
|
+
ffi (1.9.3)
|
26
|
+
gherkin (2.12.2)
|
27
|
+
multi_json (~> 1.3)
|
28
|
+
multi_json (1.9.2)
|
29
|
+
multi_test (0.1.1)
|
30
|
+
rake (10.2.2)
|
31
|
+
rspec-expectations (2.14.5)
|
32
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
33
|
+
sass (3.3.4)
|
34
|
+
thor (0.19.1)
|
35
|
+
|
36
|
+
PLATFORMS
|
37
|
+
ruby
|
38
|
+
|
39
|
+
DEPENDENCIES
|
40
|
+
aruba (~> 0.5)
|
41
|
+
bundler (~> 1.3)
|
42
|
+
rake
|
43
|
+
saffron!
|
data/MIT
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 Jorge Colindres
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
#Saffron
|
2
|
+
> A simple sass mixin library for animations and transitions.
|
3
|
+
|
4
|
+
Saffron is a collection of sass mixins and helpers that make adding CSS3 animations and transitions much simpler.
|
5
|
+
Just include a mixin in your sass declaration, then set any configuration using variables and mixin parameters.
|
6
|
+
|
7
|
+
###Requirements
|
8
|
+
Sass 3.2+
|
9
|
+
|
10
|
+
##Installing
|
11
|
+
###Standard Installation
|
12
|
+
Install the gem from the command line with `gem install saffron`, then `cd` into the directory where you want to install Saffron and run the installation command:
|
13
|
+
```
|
14
|
+
saffron install
|
15
|
+
```
|
16
|
+
You can also use the `-p` flag to install Saffron into a relative directory:
|
17
|
+
```
|
18
|
+
saffron install -p path/to/directory/
|
19
|
+
```
|
20
|
+
Finally, import the mixins into your main scss file:
|
21
|
+
```scss
|
22
|
+
@import "saffron/saffron";
|
23
|
+
```
|
24
|
+
|
25
|
+
###Rails
|
26
|
+
If you're using Rails 3.1+, you can add Saffron to your Gemfile:
|
27
|
+
```ruby
|
28
|
+
gem "saffron"
|
29
|
+
```
|
30
|
+
Run `bundle install` to make all the mixins available to your Rails application, and import Saffron at the top of your `application.css.scss`:
|
31
|
+
```scss
|
32
|
+
@import "saffron";
|
33
|
+
```
|
34
|
+
|
35
|
+
###Manual Installation
|
36
|
+
Download or clone the project repo from GitHub. Copy the `saffron` folder and paste into your `sass` folder (or whatever you call it). You won't need any of the other directories or files.
|
37
|
+
```scss
|
38
|
+
@import "saffron/saffron";
|
39
|
+
```
|
40
|
+
No matter how you installed Saffron, you can now use any of the mixins:
|
41
|
+
```scss
|
42
|
+
.my-class {
|
43
|
+
@include teeter();
|
44
|
+
}
|
45
|
+
```
|
46
|
+
|
47
|
+
##Updating
|
48
|
+
To get the latest mixins you should update the Saffron files every once in a while. You can do so by running:
|
49
|
+
```
|
50
|
+
saffron update
|
51
|
+
```
|
52
|
+
If you initially installed Saffron in a specific directory using the `-p` flag, you'll need to do the the same when updating:
|
53
|
+
```
|
54
|
+
saffron update -p path/to/directory/
|
55
|
+
```
|
56
|
+
|
57
|
+
##Browser Support
|
58
|
+
Saffron uses CSS3 transform, keyframes, animations and transitions, so it's really only for modern browsers. Visit http://caniuse.com/ for a clear idea of CSS3 browser support.
|
59
|
+
|
60
|
+
All the mixins compile down to vendor prefixed CSS, and have been tested on the latest versions of Chrome, Safari, Firefox and Opera. I aim to do more browser testing and hope to increase compatability, especially for IE.
|
61
|
+
|
62
|
+
##License
|
63
|
+
MIT
|
data/Rakefile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "cucumber/rake/task"
|
3
|
+
|
4
|
+
namespace :test do
|
5
|
+
desc "Runs aruba tests"
|
6
|
+
|
7
|
+
Cucumber::Rake::Task.new(:tests) do |t|
|
8
|
+
t.cucumber_opts = "--format progress"
|
9
|
+
end
|
10
|
+
|
11
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
12
|
+
t.cucumber_opts = "--format pretty"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
task :default => "test:tests"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
$prefixes: ("webkit", "moz", "o", "ms", "spec") !default;
|
2
|
+
$translateY-distance: 1.334em !default;
|
3
|
+
$translateX-distance: 1.334em !default;
|
4
|
+
$drop-rise-distance: 10em !default;
|
5
|
+
$shake-distance: 0.55em !default;
|
6
|
+
$teeter-angle: 10deg !default;
|
7
|
+
$quiver-angle: 2deg !default;
|
8
|
+
$float-bob-distance: 0.25em !default;
|
9
|
+
$float-bob-angle: 1deg !default;
|
10
|
+
$sway-angle: 3deg !default;
|
11
|
+
$turn-angle: 225deg !default;
|
12
|
+
$pulsate-scale: 1.1 !default;
|
13
|
+
$stretch-compress-exageration: 1.05 !default;
|
14
|
+
$distance-from-origin: 5em !default;
|
15
|
+
$sunrise-arch: -15em !default;
|
16
|
+
$enlarge-contract-multiple: 1.15 !default;
|
17
|
+
$enlarge-contract-jump: 1em !default;
|
18
|
+
$flip-scale: 1.2 !default;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
@include keyframes(dropIn) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateY($drop-rise-distance * -1) rotate(0) translateZ(0));
|
5
|
+
}
|
6
|
+
10% {
|
7
|
+
@include transform(translateY($drop-rise-distance * -1) rotate(-40deg));
|
8
|
+
}
|
9
|
+
90% {
|
10
|
+
opacity: 1;
|
11
|
+
}
|
12
|
+
100% {
|
13
|
+
@include transform(translateY(0) rotate(0));
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
@mixin dropIn($duration: 0.5s, $delay: 0s, $fill-mode: forwards) {
|
18
|
+
@include animation(dropIn $duration $delay $fill-mode);
|
19
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@include keyframes(fadeInDown) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateY($translateY-distance * -1) translateZ(0));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
@mixin fadeInDown($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
12
|
+
@include animation(fadeInDown $duration $delay $fill-mode);
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@include keyframes(fadeInLeft) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateX($translateX-distance * -1) translateZ(0));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
@mixin fadeInLeft($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
12
|
+
@include animation(fadeInLeft $duration $delay $fill-mode);
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@include keyframes(fadeInRight) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateX($translateX-distance) translateZ(0));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
@mixin fadeInRight($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
12
|
+
@include animation(fadeInRight $duration $delay $fill-mode);
|
13
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@include keyframes(fadeInUp) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateY($translateY-distance) translateZ(0));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
@mixin fadeInUp($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
12
|
+
@include animation(fadeInUp $duration $delay $fill-mode);
|
13
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
@include keyframes(fadeInZoomBig) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(scale(0) translateZ(0));
|
5
|
+
}
|
6
|
+
60% {
|
7
|
+
@include transform(scale(1.25));
|
8
|
+
}
|
9
|
+
80% {
|
10
|
+
@include transform(scale(0.95));
|
11
|
+
}
|
12
|
+
100% {
|
13
|
+
opacity: 1;
|
14
|
+
@include transform(scale(1));
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
@mixin fadeInZoomBig($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
19
|
+
@include animation(fadeInZoomBig $duration $delay $fill-mode);
|
20
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
@include keyframes(fadeInZoom) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(scale(0) translateZ(0));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
@include transform(scale(1));
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
@mixin fadeInZoom($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
13
|
+
@include animation(fadeInZoom $duration $delay $fill-mode);
|
14
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@include keyframes(fadeIn) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateZ(0));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
@mixin fadeIn($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
12
|
+
@include animation(fadeIn $duration $delay $fill-mode);
|
13
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
@include keyframes(newspaper) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(rotate(720deg) scale(0.33) translateZ(0));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
@include transform(rotate(0deg) scale(1));
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
@mixin newspaper($duration: 1s, $delay: 0s, $fill-mode: both, $count: 1, $timing: ease-in-out) {
|
13
|
+
@include animation(newspaper $count $duration $delay $fill-mode $timing);
|
14
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
@include keyframes(popIn) {
|
2
|
+
0% {
|
3
|
+
@include transform(scale(0.25) translateZ(0));
|
4
|
+
opacity: 0;
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
@include transform(scale(1));
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
@mixin popIn($duration: 0.5s, $delay: 0s, $fill-mode: forwards) {
|
13
|
+
@include animation(popIn $duration $delay $fill-mode);
|
14
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@include keyframes(riseIn) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateY($drop-rise-distance) translateZ(0));
|
5
|
+
}
|
6
|
+
50% {
|
7
|
+
opacity: 1
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
@mixin riseIn($duration: 0.5s, $delay: 0s, $fill-mode: forwards) {
|
12
|
+
@include animation(riseIn $duration $delay $fill-mode);
|
13
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
@include keyframes(slideInLeft) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(translateX($translateX-distance * -10) translateZ(0));
|
5
|
+
}
|
6
|
+
65% {
|
7
|
+
opacity: 1;
|
8
|
+
@include transform(translateX($translateX-distance));
|
9
|
+
}
|
10
|
+
100% {
|
11
|
+
@include transform(translateX(0));
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
@mixin slideInLeft($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
16
|
+
@include animation(slideInLeft $duration $delay $fill-mode);
|
17
|
+
}
|
18
|
+
|
19
|
+
@include keyframes(slideInRight) {
|
20
|
+
0% {
|
21
|
+
opacity: 0;
|
22
|
+
@include transform(translateX($translateX-distance * 10) translateZ(0));
|
23
|
+
}
|
24
|
+
65% {
|
25
|
+
opacity: 1;
|
26
|
+
@include transform(translateX($translateX-distance * -1));
|
27
|
+
}
|
28
|
+
100% {
|
29
|
+
@include transform(translateX(0));
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
@mixin slideInRight($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
34
|
+
@include animation(slideInRight $duration $delay $fill-mode);
|
35
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
@include keyframes(stretch) {
|
2
|
+
0% {
|
3
|
+
@include transform(scaleY(0) translateZ(0));
|
4
|
+
}
|
5
|
+
40% {
|
6
|
+
@include transform(scaleY($stretch-compress-exageration));
|
7
|
+
}
|
8
|
+
60% {
|
9
|
+
@include transform(scaleY($stretch-compress-exageration - ($stretch-compress-exageration * .075)));
|
10
|
+
}
|
11
|
+
80% {
|
12
|
+
@include transform(scaleY($stretch-compress-exageration));
|
13
|
+
}
|
14
|
+
100% {
|
15
|
+
@include transform(scaleY($stretch-compress-exageration - ($stretch-compress-exageration * .075)));
|
16
|
+
}
|
17
|
+
80% {
|
18
|
+
@include transform(scaleY($stretch-compress-exageration - ($stretch-compress-exageration * .025)));
|
19
|
+
}
|
20
|
+
100% {
|
21
|
+
@include transform(scaleY(1));
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
@mixin stretchUp($duration: 1.75s, $delay: 0s, $count: 1, $fill-mode: both, $timing: ease-out) {
|
26
|
+
@include animation(stretch $count $duration $delay $fill-mode $timing);
|
27
|
+
@include prefix(transform-origin, 0 100%, webkit moz spec);
|
28
|
+
}
|
29
|
+
|
30
|
+
@mixin stretchDown($duration: 1.75s, $delay: 0s, $count: 1, $fill-mode: both, $timing: ease-out) {
|
31
|
+
@include animation(stretch $count $duration $delay $fill-mode $timing);
|
32
|
+
@include prefix(transform-origin, 0 0, webkit moz spec);
|
33
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
@include keyframes(turnDownIn) {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
@include transform(perspective(500px) rotateX($turn-angle * -1) translateZ(150px));
|
5
|
+
}
|
6
|
+
100% {
|
7
|
+
opacity: 1;
|
8
|
+
@include transform(perspective(800px) rotateX(0deg) translateZ(0));
|
9
|
+
@include prefix(backface-visibility, hidden, webkit moz spec);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
@mixin turnDownIn($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
14
|
+
@include animation(turnDownIn $duration $delay $fill-mode);
|
15
|
+
}
|
16
|
+
|
17
|
+
@include keyframes(turnUpIn) {
|
18
|
+
0% {
|
19
|
+
opacity: 0;
|
20
|
+
@include transform(perspective(500px) rotateX($turn-angle) translateZ(150px));
|
21
|
+
}
|
22
|
+
100% {
|
23
|
+
opacity: 1;
|
24
|
+
@include transform(perspective(800px) rotateX(0deg) translateZ(0));
|
25
|
+
@include prefix(backface-visibility, hidden, webkit moz spec);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
@mixin turnUpIn($duration: 1s, $delay: 0s, $fill-mode: forwards) {
|
30
|
+
@include animation(turnUpIn $duration $delay $fill-mode);
|
31
|
+
}
|