breakpoint 1.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,33 @@
1
+ //////////////////////////////
2
+ // Import Pieces
3
+ //////////////////////////////
4
+ @import "double/default-pair";
5
+ @import "double/double-string";
6
+ @import "double/default";
7
+
8
+ @function breakpoint-parse-double($feature, $empty-media, $first) {
9
+ $parsed: '';
10
+ $leader: '';
11
+ // If we're forcing
12
+ @if not ($empty-media) or not ($first) {
13
+ $leader: 'and ';
14
+ }
15
+
16
+ $first: nth($feature, 1);
17
+ $second: nth($feature, 2);
18
+
19
+ // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number
20
+ @if type-of($first) == 'number' and type-of($second) == 'number' {
21
+ $parsed: breakpoint-parse-default-pair($first, $second);
22
+ }
23
+ // If they are both strings, we send it through the string parser
24
+ @else if type-of($first) == 'string' and type-of($second) == 'string' {
25
+ $parsed: breakpoint-parse-double-string($first, $second);
26
+ }
27
+ // If it's a string/number pair, we parse it as a normal double
28
+ @else {
29
+ $parsed: breakpoint-parse-double-default($first, $second);
30
+ }
31
+
32
+ @return $leader + $parsed;
33
+ }
@@ -0,0 +1,75 @@
1
+ @function breakpoint-parse-query($query) {
2
+ // Parse features out of an individual query
3
+ $feature-holder: ();
4
+ $query-holder: ();
5
+ $length: length($query);
6
+
7
+ @if $length == 2 {
8
+ // If we've got a string/number, number/string, check to see if it's a valid string/number pair or two singles
9
+ @if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'number') or (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'string') {
10
+
11
+ $number: '';
12
+ $value: '';
13
+
14
+ @if type-of(nth($query, 1)) == 'string' {
15
+ $number: nth($query, 2);
16
+ $value: nth($query, 1);
17
+ }
18
+ @else {
19
+ $number: nth($query, 1);
20
+ $value: nth($query, 2);
21
+ }
22
+
23
+ // If the string value can be a single value, check to see if the number passed in is a valid input for said single value. Fortunately, all current single-value options only accept unitless numbers, so this check is easy.
24
+ @if breakpoint-single-string($value) {
25
+ @if unitless($number) {
26
+ $feature-holder: append($value, $number, space);
27
+ $query-holder: append($query-holder, $feature-holder, comma);
28
+ @return $query-holder;
29
+ }
30
+ }
31
+ // If the string is a media type, split the query
32
+ @if breakpoint-is-media($value) {
33
+ $query-holder: append($query-holder, nth($query, 1));
34
+ $query-holder: append($query-holder, nth($query, 2));
35
+ @return $query-holder;
36
+ }
37
+ // If it's not a single feature, we're just going to assume it's a proper string/value pair, and roll with it.
38
+ @else {
39
+ $feature-holder: append($value, $number, space);
40
+ $query-holder: append($query-holder, $feature-holder, comma);
41
+ @return $query-holder;
42
+ }
43
+
44
+ }
45
+ // If they're both numbers, we assume it's a double and roll with that
46
+ @else if (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'number') {
47
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
48
+ $query-holder: append($query-holder, $feature-holder, comma);
49
+ @return $query-holder;
50
+ }
51
+ // If they're both strings and neither are singles, we roll with that.
52
+ @else if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'string') {
53
+ @if not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) {
54
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
55
+ $query-holder: append($query-holder, $feature-holder, comma);
56
+ @return $query-holder;
57
+ }
58
+ }
59
+ }
60
+ @else if $length == 3 {
61
+ // If we've got three items and none is a list, we check to see
62
+ @if type-of(nth($query, 1)) != 'list' and type-of(nth($query, 2)) != 'list' and type-of(nth($query, 3)) != 'list' {
63
+ // If none of the items are single string values and none of the values are media values, we're good.
64
+ @if (not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) and not breakpoint-single-string(nth($query, 3))) and ((not breakpoint-is-media(nth($query, 1)) and not breakpoint-is-media(nth($query, 2)) and not breakpoint-is-media(nth($query, 3)))) {
65
+ $feature-holder: append(nth($query, 1), nth($query, 2), space);
66
+ $feature-holder: append($feature-holder, nth($query, 3), space);
67
+ $query-holder: append($query-holder, $feature-holder, comma);
68
+ @return $query-holder;
69
+ }
70
+ }
71
+ }
72
+
73
+ // If it's a single item, or if it's not a special case double or tripple, we can simply return the query.
74
+ @return $query;
75
+ }
@@ -0,0 +1,31 @@
1
+ @import "resolution/resolution";
2
+
3
+ @function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) {
4
+ $leader: '';
5
+ // If we're forcing
6
+ @if not ($empty-media) or not ($first) {
7
+ $leader: 'and ';
8
+ }
9
+
10
+ @if $breakpoint-resolutions and $query-resolution {
11
+ $resolutions: breakpoint-make-resolutions($query-resolution);
12
+ $length: length($resolutions);
13
+ $query-holder: '';
14
+
15
+ @for $i from 1 through $length {
16
+ $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}';
17
+ @if $i == 1 {
18
+ $query-holder: $query;
19
+ }
20
+ @else {
21
+ $query-holder: '#{$query-holder}, #{$query}';
22
+ }
23
+ }
24
+
25
+ @return $query-holder;
26
+ }
27
+ @else {
28
+ // Return with attached resolution
29
+ @return $query-print;
30
+ }
31
+ }
@@ -0,0 +1,26 @@
1
+ //////////////////////////////
2
+ // Import Pieces
3
+ //////////////////////////////
4
+ @import "single/default";
5
+
6
+ @function breakpoint-parse-single($feature, $empty-media, $first) {
7
+ $parsed: '';
8
+ $leader: '';
9
+ // If we're forcing
10
+ @if not ($empty-media) or not ($first) {
11
+ $leader: 'and ';
12
+ }
13
+
14
+ // If it's a single feature that can stand alone, we let it
15
+ @if (breakpoint-single-string($feature)) {
16
+ $parsed: $feature;
17
+ // Set Context
18
+ $context-setter: private-breakpoint-set-context($feature, $feature);
19
+ }
20
+ // If it's not a stand alone feature, we pass it off to the default handler.
21
+ @else {
22
+ $parsed: breakpoint-parse-default($feature);
23
+ }
24
+
25
+ @return $leader + '(' + $parsed + ')';
26
+ }
@@ -0,0 +1,36 @@
1
+ //////////////////////////////
2
+ // Import Pieces
3
+ //////////////////////////////
4
+ @import "triple/default";
5
+
6
+ @function breakpoint-parse-triple($feature, $empty-media, $first) {
7
+ $parsed: '';
8
+ $leader: '';
9
+
10
+ // If we're forcing
11
+ @if not ($empty-media) or not ($first) {
12
+ $leader: 'and ';
13
+ }
14
+
15
+ // separate the string features from the value numbers
16
+ $string: null;
17
+ $numbers: null;
18
+ @each $val in $feature {
19
+ @if type-of($val) == string {
20
+ $string: $val;
21
+ }
22
+ @else {
23
+ @if type-of($numbers) == 'null' {
24
+ $numbers: $val;
25
+ }
26
+ @else {
27
+ $numbers: append($numbers, $val);
28
+ }
29
+ }
30
+ }
31
+
32
+ $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2));
33
+
34
+ @return $leader + $parsed;
35
+
36
+ }
@@ -0,0 +1,21 @@
1
+ @function breakpoint-parse-default-pair($first, $second) {
2
+ $default: $breakpoint-default-pair;
3
+ $min: '';
4
+ $max: '';
5
+
6
+ // Sort into min and max
7
+ $min: min($first, $second);
8
+ $max: max($first, $second);
9
+
10
+ // Set Context
11
+ $context-setter: private-breakpoint-set-context(min-#{$default}, $min);
12
+ $context-setter: private-breakpoint-set-context(max-#{$default}, $max);
13
+
14
+ // Make them EMs if need be
15
+ @if ($breakpoint-to-ems == true) {
16
+ $min: breakpoint-to-base-em($min);
17
+ $max: breakpoint-to-base-em($max);
18
+ }
19
+
20
+ @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})';
21
+ }
@@ -0,0 +1,22 @@
1
+ @function breakpoint-parse-double-default($first, $second) {
2
+ $feature: '';
3
+ $value: '';
4
+
5
+ @if type-of($first) == 'string' {
6
+ $feature: $first;
7
+ $value: $second;
8
+ }
9
+ @else {
10
+ $feature: $second;
11
+ $value: $first;
12
+ }
13
+
14
+ // Set Context
15
+ $context-setter: private-breakpoint-set-context($feature, $value);
16
+
17
+ @if ($breakpoint-to-ems == true) {
18
+ $value: breakpoint-to-base-em($value);
19
+ }
20
+
21
+ @return '(#{$feature}: #{$value})'
22
+ }
@@ -0,0 +1,19 @@
1
+ @function breakpoint-parse-double-string($first, $second) {
2
+ $feature: '';
3
+ $value: '';
4
+
5
+ // Test to see which is the feature and which is the value
6
+ @if (breakpoint-string-value($first) == true) {
7
+ $feature: $first;
8
+ $value: $second;
9
+ }
10
+ @else {
11
+ $feature: $second;
12
+ $value: $first;
13
+ }
14
+
15
+ // Set Context
16
+ $context-setter: private-breakpoint-set-context($feature, $value);
17
+
18
+ @return '(#{$feature}: #{$value})';
19
+ }
@@ -0,0 +1,60 @@
1
+ @function breakpoint-make-resolutions($resolution) {
2
+ $length: length($resolution);
3
+
4
+ $output: ();
5
+
6
+ @if $length == 2 {
7
+ $feature: '';
8
+ $value: '';
9
+
10
+ // Find which is number
11
+ @if type-of(nth($resolution, 1)) == 'number' {
12
+ $value: nth($resolution, 1);
13
+ }
14
+ @else {
15
+ $value: nth($resolution, 2);
16
+ }
17
+
18
+ // Determine min/max/standard
19
+ @if index($resolution, 'min-resolution') {
20
+ $feature: 'min-';
21
+ }
22
+ @else if index($resolution, 'max-resolution') {
23
+ $feature: 'max-';
24
+ }
25
+
26
+ $standard: '(#{$feature}resolution: #{$value})';
27
+
28
+ // If we're not dealing with dppx,
29
+ @if unit($value) != 'dppx' {
30
+ $base: 96dpi;
31
+ @if unit($value) == 'dpcm' {
32
+ $base: 243.84dpcm;
33
+ }
34
+ // Write out feature tests
35
+ $webkit: '';
36
+ $moz: '';
37
+ $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})';
38
+ $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})';
39
+ // Append to output
40
+ $output: append($output, $standard, space);
41
+ $output: append($output, $webkit, space);
42
+ $output: append($output, $moz, space);
43
+ }
44
+ @else {
45
+ $webkit: '';
46
+ $moz: '';
47
+ $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})';
48
+ $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})';
49
+ $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})';
50
+ // Append to output
51
+ $output: append($output, $standard, space);
52
+ $output: append($output, $webkit, space);
53
+ $output: append($output, $moz, space);
54
+ $output: append($output, $fallback, space);
55
+ }
56
+
57
+ }
58
+
59
+ @return $output;
60
+ }
@@ -0,0 +1,13 @@
1
+ @function breakpoint-parse-default($feature) {
2
+ $default: $breakpoint-default-feature;
3
+
4
+ // Set Context
5
+ $context-setter: private-breakpoint-set-context($default, $feature);
6
+
7
+ @if ($breakpoint-to-ems == true) and (type-of($feature) == 'number') {
8
+ @return '#{$default}: #{breakpoint-to-base-em($feature)}';
9
+ }
10
+ @else {
11
+ @return '#{$default}: #{$feature}';
12
+ }
13
+ }
@@ -0,0 +1,18 @@
1
+ @function breakpoint-parse-triple-default($feature, $first, $second) {
2
+
3
+ // Sort into min and max
4
+ $min: min($first, $second);
5
+ $max: max($first, $second);
6
+
7
+ // Set Context
8
+ $context-setter: private-breakpoint-set-context(min-#{$feature}, $min);
9
+ $context-setter: private-breakpoint-set-context(max-#{$feature}, $max);
10
+
11
+ // Make them EMs if need be
12
+ @if ($breakpoint-to-ems == true) {
13
+ $min: breakpoint-to-base-em($min);
14
+ $max: breakpoint-to-base-em($max);
15
+ }
16
+
17
+ @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})';
18
+ }
metadata CHANGED
@@ -3,9 +3,10 @@ name: breakpoint
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
- - 1
7
- - 3
8
- version: "1.3"
6
+ - 2
7
+ - 0
8
+ - 0
9
+ version: 2.0.0
9
10
  platform: ruby
10
11
  authors:
11
12
  - Mason Wendell
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2012-08-28 00:00:00 -04:00
18
+ date: 2012-04-05 00:00:00 -04:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
@@ -62,8 +63,22 @@ files:
62
63
  - stylesheets/_breakpoint.scss
63
64
  - stylesheets/breakpoint/_context.scss
64
65
  - stylesheets/breakpoint/_helpers.scss
66
+ - stylesheets/breakpoint/_no-query.scss
67
+ - stylesheets/breakpoint/_parsers.scss
68
+ - stylesheets/breakpoint/_respond-to.scss
69
+ - stylesheets/breakpoint/parsers/_double.scss
70
+ - stylesheets/breakpoint/parsers/_query.scss
71
+ - stylesheets/breakpoint/parsers/_resolution.scss
72
+ - stylesheets/breakpoint/parsers/_single.scss
73
+ - stylesheets/breakpoint/parsers/_triple.scss
74
+ - stylesheets/breakpoint/parsers/double/_default-pair.scss
75
+ - stylesheets/breakpoint/parsers/double/_default.scss
76
+ - stylesheets/breakpoint/parsers/double/_double-string.scss
77
+ - stylesheets/breakpoint/parsers/resolution/_resolution.scss
78
+ - stylesheets/breakpoint/parsers/single/_default.scss
79
+ - stylesheets/breakpoint/parsers/triple/_default.scss
65
80
  has_rdoc: true
66
- homepage: https://github.com/canarymason/breakpoint
81
+ homepage: https://github.com/Team-Sass/breakpoint
67
82
  licenses: []
68
83
 
69
84
  post_install_message:
@@ -89,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
104
  version: 1.3.6
90
105
  requirements: []
91
106
 
92
- rubyforge_project:
107
+ rubyforge_project: breakpoint
93
108
  rubygems_version: 1.3.6
94
109
  signing_key:
95
110
  specification_version: 3