railsstrap 3.2.0.2 → 3.2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +39 -4
- data/Rakefile +1 -0
- data/app/helpers/railsstrap/bootstrap_flash_helper.rb +15 -3
- data/app/helpers/railsstrap/navbar_helper.rb +1 -1
- data/lib/generators/railsstrap/install/install_generator.rb +18 -0
- data/lib/generators/railsstrap/install/templates/bootstrap.coffee +11 -0
- data/lib/generators/railsstrap/install/templates/bootstrap.js +15 -3
- data/lib/generators/railsstrap/install/templates/bootstrap_and_overrides.css +5 -5
- data/lib/generators/railsstrap/install/templates/bootstrap_and_overrides.less +7 -5
- data/lib/railsstrap/constants.rb +1 -1
- data/vendor/assets/stylesheets/animate/animate.less +31 -0
- data/vendor/assets/stylesheets/animate/bounce/bounce.less +41 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceIn.less +58 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceInDown.less +56 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceInLeft.less +56 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceInRight.less +56 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceInUp.less +56 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceOut.less +56 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceOutDown.less +45 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceOutLeft.less +45 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceOutRight.less +45 -0
- data/vendor/assets/stylesheets/animate/bounce/bounceOutUp.less +45 -0
- data/vendor/assets/stylesheets/animate/fade/fadeIn.less +24 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInDown.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInDownBig.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInLeft.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInLeftBig.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInRight.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInRightBig.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInUp.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeInUpBig.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOut.less +24 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutDown.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutDownBig.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutLeft.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutLeftBig.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutRight.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutRightBig.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutUp.less +34 -0
- data/vendor/assets/stylesheets/animate/fade/fadeOutUpBig.less +34 -0
- data/vendor/assets/stylesheets/animate/flash.less +24 -0
- data/vendor/assets/stylesheets/animate/flip/flip.less +86 -0
- data/vendor/assets/stylesheets/animate/flip/flipInX.less +59 -0
- data/vendor/assets/stylesheets/animate/flip/flipOutX.less +37 -0
- data/vendor/assets/stylesheets/animate/flip/flipOutY.less +37 -0
- data/vendor/assets/stylesheets/animate/flip/flipinY.less +59 -0
- data/vendor/assets/stylesheets/animate/hinge.less +103 -0
- data/vendor/assets/stylesheets/animate/lightSpeedIn.less +62 -0
- data/vendor/assets/stylesheets/animate/lightSpeedOut.less +36 -0
- data/vendor/assets/stylesheets/animate/pulse.less +43 -0
- data/vendor/assets/stylesheets/animate/roll/rollIn.less +36 -0
- data/vendor/assets/stylesheets/animate/roll/rollOut.less +36 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateIn.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateInDownLeft.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateInDownRight.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateInUpLeft.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateInUpRight.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateOut.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateOutDownLeft.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateOutDownRight.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateOutUpLeft.less +44 -0
- data/vendor/assets/stylesheets/animate/rotate/rotateOutUpRight.less +44 -0
- data/vendor/assets/stylesheets/animate/rubberBand.less +63 -0
- data/vendor/assets/stylesheets/animate/shake.less +41 -0
- data/vendor/assets/stylesheets/animate/slide/slideInDown.less +32 -0
- data/vendor/assets/stylesheets/animate/slide/slideInLeft.less +32 -0
- data/vendor/assets/stylesheets/animate/slide/slideInRight.less +32 -0
- data/vendor/assets/stylesheets/animate/slide/slideInUp.less +34 -0
- data/vendor/assets/stylesheets/animate/slide/slideOutDown.less +32 -0
- data/vendor/assets/stylesheets/animate/slide/slideOutLeft.less +32 -0
- data/vendor/assets/stylesheets/animate/slide/slideOutRight.less +32 -0
- data/vendor/assets/stylesheets/animate/slide/slideOutUp.less +32 -0
- data/vendor/assets/stylesheets/animate/swing.less +66 -0
- data/vendor/assets/stylesheets/animate/tada.less +63 -0
- data/vendor/assets/stylesheets/animate/wobble.less +87 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomIn.less +29 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomInDown.less +42 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomInLeft.less +42 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomInRight.less +42 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomInUp.less +42 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomOut.less +42 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomOutDown.less +43 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomOutLeft.less +43 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomOutRight.less +43 -0
- data/vendor/assets/stylesheets/animate/zoom/zoomOutUp.less +43 -0
- data/vendor/assets/stylesheets/bootstrap-additions.less +2 -1
- data/vendor/assets/stylesheets/dist/railsstrap.css +3407 -0
- data/vendor/assets/stylesheets/railsstrap.less +78 -0
- metadata +107 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e12bab1aacc0c5c73e8fcc54e6d9602d58b835f
|
4
|
+
data.tar.gz: e12a9d052d2d9f1b06c9a9d879424ccaacee751b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4997f111d82f7dfce5cea8a3a06d4c4c083129c50a1588cee6b028d083dc1b2ff2b978cb7f04bcd8f7bef5360bd274baf315d717bd0a893b6c1fadb72b823941
|
7
|
+
data.tar.gz: 0fdaff045e68a40440988afab5211620069144d817474b02ddda572e965bf5d7663cc69d8e0605673e241361c37b68f0aeec3ae3d85c884a1b3cdab830974255
|
data/README.md
CHANGED
@@ -1,13 +1,31 @@
|
|
1
|
-
# Bootstrap 3.2.
|
1
|
+
# Bootstrap 3.2.0 + FontAwesome 4.2.0 for Rails v3.1 & v4 Asset Pipeline
|
2
2
|
|
3
3
|
[![Bower version](https://badge.fury.io/bo/bootstrap.svg)](http://badge.fury.io/bo/bootstrap)
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/railsstrap.svg)](http://badge.fury.io/rb/railsstrap)
|
5
5
|
[![Build Status](https://travis-ci.org/toadkicker/railsstrap.svg?branch=v3.2.0.1)](https://travis-ci.org/toadkicker/railsstrap)
|
6
6
|
[![Coverage Status](https://img.shields.io/coveralls/toadkicker/railsstrap.svg)](https://coveralls.io/r/toadkicker/railsstrap?branch=develop)
|
7
7
|
|
8
|
-
Bootstrap
|
8
|
+
railsstrap integrates Bootstrap and FontAwesome for Rails Asset Pipeline (Rails 4, 3.1, 3.2 are supported). It was born and extended from twitter-bootstrap-rails.
|
9
9
|
|
10
|
-
|
10
|
+
## Why is your gem different?
|
11
|
+
|
12
|
+
Railsstrap is more than just another gem providing bootstrap and fontawesome for Rails apps. It includes Bootstrap additions that include exotic placements, animations, and other component enhancements not included in the official bootstrap release. It also includes many HTML helpers and additional javascript components. All of this is exposed to UI developers to customize to their liking using either LESS and Coffeescript, or plain CSS and Javascript.
|
13
|
+
|
14
|
+
|
15
|
+
##Bootstrap additions
|
16
|
+
|
17
|
+
###Custom Components (in development)
|
18
|
+
* Asides - A modal that slides in from the left or right. Used often in mobile apps for off-screen sidebars or overlays.
|
19
|
+
* Callouts - Similar to an alert, it is used for drawing attention to content.
|
20
|
+
* Datepicker - A styled HTML5 datepicker.
|
21
|
+
* Modal enhancements - animations and real centering placement.
|
22
|
+
* Popover enhancements - animations and custom placements for popover arrows and locations.
|
23
|
+
* Timepicker - A styled HTML5 time picker.
|
24
|
+
* Tooltip - animations and custom placements for tooltip arrows and locations.
|
25
|
+
|
26
|
+
###Animations
|
27
|
+
|
28
|
+
Railsstrap comes with over 75 CSS animations. See the wiki or the [vendor/assets/stylesheets/animate](https://github.com/toadkicker/railsstrap/tree/develop/vendor/assets/stylesheets/animate) folder for more info.
|
11
29
|
|
12
30
|
## Example Application
|
13
31
|
An example application is available at [toadkicker/teststrap](https://github.com/toadkicker/teststrap). You can view it running on heroku [here.](http://teststrap.herokuapp.com/) Contributions welcome.
|
@@ -24,10 +42,27 @@ bundle install
|
|
24
42
|
bundle exec rails g railsstrap:install
|
25
43
|
```
|
26
44
|
|
27
|
-
This will insert the appropriate entries into your application.js and application.css files. It will also provide you with the ability to customize Bootstrap to your liking.
|
45
|
+
This will insert the appropriate entries into your application.js and application.css files. It will also provide you with the ability to customize Bootstrap and FontAwesome to your liking.
|
46
|
+
|
47
|
+
####Hotfix note for v3.2.0.2 and lower:
|
48
|
+
|
49
|
+
You will need to precompile your assets for FontAwesome support. To do this add this line:
|
50
|
+
|
51
|
+
```
|
52
|
+
Rails.application.config.assets.precompile += %w( fontawesome/fonts/fontawesome-webfont.eot fontawesome/fonts/fontawesome-webfont.woff fontawesome/fonts/fontawesome-webfont.ttf fontawesome/fonts/fontawesome-webfont.svg )
|
53
|
+
```
|
54
|
+
|
55
|
+
For Rails 3 applications, add it to config/environments/production.rb. For Rails 4, add it to config/initializers/assets.rb.
|
56
|
+
|
28
57
|
|
29
58
|
Most of the info you'll need is in the wiki, and if it isn't please contribute!
|
30
59
|
|
60
|
+
##Building the gem
|
61
|
+
|
62
|
+
The gem is organized by ruby specific tasks, and front-end specific tasks. `bundle exec rake` will attempt to run the suite of build commands, but you need a few dependencies that are outside of bundler/rubygems's domain.
|
63
|
+
|
64
|
+
For compiling stylesheets and javascripts, the gem uses Gruntjs. You'll need node/npm installed to compile them manually. *You do not need to use grunt if you are just referencing specific less/js/coffee files in your rails app*
|
65
|
+
|
31
66
|
## Many thanks to the twitter-bootstrap-rails contributors, who made this fork possible:
|
32
67
|
<ul>
|
33
68
|
<li>Seyhun Akyürek</li>
|
data/Rakefile
CHANGED
@@ -3,8 +3,19 @@ module Railsstrap
|
|
3
3
|
ALERT_TYPES = [:success, :info, :warning, :danger] unless const_defined?(:ALERT_TYPES)
|
4
4
|
|
5
5
|
def bootstrap_flash(options = {})
|
6
|
+
|
6
7
|
flash_messages = []
|
8
|
+
close_button = content_tag(:button, raw('×'), :type => 'button', :class => 'close', 'data-dismiss' => 'alert')
|
9
|
+
|
7
10
|
flash.each do |type, message|
|
11
|
+
default_opts = {
|
12
|
+
show_close: true,
|
13
|
+
type: :info,
|
14
|
+
container_tag: :div,
|
15
|
+
animation: 'fade in'
|
16
|
+
}
|
17
|
+
opts = default_opts.merge(options)
|
18
|
+
|
8
19
|
# Skip empty messages, e.g. for devise messages set to nothing in a locale file.
|
9
20
|
next if message.blank?
|
10
21
|
|
@@ -15,9 +26,10 @@ module Railsstrap
|
|
15
26
|
next unless ALERT_TYPES.include?(type)
|
16
27
|
|
17
28
|
Array(message).each do |msg|
|
18
|
-
|
19
|
-
|
20
|
-
|
29
|
+
|
30
|
+
text = content_tag(opts[:container_tag],
|
31
|
+
(opts[:show_close] ? close_button : '') +
|
32
|
+
msg, :class => "alert #{opts[:animation]} alert-#{type} #{opts[:class]}")
|
21
33
|
flash_messages << text if msg
|
22
34
|
end
|
23
35
|
end
|
@@ -71,7 +71,7 @@ module Railsstrap
|
|
71
71
|
|
72
72
|
# Returns current url or path state (useful for buttons).
|
73
73
|
# Example:
|
74
|
-
# # Assume we'
|
74
|
+
# # Assume we're currently at blog/categories/test
|
75
75
|
# uri_state('/blog/categories/test', {}) # :active
|
76
76
|
# uri_state('/blog/categories', {}) # :chosen
|
77
77
|
# uri_state('/blog/categories/test', {method: delete}) # :inactive
|
@@ -13,6 +13,23 @@ module Railsstrap
|
|
13
13
|
|
14
14
|
js_manifest = 'app/assets/javascripts/application.js'
|
15
15
|
css_manifest = 'app/assets/stylesheets/application.css'
|
16
|
+
asset_initializer = 'config/initializers/assets.rb'
|
17
|
+
config_asset_insert_line = "Rails.application.config.assets.precompile\s+=\s%w(\sbootstrap/fonts/glyphicons-halflings-regular.eot\sbootstrap/fonts/glyphicons-halflings-regular.svg\sbootstrap/fonts/glyphicons-halflings-regular.ttf\sbootstrap/fonts/glyphicons-halflings-regular.woff\sfontawesome/fonts/fontawesome-webfont.eot\sfontawesome/fonts/fontawesome-webfont.woff\sfontawesome/fonts/fontawesome-webfont.ttf\sfontawesome/fonts/fontawesome-webfont.svg\s)"
|
18
|
+
|
19
|
+
if File.exists?(asset_initializer) && Rails::VERSION::MAJOR >= 4 #Must be Rails 4
|
20
|
+
content = File.read(asset_initializer)
|
21
|
+
if content.match(config_asset_insert_line)
|
22
|
+
#set up properly
|
23
|
+
puts "Ensure config/initializers/assets.rb contains this line:\n" + config_asset_insert_line
|
24
|
+
else
|
25
|
+
insert_into_file asset_initializer, config_asset_insert_line, :after => 'config.assets.precompile\n'
|
26
|
+
end
|
27
|
+
else #Assumes Rails 3.1 then...
|
28
|
+
rails_three_config = 'config/environments/production.rb'
|
29
|
+
if File.exists?(rails_three_config) && Rails::VERSION::MAJOR <= 4
|
30
|
+
insert_into_file rails_three_config, config_asset_insert_line, :after => 'config.assets.precompile\n'
|
31
|
+
end
|
32
|
+
end
|
16
33
|
|
17
34
|
if File.exist?(js_manifest)
|
18
35
|
insert_into_file js_manifest, "//= require bootstrap/dist/js/bootstrap\n", :after => "jquery_ujs\n"
|
@@ -23,6 +40,7 @@ module Railsstrap
|
|
23
40
|
if File.exist?(css_manifest)
|
24
41
|
# Add our own require:
|
25
42
|
content = File.read(css_manifest)
|
43
|
+
|
26
44
|
if content.match(/require_tree\s+\.\s*$/)
|
27
45
|
# Good enough - that'll include our bootstrap_and_overrides.css.less
|
28
46
|
else
|
@@ -1,3 +1,14 @@
|
|
1
1
|
jQuery ->
|
2
2
|
$("a[rel~=popover], .has-popover").popover()
|
3
3
|
$("a[rel~=tooltip], .has-tooltip").tooltip()
|
4
|
+
|
5
|
+
|
6
|
+
# # comment this out if you want to add the animation to an element. You may need to handle events for them to work correctly.
|
7
|
+
# # This is just a generic example, your mileage will vary depending on what you're trying to do.
|
8
|
+
# $("[data-animation]") ->
|
9
|
+
# e.preventDefault()
|
10
|
+
# if $(this).data("animation")?
|
11
|
+
# $(this).next().removeClass($(this).data("easein")).addClass "animated " + $(this).data("easein")
|
12
|
+
# else
|
13
|
+
# $(this).next().addClass "animated " + _easeIn
|
14
|
+
# return
|
@@ -1,4 +1,16 @@
|
|
1
|
-
jQuery(function() {
|
2
|
-
|
3
|
-
|
1
|
+
jQuery(function () {
|
2
|
+
$("a[rel~=popover], .has-popover").popover();
|
3
|
+
$("a[rel~=tooltip], .has-tooltip").tooltip();
|
4
|
+
|
5
|
+
// comment this out if you want to add the animation to an element. You may need to handle events for them to work correctly.
|
6
|
+
// This is just a generic example, your mileage will vary depending on what you're trying to do.
|
7
|
+
|
8
|
+
// $("[data-animation]")(function () {
|
9
|
+
// e.preventDefault();
|
10
|
+
// if ($(this).data("animation") != null) {
|
11
|
+
// $(this).next().removeClass($(this).data("easein")).addClass("animated " + $(this).data("easein"));
|
12
|
+
// } else {
|
13
|
+
// $(this).next().addClass("animated " + _easeIn);
|
14
|
+
// }
|
15
|
+
// });
|
4
16
|
});
|
@@ -1,9 +1,9 @@
|
|
1
1
|
/*
|
2
2
|
=require bootstrap/dist/bootstrap.css
|
3
3
|
=require bootstrap/dist/bootstrap-theme.css
|
4
|
-
If you want exotic placement features,
|
5
|
-
=require dist/
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
If you want exotic placement features, animations, and more, uncomment this
|
5
|
+
=require dist/railsstrap.css
|
6
|
+
To use Font Awesome
|
7
|
+
=require fontawesome/css/font-awesome.(min).css
|
8
|
+
To use Gylphicons, you don't have to do anything. Bootstrap includes it by default.
|
9
9
|
*/
|
@@ -1,21 +1,23 @@
|
|
1
1
|
@import "bootstrap/less/bootstrap";
|
2
|
-
//If you want exotic placement features,
|
3
|
-
//@import "
|
2
|
+
//If you want exotic placement features, animations, and more, import this
|
3
|
+
//@import "railsstrap";
|
4
4
|
|
5
5
|
// Font Awesome
|
6
6
|
@import "fontawesome/less/font-awesome";
|
7
7
|
|
8
|
-
// Glyphicons -
|
9
|
-
|
8
|
+
// Glyphicons - included by default in bootstrap.
|
9
|
+
// You may need to customize config/initializers/assets.rb (Rails 4), or config/environments/[env].rb to add font paths in.
|
10
|
+
// In either case of FontAwesome or Glyphicons, the railsstrap:install task should insert the appropriate entries for you.
|
10
11
|
|
11
12
|
// Your custom LESS stylesheets goes here
|
12
13
|
//
|
13
14
|
// Since railsstrap was imported above you have access to its mixins which
|
14
15
|
// you may use and inherit here, ex:
|
15
|
-
// @import "bootstrap/less/mixins/alerts.less
|
16
|
+
// @import "bootstrap/less/mixins/alerts.less;
|
16
17
|
//
|
17
18
|
// If you'd like to override railsstrap's own variables, you can do so here as well
|
18
19
|
// See http://bootstrap.github.com/bootstrap/customize.html#variables for their names and documentation
|
19
20
|
//
|
20
21
|
// Example:
|
22
|
+
// @import (reference) 'bootstrap/less/variables.less';
|
21
23
|
// @link-color: #ff0000;
|
data/lib/railsstrap/constants.rb
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/*!
|
4
|
+
Animate.css - http://daneden.me/animate
|
5
|
+
Licensed under the MIT license
|
6
|
+
|
7
|
+
Copyright (c) 2013 Daniel Eden
|
8
|
+
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
|
+
*/
|
15
|
+
|
16
|
+
.animated {
|
17
|
+
-webkit-animation-duration: 0.6s;
|
18
|
+
animation-duration: 0.6s;
|
19
|
+
-webkit-animation-fill-mode: both;
|
20
|
+
animation-fill-mode: both;
|
21
|
+
}
|
22
|
+
|
23
|
+
.animated.infinite {
|
24
|
+
-webkit-animation-iteration-count: infinite;
|
25
|
+
animation-iteration-count: infinite;
|
26
|
+
}
|
27
|
+
|
28
|
+
.animated.hinge {
|
29
|
+
-webkit-animation-duration: 2s;
|
30
|
+
animation-duration: 2s;
|
31
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
@-webkit-keyframes bounce {
|
2
|
+
0%, 20%, 50%, 80%, 100% {
|
3
|
+
-webkit-transform: translateY(0);
|
4
|
+
transform: translateY(0);
|
5
|
+
}
|
6
|
+
|
7
|
+
40% {
|
8
|
+
-webkit-transform: translateY(-30px);
|
9
|
+
transform: translateY(-30px);
|
10
|
+
}
|
11
|
+
|
12
|
+
60% {
|
13
|
+
-webkit-transform: translateY(-15px);
|
14
|
+
transform: translateY(-15px);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
@keyframes bounce {
|
19
|
+
0%, 20%, 50%, 80%, 100% {
|
20
|
+
-webkit-transform: translateY(0);
|
21
|
+
-ms-transform: translateY(0);
|
22
|
+
transform: translateY(0);
|
23
|
+
}
|
24
|
+
|
25
|
+
40% {
|
26
|
+
-webkit-transform: translateY(-30px);
|
27
|
+
-ms-transform: translateY(-30px);
|
28
|
+
transform: translateY(-30px);
|
29
|
+
}
|
30
|
+
|
31
|
+
60% {
|
32
|
+
-webkit-transform: translateY(-15px);
|
33
|
+
-ms-transform: translateY(-15px);
|
34
|
+
transform: translateY(-15px);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
.bounce {
|
39
|
+
-webkit-animation-name: bounce;
|
40
|
+
animation-name: bounce;
|
41
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
@-webkit-keyframes bounceIn {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
-webkit-transform: scale(.3);
|
5
|
+
transform: scale(.3);
|
6
|
+
}
|
7
|
+
|
8
|
+
50% {
|
9
|
+
opacity: 1;
|
10
|
+
-webkit-transform: scale(1.05);
|
11
|
+
transform: scale(1.05);
|
12
|
+
}
|
13
|
+
|
14
|
+
70% {
|
15
|
+
-webkit-transform: scale(.9);
|
16
|
+
transform: scale(.9);
|
17
|
+
}
|
18
|
+
|
19
|
+
100% {
|
20
|
+
opacity: 1;
|
21
|
+
-webkit-transform: scale(1);
|
22
|
+
transform: scale(1);
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
@keyframes bounceIn {
|
27
|
+
0% {
|
28
|
+
opacity: 0;
|
29
|
+
-webkit-transform: scale(.3);
|
30
|
+
-ms-transform: scale(.3);
|
31
|
+
transform: scale(.3);
|
32
|
+
}
|
33
|
+
|
34
|
+
50% {
|
35
|
+
opacity: 1;
|
36
|
+
-webkit-transform: scale(1.05);
|
37
|
+
-ms-transform: scale(1.05);
|
38
|
+
transform: scale(1.05);
|
39
|
+
}
|
40
|
+
|
41
|
+
70% {
|
42
|
+
-webkit-transform: scale(.9);
|
43
|
+
-ms-transform: scale(.9);
|
44
|
+
transform: scale(.9);
|
45
|
+
}
|
46
|
+
|
47
|
+
100% {
|
48
|
+
opacity: 1;
|
49
|
+
-webkit-transform: scale(1);
|
50
|
+
-ms-transform: scale(1);
|
51
|
+
transform: scale(1);
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
.bounceIn {
|
56
|
+
-webkit-animation-name: bounceIn;
|
57
|
+
animation-name: bounceIn;
|
58
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
@-webkit-keyframes bounceInDown {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
-webkit-transform: translateY(-2000px);
|
5
|
+
transform: translateY(-2000px);
|
6
|
+
}
|
7
|
+
|
8
|
+
60% {
|
9
|
+
opacity: 1;
|
10
|
+
-webkit-transform: translateY(30px);
|
11
|
+
transform: translateY(30px);
|
12
|
+
}
|
13
|
+
|
14
|
+
80% {
|
15
|
+
-webkit-transform: translateY(-10px);
|
16
|
+
transform: translateY(-10px);
|
17
|
+
}
|
18
|
+
|
19
|
+
100% {
|
20
|
+
-webkit-transform: translateY(0);
|
21
|
+
transform: translateY(0);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
@keyframes bounceInDown {
|
26
|
+
0% {
|
27
|
+
opacity: 0;
|
28
|
+
-webkit-transform: translateY(-2000px);
|
29
|
+
-ms-transform: translateY(-2000px);
|
30
|
+
transform: translateY(-2000px);
|
31
|
+
}
|
32
|
+
|
33
|
+
60% {
|
34
|
+
opacity: 1;
|
35
|
+
-webkit-transform: translateY(30px);
|
36
|
+
-ms-transform: translateY(30px);
|
37
|
+
transform: translateY(30px);
|
38
|
+
}
|
39
|
+
|
40
|
+
80% {
|
41
|
+
-webkit-transform: translateY(-10px);
|
42
|
+
-ms-transform: translateY(-10px);
|
43
|
+
transform: translateY(-10px);
|
44
|
+
}
|
45
|
+
|
46
|
+
100% {
|
47
|
+
-webkit-transform: translateY(0);
|
48
|
+
-ms-transform: translateY(0);
|
49
|
+
transform: translateY(0);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
.bounceInDown {
|
54
|
+
-webkit-animation-name: bounceInDown;
|
55
|
+
animation-name: bounceInDown;
|
56
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
@-webkit-keyframes bounceInLeft {
|
2
|
+
0% {
|
3
|
+
opacity: 0;
|
4
|
+
-webkit-transform: translateX(-2000px);
|
5
|
+
transform: translateX(-2000px);
|
6
|
+
}
|
7
|
+
|
8
|
+
60% {
|
9
|
+
opacity: 1;
|
10
|
+
-webkit-transform: translateX(30px);
|
11
|
+
transform: translateX(30px);
|
12
|
+
}
|
13
|
+
|
14
|
+
80% {
|
15
|
+
-webkit-transform: translateX(-10px);
|
16
|
+
transform: translateX(-10px);
|
17
|
+
}
|
18
|
+
|
19
|
+
100% {
|
20
|
+
-webkit-transform: translateX(0);
|
21
|
+
transform: translateX(0);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
@keyframes bounceInLeft {
|
26
|
+
0% {
|
27
|
+
opacity: 0;
|
28
|
+
-webkit-transform: translateX(-2000px);
|
29
|
+
-ms-transform: translateX(-2000px);
|
30
|
+
transform: translateX(-2000px);
|
31
|
+
}
|
32
|
+
|
33
|
+
60% {
|
34
|
+
opacity: 1;
|
35
|
+
-webkit-transform: translateX(30px);
|
36
|
+
-ms-transform: translateX(30px);
|
37
|
+
transform: translateX(30px);
|
38
|
+
}
|
39
|
+
|
40
|
+
80% {
|
41
|
+
-webkit-transform: translateX(-10px);
|
42
|
+
-ms-transform: translateX(-10px);
|
43
|
+
transform: translateX(-10px);
|
44
|
+
}
|
45
|
+
|
46
|
+
100% {
|
47
|
+
-webkit-transform: translateX(0);
|
48
|
+
-ms-transform: translateX(0);
|
49
|
+
transform: translateX(0);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
.bounceInLeft {
|
54
|
+
-webkit-animation-name: bounceInLeft;
|
55
|
+
animation-name: bounceInLeft;
|
56
|
+
}
|