roots-rails 0.0.1.alpha
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/lib/generators/roots/framework_generator.rb +28 -0
- data/lib/generators/roots/install_generator.rb +36 -0
- data/lib/generators/templates/favicon.ico +0 -0
- data/lib/generators/templates/images/apple-touch-icon-114x114.png +0 -0
- data/lib/generators/templates/images/apple-touch-icon-72x72.png +0 -0
- data/lib/generators/templates/images/apple-touch-icon.png +0 -0
- data/lib/generators/templates/images/preview.png +0 -0
- data/lib/generators/templates/layouts/application.sass +23 -0
- data/lib/generators/templates/layouts/config.html.haml +57 -0
- data/lib/generators/templates/layouts/layout.html.haml +26 -0
- data/lib/generators/templates/noise.png +0 -0
- data/lib/generators/templates/sass/modules/_animation.sass +454 -0
- data/lib/generators/templates/sass/modules/_buttons.sass +233 -0
- data/lib/generators/templates/sass/modules/_code.sass +41 -0
- data/lib/generators/templates/sass/modules/_forms.sass +209 -0
- data/lib/generators/templates/sass/modules/_interaction.sass +89 -0
- data/lib/generators/templates/sass/modules/_reset.sass +238 -0
- data/lib/generators/templates/sass/modules/_tables.sass +76 -0
- data/lib/generators/templates/sass/modules/_typography.sass +367 -0
- data/lib/generators/templates/sass/modules/_ui.sass +205 -0
- data/lib/generators/templates/sass/modules/_utilities.sass +372 -0
- data/lib/generators/templates/sass/roots.sass +54 -0
- data/lib/generators/templates/scripts/pie.htc +96 -0
- data/lib/generators/templates/scripts/selectivizr.js +5 -0
- data/lib/roots.rb +6 -0
- data/lib/roots/engine.rb +6 -0
- data/lib/roots/version.rb +4 -0
- data/readme.md +24 -0
- data/roots-rails.gemspec +28 -0
- data/vendor/assets/stylesheets/modules/_animation.sass +454 -0
- data/vendor/assets/stylesheets/modules/_buttons.sass +233 -0
- data/vendor/assets/stylesheets/modules/_code.sass +41 -0
- data/vendor/assets/stylesheets/modules/_fluid.sass +160 -0
- data/vendor/assets/stylesheets/modules/_forms.sass +209 -0
- data/vendor/assets/stylesheets/modules/_interaction.sass +89 -0
- data/vendor/assets/stylesheets/modules/_reset.sass +238 -0
- data/vendor/assets/stylesheets/modules/_tables.sass +76 -0
- data/vendor/assets/stylesheets/modules/_typography.sass +367 -0
- data/vendor/assets/stylesheets/modules/_ui.sass +205 -0
- data/vendor/assets/stylesheets/modules/_utilities.sass +372 -0
- data/vendor/assets/stylesheets/roots.sass +57 -0
- metadata +132 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
module Roots
|
3
|
+
module Generators
|
4
|
+
class FrameworkGenerator < Rails::Generators::Base
|
5
|
+
desc "Places roots in your asset pipeline so you can edit it"
|
6
|
+
source_root File.expand_path('../../templates', __FILE__)
|
7
|
+
|
8
|
+
def generate
|
9
|
+
say_notice = false
|
10
|
+
|
11
|
+
if yes? "This will replace your application.css file - is this ok / have you backed it up? [y/n]", "\e[31m"
|
12
|
+
|
13
|
+
if File.exist? "app/assets/stylesheets/application.css"
|
14
|
+
remove_file "app/assets/stylesheets/application.css"
|
15
|
+
copy_file "layouts/application.sass", "app/assets/stylesheets/application.sass"
|
16
|
+
say_notice = true
|
17
|
+
end
|
18
|
+
|
19
|
+
directory "sass", "app/assets/stylesheets"
|
20
|
+
end
|
21
|
+
|
22
|
+
say "\nComplete! Make sure to visit application.sass to configure.\n\n", "\e[32m" if say_notice
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
|
2
|
+
module Roots
|
3
|
+
module Generators
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
desc "Loads sass framework, replaces layout, removes public/index.html"
|
6
|
+
source_root File.expand_path('../../templates', __FILE__)
|
7
|
+
|
8
|
+
def replace_layout
|
9
|
+
remove_file "app/views/layouts/application.html.erb"
|
10
|
+
copy_file "layouts/layout.html.haml", "app/views/layouts/application.html.haml"
|
11
|
+
copy_file "layouts/config.html.haml", "app/views/layouts/_config.html.haml"
|
12
|
+
end
|
13
|
+
|
14
|
+
def replace_application_css
|
15
|
+
remove_file "app/assets/stylesheets/application.css"
|
16
|
+
copy_file "layouts/application.sass", "app/assets/stylesheets/application.sass"
|
17
|
+
end
|
18
|
+
|
19
|
+
def install_dependencies
|
20
|
+
copy_file "scripts/selectivizr.js", "vendor/assets/javascripts/selectivizr.js"
|
21
|
+
copy_file "scripts/pie.htc", "vendor/assets/javascripts/pie.htc"
|
22
|
+
remove_file "public/favicon.ico"
|
23
|
+
copy_file "favicon.ico", "public/favicon.ico"
|
24
|
+
directory "images", "public/roots"
|
25
|
+
copy_file "noise.png", "app/assets/images/noise.png"
|
26
|
+
end
|
27
|
+
|
28
|
+
def remove_defaults
|
29
|
+
remove_file "app/assets/rails.png"
|
30
|
+
remove_file "public/index.html"
|
31
|
+
say "\nComplete! Make sure to visit these two files to configure things: \n - app/views/layouts/config.html.haml\n - app/assets/stylesheets/application.sass\n\n", "\e[32m"
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// This is roots' version of the application file. You will have to
|
2
|
+
// manually load each stylsheet that you want to use here (this is a
|
3
|
+
// best practice anyway, gives you control over what's included and in
|
4
|
+
// what order). Just use an @import directive like is done below.
|
5
|
+
|
6
|
+
@import "roots"
|
7
|
+
|
8
|
+
// Uncomment only one of these - first one removes all default browser styles
|
9
|
+
// and the second is a port of normalize.css (http://necolas.github.com/normalize.css/)
|
10
|
+
|
11
|
+
// +global-reset
|
12
|
+
// +normalize
|
13
|
+
|
14
|
+
// If you uncomment this line, it will load roots styles on to default elements, much
|
15
|
+
// like a traditional css framework. If you don't want to replace everything, it can
|
16
|
+
// be broken down into many sub-mixins, which can be found in the file _roots.sass.
|
17
|
+
// It is *strongly recommended* to at very least use +base.
|
18
|
+
|
19
|
+
// +framework
|
20
|
+
|
21
|
+
// ------------------------------
|
22
|
+
// @import your stylsheets here
|
23
|
+
// ------------------------------
|
@@ -0,0 +1,57 @@
|
|
1
|
+
%meta{ :charset => 'utf8' }
|
2
|
+
%meta{ 'http-equiv' => 'X-UA-Compatible', :content => 'IE=edge, chrome=1' }
|
3
|
+
|
4
|
+
-# -----------------------------------------------------
|
5
|
+
-# CONFIGURATION: This is important stuff, do it first!
|
6
|
+
-# -----------------------------------------------------
|
7
|
+
|
8
|
+
- title = "Your page title here"
|
9
|
+
- author = "Your name or company name"
|
10
|
+
- description = "Short description of your site"
|
11
|
+
- url = "http://example.com"
|
12
|
+
- preview_image = "/roots/preview.png" # 75x75 square. if you really can't, pass false
|
13
|
+
|
14
|
+
- favicons = true # see section below for size details
|
15
|
+
- facebook_tags = true
|
16
|
+
- mobile_site = false
|
17
|
+
- ie_app = true
|
18
|
+
|
19
|
+
-# -----------------------------------------------------
|
20
|
+
|
21
|
+
%title= title
|
22
|
+
%meta{ :name => 'description', :content => "#{description}" }
|
23
|
+
%meta{ :name => 'author', :content => "#{author}" }
|
24
|
+
|
25
|
+
- if favicons
|
26
|
+
-# 16x16, .ico
|
27
|
+
%link{ :rel => "shortcut icon", :href => "/favicon.ico" }
|
28
|
+
-# 57x57, .png
|
29
|
+
%link{ :rel => "apple-touch-icon", :href => "/roots/apple-touch-icon.png" }
|
30
|
+
-# 72x72, .png
|
31
|
+
%link{ :rel => "apple-touch-icon", :sizes => "72x72", :href => "/roots/apple-touch-icon-72x72.png" }
|
32
|
+
-# 114x114, .png
|
33
|
+
%link{ :rel => "apple-touch-icon", :sizes => "114x114", :href => "/roots/apple-touch-icon-114x114.png" }
|
34
|
+
|
35
|
+
- if facebook_tags
|
36
|
+
%meta{ property: 'og:title', content: "#{title}"}
|
37
|
+
%meta{ property: 'og:description', content: "#{description}"}
|
38
|
+
%meta{ property: 'og:image', content: "#{preview_image}"}
|
39
|
+
%meta{ property: 'og:url', content: "#{url}" }
|
40
|
+
-# more than just a website? Docs @ http://developers.facebook.com/docs/opengraph/objects/builtin/
|
41
|
+
%meta{ property: 'og:type', content: 'website' }
|
42
|
+
|
43
|
+
- if mobile_site
|
44
|
+
%meta{ :name => 'viewport', :content => 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' }
|
45
|
+
|
46
|
+
- if ie_app
|
47
|
+
-# You can get more detailed with this if you want. Docs @ http://msdn.microsoft.com/en-us/library/gg131029.aspx
|
48
|
+
%meta{ name: "application-name", content: "#{title}" }
|
49
|
+
%meta{ name: "msapplication-starturl", content: "#{url}" }
|
50
|
+
-# by all means, change this color
|
51
|
+
%meta{ name: "msapplication-navbutton-color", content: "#E88F4E" }
|
52
|
+
|
53
|
+
-# ---------------------------------------------------------------------------
|
54
|
+
-# Any other stuff you need in the head goes here! (fonts, stylesheets, etc.)
|
55
|
+
-# ---------------------------------------------------------------------------
|
56
|
+
-# NOTE: Script loads are blocking. It's recommended to load javascript at the bottom
|
57
|
+
-# of the page unless it's something like a webfont.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
!!! 5
|
2
|
+
%head
|
3
|
+
= render 'layouts/config'
|
4
|
+
= stylesheet_link_tag 'application'
|
5
|
+
|
6
|
+
-# JS resources - not yet ready
|
7
|
+
-# resources = %w[ modal tooltip tabs alerts selection slider scrollspy imgfade spinner ]
|
8
|
+
|
9
|
+
-# ------------------------------------------------------------------------------------------
|
10
|
+
|
11
|
+
%body
|
12
|
+
= yield
|
13
|
+
|
14
|
+
-# ------------------------------------------------------------------------------------------
|
15
|
+
|
16
|
+
-# project resources - not yet ready
|
17
|
+
-# resources.each do |r|
|
18
|
+
-# %script{ src: "script/#{r}.js" }
|
19
|
+
|
20
|
+
-# help IE out with advanced selectors (http://selectivizr.com/)
|
21
|
+
/[if (gte IE6)&(lte IE8)]
|
22
|
+
=javascript_include_tag 'selectivizr.js'
|
23
|
+
|
24
|
+
=javascript_include_tag 'application'
|
25
|
+
|
26
|
+
|
Binary file
|
@@ -0,0 +1,454 @@
|
|
1
|
+
// ------------------------------
|
2
|
+
// Preset animations
|
3
|
+
// ------------------------------
|
4
|
+
|
5
|
+
// Ported directly from Eric Meyer's compass-animation module, which was adapted from Dan Eden's animate.css
|
6
|
+
// https://github.com/ericam/compass-animation
|
7
|
+
// http://daneden.me/animate/
|
8
|
+
|
9
|
+
// Includes: flash, bounce, shake, tada, swing, wobble, pulse, hinge,
|
10
|
+
// rollIn/Out, bounceIn/Out(Up/Down/Left/Right), fadeIn/Out(Up/Down/Left/Right), and
|
11
|
+
// rotateIn/Out(Up/Down/Left/Right)
|
12
|
+
|
13
|
+
// Excludes the "big" animations because they are atrocious and should never be used.
|
14
|
+
// Will include more custom-written ones in the future
|
15
|
+
|
16
|
+
+keyframes(flash)
|
17
|
+
0%
|
18
|
+
opacity: 1
|
19
|
+
25%
|
20
|
+
opacity: 0
|
21
|
+
50%
|
22
|
+
opacity: 1
|
23
|
+
75%
|
24
|
+
opacity: 0
|
25
|
+
100%
|
26
|
+
opacity: 1
|
27
|
+
|
28
|
+
+keyframes(bounce)
|
29
|
+
0%
|
30
|
+
+translateY(0)
|
31
|
+
20%
|
32
|
+
+translateY(0)
|
33
|
+
40%
|
34
|
+
+translateY(-30px)
|
35
|
+
50%
|
36
|
+
+translateY(0)
|
37
|
+
60%
|
38
|
+
+translateY(-15px)
|
39
|
+
80%
|
40
|
+
+translateY(0)
|
41
|
+
100%
|
42
|
+
+translateY(0)
|
43
|
+
|
44
|
+
+keyframes(shake)
|
45
|
+
0%
|
46
|
+
+translateX(0)
|
47
|
+
10%
|
48
|
+
+translateX(-10px)
|
49
|
+
20%
|
50
|
+
+translateX(10px)
|
51
|
+
30%
|
52
|
+
+translateX(-10px)
|
53
|
+
40%
|
54
|
+
+translateX(10px)
|
55
|
+
50%
|
56
|
+
+translateX(-10px)
|
57
|
+
60%
|
58
|
+
+translateX(10px)
|
59
|
+
70%
|
60
|
+
+translateX(-10px)
|
61
|
+
80%
|
62
|
+
+translateX(10px)
|
63
|
+
90%
|
64
|
+
+translateX(-10px)
|
65
|
+
100%
|
66
|
+
+translateX(0)
|
67
|
+
|
68
|
+
+keyframes(tada)
|
69
|
+
0%
|
70
|
+
+scale(1)
|
71
|
+
10%
|
72
|
+
+transform(scale(0.9) rotate(-3deg))
|
73
|
+
20%
|
74
|
+
+transform(scale(0.9) rotate(-3deg))
|
75
|
+
30%
|
76
|
+
+transform(scale(1.1) rotate(3deg))
|
77
|
+
40%
|
78
|
+
+transform(scale(1.1) rotate(-3deg))
|
79
|
+
50%
|
80
|
+
+transform(scale(1.1) rotate(3deg))
|
81
|
+
60%
|
82
|
+
+transform(scale(1.1) rotate(-3deg))
|
83
|
+
70%
|
84
|
+
+transform(scale(1.1) rotate(3deg))
|
85
|
+
80%
|
86
|
+
+transform(scale(1.1) rotate(-3deg))
|
87
|
+
90%
|
88
|
+
+transform(scale(1.1) rotate(3deg))
|
89
|
+
100%
|
90
|
+
+transform(scale(1) rotate(0))
|
91
|
+
|
92
|
+
+keyframes(swing)
|
93
|
+
20%, 40%, 60%, 80%, 100%
|
94
|
+
+transform-origin(top center)
|
95
|
+
20%
|
96
|
+
+rotate(15deg)
|
97
|
+
40%
|
98
|
+
+rotate(-10deg)
|
99
|
+
60%
|
100
|
+
+rotate(5deg)
|
101
|
+
80%
|
102
|
+
+rotate(-5deg)
|
103
|
+
100%
|
104
|
+
+rotate(0deg)
|
105
|
+
|
106
|
+
+keyframes(wobble)
|
107
|
+
0%
|
108
|
+
+translateX(0%)
|
109
|
+
15%
|
110
|
+
+transform(translateX(-25%) rotate(-5deg))
|
111
|
+
30%
|
112
|
+
+transform(translateX(20%) rotate(3deg))
|
113
|
+
45%
|
114
|
+
+transform(translateX(-15%) rotate(-3deg))
|
115
|
+
60%
|
116
|
+
+transform(translateX(10%) rotate(2deg))
|
117
|
+
75%
|
118
|
+
+transform(translateX(-5%) rotate(-1deg))
|
119
|
+
100%
|
120
|
+
+transform(translateX(0%))
|
121
|
+
|
122
|
+
+keyframes(pulse)
|
123
|
+
0%
|
124
|
+
+scale(1)
|
125
|
+
50%
|
126
|
+
+scale(1.1)
|
127
|
+
100%
|
128
|
+
+scale(1)
|
129
|
+
|
130
|
+
+keyframes(hinge)
|
131
|
+
0%
|
132
|
+
+rotate(0)
|
133
|
+
+transform-origin(top left)
|
134
|
+
+animation-timing-function(ease-in-out)
|
135
|
+
20%, 60%
|
136
|
+
+rotate(80deg)
|
137
|
+
+transform-origin(top left)
|
138
|
+
+animation-timing-function(ease-in-out)
|
139
|
+
40%
|
140
|
+
+rotate(60deg)
|
141
|
+
+transform-origin(top left)
|
142
|
+
+animation-timing-function(ease-in-out)
|
143
|
+
80%
|
144
|
+
+transform(rotate(60deg) translateY(0))
|
145
|
+
+opacity(1)
|
146
|
+
+transform-origin(top left)
|
147
|
+
+animation-timing-function(ease-in-out)
|
148
|
+
100%
|
149
|
+
+translateY(700px)
|
150
|
+
+opacity(0)
|
151
|
+
|
152
|
+
+keyframes(rollIn)
|
153
|
+
0%
|
154
|
+
+opacity(0)
|
155
|
+
+transform(translateX(-100%) rotate(-120deg))
|
156
|
+
100%
|
157
|
+
+opacity(1)
|
158
|
+
+transform(translateX(0px) rotate(0deg))
|
159
|
+
|
160
|
+
+keyframes(rollOut)
|
161
|
+
0%
|
162
|
+
+opacity(1)
|
163
|
+
+transform(translateX(0px) rotate(0deg))
|
164
|
+
100%
|
165
|
+
+opacity(0)
|
166
|
+
+transform(translateX(-100%) rotate(-120deg))
|
167
|
+
|
168
|
+
+keyframes(bounceIn)
|
169
|
+
0%
|
170
|
+
opacity: 0
|
171
|
+
+scale(0.3)
|
172
|
+
50%
|
173
|
+
opacity: 1
|
174
|
+
+scale(1.05)
|
175
|
+
70%
|
176
|
+
+scale(0.9)
|
177
|
+
100%
|
178
|
+
+scale(1)
|
179
|
+
|
180
|
+
+keyframes(bounceInDown)
|
181
|
+
0%
|
182
|
+
opacity: 0
|
183
|
+
+translateY(-2000px)
|
184
|
+
60%
|
185
|
+
opacity: 1
|
186
|
+
+translateY(30px)
|
187
|
+
80%
|
188
|
+
+translateY(-10px)
|
189
|
+
100%
|
190
|
+
+translateY(0)
|
191
|
+
|
192
|
+
+keyframes(bounceInUp)
|
193
|
+
0%
|
194
|
+
opacity: 0
|
195
|
+
+translateY(2000px)
|
196
|
+
60%
|
197
|
+
opacity: 1
|
198
|
+
+translateY(-30px)
|
199
|
+
80%
|
200
|
+
+translateY(10px)
|
201
|
+
100%
|
202
|
+
+translateY(0)
|
203
|
+
|
204
|
+
+keyframes(bounceInRight)
|
205
|
+
0%
|
206
|
+
opacity: 0
|
207
|
+
+translateX(2000px)
|
208
|
+
60%
|
209
|
+
opacity: 1
|
210
|
+
+translateX(-30px)
|
211
|
+
80%
|
212
|
+
+translateX(10px)
|
213
|
+
100%
|
214
|
+
+translateX(0)
|
215
|
+
|
216
|
+
+keyframes(bounceInLeft)
|
217
|
+
0%
|
218
|
+
opacity: 0
|
219
|
+
+translateX(-2000px)
|
220
|
+
60%
|
221
|
+
opacity: 1
|
222
|
+
+translateX(30px)
|
223
|
+
80%
|
224
|
+
+translateX(-10px)
|
225
|
+
100%
|
226
|
+
+translateX(0)
|
227
|
+
|
228
|
+
+keyframes(bounceOut)
|
229
|
+
0%
|
230
|
+
+scale(1)
|
231
|
+
25%
|
232
|
+
+scale(0.95)
|
233
|
+
50%
|
234
|
+
opacity: 1
|
235
|
+
+scale(1.1)
|
236
|
+
100%
|
237
|
+
opacity: 0
|
238
|
+
+scale(0.3)
|
239
|
+
|
240
|
+
+keyframes(bounceOutUp)
|
241
|
+
0%
|
242
|
+
+translateY(0)
|
243
|
+
20%
|
244
|
+
opacity: 1
|
245
|
+
+translateY(20px)
|
246
|
+
100%
|
247
|
+
opacity: 0
|
248
|
+
+translateY(-2000px)
|
249
|
+
|
250
|
+
+keyframes(bounceOutDown)
|
251
|
+
0%
|
252
|
+
+translateY(0)
|
253
|
+
20%
|
254
|
+
opacity: 1
|
255
|
+
+translateY(-20px)
|
256
|
+
100%
|
257
|
+
opacity: 0
|
258
|
+
+translateY(2000px)
|
259
|
+
|
260
|
+
+keyframes(bounceOutLeft)
|
261
|
+
0%
|
262
|
+
+translateX(0)
|
263
|
+
20%
|
264
|
+
opacity: 1
|
265
|
+
+translateX(20px)
|
266
|
+
100%
|
267
|
+
opacity: 0
|
268
|
+
+translateX(-2000px)
|
269
|
+
|
270
|
+
+keyframes(bounceOutRight)
|
271
|
+
0%
|
272
|
+
+translateX(0)
|
273
|
+
20%
|
274
|
+
opacity: 1
|
275
|
+
+translateX(-20px)
|
276
|
+
100%
|
277
|
+
opacity: 0
|
278
|
+
+translateX(2000px)
|
279
|
+
|
280
|
+
+keyframes(fadeIn)
|
281
|
+
0%
|
282
|
+
opacity: 0
|
283
|
+
100%
|
284
|
+
opacity: 1
|
285
|
+
|
286
|
+
+keyframes(fadeInUp)
|
287
|
+
0%
|
288
|
+
+translateY(20px)
|
289
|
+
opacity: 0
|
290
|
+
100%
|
291
|
+
+translateY(0)
|
292
|
+
opacity: 1
|
293
|
+
|
294
|
+
+keyframes(fadeInDown)
|
295
|
+
0%
|
296
|
+
+translateY(-20px)
|
297
|
+
opacity: 0
|
298
|
+
100%
|
299
|
+
+translateY(0)
|
300
|
+
opacity: 1
|
301
|
+
|
302
|
+
+keyframes(fadeInRight)
|
303
|
+
0%
|
304
|
+
+translateX(20px)
|
305
|
+
opacity: 0
|
306
|
+
100%
|
307
|
+
+translateX(0)
|
308
|
+
opacity: 1
|
309
|
+
|
310
|
+
+keyframes(fadeInLeft)
|
311
|
+
0%
|
312
|
+
+translateX(-20px)
|
313
|
+
opacity: 0
|
314
|
+
100%
|
315
|
+
+translateX(0)
|
316
|
+
opacity: 1
|
317
|
+
|
318
|
+
+keyframes(fadeOut)
|
319
|
+
0%
|
320
|
+
opacity: 1
|
321
|
+
100%
|
322
|
+
opacity: 0
|
323
|
+
|
324
|
+
+keyframes(fadeOutUp)
|
325
|
+
0%
|
326
|
+
+translateY(0)
|
327
|
+
opacity: 1
|
328
|
+
100%
|
329
|
+
+translateY(-20px)
|
330
|
+
opacity: 0
|
331
|
+
|
332
|
+
+keyframes(fadeOutDown)
|
333
|
+
0%
|
334
|
+
+translateY(0)
|
335
|
+
opacity: 1
|
336
|
+
100%
|
337
|
+
+translateY(20px)
|
338
|
+
opacity: 0
|
339
|
+
|
340
|
+
+keyframes(fadeOutRight)
|
341
|
+
0%
|
342
|
+
+translateX(0)
|
343
|
+
opacity: 1
|
344
|
+
100%
|
345
|
+
+translateX(20px)
|
346
|
+
opacity: 0
|
347
|
+
|
348
|
+
+keyframes(fadeOutLeft)
|
349
|
+
0%
|
350
|
+
+translateX(0)
|
351
|
+
opacity: 1
|
352
|
+
100%
|
353
|
+
+translateX(-20px)
|
354
|
+
opacity: 0
|
355
|
+
|
356
|
+
+keyframes(rotateIn)
|
357
|
+
0%
|
358
|
+
+transform-origin(center center)
|
359
|
+
+rotate(-200deg)
|
360
|
+
opacity: 0
|
361
|
+
100%
|
362
|
+
+transform-origin(center center)
|
363
|
+
+rotate(0)
|
364
|
+
opacity: 1
|
365
|
+
|
366
|
+
+keyframes(rotateInDownLeft)
|
367
|
+
0%
|
368
|
+
+transform-origin(left bottom)
|
369
|
+
+rotate(-90deg)
|
370
|
+
opacity: 0
|
371
|
+
100%
|
372
|
+
+transform-origin(left bottom)
|
373
|
+
+rotate(0)
|
374
|
+
opacity: 1
|
375
|
+
|
376
|
+
+keyframes(rotateInUpLeft)
|
377
|
+
0%
|
378
|
+
+transform-origin(left bottom)
|
379
|
+
+rotate(90deg)
|
380
|
+
opacity: 0
|
381
|
+
100%
|
382
|
+
+transform-origin(left bottom)
|
383
|
+
+rotate(0)
|
384
|
+
opacity: 1
|
385
|
+
|
386
|
+
+keyframes(rotateInUpRight)
|
387
|
+
0%
|
388
|
+
+transform-origin(right bottom)
|
389
|
+
+rotate(-90deg)
|
390
|
+
opacity: 0
|
391
|
+
100%
|
392
|
+
+transform-origin(right bottom)
|
393
|
+
+rotate(0)
|
394
|
+
opacity: 1
|
395
|
+
|
396
|
+
+keyframes(rotateInDownRight)
|
397
|
+
0%
|
398
|
+
+transform-origin(right bottom)
|
399
|
+
+rotate(90deg)
|
400
|
+
opacity: 0
|
401
|
+
100%
|
402
|
+
+transform-origin(right bottom)
|
403
|
+
+rotate(0)
|
404
|
+
opacity: 1
|
405
|
+
|
406
|
+
+keyframes(rotateOut)
|
407
|
+
0%
|
408
|
+
+transform-origin(center center)
|
409
|
+
+rotate(0)
|
410
|
+
opacity: 1
|
411
|
+
100%
|
412
|
+
+transform-origin(center center)
|
413
|
+
+rotate(200deg)
|
414
|
+
opacity: 0
|
415
|
+
|
416
|
+
+keyframes(rotateOutDownLeft)
|
417
|
+
0%
|
418
|
+
+transform-origin(left bottom)
|
419
|
+
+rotate(0)
|
420
|
+
opacity: 1
|
421
|
+
100%
|
422
|
+
+transform-origin(left bottom)
|
423
|
+
+rotate(90deg)
|
424
|
+
opacity: 0
|
425
|
+
|
426
|
+
+keyframes(rotateOutUpLeft)
|
427
|
+
0%
|
428
|
+
+transform-origin(left bottom)
|
429
|
+
+rotate(0)
|
430
|
+
opacity: 1
|
431
|
+
100%
|
432
|
+
+transform-origin(left bottom)
|
433
|
+
+rotate(-90deg)
|
434
|
+
opacity: 0
|
435
|
+
|
436
|
+
+keyframes(rotateOutDownRight)
|
437
|
+
0%
|
438
|
+
+transform-origin(right bottom)
|
439
|
+
+rotate(0)
|
440
|
+
opacity: 1
|
441
|
+
100%
|
442
|
+
+transform-origin(right bottom)
|
443
|
+
+rotate(-90deg)
|
444
|
+
opacity: 0
|
445
|
+
|
446
|
+
+keyframes(rotateOutUpRight)
|
447
|
+
0%
|
448
|
+
+transform-origin(right bottom)
|
449
|
+
+rotate(0)
|
450
|
+
opacity: 1
|
451
|
+
100%
|
452
|
+
+transform-origin(right bottom)
|
453
|
+
+rotate(90deg)
|
454
|
+
opacity: 0
|