breakpoint 1.2 → 1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.3 - August 28th, 2012
4
+ * better conversion to base-ems
5
+ * fix floating point error
6
+
3
7
  ## 1.2 - August 16th, 2012
4
8
  * Added ability to force the 'all' media type to be written by setting `$breakpoint-force-media-all: true;`. Defaults to `false`.
5
9
  * Added ability to generate no query fallback code. See the README for full documentaiton.
@@ -431,7 +431,6 @@ $breakpoint-no-query-wrappers: true;
431
431
  ```css
432
432
  /* no-mq.css */
433
433
  .no-mq #foo {
434
- background: red;
435
434
  background: green;
436
435
  }
437
436
  ```
@@ -440,8 +439,8 @@ $breakpoint-no-query-wrappers: true;
440
439
 
441
440
  Licensed under MIT/GPL.
442
441
 
443
- GPL license:
444
- http://www.gnu.org/licenses/gpl.html
442
+ GPL2 license:
443
+ http://www.gnu.org/licenses/gpl-2.0.html
445
444
 
446
445
  MIT license:
447
446
  http://www.opensource.org/licenses/mit-license.php
@@ -3,8 +3,8 @@ require 'compass'
3
3
  Compass::Frameworks.register("breakpoint", :path => "#{File.dirname(__FILE__)}/..")
4
4
 
5
5
  module Breakpoint
6
- VERSION = "1.2"
7
- DATE = "2012-08-16"
6
+ VERSION = "1.3"
7
+ DATE = "2012-08-28"
8
8
  end
9
9
 
10
10
  module Sass::Script::Functions
@@ -16,19 +16,25 @@ module Sass::Script::Functions
16
16
  testList = Array.new
17
17
  listLength = list.to_a.length - 1
18
18
 
19
- for i in 0..listLength
20
- if list.value[i].class == Sass::Script::List
21
- subList = list.value[i].to_a.length - 1
19
+ # Only check if length greater than zero
20
+ # Was throwing errors for floats (but strangely, not for ints)
21
+ if listLength > 0
22
+ for i in 0..listLength
23
+ if list.value[i].class == Sass::Script::List
24
+ subList = list.value[i].to_a.length - 1
22
25
 
23
- for j in 0..subList
24
- testList << list.value[i].value[j]
26
+ for j in 0..subList
27
+ testList << list.value[i].value[j]
28
+ end
29
+ else
30
+ testList << list.value[i]
25
31
  end
26
- else
27
- testList << list.value[i]
28
32
  end
33
+ result = testList.include?(feature)
34
+ else
35
+ result = false
29
36
  end
30
37
 
31
- result = testList.include?(feature)
32
38
  Sass::Script::Bool.new(result)
33
39
  end
34
40
  end
@@ -12,6 +12,8 @@ $breakpoint-prefixed-queries: 'device-pixel-ratio' 'min-device-pixel-ratio' 'max
12
12
  $breakpoint-no-queries: false !default;
13
13
  $breakpoint-no-query-wrappers: false !default;
14
14
 
15
+ $breakpoint-base-font-size: false;
16
+
15
17
  //////////////////////////////
16
18
  // Import Breakpoint Helpers
17
19
  //////////////////////////////
@@ -21,7 +23,7 @@ $breakpoint-no-query-wrappers: false !default;
21
23
  //////////////////////////////
22
24
  // Breakpoint Mixin
23
25
  //////////////////////////////
24
- @mixin breakpoint($breakpoint, $media: $breakpoint-default-media, $no-query: false) {
26
+ @mixin breakpoint($breakpoint, $media: $breakpoint-default-media, $no-query: false, $base-font-size: $breakpoint-base-font-size) {
25
27
  // Query and Media String Defaults
26
28
  $query: false !default;
27
29
  $query-holder: false !default;
@@ -64,24 +66,24 @@ $breakpoint-no-query-wrappers: false !default;
64
66
  @if $do-prefix {
65
67
  @each $prfx in $breakpoint-prefixes {
66
68
  @if $prfx == 'webkit' {
67
- $webkit: breakpoint-switch($breakpoint, $media-string, true, $prfx);
69
+ $webkit: breakpoint-switch($breakpoint, $media-string, true, $prfx, $base-font-size: $base-font-size);
68
70
  }
69
71
 
70
72
  @if $prfx == 'moz' {
71
- $moz: breakpoint-switch($breakpoint, $media-string, true, $prfx);
73
+ $moz: breakpoint-switch($breakpoint, $media-string, true, $prfx, $base-font-size: $base-font-size);
72
74
  }
73
75
 
74
76
  @if $prfx == 'o' {
75
- $o: breakpoint-switch($breakpoint, $media-string, true, $prfx);
77
+ $o: breakpoint-switch($breakpoint, $media-string, true, $prfx, $base-font-size: $base-font-size);
76
78
  }
77
79
 
78
80
  @if $prfx == 'ms' {
79
- $ms: breakpoint-switch($breakpoint, $media-string, true, $prfx);
81
+ $ms: breakpoint-switch($breakpoint, $media-string, true, $prfx, $base-font-size: $base-font-size);
80
82
  }
81
83
  }
82
84
  }
83
85
  @else {
84
- $query: breakpoint-switch($breakpoint, $media-string, true);
86
+ $query: breakpoint-switch($breakpoint, $media-string, true, $base-font-size: $base-font-size);
85
87
  }
86
88
  }
87
89
  @else {
@@ -97,41 +99,41 @@ $breakpoint-no-query-wrappers: false !default;
97
99
  @each $bkpt in $breakpoint {
98
100
  @if $prfx == 'webkit' {
99
101
  @if $webkit-first {
100
- $webkit: breakpoint-switch($bkpt, $media-string, true, $prfx);
102
+ $webkit: breakpoint-switch($bkpt, $media-string, true, $prfx, $base-font-size: $base-font-size);
101
103
  $webkit-first: false;
102
104
  }
103
105
  @else {
104
- $webkit: join($webkit, breakpoint-switch($bkpt, $media-string, $prefix: $prfx));
106
+ $webkit: join($webkit, breakpoint-switch($bkpt, $media-string, $prefix: $prfx, $base-font-size: $base-font-size));
105
107
  }
106
108
  }
107
109
 
108
110
  @if $prfx == 'moz' {
109
111
  @if $moz-first {
110
- $moz: breakpoint-switch($bkpt, $media-string, true, $prfx);
112
+ $moz: breakpoint-switch($bkpt, $media-string, true, $prfx, $base-font-size: $base-font-size);
111
113
  $moz-first: false;
112
114
  }
113
115
  @else {
114
- $moz: join($moz, breakpoint-switch($bkpt, $media-string, $prefix: $prfx));
116
+ $moz: join($moz, breakpoint-switch($bkpt, $media-string, $prefix: $prfx, $base-font-size: $base-font-size));
115
117
  }
116
118
  }
117
119
 
118
120
  @if $prfx == 'o' {
119
121
  @if $o-first {
120
- $o: breakpoint-switch($bkpt, $media-string, true, $prfx);
122
+ $o: breakpoint-switch($bkpt, $media-string, true, $prfx, $base-font-size: $base-font-size);
121
123
  $o-first: false;
122
124
  }
123
125
  @else {
124
- $o: join($o, breakpoint-switch($bkpt, $media-string, $prefix: $prfx));
126
+ $o: join($o, breakpoint-switch($bkpt, $media-string, $prefix: $prfx, $base-font-size: $base-font-size));
125
127
  }
126
128
  }
127
129
 
128
130
  @if $prfx == 'ms' {
129
131
  @if $ms-first {
130
- $ms: breakpoint-switch($bkpt, $media-string, true, $prfx);
132
+ $ms: breakpoint-switch($bkpt, $media-string, true, $prfx, $base-font-size: $base-font-size);
131
133
  $ms-first: false;
132
134
  }
133
135
  @else {
134
- $ms: join($ms, breakpoint-switch($bkpt, $media-string, $prefix: $prfx));
136
+ $ms: join($ms, breakpoint-switch($bkpt, $media-string, $prefix: $prfx, $base-font-size: $base-font-size));
135
137
  }
136
138
  }
137
139
  }
@@ -140,11 +142,11 @@ $breakpoint-no-query-wrappers: false !default;
140
142
  @else {
141
143
  @each $bkpt in $breakpoint {
142
144
  @if $first == true {
143
- $query: breakpoint-switch($bkpt, $media-string, true);
145
+ $query: breakpoint-switch($bkpt, $media-string, true, $base-font-size: $base-font-size);
144
146
  $first: false;
145
147
  }
146
148
  @else {
147
- $query: join($query, breakpoint-switch($bkpt, $media-string));
149
+ $query: join($query, breakpoint-switch($bkpt, $media-string, $base-font-size: $base-font-size));
148
150
  }
149
151
  }
150
152
  }
@@ -194,7 +196,7 @@ $breakpoint-no-query-wrappers: false !default;
194
196
  @include TXkgcmVzZXQhIEdvIGF3YXkh;
195
197
  }
196
198
 
197
- @function breakpoint-switch($breakpoint, $media-string, $first: false, $prefix: false) {
199
+ @function breakpoint-switch($breakpoint, $media-string, $first: false, $prefix: false, $base-font-size: $breakpoint-base-font-size) {
198
200
  // Feature/Value/Length/Query Placehoders:
199
201
  $feature: false !default;
200
202
  $min-feature: "min-#{$breakpoint-default-pair}" !default;
@@ -215,7 +217,7 @@ $breakpoint-no-query-wrappers: false !default;
215
217
 
216
218
  // If EM Breakpoints are active, do it!
217
219
  @if $breakpoint-to-ems and type-of($value) == 'number' {
218
- $value: breakpoint-to-base-em($value);
220
+ $value: breakpoint-to-base-em($value, $base-font-size);
219
221
  }
220
222
  // Build the Query
221
223
  $query: breakpoint-generate($media-string, $feature, $value, $first);
@@ -237,10 +239,10 @@ $breakpoint-no-query-wrappers: false !default;
237
239
 
238
240
  // If EM Breakpoints are active, do it!
239
241
  @if $breakpoint-to-ems and type-of($min-value) == 'number' {
240
- $min-value: breakpoint-to-base-em($min-value);
242
+ $min-value: breakpoint-to-base-em($min-value, $base-font-size);
241
243
  }
242
244
  @if $breakpoint-to-ems and type-of($max-value) == 'number' {
243
- $max-value: breakpoint-to-base-em($max-value);
245
+ $max-value: breakpoint-to-base-em($max-value, $base-font-size);
244
246
  }
245
247
 
246
248
  // Min/Max for given
@@ -262,7 +264,7 @@ $breakpoint-no-query-wrappers: false !default;
262
264
 
263
265
  // If EM Breakpoints are active, do it!
264
266
  @if $breakpoint-to-ems and type-of($value) == 'number' {
265
- $value: breakpoint-to-base-em($value);
267
+ $value: breakpoint-to-base-em($value, $base-font-size);
266
268
  }
267
269
 
268
270
  // Build the Query
@@ -297,7 +299,7 @@ $breakpoint-no-query-wrappers: false !default;
297
299
 
298
300
  // If EM Breakpoints are active, do it!
299
301
  @if $breakpoint-to-ems and type-of($value) == 'number' {
300
- $value: breakpoint-to-base-em($value);
302
+ $value: breakpoint-to-base-em($value, $base-font-size);
301
303
  }
302
304
 
303
305
  // Build the Query
@@ -334,10 +336,10 @@ $breakpoint-no-query-wrappers: false !default;
334
336
 
335
337
  // If EM Breakpoints are active, do it!
336
338
  @if $breakpoint-to-ems and type-of($min-value) == 'number' {
337
- $min-value: breakpoint-to-base-em($min-value);
339
+ $min-value: breakpoint-to-base-em($min-value, $base-font-size);
338
340
  }
339
341
  @if $breakpoint-to-ems and type-of($max-value) == 'number' {
340
- $max-value: breakpoint-to-base-em($max-value);
342
+ $max-value: breakpoint-to-base-em($max-value, $base-font-size);
341
343
  }
342
344
 
343
345
  @if breakpoint-min-max($feature) == true {
@@ -1,9 +1,29 @@
1
1
  //////////////////////////////
2
2
  // Converts the input value to Base EMs
3
3
  //////////////////////////////
4
- @function breakpoint-to-base-em($value) {
4
+ @function breakpoint-to-base-em($value, $base-font-size: false) {
5
+ $value-unit: unit($value);
6
+
7
+ // Will convert relative EMs into root EMs.
8
+ @if $base-font-size and type-of($base-font-size) == 'number' and $value-unit == 'em' {
9
+ $base-unit: unit($base-font-size);
10
+
11
+ @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' {
12
+ @return base-conversion($value) / base-conversion($base-font-size) * 1em;
13
+ }
14
+ @else {
15
+ @warn '#{$base-font-size} is not set in valid units for font size!';
16
+ @return false;
17
+ }
18
+ }
19
+ @else {
20
+ @return base-conversion($value);
21
+ }
22
+ }
23
+
24
+ @function base-conversion($value) {
5
25
  $unit: unit($value);
6
-
26
+
7
27
  @if $unit == 'px' {
8
28
  @return $value / 16px * 1em;
9
29
  }
@@ -77,4 +97,4 @@
77
97
  @else {
78
98
  @return '-#{$prefix}-#{$property}';
79
99
  }
80
- }
100
+ }
metadata CHANGED
@@ -4,8 +4,8 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 1
7
- - 2
8
- version: "1.2"
7
+ - 3
8
+ version: "1.3"
9
9
  platform: ruby
10
10
  authors:
11
11
  - Mason Wendell
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-08-16 00:00:00 -04:00
17
+ date: 2012-08-28 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency