compass 0.12.1 → 0.12.2.rc.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. data/README.markdown +15 -45
  2. data/VERSION.yml +3 -1
  3. data/features/command_line.feature +1 -0
  4. data/frameworks/compass/stylesheets/compass/_css3.scss +1 -0
  5. data/frameworks/compass/stylesheets/compass/css3/_appearance.scss +6 -3
  6. data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +4 -10
  7. data/frameworks/compass/stylesheets/compass/css3/_columns.scss +18 -7
  8. data/frameworks/compass/stylesheets/compass/css3/_regions.scss +22 -0
  9. data/frameworks/compass/stylesheets/compass/css3/_transform.scss +6 -6
  10. data/frameworks/compass/stylesheets/compass/reset/_utilities.scss +4 -2
  11. data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +19 -11
  12. data/frameworks/compass/stylesheets/compass/typography/text/_replacement.scss +25 -5
  13. data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +1 -1
  14. data/lib/compass/commands.rb +4 -3
  15. data/lib/compass/commands/extension_command.rb +60 -0
  16. data/lib/compass/configuration/adapters.rb +8 -2
  17. data/lib/compass/configuration/data.rb +1 -0
  18. data/lib/compass/exec/global_options_parser.rb +8 -1
  19. data/lib/compass/sass_extensions/functions/sprites.rb +10 -2
  20. data/lib/compass/version.rb +2 -1
  21. data/test/fixtures/stylesheets/blueprint/css/screen.css +2 -2
  22. data/test/fixtures/stylesheets/compass/css/border_radius.css +0 -6
  23. data/test/fixtures/stylesheets/compass/css/columns.css +15 -0
  24. data/test/fixtures/stylesheets/compass/css/regions.css +7 -0
  25. data/test/fixtures/stylesheets/compass/css/reset.css +2 -2
  26. data/test/fixtures/stylesheets/compass/css/transform.css +108 -0
  27. data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +5 -5
  28. data/test/fixtures/stylesheets/compass/sass/columns.scss +1 -0
  29. data/test/fixtures/stylesheets/compass/sass/regions.scss +4 -0
  30. data/test/integrations/sprites_test.rb +4 -4
  31. data/test/units/configuration_test.rb +15 -0
  32. metadata +51 -70
@@ -4,8 +4,9 @@ end
4
4
  require 'compass/commands/registry'
5
5
 
6
6
  %w(base generate_grid_background default help list_frameworks project_base
7
- update_project watch_project create_project clean_project imports installer_command
8
- print_version project_stats stamp_pattern sprite validate_project
9
- write_configuration interactive unpack_extension).each do |lib|
7
+ update_project watch_project create_project clean_project extension_command
8
+ imports installer_command print_version project_stats stamp_pattern
9
+ sprite validate_project write_configuration interactive unpack_extension
10
+ ).each do |lib|
10
11
  require "compass/commands/#{lib}"
11
12
  end
@@ -0,0 +1,60 @@
1
+ require 'fileutils'
2
+ require 'compass/commands/base'
3
+
4
+ module Compass
5
+ module Commands
6
+ module ExtensionsOptionParser
7
+ def set_options(opts)
8
+ opts.banner = %Q{
9
+ Usage: compass extension install EXTENSION_NAME [options]
10
+ compass extension uninstall EXTENSION_NAME [options]
11
+ compass extension list
12
+
13
+ Description:
14
+ Manage the list of extensions on your system.
15
+ Compass to all of your compass projects.
16
+
17
+ Example:
18
+ compass extension install sassy-buttons
19
+ compass extension uninstall sassy-buttons
20
+
21
+ }
22
+ super
23
+ end
24
+ end
25
+
26
+ class ExtensionCommand < Base
27
+
28
+ register :extension
29
+
30
+ class << self
31
+ def option_parser(arguments)
32
+ parser = Compass::Exec::CommandOptionParser.new(arguments)
33
+ parser.extend(ExtensionsOptionParser)
34
+ end
35
+ def usage
36
+ option_parser([]).to_s
37
+ end
38
+ def description(command)
39
+ "Manage the list of compass extensions on your system"
40
+ end
41
+ def parse!(arguments)
42
+ {:arguments => arguments}
43
+ end
44
+ end
45
+ include InstallerCommand
46
+
47
+ def initialize(working_path, options)
48
+ super(working_path, options)
49
+ end
50
+
51
+ # all commands must implement perform
52
+ def perform
53
+ require 'rubygems/gem_runner'
54
+ Gem::GemRunner.new.run(options[:arguments])
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+
@@ -13,8 +13,13 @@ module Compass
13
13
  Compass::Frameworks::ALL.each do |framework|
14
14
  locations << [framework.stylesheets_directory, File.join(css_path || css_dir || ".", framework.name)]
15
15
  end
16
+ load_paths = []
16
17
  resolve_additional_import_paths.each do |additional_path|
17
- locations << [additional_path, File.join(css_path || css_dir || ".", File.basename(additional_path))]
18
+ if additional_path.is_a?(String)
19
+ locations << [additional_path, File.join(css_path || css_dir || ".", File.basename(additional_path))]
20
+ else
21
+ load_paths << additional_path
22
+ end
18
23
  end
19
24
  plugin_opts = {:template_location => locations}
20
25
  plugin_opts[:style] = output_style if output_style
@@ -23,13 +28,14 @@ module Compass
23
28
  plugin_opts[:cache_location] = cache_path unless cache_path.nil?
24
29
  plugin_opts.merge!(sass_options || {})
25
30
  plugin_opts[:load_paths] ||= []
31
+ plugin_opts[:load_paths] += load_paths
26
32
  plugin_opts[:load_paths] << Compass::SpriteImporter.new
27
33
  plugin_opts
28
34
  end
29
35
 
30
36
  def resolve_additional_import_paths
31
37
  (additional_import_paths || []).map do |path|
32
- if project_path && !absolute_path?(path)
38
+ if path.is_a?(String) && project_path && !absolute_path?(path)
33
39
  File.join(project_path, path)
34
40
  else
35
41
  path
@@ -79,6 +79,7 @@ module Compass
79
79
  end
80
80
 
81
81
  def add_import_path(*paths)
82
+ paths.map!{|p| defined?(Pathname) && Pathname === p ? p.to_s : p}
82
83
  # The @added_import_paths variable works around an issue where
83
84
  # the additional_import_paths gets overwritten during parse
84
85
  @added_import_paths ||= []
@@ -26,6 +26,13 @@ module Compass::Exec::GlobalOptionsParser
26
26
  ::Compass.configuration.discover Pathname.new(frameworks_dir).realpath
27
27
  end
28
28
 
29
+ opts.on('-I IMPORT_PATH',
30
+ "Makes files under the IMPORT_PATH folder findable by Sass's @import directive."
31
+ ) do |import_path|
32
+ require 'pathname'
33
+ ::Compass.configuration.add_import_path Pathname.new(import_path).realpath
34
+ end
35
+
29
36
  opts.on('-q', '--quiet', :NONE, 'Quiet mode.') do
30
37
  self.options[:quiet] = true
31
38
  end
@@ -34,7 +41,7 @@ module Compass::Exec::GlobalOptionsParser
34
41
  self.options[:trace] = true
35
42
  end
36
43
 
37
- opts.on('--force', :NONE, 'Allows some failing commands to succeed instead.') do
44
+ opts.on('--force', :NONE, 'Allows compass to overwrite existing files.') do
38
45
  self.options[:force] = true
39
46
  end
40
47
 
@@ -110,7 +110,7 @@ module Compass::SassExtensions::Functions::Sprites
110
110
  unless VALID_SELECTORS.include?(selector.value)
111
111
  raise Sass::SyntaxError, "Invalid Selctor did you mean one of: #{VALID_SELECTORS.join(', ')}"
112
112
  end
113
- Sass::Script::Bool.new map.send(:"has_#{selector.value}?", sprite)
113
+ Sass::Script::Bool.new map.send(:"has_#{selector.value}?", sprite.value)
114
114
  end
115
115
 
116
116
  Sass::Script::Functions.declare :sprite_has_selector, [:map, :sprite, :selector]
@@ -176,10 +176,18 @@ module Compass::SassExtensions::Functions::Sprites
176
176
 
177
177
  protected
178
178
 
179
+ def reversed_color_names
180
+ if Sass::Script::Color.const_defined?(:HTML4_COLORS_REVERSE)
181
+ Sass::Script::Color::HTML4_COLORS_REVERSE
182
+ else
183
+ Sass::Script::Color::COLOR_NAMES_REVERSE
184
+ end
185
+ end
186
+
179
187
  def convert_sprite_name(sprite)
180
188
  case sprite
181
189
  when Sass::Script::Color
182
- Sass::Script::String.new(Sass::Script::Color::HTML4_COLORS_REVERSE[sprite.rgb])
190
+ Sass::Script::String.new(reversed_color_names[sprite.rgb])
183
191
  when Sass::Script::Bool
184
192
  Sass::Script::String.new(sprite.to_s)
185
193
  else
@@ -26,8 +26,9 @@ module Compass
26
26
  @version[:teeny] = @version[:patch]
27
27
  @version[:string] = "#{@version[:major]}.#{@version[:minor]}"
28
28
  @version[:string] << ".#{@version[:patch]}" if @version[:patch]
29
- @version[:string] << ".#{@version[:state]}" if @version[:state]
30
29
  @version[:string] << ".#{@version[:build]}" if @version[:build]
30
+ @version[:string] << ".#{@version[:state]}" if @version[:state]
31
+ @version[:string] << ".#{@version[:iteration]}" if @version[:iteration]
31
32
  if !ENV['OFFICIAL'] && r = revision
32
33
  @version[:string] << ".#{r[0..6]}"
33
34
  end
@@ -14,11 +14,11 @@ time, mark, audio, video {
14
14
  margin: 0;
15
15
  padding: 0;
16
16
  border: 0;
17
- font-size: 100%;
18
17
  font: inherit;
18
+ font-size: 100%;
19
19
  vertical-align: baseline; }
20
20
 
21
- body {
21
+ html {
22
22
  line-height: 1; }
23
23
 
24
24
  ol, ul {
@@ -1,20 +1,14 @@
1
1
  .simple {
2
2
  -webkit-border-radius: 4px 4px;
3
3
  -moz-border-radius: 4px / 4px;
4
- -ms-border-radius: 4px / 4px;
5
- -o-border-radius: 4px / 4px;
6
4
  border-radius: 4px / 4px; }
7
5
 
8
6
  .compound {
9
7
  -webkit-border-radius: 2px 3px;
10
8
  -moz-border-radius: 2px 5px / 3px 6px;
11
- -ms-border-radius: 2px 5px / 3px 6px;
12
- -o-border-radius: 2px 5px / 3px 6px;
13
9
  border-radius: 2px 5px / 3px 6px; }
14
10
 
15
11
  .crazy {
16
12
  -webkit-border-radius: 1px 2px;
17
13
  -moz-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
18
- -ms-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
19
- -o-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
20
14
  border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px; }
@@ -1,47 +1,62 @@
1
+ .columns {
2
+ -webkit-columns: 20em 5;
3
+ -moz-columns: 20em 5;
4
+ -ms-columns: 20em 5;
5
+ -o-columns: 20em 5;
6
+ columns: 20em 5; }
7
+
1
8
  .column-count {
2
9
  -webkit-column-count: 5;
3
10
  -moz-column-count: 5;
11
+ -ms-column-count: 5;
4
12
  -o-column-count: 5;
5
13
  column-count: 5; }
6
14
 
7
15
  .column-gap {
8
16
  -webkit-column-gap: 10px;
9
17
  -moz-column-gap: 10px;
18
+ -ms-column-gap: 10px;
10
19
  -o-column-gap: 10px;
11
20
  column-gap: 10px; }
12
21
 
13
22
  .column-width {
14
23
  -webkit-column-width: 90px;
15
24
  -moz-column-width: 90px;
25
+ -ms-column-width: 90px;
16
26
  -o-column-width: 90px;
17
27
  column-width: 90px; }
18
28
 
19
29
  .column-rule-width {
20
30
  -webkit-rule-width: 1px;
21
31
  -moz-rule-width: 1px;
32
+ -ms-rule-width: 1px;
22
33
  -o-rule-width: 1px;
23
34
  rule-width: 1px; }
24
35
 
25
36
  .column-rule-style {
26
37
  -webkit-rule-style: dotted;
27
38
  -moz-rule-style: dotted;
39
+ -ms-rule-style: dotted;
28
40
  -o-rule-style: dotted;
29
41
  rule-style: dotted; }
30
42
 
31
43
  .column-rule-color {
32
44
  -webkit-rule-color: blue;
33
45
  -moz-rule-color: blue;
46
+ -ms-rule-color: blue;
34
47
  -o-rule-color: blue;
35
48
  rule-color: blue; }
36
49
 
37
50
  .column-rule {
38
51
  -webkit-column-rule: 1px solid blue;
39
52
  -moz-column-rule: 1px solid blue;
53
+ -ms-column-rule: 1px solid blue;
40
54
  -o-column-rule: 1px solid blue;
41
55
  column-rule: 1px solid blue; }
42
56
 
43
57
  .column-rule-spaced {
44
58
  -webkit-column-rule: 1px solid blue;
45
59
  -moz-column-rule: 1px solid blue;
60
+ -ms-column-rule: 1px solid blue;
46
61
  -o-column-rule: 1px solid blue;
47
62
  column-rule: 1px solid blue; }
@@ -0,0 +1,7 @@
1
+ .source {
2
+ -webkit-flow-into: target;
3
+ -ms-flow-into: target; }
4
+
5
+ .new-container {
6
+ -webkit-flow-from: target;
7
+ -ms-flow-from: target; }
@@ -14,11 +14,11 @@ time, mark, audio, video {
14
14
  margin: 0;
15
15
  padding: 0;
16
16
  border: 0;
17
- font-size: 100%;
18
17
  font: inherit;
18
+ font-size: 100%;
19
19
  vertical-align: baseline; }
20
20
 
21
- body {
21
+ html {
22
22
  line-height: 1; }
23
23
 
24
24
  ol, ul {
@@ -7,6 +7,9 @@
7
7
 
8
8
  .apply-origin-3d {
9
9
  -webkit-transform-origin: 2px 5% 2in;
10
+ -moz-transform-origin: 2px 5% 2in;
11
+ -ms-transform-origin: 2px 5% 2in;
12
+ -o-transform-origin: 2px 5% 2in;
10
13
  transform-origin: 2px 5% 2in; }
11
14
 
12
15
  .transform-origin-2d {
@@ -18,6 +21,9 @@
18
21
 
19
22
  .transform-origin-3d {
20
23
  -webkit-transform-origin: 100px 100px 100px;
24
+ -moz-transform-origin: 100px 100px 100px;
25
+ -ms-transform-origin: 100px 100px 100px;
26
+ -o-transform-origin: 100px 100px 100px;
21
27
  transform-origin: 100px 100px 100px; }
22
28
 
23
29
  .transform-2d {
@@ -29,22 +35,37 @@
29
35
 
30
36
  .transform-3d {
31
37
  -webkit-transform: rotateZ(20deg);
38
+ -moz-transform: rotateZ(20deg);
39
+ -ms-transform: rotateZ(20deg);
40
+ -o-transform: rotateZ(20deg);
32
41
  transform: rotateZ(20deg); }
33
42
 
34
43
  .perspective {
35
44
  -webkit-perspective: 500;
45
+ -moz-perspective: 500;
46
+ -ms-perspective: 500;
47
+ -o-perspective: 500;
36
48
  perspective: 500; }
37
49
 
38
50
  .perspective-origin {
39
51
  -webkit-perspective-origin: 25% 25%;
52
+ -moz-perspective-origin: 25% 25%;
53
+ -ms-perspective-origin: 25% 25%;
54
+ -o-perspective-origin: 25% 25%;
40
55
  perspective-origin: 25% 25%; }
41
56
 
42
57
  .transform-style {
43
58
  -webkit-transform-style: preserve-3d;
59
+ -moz-transform-style: preserve-3d;
60
+ -ms-transform-style: preserve-3d;
61
+ -o-transform-style: preserve-3d;
44
62
  transform-style: preserve-3d; }
45
63
 
46
64
  .backface-visibility {
47
65
  -webkit-backface-visibility: hidden;
66
+ -moz-backface-visibility: hidden;
67
+ -ms-backface-visibility: hidden;
68
+ -o-backface-visibility: hidden;
48
69
  backface-visibility: hidden; }
49
70
 
50
71
  .scale {
@@ -56,6 +77,9 @@
56
77
 
57
78
  .scale-3d {
58
79
  -webkit-transform: scale(30px, 50px);
80
+ -moz-transform: scale(30px, 50px);
81
+ -ms-transform: scale(30px, 50px);
82
+ -o-transform: scale(30px, 50px);
59
83
  transform: scale(30px, 50px); }
60
84
 
61
85
  .scale-with-perspective {
@@ -67,6 +91,9 @@
67
91
 
68
92
  .scale-3d-with-perspective {
69
93
  -webkit-transform: perspective(500) scale(30px, 50px);
94
+ -moz-transform: perspective(500) scale(30px, 50px);
95
+ -ms-transform: perspective(500) scale(30px, 50px);
96
+ -o-transform: perspective(500) scale(30px, 50px);
70
97
  transform: perspective(500) scale(30px, 50px); }
71
98
 
72
99
  .scale-x {
@@ -78,6 +105,9 @@
78
105
 
79
106
  .scale-x-3d {
80
107
  -webkit-transform: scaleX(30px);
108
+ -moz-transform: scaleX(30px);
109
+ -ms-transform: scaleX(30px);
110
+ -o-transform: scaleX(30px);
81
111
  transform: scaleX(30px); }
82
112
 
83
113
  .scale-x-with-perspective {
@@ -89,6 +119,9 @@
89
119
 
90
120
  .scale-x-3d-with-perspective {
91
121
  -webkit-transform: perspective(500) scaleX(30px);
122
+ -moz-transform: perspective(500) scaleX(30px);
123
+ -ms-transform: perspective(500) scaleX(30px);
124
+ -o-transform: perspective(500) scaleX(30px);
92
125
  transform: perspective(500) scaleX(30px); }
93
126
 
94
127
  .scale-y {
@@ -100,6 +133,9 @@
100
133
 
101
134
  .scale-y-3d {
102
135
  -webkit-transform: scaleY(50px);
136
+ -moz-transform: scaleY(50px);
137
+ -ms-transform: scaleY(50px);
138
+ -o-transform: scaleY(50px);
103
139
  transform: scaleY(50px); }
104
140
 
105
141
  .scale-y-with-perspective {
@@ -111,22 +147,37 @@
111
147
 
112
148
  .scale-y-3d-with-perspective {
113
149
  -webkit-transform: perspective(500) scaleY(50px);
150
+ -moz-transform: perspective(500) scaleY(50px);
151
+ -ms-transform: perspective(500) scaleY(50px);
152
+ -o-transform: perspective(500) scaleY(50px);
114
153
  transform: perspective(500) scaleY(50px); }
115
154
 
116
155
  .scale-z {
117
156
  -webkit-transform: scaleZ(50px);
157
+ -moz-transform: scaleZ(50px);
158
+ -ms-transform: scaleZ(50px);
159
+ -o-transform: scaleZ(50px);
118
160
  transform: scaleZ(50px); }
119
161
 
120
162
  .scale-z-with-perspective {
121
163
  -webkit-transform: perspective(500) scaleZ(50px);
164
+ -moz-transform: perspective(500) scaleZ(50px);
165
+ -ms-transform: perspective(500) scaleZ(50px);
166
+ -o-transform: perspective(500) scaleZ(50px);
122
167
  transform: perspective(500) scaleZ(50px); }
123
168
 
124
169
  .scale3d {
125
170
  -webkit-transform: scale3d(30px, 50px, 100px);
171
+ -moz-transform: scale3d(30px, 50px, 100px);
172
+ -ms-transform: scale3d(30px, 50px, 100px);
173
+ -o-transform: scale3d(30px, 50px, 100px);
126
174
  transform: scale3d(30px, 50px, 100px); }
127
175
 
128
176
  .scaled3-with-perspective {
129
177
  -webkit-transform: perspective(500) scale3d(30px, 50px, 100px);
178
+ -moz-transform: perspective(500) scale3d(30px, 50px, 100px);
179
+ -ms-transform: perspective(500) scale3d(30px, 50px, 100px);
180
+ -o-transform: perspective(500) scale3d(30px, 50px, 100px);
130
181
  transform: perspective(500) scale3d(30px, 50px, 100px); }
131
182
 
132
183
  .rotate {
@@ -159,26 +210,44 @@
159
210
 
160
211
  .rotate-x {
161
212
  -webkit-transform: rotateX(25deg);
213
+ -moz-transform: rotateX(25deg);
214
+ -ms-transform: rotateX(25deg);
215
+ -o-transform: rotateX(25deg);
162
216
  transform: rotateX(25deg); }
163
217
 
164
218
  .rotate-x-with-perspective {
165
219
  -webkit-transform: perspective(500) rotateX(25deg);
220
+ -moz-transform: perspective(500) rotateX(25deg);
221
+ -ms-transform: perspective(500) rotateX(25deg);
222
+ -o-transform: perspective(500) rotateX(25deg);
166
223
  transform: perspective(500) rotateX(25deg); }
167
224
 
168
225
  .rotate-y {
169
226
  -webkit-transform: rotateY(25deg);
227
+ -moz-transform: rotateY(25deg);
228
+ -ms-transform: rotateY(25deg);
229
+ -o-transform: rotateY(25deg);
170
230
  transform: rotateY(25deg); }
171
231
 
172
232
  .rotate-y-with-perspective {
173
233
  -webkit-transform: perspective(500) rotateY(25deg);
234
+ -moz-transform: perspective(500) rotateY(25deg);
235
+ -ms-transform: perspective(500) rotateY(25deg);
236
+ -o-transform: perspective(500) rotateY(25deg);
174
237
  transform: perspective(500) rotateY(25deg); }
175
238
 
176
239
  .rotate-3d {
177
240
  -webkit-transform: rotate3d(5, 2, 1, 75deg);
241
+ -moz-transform: rotate3d(5, 2, 1, 75deg);
242
+ -ms-transform: rotate3d(5, 2, 1, 75deg);
243
+ -o-transform: rotate3d(5, 2, 1, 75deg);
178
244
  transform: rotate3d(5, 2, 1, 75deg); }
179
245
 
180
246
  .rotate-3d-with-perspective {
181
247
  -webkit-transform: perspective(500) rotate3d(5, 2, 1, 75deg);
248
+ -moz-transform: perspective(500) rotate3d(5, 2, 1, 75deg);
249
+ -ms-transform: perspective(500) rotate3d(5, 2, 1, 75deg);
250
+ -o-transform: perspective(500) rotate3d(5, 2, 1, 75deg);
182
251
  transform: perspective(500) rotate3d(5, 2, 1, 75deg); }
183
252
 
184
253
  .translate {
@@ -197,10 +266,16 @@
197
266
 
198
267
  .translate-3d {
199
268
  -webkit-transform: translate(20px, 30%);
269
+ -moz-transform: translate(20px, 30%);
270
+ -ms-transform: translate(20px, 30%);
271
+ -o-transform: translate(20px, 30%);
200
272
  transform: translate(20px, 30%); }
201
273
 
202
274
  .translate-3d-with-perspective {
203
275
  -webkit-transform: perspective(500) translate(20px, 30%);
276
+ -moz-transform: perspective(500) translate(20px, 30%);
277
+ -ms-transform: perspective(500) translate(20px, 30%);
278
+ -o-transform: perspective(500) translate(20px, 30%);
204
279
  transform: perspective(500) translate(20px, 30%); }
205
280
 
206
281
  .translate-x {
@@ -212,6 +287,9 @@
212
287
 
213
288
  .translate-x-3d {
214
289
  -webkit-transform: translateX(30px);
290
+ -moz-transform: translateX(30px);
291
+ -ms-transform: translateX(30px);
292
+ -o-transform: translateX(30px);
215
293
  transform: translateX(30px); }
216
294
 
217
295
  .translate-x-with-perspective {
@@ -223,6 +301,9 @@
223
301
 
224
302
  .translate-x-3d-with-perspective {
225
303
  -webkit-transform: perspective(500) translateX(30px);
304
+ -moz-transform: perspective(500) translateX(30px);
305
+ -ms-transform: perspective(500) translateX(30px);
306
+ -o-transform: perspective(500) translateX(30px);
226
307
  transform: perspective(500) translateX(30px); }
227
308
 
228
309
  .translate-y {
@@ -234,6 +315,9 @@
234
315
 
235
316
  .translate-y-3d {
236
317
  -webkit-transform: translateY(30px);
318
+ -moz-transform: translateY(30px);
319
+ -ms-transform: translateY(30px);
320
+ -o-transform: translateY(30px);
237
321
  transform: translateY(30px); }
238
322
 
239
323
  .translate-y-with-perspective {
@@ -245,22 +329,37 @@
245
329
 
246
330
  .translate-y-3d-with-perspective {
247
331
  -webkit-transform: perspective(500) translateY(30px);
332
+ -moz-transform: perspective(500) translateY(30px);
333
+ -ms-transform: perspective(500) translateY(30px);
334
+ -o-transform: perspective(500) translateY(30px);
248
335
  transform: perspective(500) translateY(30px); }
249
336
 
250
337
  .translate-z {
251
338
  -webkit-transform: translateZ(30px);
339
+ -moz-transform: translateZ(30px);
340
+ -ms-transform: translateZ(30px);
341
+ -o-transform: translateZ(30px);
252
342
  transform: translateZ(30px); }
253
343
 
254
344
  .translate-z-with-perspective {
255
345
  -webkit-transform: perspective(500) translateZ(30px);
346
+ -moz-transform: perspective(500) translateZ(30px);
347
+ -ms-transform: perspective(500) translateZ(30px);
348
+ -o-transform: perspective(500) translateZ(30px);
256
349
  transform: perspective(500) translateZ(30px); }
257
350
 
258
351
  .translate-3d {
259
352
  -webkit-transform: translate3d(30px, 50px, 75px);
353
+ -moz-transform: translate3d(30px, 50px, 75px);
354
+ -ms-transform: translate3d(30px, 50px, 75px);
355
+ -o-transform: translate3d(30px, 50px, 75px);
260
356
  transform: translate3d(30px, 50px, 75px); }
261
357
 
262
358
  .translate-3d-with-perspective {
263
359
  -webkit-transform: perspective(500) translate3d(30px, 50px, 75px);
360
+ -moz-transform: perspective(500) translate3d(30px, 50px, 75px);
361
+ -ms-transform: perspective(500) translate3d(30px, 50px, 75px);
362
+ -o-transform: perspective(500) translate3d(30px, 50px, 75px);
264
363
  transform: perspective(500) translate3d(30px, 50px, 75px); }
265
364
 
266
365
  .skew {
@@ -272,6 +371,9 @@
272
371
 
273
372
  .skew-3d {
274
373
  -webkit-transform: skew(20deg, 50deg);
374
+ -moz-transform: skew(20deg, 50deg);
375
+ -ms-transform: skew(20deg, 50deg);
376
+ -o-transform: skew(20deg, 50deg);
275
377
  transform: skew(20deg, 50deg); }
276
378
 
277
379
  .skew-x {
@@ -283,6 +385,9 @@
283
385
 
284
386
  .skew-x-3d {
285
387
  -webkit-transform: skewX(20deg);
388
+ -moz-transform: skewX(20deg);
389
+ -ms-transform: skewX(20deg);
390
+ -o-transform: skewX(20deg);
286
391
  transform: skewX(20deg); }
287
392
 
288
393
  .skew-y {
@@ -294,6 +399,9 @@
294
399
 
295
400
  .skew-y-3d {
296
401
  -webkit-transform: skewY(20deg);
402
+ -moz-transform: skewY(20deg);
403
+ -ms-transform: skewY(20deg);
404
+ -o-transform: skewY(20deg);
297
405
  transform: skewY(20deg); }
298
406
 
299
407
  .create-transform-2d {