autoprefixer-rails 0.2.20130413 → 0.3.20130423

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.3 (Growing Strong)
2
+ * Use own filters instead of Rework’s `prefix` and `prefixValue`.
3
+ * Smarter value prefixer without false match “order” in “border”.
4
+ * 40% faster.
5
+ * Don’t add unnecessary properties instead of Rework’s `prefixValue`.
6
+ * Don’t change properties order.
7
+ * Sort properties and values in inspect output.
8
+
1
9
  == 0.2 (Hear Me Roar!)
2
10
  * Update parse libraries.
3
11
  * Add inspect method and rake tast.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- autoprefixer-rails (0.2.20130413)
4
+ autoprefixer-rails (0.3.20130423)
5
5
  execjs
6
6
 
7
7
  GEM
@@ -36,7 +36,7 @@ GEM
36
36
  multi_json (~> 1.0)
37
37
  arel (3.0.2)
38
38
  builder (3.0.4)
39
- diff-lcs (1.2.3)
39
+ diff-lcs (1.2.4)
40
40
  erubis (2.7.0)
41
41
  execjs (1.4.0)
42
42
  multi_json (~> 1.0)
@@ -49,7 +49,7 @@ GEM
49
49
  i18n (>= 0.4.0)
50
50
  mime-types (~> 1.16)
51
51
  treetop (~> 1.4.8)
52
- mime-types (1.22)
52
+ mime-types (1.23)
53
53
  multi_json (1.7.2)
54
54
  polyglot (0.3.3)
55
55
  rack (1.4.5)
data/README.md CHANGED
@@ -9,10 +9,9 @@ This gem provides Ruby and Ruby on Rails integration with
9
9
  Write your CSS usual code without prefixes (forget about them at all,
10
10
  Autoprefixer will think for you) in `app/assets/stylesheets`:
11
11
 
12
- ```css
13
- a {
14
- transition: transform 1s
15
- }
12
+ ```sass
13
+ a
14
+ transition: transform 1s
16
15
  ```
17
16
 
18
17
  Autoprefixer will take database with current browser statistics
@@ -21,21 +20,16 @@ and properties support and adds only actual prefixes by Assets Pipeline:
21
20
  ```css
22
21
  a {
23
22
  -webkit-transition: -webkit-transform 1s;
24
- -ms-transition: -ms-transform 1s;
25
23
  -o-transition: -o-transform 1s;
26
- -webkit-transition: transform 1s;
27
- -o-transition: transform 1s;
24
+ transition: -webkit-transform 1s;
28
25
  transition: transform 1s
29
26
  }
30
27
  ```
31
28
 
32
- You can use it with Sass, LESS or Stylus, because Assets Pipeline has a nice
33
- architecture cascade filters. Just write CSS without prefixes in Sass syntax:
29
+ You can use it with CSS, SCSS, Sass, LESS or Stylus, because Assets Pipeline
30
+ has a nice architecture cascade filters.
34
31
 
35
- ```sass
36
- a
37
- transition: transform 1s
38
- ```
32
+ Sponsored by [Evil Martians](http://evilmartians.com/).
39
33
 
40
34
  ## Features
41
35
 
@@ -78,6 +72,12 @@ browsers:
78
72
 
79
73
  Autoprefixer will process only yours CSS from `app/` and `lib/` dirs.
80
74
 
75
+ You can inspect, what properties will be changed by Rake task:
76
+
77
+ ```sh
78
+ rake autoprefixer:inspect
79
+ ```
80
+
81
81
  ### Sprockets
82
82
 
83
83
  If you use Sinatra or other non-Rails framework with Sprockets,
@@ -1,3 +1,3 @@
1
1
  module AutoprefixerRails
2
- VERSION = '0.2.20130413'.freeze unless defined? AutoprefixerRails::VERSION
2
+ VERSION = '0.3.20130423'.freeze unless defined? AutoprefixerRails::VERSION
3
3
  end
@@ -775,6 +775,8 @@ function debug(name) {
775
775
  if (!debug.enabled(name)) return function(){};
776
776
 
777
777
  return function(fmt){
778
+ fmt = coerce(fmt);
779
+
778
780
  var curr = new Date;
779
781
  var ms = curr - (debug[name] || curr);
780
782
  debug[name] = curr;
@@ -877,6 +879,15 @@ debug.enabled = function(name) {
877
879
  return false;
878
880
  };
879
881
 
882
+ /**
883
+ * Coerce `val`.
884
+ */
885
+
886
+ function coerce(val) {
887
+ if (val instanceof Error) return val.stack || val.message;
888
+ return val;
889
+ }
890
+
880
891
  // persist
881
892
 
882
893
  if (window.localStorage) debug.enable(localStorage.debug);
@@ -2505,13 +2516,17 @@ module.exports = {
2505
2516
  };
2506
2517
 
2507
2518
  });
2508
- require.register("autoprefixer/data/props.js", function(exports, require, module){
2519
+ require.register("autoprefixer/data/values.js", function(exports, require, module){
2509
2520
  // Don't edit this files, because it's autogenerated.
2510
2521
  // See updaters/ dir for generator. Run bin/update to update.
2511
2522
 
2512
2523
  module.exports = {
2513
- "@keyframes": {
2524
+ calc: {
2525
+ props: [
2526
+ "*"
2527
+ ],
2514
2528
  browsers: [
2529
+ "ff 4",
2515
2530
  "ff 5",
2516
2531
  "ff 6",
2517
2532
  "ff 7",
@@ -2523,21 +2538,6 @@ module.exports = {
2523
2538
  "ff 13",
2524
2539
  "ff 14",
2525
2540
  "ff 15",
2526
- "chrome 4",
2527
- "chrome 5",
2528
- "chrome 6",
2529
- "chrome 7",
2530
- "chrome 8",
2531
- "chrome 9",
2532
- "chrome 10",
2533
- "chrome 11",
2534
- "chrome 12",
2535
- "chrome 13",
2536
- "chrome 14",
2537
- "chrome 15",
2538
- "chrome 16",
2539
- "chrome 17",
2540
- "chrome 18",
2541
2541
  "chrome 19",
2542
2542
  "chrome 20",
2543
2543
  "chrome 21",
@@ -2545,25 +2545,14 @@ module.exports = {
2545
2545
  "chrome 23",
2546
2546
  "chrome 24",
2547
2547
  "chrome 25",
2548
- "chrome 26",
2549
- "chrome 27",
2550
- "chrome 28",
2551
- "safari 4",
2552
- "safari 5",
2553
2548
  "safari 6",
2554
- "safari 5.1",
2555
- "opera 12",
2556
- "ios 6",
2557
- "ios 3.2",
2558
- "ios 4.0",
2559
- "ios 4.1",
2560
- "ios 4.2",
2561
- "ios 4.3",
2562
- "ios 5.0",
2563
- "ios 5.1"
2549
+ "ios 6"
2564
2550
  ]
2565
2551
  },
2566
- "align-content": {
2552
+ flex: {
2553
+ props: [
2554
+ "display"
2555
+ ],
2567
2556
  browsers: [
2568
2557
  "ie 10",
2569
2558
  "ff 2",
@@ -2627,10 +2616,12 @@ module.exports = {
2627
2616
  "ios 4.3",
2628
2617
  "ios 5.0",
2629
2618
  "ios 5.1"
2630
- ],
2631
- transition: true
2619
+ ]
2632
2620
  },
2633
- "align-items": {
2621
+ "inline-flex": {
2622
+ props: [
2623
+ "display"
2624
+ ],
2634
2625
  browsers: [
2635
2626
  "ie 10",
2636
2627
  "ff 2",
@@ -2694,14 +2685,14 @@ module.exports = {
2694
2685
  "ios 4.3",
2695
2686
  "ios 5.0",
2696
2687
  "ios 5.1"
2697
- ],
2698
- transition: true
2688
+ ]
2699
2689
  },
2700
- "align-self": {
2690
+ "linear-gradient": {
2691
+ props: [
2692
+ "background",
2693
+ "background-image"
2694
+ ],
2701
2695
  browsers: [
2702
- "ie 10",
2703
- "ff 2",
2704
- "ff 3",
2705
2696
  "ff 4",
2706
2697
  "ff 5",
2707
2698
  "ff 6",
@@ -2714,13 +2705,6 @@ module.exports = {
2714
2705
  "ff 13",
2715
2706
  "ff 14",
2716
2707
  "ff 15",
2717
- "ff 16",
2718
- "ff 17",
2719
- "ff 18",
2720
- "ff 19",
2721
- "ff 20",
2722
- "ff 21",
2723
- "ff 3.5",
2724
2708
  "ff 3.6",
2725
2709
  "chrome 4",
2726
2710
  "chrome 5",
@@ -2744,15 +2728,14 @@ module.exports = {
2744
2728
  "chrome 23",
2745
2729
  "chrome 24",
2746
2730
  "chrome 25",
2747
- "chrome 26",
2748
- "chrome 27",
2749
- "chrome 28",
2750
2731
  "safari 4",
2751
2732
  "safari 5",
2752
2733
  "safari 6",
2753
- "safari 3.1",
2754
- "safari 3.2",
2755
2734
  "safari 5.1",
2735
+ "opera 12",
2736
+ "opera 11.1",
2737
+ "opera 11.5",
2738
+ "opera 11.6",
2756
2739
  "ios 6",
2757
2740
  "ios 3.2",
2758
2741
  "ios 4.0",
@@ -2761,11 +2744,15 @@ module.exports = {
2761
2744
  "ios 4.3",
2762
2745
  "ios 5.0",
2763
2746
  "ios 5.1"
2764
- ],
2765
- transition: true
2747
+ ]
2766
2748
  },
2767
- animation: {
2749
+ "radial-gradient": {
2750
+ props: [
2751
+ "background",
2752
+ "background-image"
2753
+ ],
2768
2754
  browsers: [
2755
+ "ff 4",
2769
2756
  "ff 5",
2770
2757
  "ff 6",
2771
2758
  "ff 7",
@@ -2777,6 +2764,7 @@ module.exports = {
2777
2764
  "ff 13",
2778
2765
  "ff 14",
2779
2766
  "ff 15",
2767
+ "ff 3.6",
2780
2768
  "chrome 4",
2781
2769
  "chrome 5",
2782
2770
  "chrome 6",
@@ -2799,14 +2787,14 @@ module.exports = {
2799
2787
  "chrome 23",
2800
2788
  "chrome 24",
2801
2789
  "chrome 25",
2802
- "chrome 26",
2803
- "chrome 27",
2804
- "chrome 28",
2805
2790
  "safari 4",
2806
2791
  "safari 5",
2807
2792
  "safari 6",
2808
2793
  "safari 5.1",
2809
2794
  "opera 12",
2795
+ "opera 11.1",
2796
+ "opera 11.5",
2797
+ "opera 11.6",
2810
2798
  "ios 6",
2811
2799
  "ios 3.2",
2812
2800
  "ios 4.0",
@@ -2817,8 +2805,13 @@ module.exports = {
2817
2805
  "ios 5.1"
2818
2806
  ]
2819
2807
  },
2820
- "animation-delay": {
2808
+ "repeating-linear-gradient": {
2809
+ props: [
2810
+ "background",
2811
+ "background-image"
2812
+ ],
2821
2813
  browsers: [
2814
+ "ff 4",
2822
2815
  "ff 5",
2823
2816
  "ff 6",
2824
2817
  "ff 7",
@@ -2830,6 +2823,7 @@ module.exports = {
2830
2823
  "ff 13",
2831
2824
  "ff 14",
2832
2825
  "ff 15",
2826
+ "ff 3.6",
2833
2827
  "chrome 4",
2834
2828
  "chrome 5",
2835
2829
  "chrome 6",
@@ -2852,14 +2846,14 @@ module.exports = {
2852
2846
  "chrome 23",
2853
2847
  "chrome 24",
2854
2848
  "chrome 25",
2855
- "chrome 26",
2856
- "chrome 27",
2857
- "chrome 28",
2858
2849
  "safari 4",
2859
2850
  "safari 5",
2860
2851
  "safari 6",
2861
2852
  "safari 5.1",
2862
2853
  "opera 12",
2854
+ "opera 11.1",
2855
+ "opera 11.5",
2856
+ "opera 11.6",
2863
2857
  "ios 6",
2864
2858
  "ios 3.2",
2865
2859
  "ios 4.0",
@@ -2870,8 +2864,13 @@ module.exports = {
2870
2864
  "ios 5.1"
2871
2865
  ]
2872
2866
  },
2873
- "animation-direction": {
2867
+ "repeating-radial-gradient": {
2868
+ props: [
2869
+ "background",
2870
+ "background-image"
2871
+ ],
2874
2872
  browsers: [
2873
+ "ff 4",
2875
2874
  "ff 5",
2876
2875
  "ff 6",
2877
2876
  "ff 7",
@@ -2883,6 +2882,7 @@ module.exports = {
2883
2882
  "ff 13",
2884
2883
  "ff 14",
2885
2884
  "ff 15",
2885
+ "ff 3.6",
2886
2886
  "chrome 4",
2887
2887
  "chrome 5",
2888
2888
  "chrome 6",
@@ -2905,14 +2905,14 @@ module.exports = {
2905
2905
  "chrome 23",
2906
2906
  "chrome 24",
2907
2907
  "chrome 25",
2908
- "chrome 26",
2909
- "chrome 27",
2910
- "chrome 28",
2911
2908
  "safari 4",
2912
2909
  "safari 5",
2913
2910
  "safari 6",
2914
2911
  "safari 5.1",
2915
2912
  "opera 12",
2913
+ "opera 11.1",
2914
+ "opera 11.5",
2915
+ "opera 11.6",
2916
2916
  "ios 6",
2917
2917
  "ios 3.2",
2918
2918
  "ios 4.0",
@@ -2922,8 +2922,16 @@ module.exports = {
2922
2922
  "ios 5.0",
2923
2923
  "ios 5.1"
2924
2924
  ]
2925
- },
2926
- "animation-duration": {
2925
+ }
2926
+ };
2927
+
2928
+ });
2929
+ require.register("autoprefixer/data/props.js", function(exports, require, module){
2930
+ // Don't edit this files, because it's autogenerated.
2931
+ // See updaters/ dir for generator. Run bin/update to update.
2932
+
2933
+ module.exports = {
2934
+ "@keyframes": {
2927
2935
  browsers: [
2928
2936
  "ff 5",
2929
2937
  "ff 6",
@@ -2976,8 +2984,12 @@ module.exports = {
2976
2984
  "ios 5.1"
2977
2985
  ]
2978
2986
  },
2979
- "animation-fill-mode": {
2987
+ "align-content": {
2980
2988
  browsers: [
2989
+ "ie 10",
2990
+ "ff 2",
2991
+ "ff 3",
2992
+ "ff 4",
2981
2993
  "ff 5",
2982
2994
  "ff 6",
2983
2995
  "ff 7",
@@ -2989,6 +3001,14 @@ module.exports = {
2989
3001
  "ff 13",
2990
3002
  "ff 14",
2991
3003
  "ff 15",
3004
+ "ff 16",
3005
+ "ff 17",
3006
+ "ff 18",
3007
+ "ff 19",
3008
+ "ff 20",
3009
+ "ff 21",
3010
+ "ff 3.5",
3011
+ "ff 3.6",
2992
3012
  "chrome 4",
2993
3013
  "chrome 5",
2994
3014
  "chrome 6",
@@ -3017,8 +3037,9 @@ module.exports = {
3017
3037
  "safari 4",
3018
3038
  "safari 5",
3019
3039
  "safari 6",
3040
+ "safari 3.1",
3041
+ "safari 3.2",
3020
3042
  "safari 5.1",
3021
- "opera 12",
3022
3043
  "ios 6",
3023
3044
  "ios 3.2",
3024
3045
  "ios 4.0",
@@ -3027,10 +3048,15 @@ module.exports = {
3027
3048
  "ios 4.3",
3028
3049
  "ios 5.0",
3029
3050
  "ios 5.1"
3030
- ]
3051
+ ],
3052
+ transition: true
3031
3053
  },
3032
- "animation-iteration-count": {
3054
+ "align-items": {
3033
3055
  browsers: [
3056
+ "ie 10",
3057
+ "ff 2",
3058
+ "ff 3",
3059
+ "ff 4",
3034
3060
  "ff 5",
3035
3061
  "ff 6",
3036
3062
  "ff 7",
@@ -3042,6 +3068,14 @@ module.exports = {
3042
3068
  "ff 13",
3043
3069
  "ff 14",
3044
3070
  "ff 15",
3071
+ "ff 16",
3072
+ "ff 17",
3073
+ "ff 18",
3074
+ "ff 19",
3075
+ "ff 20",
3076
+ "ff 21",
3077
+ "ff 3.5",
3078
+ "ff 3.6",
3045
3079
  "chrome 4",
3046
3080
  "chrome 5",
3047
3081
  "chrome 6",
@@ -3070,8 +3104,9 @@ module.exports = {
3070
3104
  "safari 4",
3071
3105
  "safari 5",
3072
3106
  "safari 6",
3107
+ "safari 3.1",
3108
+ "safari 3.2",
3073
3109
  "safari 5.1",
3074
- "opera 12",
3075
3110
  "ios 6",
3076
3111
  "ios 3.2",
3077
3112
  "ios 4.0",
@@ -3080,10 +3115,15 @@ module.exports = {
3080
3115
  "ios 4.3",
3081
3116
  "ios 5.0",
3082
3117
  "ios 5.1"
3083
- ]
3118
+ ],
3119
+ transition: true
3084
3120
  },
3085
- "animation-name": {
3121
+ "align-self": {
3086
3122
  browsers: [
3123
+ "ie 10",
3124
+ "ff 2",
3125
+ "ff 3",
3126
+ "ff 4",
3087
3127
  "ff 5",
3088
3128
  "ff 6",
3089
3129
  "ff 7",
@@ -3095,6 +3135,14 @@ module.exports = {
3095
3135
  "ff 13",
3096
3136
  "ff 14",
3097
3137
  "ff 15",
3138
+ "ff 16",
3139
+ "ff 17",
3140
+ "ff 18",
3141
+ "ff 19",
3142
+ "ff 20",
3143
+ "ff 21",
3144
+ "ff 3.5",
3145
+ "ff 3.6",
3098
3146
  "chrome 4",
3099
3147
  "chrome 5",
3100
3148
  "chrome 6",
@@ -3123,8 +3171,9 @@ module.exports = {
3123
3171
  "safari 4",
3124
3172
  "safari 5",
3125
3173
  "safari 6",
3174
+ "safari 3.1",
3175
+ "safari 3.2",
3126
3176
  "safari 5.1",
3127
- "opera 12",
3128
3177
  "ios 6",
3129
3178
  "ios 3.2",
3130
3179
  "ios 4.0",
@@ -3133,9 +3182,10 @@ module.exports = {
3133
3182
  "ios 4.3",
3134
3183
  "ios 5.0",
3135
3184
  "ios 5.1"
3136
- ]
3185
+ ],
3186
+ transition: true
3137
3187
  },
3138
- "animation-play-state": {
3188
+ animation: {
3139
3189
  browsers: [
3140
3190
  "ff 5",
3141
3191
  "ff 6",
@@ -3188,7 +3238,7 @@ module.exports = {
3188
3238
  "ios 5.1"
3189
3239
  ]
3190
3240
  },
3191
- "animation-timing-function": {
3241
+ "animation-delay": {
3192
3242
  browsers: [
3193
3243
  "ff 5",
3194
3244
  "ff 6",
@@ -3241,10 +3291,8 @@ module.exports = {
3241
3291
  "ios 5.1"
3242
3292
  ]
3243
3293
  },
3244
- "backface-visibility": {
3294
+ "animation-direction": {
3245
3295
  browsers: [
3246
- "ie 9",
3247
- "ff 4",
3248
3296
  "ff 5",
3249
3297
  "ff 6",
3250
3298
  "ff 7",
@@ -3256,8 +3304,6 @@ module.exports = {
3256
3304
  "ff 13",
3257
3305
  "ff 14",
3258
3306
  "ff 15",
3259
- "ff 3.5",
3260
- "ff 3.6",
3261
3307
  "chrome 4",
3262
3308
  "chrome 5",
3263
3309
  "chrome 6",
@@ -3286,16 +3332,8 @@ module.exports = {
3286
3332
  "safari 4",
3287
3333
  "safari 5",
3288
3334
  "safari 6",
3289
- "safari 3.1",
3290
- "safari 3.2",
3291
3335
  "safari 5.1",
3292
- "opera 11",
3293
3336
  "opera 12",
3294
- "opera 10.5",
3295
- "opera 10.6",
3296
- "opera 11.1",
3297
- "opera 11.5",
3298
- "opera 11.6",
3299
3337
  "ios 6",
3300
3338
  "ios 3.2",
3301
3339
  "ios 4.0",
@@ -3304,14 +3342,10 @@ module.exports = {
3304
3342
  "ios 4.3",
3305
3343
  "ios 5.0",
3306
3344
  "ios 5.1"
3307
- ],
3308
- transition: true
3345
+ ]
3309
3346
  },
3310
- "box-sizing": {
3347
+ "animation-duration": {
3311
3348
  browsers: [
3312
- "ff 2",
3313
- "ff 3",
3314
- "ff 4",
3315
3349
  "ff 5",
3316
3350
  "ff 6",
3317
3351
  "ff 7",
@@ -3323,37 +3357,48 @@ module.exports = {
3323
3357
  "ff 13",
3324
3358
  "ff 14",
3325
3359
  "ff 15",
3326
- "ff 16",
3327
- "ff 17",
3328
- "ff 18",
3329
- "ff 19",
3330
- "ff 20",
3331
- "ff 21",
3332
- "ff 22",
3333
- "ff 3.5",
3334
- "ff 3.6",
3335
3360
  "chrome 4",
3336
3361
  "chrome 5",
3337
3362
  "chrome 6",
3338
3363
  "chrome 7",
3339
3364
  "chrome 8",
3340
3365
  "chrome 9",
3366
+ "chrome 10",
3367
+ "chrome 11",
3368
+ "chrome 12",
3369
+ "chrome 13",
3370
+ "chrome 14",
3371
+ "chrome 15",
3372
+ "chrome 16",
3373
+ "chrome 17",
3374
+ "chrome 18",
3375
+ "chrome 19",
3376
+ "chrome 20",
3377
+ "chrome 21",
3378
+ "chrome 22",
3379
+ "chrome 23",
3380
+ "chrome 24",
3381
+ "chrome 25",
3382
+ "chrome 26",
3383
+ "chrome 27",
3384
+ "chrome 28",
3341
3385
  "safari 4",
3342
3386
  "safari 5",
3343
- "safari 3.1",
3344
- "safari 3.2",
3387
+ "safari 6",
3388
+ "safari 5.1",
3389
+ "opera 12",
3390
+ "ios 6",
3345
3391
  "ios 3.2",
3346
3392
  "ios 4.0",
3347
3393
  "ios 4.1",
3348
3394
  "ios 4.2",
3349
- "ios 4.3"
3395
+ "ios 4.3",
3396
+ "ios 5.0",
3397
+ "ios 5.1"
3350
3398
  ]
3351
3399
  },
3352
- "break-after": {
3400
+ "animation-fill-mode": {
3353
3401
  browsers: [
3354
- "ff 2",
3355
- "ff 3",
3356
- "ff 4",
3357
3402
  "ff 5",
3358
3403
  "ff 6",
3359
3404
  "ff 7",
@@ -3365,15 +3410,6 @@ module.exports = {
3365
3410
  "ff 13",
3366
3411
  "ff 14",
3367
3412
  "ff 15",
3368
- "ff 16",
3369
- "ff 17",
3370
- "ff 18",
3371
- "ff 19",
3372
- "ff 20",
3373
- "ff 21",
3374
- "ff 22",
3375
- "ff 3.5",
3376
- "ff 3.6",
3377
3413
  "chrome 4",
3378
3414
  "chrome 5",
3379
3415
  "chrome 6",
@@ -3402,9 +3438,8 @@ module.exports = {
3402
3438
  "safari 4",
3403
3439
  "safari 5",
3404
3440
  "safari 6",
3405
- "safari 3.1",
3406
- "safari 3.2",
3407
3441
  "safari 5.1",
3442
+ "opera 12",
3408
3443
  "ios 6",
3409
3444
  "ios 3.2",
3410
3445
  "ios 4.0",
@@ -3413,14 +3448,10 @@ module.exports = {
3413
3448
  "ios 4.3",
3414
3449
  "ios 5.0",
3415
3450
  "ios 5.1"
3416
- ],
3417
- transition: true
3451
+ ]
3418
3452
  },
3419
- "break-before": {
3453
+ "animation-iteration-count": {
3420
3454
  browsers: [
3421
- "ff 2",
3422
- "ff 3",
3423
- "ff 4",
3424
3455
  "ff 5",
3425
3456
  "ff 6",
3426
3457
  "ff 7",
@@ -3432,15 +3463,6 @@ module.exports = {
3432
3463
  "ff 13",
3433
3464
  "ff 14",
3434
3465
  "ff 15",
3435
- "ff 16",
3436
- "ff 17",
3437
- "ff 18",
3438
- "ff 19",
3439
- "ff 20",
3440
- "ff 21",
3441
- "ff 22",
3442
- "ff 3.5",
3443
- "ff 3.6",
3444
3466
  "chrome 4",
3445
3467
  "chrome 5",
3446
3468
  "chrome 6",
@@ -3469,9 +3491,8 @@ module.exports = {
3469
3491
  "safari 4",
3470
3492
  "safari 5",
3471
3493
  "safari 6",
3472
- "safari 3.1",
3473
- "safari 3.2",
3474
3494
  "safari 5.1",
3495
+ "opera 12",
3475
3496
  "ios 6",
3476
3497
  "ios 3.2",
3477
3498
  "ios 4.0",
@@ -3480,14 +3501,10 @@ module.exports = {
3480
3501
  "ios 4.3",
3481
3502
  "ios 5.0",
3482
3503
  "ios 5.1"
3483
- ],
3484
- transition: true
3504
+ ]
3485
3505
  },
3486
- "break-inside": {
3506
+ "animation-name": {
3487
3507
  browsers: [
3488
- "ff 2",
3489
- "ff 3",
3490
- "ff 4",
3491
3508
  "ff 5",
3492
3509
  "ff 6",
3493
3510
  "ff 7",
@@ -3499,15 +3516,6 @@ module.exports = {
3499
3516
  "ff 13",
3500
3517
  "ff 14",
3501
3518
  "ff 15",
3502
- "ff 16",
3503
- "ff 17",
3504
- "ff 18",
3505
- "ff 19",
3506
- "ff 20",
3507
- "ff 21",
3508
- "ff 22",
3509
- "ff 3.5",
3510
- "ff 3.6",
3511
3519
  "chrome 4",
3512
3520
  "chrome 5",
3513
3521
  "chrome 6",
@@ -3536,9 +3544,8 @@ module.exports = {
3536
3544
  "safari 4",
3537
3545
  "safari 5",
3538
3546
  "safari 6",
3539
- "safari 3.1",
3540
- "safari 3.2",
3541
3547
  "safari 5.1",
3548
+ "opera 12",
3542
3549
  "ios 6",
3543
3550
  "ios 3.2",
3544
3551
  "ios 4.0",
@@ -3547,12 +3554,10 @@ module.exports = {
3547
3554
  "ios 4.3",
3548
3555
  "ios 5.0",
3549
3556
  "ios 5.1"
3550
- ],
3551
- transition: true
3557
+ ]
3552
3558
  },
3553
- calc: {
3559
+ "animation-play-state": {
3554
3560
  browsers: [
3555
- "ff 4",
3556
3561
  "ff 5",
3557
3562
  "ff 6",
3558
3563
  "ff 7",
@@ -3564,6 +3569,21 @@ module.exports = {
3564
3569
  "ff 13",
3565
3570
  "ff 14",
3566
3571
  "ff 15",
3572
+ "chrome 4",
3573
+ "chrome 5",
3574
+ "chrome 6",
3575
+ "chrome 7",
3576
+ "chrome 8",
3577
+ "chrome 9",
3578
+ "chrome 10",
3579
+ "chrome 11",
3580
+ "chrome 12",
3581
+ "chrome 13",
3582
+ "chrome 14",
3583
+ "chrome 15",
3584
+ "chrome 16",
3585
+ "chrome 17",
3586
+ "chrome 18",
3567
3587
  "chrome 19",
3568
3588
  "chrome 20",
3569
3589
  "chrome 21",
@@ -3571,16 +3591,26 @@ module.exports = {
3571
3591
  "chrome 23",
3572
3592
  "chrome 24",
3573
3593
  "chrome 25",
3594
+ "chrome 26",
3595
+ "chrome 27",
3596
+ "chrome 28",
3597
+ "safari 4",
3598
+ "safari 5",
3574
3599
  "safari 6",
3575
- "ios 6"
3576
- ],
3577
- onlyValue: true
3600
+ "safari 5.1",
3601
+ "opera 12",
3602
+ "ios 6",
3603
+ "ios 3.2",
3604
+ "ios 4.0",
3605
+ "ios 4.1",
3606
+ "ios 4.2",
3607
+ "ios 4.3",
3608
+ "ios 5.0",
3609
+ "ios 5.1"
3610
+ ]
3578
3611
  },
3579
- "column-count": {
3612
+ "animation-timing-function": {
3580
3613
  browsers: [
3581
- "ff 2",
3582
- "ff 3",
3583
- "ff 4",
3584
3614
  "ff 5",
3585
3615
  "ff 6",
3586
3616
  "ff 7",
@@ -3592,15 +3622,6 @@ module.exports = {
3592
3622
  "ff 13",
3593
3623
  "ff 14",
3594
3624
  "ff 15",
3595
- "ff 16",
3596
- "ff 17",
3597
- "ff 18",
3598
- "ff 19",
3599
- "ff 20",
3600
- "ff 21",
3601
- "ff 22",
3602
- "ff 3.5",
3603
- "ff 3.6",
3604
3625
  "chrome 4",
3605
3626
  "chrome 5",
3606
3627
  "chrome 6",
@@ -3629,9 +3650,8 @@ module.exports = {
3629
3650
  "safari 4",
3630
3651
  "safari 5",
3631
3652
  "safari 6",
3632
- "safari 3.1",
3633
- "safari 3.2",
3634
3653
  "safari 5.1",
3654
+ "opera 12",
3635
3655
  "ios 6",
3636
3656
  "ios 3.2",
3637
3657
  "ios 4.0",
@@ -3640,13 +3660,11 @@ module.exports = {
3640
3660
  "ios 4.3",
3641
3661
  "ios 5.0",
3642
3662
  "ios 5.1"
3643
- ],
3644
- transition: true
3663
+ ]
3645
3664
  },
3646
- "column-fill": {
3665
+ "backface-visibility": {
3647
3666
  browsers: [
3648
- "ff 2",
3649
- "ff 3",
3667
+ "ie 9",
3650
3668
  "ff 4",
3651
3669
  "ff 5",
3652
3670
  "ff 6",
@@ -3659,13 +3677,6 @@ module.exports = {
3659
3677
  "ff 13",
3660
3678
  "ff 14",
3661
3679
  "ff 15",
3662
- "ff 16",
3663
- "ff 17",
3664
- "ff 18",
3665
- "ff 19",
3666
- "ff 20",
3667
- "ff 21",
3668
- "ff 22",
3669
3680
  "ff 3.5",
3670
3681
  "ff 3.6",
3671
3682
  "chrome 4",
@@ -3699,6 +3710,13 @@ module.exports = {
3699
3710
  "safari 3.1",
3700
3711
  "safari 3.2",
3701
3712
  "safari 5.1",
3713
+ "opera 11",
3714
+ "opera 12",
3715
+ "opera 10.5",
3716
+ "opera 10.6",
3717
+ "opera 11.1",
3718
+ "opera 11.5",
3719
+ "opera 11.6",
3702
3720
  "ios 6",
3703
3721
  "ios 3.2",
3704
3722
  "ios 4.0",
@@ -3710,7 +3728,49 @@ module.exports = {
3710
3728
  ],
3711
3729
  transition: true
3712
3730
  },
3713
- "column-gap": {
3731
+ "box-sizing": {
3732
+ browsers: [
3733
+ "ff 2",
3734
+ "ff 3",
3735
+ "ff 4",
3736
+ "ff 5",
3737
+ "ff 6",
3738
+ "ff 7",
3739
+ "ff 8",
3740
+ "ff 9",
3741
+ "ff 10",
3742
+ "ff 11",
3743
+ "ff 12",
3744
+ "ff 13",
3745
+ "ff 14",
3746
+ "ff 15",
3747
+ "ff 16",
3748
+ "ff 17",
3749
+ "ff 18",
3750
+ "ff 19",
3751
+ "ff 20",
3752
+ "ff 21",
3753
+ "ff 22",
3754
+ "ff 3.5",
3755
+ "ff 3.6",
3756
+ "chrome 4",
3757
+ "chrome 5",
3758
+ "chrome 6",
3759
+ "chrome 7",
3760
+ "chrome 8",
3761
+ "chrome 9",
3762
+ "safari 4",
3763
+ "safari 5",
3764
+ "safari 3.1",
3765
+ "safari 3.2",
3766
+ "ios 3.2",
3767
+ "ios 4.0",
3768
+ "ios 4.1",
3769
+ "ios 4.2",
3770
+ "ios 4.3"
3771
+ ]
3772
+ },
3773
+ "break-after": {
3714
3774
  browsers: [
3715
3775
  "ff 2",
3716
3776
  "ff 3",
@@ -3777,7 +3837,7 @@ module.exports = {
3777
3837
  ],
3778
3838
  transition: true
3779
3839
  },
3780
- "column-rule": {
3840
+ "break-before": {
3781
3841
  browsers: [
3782
3842
  "ff 2",
3783
3843
  "ff 3",
@@ -3844,7 +3904,7 @@ module.exports = {
3844
3904
  ],
3845
3905
  transition: true
3846
3906
  },
3847
- "column-rule-color": {
3907
+ "break-inside": {
3848
3908
  browsers: [
3849
3909
  "ff 2",
3850
3910
  "ff 3",
@@ -3911,7 +3971,7 @@ module.exports = {
3911
3971
  ],
3912
3972
  transition: true
3913
3973
  },
3914
- "column-rule-style": {
3974
+ "column-count": {
3915
3975
  browsers: [
3916
3976
  "ff 2",
3917
3977
  "ff 3",
@@ -3978,7 +4038,7 @@ module.exports = {
3978
4038
  ],
3979
4039
  transition: true
3980
4040
  },
3981
- "column-rule-width": {
4041
+ "column-fill": {
3982
4042
  browsers: [
3983
4043
  "ff 2",
3984
4044
  "ff 3",
@@ -4045,7 +4105,7 @@ module.exports = {
4045
4105
  ],
4046
4106
  transition: true
4047
4107
  },
4048
- "column-span": {
4108
+ "column-gap": {
4049
4109
  browsers: [
4050
4110
  "ff 2",
4051
4111
  "ff 3",
@@ -4112,7 +4172,7 @@ module.exports = {
4112
4172
  ],
4113
4173
  transition: true
4114
4174
  },
4115
- "column-width": {
4175
+ "column-rule": {
4116
4176
  browsers: [
4117
4177
  "ff 2",
4118
4178
  "ff 3",
@@ -4179,7 +4239,7 @@ module.exports = {
4179
4239
  ],
4180
4240
  transition: true
4181
4241
  },
4182
- columns: {
4242
+ "column-rule-color": {
4183
4243
  browsers: [
4184
4244
  "ff 2",
4185
4245
  "ff 3",
@@ -4246,8 +4306,45 @@ module.exports = {
4246
4306
  ],
4247
4307
  transition: true
4248
4308
  },
4249
- filter: {
4309
+ "column-rule-style": {
4250
4310
  browsers: [
4311
+ "ff 2",
4312
+ "ff 3",
4313
+ "ff 4",
4314
+ "ff 5",
4315
+ "ff 6",
4316
+ "ff 7",
4317
+ "ff 8",
4318
+ "ff 9",
4319
+ "ff 10",
4320
+ "ff 11",
4321
+ "ff 12",
4322
+ "ff 13",
4323
+ "ff 14",
4324
+ "ff 15",
4325
+ "ff 16",
4326
+ "ff 17",
4327
+ "ff 18",
4328
+ "ff 19",
4329
+ "ff 20",
4330
+ "ff 21",
4331
+ "ff 22",
4332
+ "ff 3.5",
4333
+ "ff 3.6",
4334
+ "chrome 4",
4335
+ "chrome 5",
4336
+ "chrome 6",
4337
+ "chrome 7",
4338
+ "chrome 8",
4339
+ "chrome 9",
4340
+ "chrome 10",
4341
+ "chrome 11",
4342
+ "chrome 12",
4343
+ "chrome 13",
4344
+ "chrome 14",
4345
+ "chrome 15",
4346
+ "chrome 16",
4347
+ "chrome 17",
4251
4348
  "chrome 18",
4252
4349
  "chrome 19",
4253
4350
  "chrome 20",
@@ -4259,14 +4356,25 @@ module.exports = {
4259
4356
  "chrome 26",
4260
4357
  "chrome 27",
4261
4358
  "chrome 28",
4359
+ "safari 4",
4360
+ "safari 5",
4262
4361
  "safari 6",
4263
- "ios 6"
4362
+ "safari 3.1",
4363
+ "safari 3.2",
4364
+ "safari 5.1",
4365
+ "ios 6",
4366
+ "ios 3.2",
4367
+ "ios 4.0",
4368
+ "ios 4.1",
4369
+ "ios 4.2",
4370
+ "ios 4.3",
4371
+ "ios 5.0",
4372
+ "ios 5.1"
4264
4373
  ],
4265
4374
  transition: true
4266
4375
  },
4267
- flex: {
4376
+ "column-rule-width": {
4268
4377
  browsers: [
4269
- "ie 10",
4270
4378
  "ff 2",
4271
4379
  "ff 3",
4272
4380
  "ff 4",
@@ -4287,6 +4395,7 @@ module.exports = {
4287
4395
  "ff 19",
4288
4396
  "ff 20",
4289
4397
  "ff 21",
4398
+ "ff 22",
4290
4399
  "ff 3.5",
4291
4400
  "ff 3.6",
4292
4401
  "chrome 4",
@@ -4331,9 +4440,8 @@ module.exports = {
4331
4440
  ],
4332
4441
  transition: true
4333
4442
  },
4334
- "flex-basis": {
4443
+ "column-span": {
4335
4444
  browsers: [
4336
- "ie 10",
4337
4445
  "ff 2",
4338
4446
  "ff 3",
4339
4447
  "ff 4",
@@ -4354,6 +4462,7 @@ module.exports = {
4354
4462
  "ff 19",
4355
4463
  "ff 20",
4356
4464
  "ff 21",
4465
+ "ff 22",
4357
4466
  "ff 3.5",
4358
4467
  "ff 3.6",
4359
4468
  "chrome 4",
@@ -4398,9 +4507,8 @@ module.exports = {
4398
4507
  ],
4399
4508
  transition: true
4400
4509
  },
4401
- "flex-direction": {
4510
+ "column-width": {
4402
4511
  browsers: [
4403
- "ie 10",
4404
4512
  "ff 2",
4405
4513
  "ff 3",
4406
4514
  "ff 4",
@@ -4421,6 +4529,7 @@ module.exports = {
4421
4529
  "ff 19",
4422
4530
  "ff 20",
4423
4531
  "ff 21",
4532
+ "ff 22",
4424
4533
  "ff 3.5",
4425
4534
  "ff 3.6",
4426
4535
  "chrome 4",
@@ -4465,9 +4574,8 @@ module.exports = {
4465
4574
  ],
4466
4575
  transition: true
4467
4576
  },
4468
- "flex-flow": {
4577
+ columns: {
4469
4578
  browsers: [
4470
- "ie 10",
4471
4579
  "ff 2",
4472
4580
  "ff 3",
4473
4581
  "ff 4",
@@ -4488,6 +4596,7 @@ module.exports = {
4488
4596
  "ff 19",
4489
4597
  "ff 20",
4490
4598
  "ff 21",
4599
+ "ff 22",
4491
4600
  "ff 3.5",
4492
4601
  "ff 3.6",
4493
4602
  "chrome 4",
@@ -4532,7 +4641,25 @@ module.exports = {
4532
4641
  ],
4533
4642
  transition: true
4534
4643
  },
4535
- "flex-grow": {
4644
+ filter: {
4645
+ browsers: [
4646
+ "chrome 18",
4647
+ "chrome 19",
4648
+ "chrome 20",
4649
+ "chrome 21",
4650
+ "chrome 22",
4651
+ "chrome 23",
4652
+ "chrome 24",
4653
+ "chrome 25",
4654
+ "chrome 26",
4655
+ "chrome 27",
4656
+ "chrome 28",
4657
+ "safari 6",
4658
+ "ios 6"
4659
+ ],
4660
+ transition: true
4661
+ },
4662
+ flex: {
4536
4663
  browsers: [
4537
4664
  "ie 10",
4538
4665
  "ff 2",
@@ -4599,7 +4726,7 @@ module.exports = {
4599
4726
  ],
4600
4727
  transition: true
4601
4728
  },
4602
- "flex-shrink": {
4729
+ "flex-basis": {
4603
4730
  browsers: [
4604
4731
  "ie 10",
4605
4732
  "ff 2",
@@ -4666,7 +4793,7 @@ module.exports = {
4666
4793
  ],
4667
4794
  transition: true
4668
4795
  },
4669
- "flex-wrap": {
4796
+ "flex-direction": {
4670
4797
  browsers: [
4671
4798
  "ie 10",
4672
4799
  "ff 2",
@@ -4733,7 +4860,7 @@ module.exports = {
4733
4860
  ],
4734
4861
  transition: true
4735
4862
  },
4736
- "justify-content": {
4863
+ "flex-flow": {
4737
4864
  browsers: [
4738
4865
  "ie 10",
4739
4866
  "ff 2",
@@ -4800,8 +4927,11 @@ module.exports = {
4800
4927
  ],
4801
4928
  transition: true
4802
4929
  },
4803
- "linear-gradient": {
4930
+ "flex-grow": {
4804
4931
  browsers: [
4932
+ "ie 10",
4933
+ "ff 2",
4934
+ "ff 3",
4805
4935
  "ff 4",
4806
4936
  "ff 5",
4807
4937
  "ff 6",
@@ -4814,6 +4944,13 @@ module.exports = {
4814
4944
  "ff 13",
4815
4945
  "ff 14",
4816
4946
  "ff 15",
4947
+ "ff 16",
4948
+ "ff 17",
4949
+ "ff 18",
4950
+ "ff 19",
4951
+ "ff 20",
4952
+ "ff 21",
4953
+ "ff 3.5",
4817
4954
  "ff 3.6",
4818
4955
  "chrome 4",
4819
4956
  "chrome 5",
@@ -4837,14 +4974,15 @@ module.exports = {
4837
4974
  "chrome 23",
4838
4975
  "chrome 24",
4839
4976
  "chrome 25",
4977
+ "chrome 26",
4978
+ "chrome 27",
4979
+ "chrome 28",
4840
4980
  "safari 4",
4841
4981
  "safari 5",
4842
4982
  "safari 6",
4983
+ "safari 3.1",
4984
+ "safari 3.2",
4843
4985
  "safari 5.1",
4844
- "opera 12",
4845
- "opera 11.1",
4846
- "opera 11.5",
4847
- "opera 11.6",
4848
4986
  "ios 6",
4849
4987
  "ios 3.2",
4850
4988
  "ios 4.0",
@@ -4854,9 +4992,9 @@ module.exports = {
4854
4992
  "ios 5.0",
4855
4993
  "ios 5.1"
4856
4994
  ],
4857
- onlyValue: true
4995
+ transition: true
4858
4996
  },
4859
- order: {
4997
+ "flex-shrink": {
4860
4998
  browsers: [
4861
4999
  "ie 10",
4862
5000
  "ff 2",
@@ -4923,9 +5061,11 @@ module.exports = {
4923
5061
  ],
4924
5062
  transition: true
4925
5063
  },
4926
- perspective: {
5064
+ "flex-wrap": {
4927
5065
  browsers: [
4928
- "ie 9",
5066
+ "ie 10",
5067
+ "ff 2",
5068
+ "ff 3",
4929
5069
  "ff 4",
4930
5070
  "ff 5",
4931
5071
  "ff 6",
@@ -4938,6 +5078,12 @@ module.exports = {
4938
5078
  "ff 13",
4939
5079
  "ff 14",
4940
5080
  "ff 15",
5081
+ "ff 16",
5082
+ "ff 17",
5083
+ "ff 18",
5084
+ "ff 19",
5085
+ "ff 20",
5086
+ "ff 21",
4941
5087
  "ff 3.5",
4942
5088
  "ff 3.6",
4943
5089
  "chrome 4",
@@ -4971,13 +5117,6 @@ module.exports = {
4971
5117
  "safari 3.1",
4972
5118
  "safari 3.2",
4973
5119
  "safari 5.1",
4974
- "opera 11",
4975
- "opera 12",
4976
- "opera 10.5",
4977
- "opera 10.6",
4978
- "opera 11.1",
4979
- "opera 11.5",
4980
- "opera 11.6",
4981
5120
  "ios 6",
4982
5121
  "ios 3.2",
4983
5122
  "ios 4.0",
@@ -4989,9 +5128,11 @@ module.exports = {
4989
5128
  ],
4990
5129
  transition: true
4991
5130
  },
4992
- "perspective-origin": {
5131
+ "justify-content": {
4993
5132
  browsers: [
4994
- "ie 9",
5133
+ "ie 10",
5134
+ "ff 2",
5135
+ "ff 3",
4995
5136
  "ff 4",
4996
5137
  "ff 5",
4997
5138
  "ff 6",
@@ -5004,6 +5145,12 @@ module.exports = {
5004
5145
  "ff 13",
5005
5146
  "ff 14",
5006
5147
  "ff 15",
5148
+ "ff 16",
5149
+ "ff 17",
5150
+ "ff 18",
5151
+ "ff 19",
5152
+ "ff 20",
5153
+ "ff 21",
5007
5154
  "ff 3.5",
5008
5155
  "ff 3.6",
5009
5156
  "chrome 4",
@@ -5037,13 +5184,6 @@ module.exports = {
5037
5184
  "safari 3.1",
5038
5185
  "safari 3.2",
5039
5186
  "safari 5.1",
5040
- "opera 11",
5041
- "opera 12",
5042
- "opera 10.5",
5043
- "opera 10.6",
5044
- "opera 11.1",
5045
- "opera 11.5",
5046
- "opera 11.6",
5047
5187
  "ios 6",
5048
5188
  "ios 3.2",
5049
5189
  "ios 4.0",
@@ -5055,8 +5195,11 @@ module.exports = {
5055
5195
  ],
5056
5196
  transition: true
5057
5197
  },
5058
- "radial-gradient": {
5198
+ order: {
5059
5199
  browsers: [
5200
+ "ie 10",
5201
+ "ff 2",
5202
+ "ff 3",
5060
5203
  "ff 4",
5061
5204
  "ff 5",
5062
5205
  "ff 6",
@@ -5069,6 +5212,13 @@ module.exports = {
5069
5212
  "ff 13",
5070
5213
  "ff 14",
5071
5214
  "ff 15",
5215
+ "ff 16",
5216
+ "ff 17",
5217
+ "ff 18",
5218
+ "ff 19",
5219
+ "ff 20",
5220
+ "ff 21",
5221
+ "ff 3.5",
5072
5222
  "ff 3.6",
5073
5223
  "chrome 4",
5074
5224
  "chrome 5",
@@ -5092,14 +5242,15 @@ module.exports = {
5092
5242
  "chrome 23",
5093
5243
  "chrome 24",
5094
5244
  "chrome 25",
5245
+ "chrome 26",
5246
+ "chrome 27",
5247
+ "chrome 28",
5095
5248
  "safari 4",
5096
5249
  "safari 5",
5097
5250
  "safari 6",
5251
+ "safari 3.1",
5252
+ "safari 3.2",
5098
5253
  "safari 5.1",
5099
- "opera 12",
5100
- "opera 11.1",
5101
- "opera 11.5",
5102
- "opera 11.6",
5103
5254
  "ios 6",
5104
5255
  "ios 3.2",
5105
5256
  "ios 4.0",
@@ -5109,10 +5260,11 @@ module.exports = {
5109
5260
  "ios 5.0",
5110
5261
  "ios 5.1"
5111
5262
  ],
5112
- onlyValue: true
5263
+ transition: true
5113
5264
  },
5114
- "repeating-linear-gradient": {
5265
+ perspective: {
5115
5266
  browsers: [
5267
+ "ie 9",
5116
5268
  "ff 4",
5117
5269
  "ff 5",
5118
5270
  "ff 6",
@@ -5125,6 +5277,7 @@ module.exports = {
5125
5277
  "ff 13",
5126
5278
  "ff 14",
5127
5279
  "ff 15",
5280
+ "ff 3.5",
5128
5281
  "ff 3.6",
5129
5282
  "chrome 4",
5130
5283
  "chrome 5",
@@ -5148,11 +5301,19 @@ module.exports = {
5148
5301
  "chrome 23",
5149
5302
  "chrome 24",
5150
5303
  "chrome 25",
5304
+ "chrome 26",
5305
+ "chrome 27",
5306
+ "chrome 28",
5151
5307
  "safari 4",
5152
5308
  "safari 5",
5153
5309
  "safari 6",
5310
+ "safari 3.1",
5311
+ "safari 3.2",
5154
5312
  "safari 5.1",
5313
+ "opera 11",
5155
5314
  "opera 12",
5315
+ "opera 10.5",
5316
+ "opera 10.6",
5156
5317
  "opera 11.1",
5157
5318
  "opera 11.5",
5158
5319
  "opera 11.6",
@@ -5165,10 +5326,11 @@ module.exports = {
5165
5326
  "ios 5.0",
5166
5327
  "ios 5.1"
5167
5328
  ],
5168
- onlyValue: true
5329
+ transition: true
5169
5330
  },
5170
- "repeating-radial-gradient": {
5331
+ "perspective-origin": {
5171
5332
  browsers: [
5333
+ "ie 9",
5172
5334
  "ff 4",
5173
5335
  "ff 5",
5174
5336
  "ff 6",
@@ -5181,6 +5343,7 @@ module.exports = {
5181
5343
  "ff 13",
5182
5344
  "ff 14",
5183
5345
  "ff 15",
5346
+ "ff 3.5",
5184
5347
  "ff 3.6",
5185
5348
  "chrome 4",
5186
5349
  "chrome 5",
@@ -5204,11 +5367,19 @@ module.exports = {
5204
5367
  "chrome 23",
5205
5368
  "chrome 24",
5206
5369
  "chrome 25",
5370
+ "chrome 26",
5371
+ "chrome 27",
5372
+ "chrome 28",
5207
5373
  "safari 4",
5208
5374
  "safari 5",
5209
5375
  "safari 6",
5376
+ "safari 3.1",
5377
+ "safari 3.2",
5210
5378
  "safari 5.1",
5379
+ "opera 11",
5211
5380
  "opera 12",
5381
+ "opera 10.5",
5382
+ "opera 10.6",
5212
5383
  "opera 11.1",
5213
5384
  "opera 11.5",
5214
5385
  "opera 11.6",
@@ -5221,7 +5392,7 @@ module.exports = {
5221
5392
  "ios 5.0",
5222
5393
  "ios 5.1"
5223
5394
  ],
5224
- onlyValue: true
5395
+ transition: true
5225
5396
  },
5226
5397
  transform: {
5227
5398
  browsers: [
@@ -5807,10 +5978,10 @@ require.register("autoprefixer/lib/autoprefixer/inspect.js", function(exports, r
5807
5978
  var autoprefixer = require('../autoprefixer.js');
5808
5979
 
5809
5980
  var transition;
5810
- var format = function (props) {
5981
+ var format = function (data) {
5811
5982
  transition = false;
5812
- return props.map(function (prop) {
5813
- var name = prop.name;
5983
+ return Object.keys(data).sort().map(function (name) {
5984
+ var prop = data[name];
5814
5985
  if (prop.transition) {
5815
5986
  name += '*';
5816
5987
  transition = true;
@@ -5825,7 +5996,8 @@ var format = function (props) {
5825
5996
  // with this `req`.
5826
5997
  var inspect = function (reqs) {
5827
5998
  var browsers = autoprefixer.parse(reqs || []);
5828
- var props = autoprefixer.props(browsers);
5999
+ var values = autoprefixer.filter(autoprefixer.data.values, browsers);
6000
+ var props = autoprefixer.filter(autoprefixer.data.props, browsers);
5829
6001
 
5830
6002
  var name, version, last, selected = [];
5831
6003
  for (var i = 0; i < browsers.length; i++) {
@@ -5847,19 +6019,16 @@ var inspect = function (reqs) {
5847
6019
  }
5848
6020
  }
5849
6021
 
5850
- var properties = props.filter(function (i) { return !i.onlyValue; });
5851
- var values = props.filter(function (i) { return i.onlyValue; });
5852
-
5853
6022
  var out = "Browsers:\n" +
5854
6023
  selected.map(function (i) { return ' ' + i; }).join("\n") + "\n";
5855
6024
 
5856
- if ( properties.length > 0 ) {
5857
- out += "\nProperties:\n" + format(properties) + "\n";
6025
+ if ( Object.keys(props).length > 0 ) {
6026
+ out += "\nProperties:\n" + format(props) + "\n";
5858
6027
  if ( transition ) {
5859
6028
  out += "* - properties, which can be used in transition\n"
5860
6029
  }
5861
6030
  }
5862
- if ( values.length > 0 ) {
6031
+ if ( Object.keys(values).length > 0 ) {
5863
6032
  out += "\nValues:\n" + format(values) + "\n"
5864
6033
  }
5865
6034
  return out;
@@ -5901,6 +6070,23 @@ var uniq = function (array) {
5901
6070
  return filtered;
5902
6071
  };
5903
6072
 
6073
+ // Split prefix and property name.
6074
+ var splitPrefix = function (prop) {
6075
+ if ( prop[0] == '-' ) {
6076
+ var sep = prop.indexOf('-', 1) + 1;
6077
+ return { prefix: prop.slice(0, sep), name: prop.slice(sep) };
6078
+ } else {
6079
+ return { prefix: null, name: prop };
6080
+ }
6081
+ };
6082
+
6083
+ // Generate RegExp to test, does CSS value contain some `word`.
6084
+ var containRegexp = function (word) {
6085
+ return new RegExp('(^|\\s|,|\\()' +
6086
+ word.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1") +
6087
+ '($|\\s|\\()');
6088
+ };
6089
+
5904
6090
  // Parse CSS and add prefixed properties and values by Can I Use database
5905
6091
  // for actual browsers.
5906
6092
  //
@@ -5923,24 +6109,25 @@ var uniq = function (array) {
5923
6109
  // you can use it as separated filter:
5924
6110
  //
5925
6111
  // rework(css).
5926
- // use(autoprefixer.filter(last 1 version')).
6112
+ // use(autoprefixer.rework(last 1 version')).
5927
6113
  // toString();
5928
6114
  var autoprefixer = {
5929
6115
  // Load data
5930
6116
  data: {
5931
6117
  browsers: require('../data/browsers'),
6118
+ values: require('../data/values'),
5932
6119
  props: require('../data/props')
5933
6120
  },
5934
6121
 
5935
6122
  // Parse `css` by Rework and add prefixed properties for browsers
5936
6123
  // in `requirements`.
5937
6124
  compile: function (css, requirements) {
5938
- return rework(css).use(autoprefixer.filter(requirements)).toString();
6125
+ return rework(css).use(autoprefixer.rework(requirements)).toString();
5939
6126
  },
5940
6127
 
5941
6128
  // Return Rework filter, which will add necessary prefixes for browsers
5942
6129
  // in `requirements`.
5943
- filter: function (requirements) {
6130
+ rework: function (requirements) {
5944
6131
  if ( !requirements ) {
5945
6132
  requirements = [];
5946
6133
  } else if ( !Array.isArray(requirements) ) {
@@ -5948,23 +6135,101 @@ var autoprefixer = {
5948
6135
  }
5949
6136
 
5950
6137
  var browsers = this.parse(requirements);
5951
- var props = this.props(browsers);
6138
+ var props = this.prefixes(browsers);
5952
6139
 
5953
- return function (style, filters) {
5954
- props.forEach(function (prop) {
5955
- if ( prop.name == '@keyframes' ) {
5956
- filters.use( rework.keyframes(prop.prefixes) );
5957
- } else {
5958
- if ( !prop.onlyValue ) {
5959
- filters.use( rework.prefix(prop.name, prop.prefixes) );
6140
+ return function (style, css) {
6141
+ autoprefixer.prefixer(props, style, css);
6142
+ };
6143
+ },
6144
+
6145
+ // Change `style` declarations in parsed `css`, to add prefixes for `props`.
6146
+ prefixer: function (props, style, css) {
6147
+ if ( props['@keyframes'] ) {
6148
+ css.use( rework.keyframes(props['@keyframes'].prefixes) );
6149
+ }
6150
+
6151
+ var all = props['*'];
6152
+ var transitions = { };
6153
+ for ( var i in props ) {
6154
+ if ( props[i].transition && props[i].prefixes ) {
6155
+ transitions[i] = props[i];
6156
+ }
6157
+ }
6158
+ var isTransition = /(-(webkit|moz|ms|o)-)?transition(-property)?/;
6159
+
6160
+ rework.visit.declarations(style, function (rules, node) {
6161
+ var vendor = node.vendor;
6162
+
6163
+ // Properties
6164
+ for ( var num = 0; num < rules.length; num += 1 ) {
6165
+ var rule = rules[num];
6166
+ var prop = props[rule.property];
6167
+
6168
+ if ( !prop || !prop.prefixes ) {
6169
+ continue;
6170
+ }
6171
+
6172
+ prop.prefixes.forEach(function (prefix) {
6173
+ if ( vendor && vendor != prefix ) {
6174
+ return;
6175
+ }
6176
+
6177
+ rules.splice(num, 0, {
6178
+ property: prefix + rule.property,
6179
+ value: rule.value
6180
+ });
6181
+ num += 1;
6182
+ });
6183
+ };
6184
+
6185
+ // Values
6186
+ for ( var num = 0; num < rules.length; num += 1 ) {
6187
+ var rule = rules[num];
6188
+
6189
+ var split = splitPrefix(rule.property);
6190
+ var prop = props[split.name];
6191
+ var propVendor = split.prefix || vendor;
6192
+
6193
+ var valuePrefixer = function (values) {
6194
+ var prefixed = rule.value;
6195
+ for ( var name in values ) {
6196
+ var value = values[name];
6197
+ if ( !value.regexp.test(rule.value) ) {
6198
+ continue;
6199
+ }
6200
+
6201
+ value.prefixes.forEach(function (prefix) {
6202
+ if ( propVendor && propVendor != prefix ) {
6203
+ return;
6204
+ }
6205
+ prefixed = prefixed.replace(value.regexp,
6206
+ '$1' + prefix + name + '$2');
6207
+ });
5960
6208
  }
5961
- if ( prop.onlyValue || prop.transition ) {
5962
- filters.use(
5963
- rework.prefixValue(prop.name, prop.prefixes));
6209
+ if ( prefixed != rule.value ) {
6210
+ if ( propVendor ) {
6211
+ rule.value = prefixed;
6212
+ } else {
6213
+ rules.splice(num, 0, {
6214
+ property: rule.property,
6215
+ value: prefixed
6216
+ });
6217
+ num += 1;
6218
+ }
5964
6219
  }
5965
6220
  }
5966
- });
5967
- };
6221
+
6222
+ if ( all ) {
6223
+ valuePrefixer(all.values);
6224
+ }
6225
+ if ( prop ) {
6226
+ valuePrefixer(prop.values);
6227
+ }
6228
+ if ( rule.property.match(isTransition) ) {
6229
+ valuePrefixer(transitions);
6230
+ }
6231
+ }
6232
+ });
5968
6233
  },
5969
6234
 
5970
6235
  // Return array of browsers for requirements in free form.
@@ -6002,10 +6267,9 @@ var autoprefixer = {
6002
6267
  // Select browsers by some `criteria`.
6003
6268
  browsers: function (criteria) {
6004
6269
  var selected = [];
6005
- var versions, browser;
6006
6270
  for ( var name in this.data.browsers ) {
6007
- browser = this.data.browsers[name];
6008
- versions = criteria(browser).map(function (version) {
6271
+ var browser = this.data.browsers[name];
6272
+ var versions = criteria(browser).map(function (version) {
6009
6273
  return name + ' ' + version;
6010
6274
  });
6011
6275
  selected = selected.concat(versions);
@@ -6042,35 +6306,60 @@ var autoprefixer = {
6042
6306
  return name + ' ' + version;
6043
6307
  },
6044
6308
 
6045
- // Return CSS properties, which need prefix for `browsers`.
6046
- props: function (browsers) {
6047
- var selected = [];
6048
- var prefixes;
6049
- for ( var prop in this.data.props ) {
6050
- prefixes = this.prefixes(prop, browsers);
6309
+ // Return new `data` only with items, which need prefixes
6310
+ // for selected `browsers`.
6311
+ filter: function (data, browsers) {
6312
+ var selected = { };
6313
+ for ( var name in data ) {
6314
+ var need = data[name].browsers;
6315
+ var prefixes = browsers.filter(function (browser) {
6316
+ return need.indexOf(browser) != -1;
6317
+ }).map(function (browser) {
6318
+ var key = browser.split(' ')[0];
6319
+ return autoprefixer.data.browsers[key].prefix;
6320
+ }).sort(function (a, b) { return b.length - a.length });
6321
+
6051
6322
  if ( prefixes.length ) {
6052
- selected.push({
6053
- name: prop,
6054
- prefixes: prefixes,
6055
- onlyValue: this.data.props[prop].onlyValue,
6056
- transition: this.data.props[prop].transition
6057
- });
6323
+ prefixes = uniq(prefixes);
6324
+
6325
+ if ( data[name].props ) {
6326
+ selected[name] = {
6327
+ props: data[name].props,
6328
+ regexp: containRegexp(name),
6329
+ prefixes: prefixes
6330
+ };
6331
+ } else if (data[name].transition) {
6332
+ selected[name] = {
6333
+ regexp: containRegexp(name),
6334
+ prefixes: prefixes,
6335
+ transition: true
6336
+ };
6337
+ } else {
6338
+ selected[name] = { prefixes: prefixes };
6339
+ }
6058
6340
  }
6059
6341
  }
6060
6342
  return selected;
6061
6343
  },
6062
6344
 
6063
- // Return `prop` prefixes, which will be need to `browsers`.
6064
- prefixes: function (prop, browsers) {
6065
- var need = this.data.props[prop].browsers;
6066
-
6067
- var prefixes = browsers.filter(function (browser) {
6068
- return need.indexOf(browser) != -1;
6069
- }).map(function (browser) {
6070
- var name = browser.split(' ')[0];
6071
- return autoprefixer.data.browsers[name].prefix;
6072
- })
6073
- return uniq(prefixes);
6345
+ // Return properties, which them prefixed values inside.
6346
+ prefixes: function (browsers) {
6347
+ var values = this.filter(this.data.values, browsers);
6348
+ var props = this.filter(this.data.props, browsers);
6349
+
6350
+ for ( var name in values ) {
6351
+ values[name].props.forEach(function (prop) {
6352
+ if ( !props[prop] ) {
6353
+ props[prop] = { values: { } };
6354
+ } else if ( !props[prop].values ) {
6355
+ props[prop].values = { };
6356
+ }
6357
+
6358
+ props[prop].values[name] = values[name];
6359
+ });
6360
+ }
6361
+
6362
+ return props;
6074
6363
  }
6075
6364
  };
6076
6365
 
@@ -6110,6 +6399,8 @@ require.alias("component-color-parser/colors.js", "visionmedia-rework/deps/color
6110
6399
 
6111
6400
  require.alias("component-path/index.js", "visionmedia-rework/deps/path/index.js");
6112
6401
 
6402
+ require.alias("autoprefixer/lib/autoprefixer.js", "autoprefixer/index.js");
6403
+
6113
6404
  require.register('visionmedia-rework/lib/plugins/inline.js', function(_, _, module){
6114
6405
  module.exports = function () {};
6115
6406
  });