breakpoint 0.2 → 0.3
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.
- data/CHANGELOG.markdown +4 -0
- data/README.markdown +60 -42
- data/lib/breakpoint.rb +2 -2
- data/stylesheets/_breakpoint.scss +31 -29
- metadata +7 -12
data/CHANGELOG.markdown
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3 - June 18, 2012
|
|
4
|
+
* Rewrote 'device-pixel-ratio' conversions to change from prefixed nightmarish hell to Resolution standard based on the [W3C Unprefixing -webkit-device-pixel-ratio article](http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio/)
|
|
5
|
+
* Large README update covering feature set, installation, assumptions, and more.
|
|
6
|
+
|
|
3
7
|
## 0.2 - May 24, 2012
|
|
4
8
|
* Converted from Sass to SCSS
|
|
5
9
|
* Converted README examples from Sass to SCSS
|
data/README.markdown
CHANGED
|
@@ -2,28 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
**Really simple media queries in Sass**
|
|
4
4
|
|
|
5
|
+
Breakpoint aims to make writing media queries in Sass super simple. Create a variable using a simplified syntax based on most commonly used media queries, then call it using the `breakpoint` mixin. Breakpoint handles all of the lifting of writing the media query itself, including cross-browser compatibility issues, so you can focus on what's important: making sure your website looks its best.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
Breakpoint makes the following assumptions:
|
|
8
|
+
|
|
9
|
+
* All queries are assumed to be screen queries. This can be overwritten by specifying the media you'd like to query against as the second parameter in the breakpoint mixin.
|
|
10
|
+
* A single value query is assumed to be against the `min-width` feature. This can be overwritten by adding the feature you'd like to query against.
|
|
11
|
+
* A two value query is assumed to be against the `min-width`/`max-width` feature pair. This can be overwritten by adding the feature you'd like to query against.
|
|
12
|
+
* Unprefixed `device-pixel-ratio` queries are transformed into the standard `resolution` breakpoint based on the [W3C recommendation for how to do so](http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio/). This can be overwritten by passing in prefixed the needed prefixed feature.
|
|
13
|
+
|
|
14
|
+
## Requirements
|
|
15
|
+
|
|
16
|
+
Breakpoint is a Compass extension, so make sure you have [Sass and Compass Installed](http://compass-style.org/install/) in order to use its awesomeness!
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
`gem install breakpoint`
|
|
7
21
|
|
|
8
|
-
|
|
9
|
-
|
|
22
|
+
#### If creating a new project
|
|
23
|
+
`compass create <my_project> -r breakpoint`
|
|
10
24
|
|
|
25
|
+
#### If adding to existing project, in config.rb
|
|
26
|
+
`require 'breakpoint`
|
|
27
|
+
|
|
28
|
+
#### Import the breakpoint partial at the top of your working file
|
|
29
|
+
`@import "breakpoint";`
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## Setup
|
|
33
|
+
|
|
34
|
+
```scss
|
|
11
35
|
// create $breakpoint variables like so
|
|
12
36
|
// assume $breakpoint-default-feature if only a number
|
|
13
|
-
$breakpoint1: 500px
|
|
14
|
-
$breakpoint2: 30em
|
|
37
|
+
$breakpoint1: 500px;
|
|
38
|
+
$breakpoint2: 30em;
|
|
15
39
|
// set min-width/max-width if both values are numbers
|
|
16
|
-
$breakpoint3: 500px 700px
|
|
17
|
-
// set min/max of feature if there are two numbers
|
|
18
|
-
$breakpoint4: 300px 700px height
|
|
40
|
+
$breakpoint3: 500px 700px;
|
|
41
|
+
// set min/max of feature if there are two numbers
|
|
42
|
+
$breakpoint4: 300px 700px 'height';
|
|
19
43
|
// if one value is a string, assume a feature/value pair
|
|
20
|
-
$breakpoint5: min-width 700px
|
|
21
|
-
$breakpoint6: max-width 700px
|
|
44
|
+
$breakpoint5: min-width 700px;
|
|
45
|
+
$breakpoint6: max-width 700px;
|
|
22
46
|
// for multidimensional lists, assume each item is a feature value pair
|
|
23
|
-
$breakpoint7: max-width 700px, orientation portrait
|
|
47
|
+
$breakpoint7: max-width 700px, orientation portrait;
|
|
24
48
|
// handle one-sided features (ie. monochrome)
|
|
25
|
-
$breakpoint8: max-width 700px, orientation portrait, monochrome
|
|
26
|
-
$breakpoint9: monochrome
|
|
49
|
+
$breakpoint8: max-width 700px, orientation portrait, monochrome;
|
|
50
|
+
$breakpoint9: monochrome;
|
|
51
|
+
$breakpoint10: 2 device-pixel-ratio;
|
|
27
52
|
```
|
|
28
53
|
|
|
29
54
|
|
|
@@ -47,11 +72,6 @@ Call the mixin and pass one of your breakpoint variables. You can also call it w
|
|
|
47
72
|
content: 'baz';
|
|
48
73
|
}
|
|
49
74
|
}
|
|
50
|
-
.tgif {
|
|
51
|
-
@include breakpoint($breakpoint4) {
|
|
52
|
-
content: 'tgif';
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
75
|
.omg {
|
|
56
76
|
@include breakpoint($breakpoint5) {
|
|
57
77
|
content: 'omg';
|
|
@@ -87,6 +107,16 @@ Call the mixin and pass one of your breakpoint variables. You can also call it w
|
|
|
87
107
|
content: 'rhcp';
|
|
88
108
|
}
|
|
89
109
|
}
|
|
110
|
+
.tgif {
|
|
111
|
+
@include breakpoint($breakpoint4) {
|
|
112
|
+
content: 'tgif';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
.omgdpr {
|
|
116
|
+
@include breakpoint($breakpoint10) {
|
|
117
|
+
content: 'omgdpr';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
90
120
|
```
|
|
91
121
|
|
|
92
122
|
Example generated CSS
|
|
@@ -110,12 +140,6 @@ Example generated CSS
|
|
|
110
140
|
}
|
|
111
141
|
}
|
|
112
142
|
|
|
113
|
-
@media screen and (min-height: 300px) and (max-height: 700px) {
|
|
114
|
-
.tgif {
|
|
115
|
-
content: "tgif";
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
143
|
@media screen and (min-width: 700px) {
|
|
120
144
|
.omg {
|
|
121
145
|
content: "omg";
|
|
@@ -157,24 +181,19 @@ Example generated CSS
|
|
|
157
181
|
content: "rhcp";
|
|
158
182
|
}
|
|
159
183
|
}
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Installation
|
|
163
|
-
|
|
164
|
-
0. [Install Sass and Compass](http://compass-style.org/install/), if you haven't already.
|
|
165
|
-
1. **Terminal**: `gem install breakpoint`
|
|
166
|
-
2. Add `require 'breakpoint'` in Compass's config.rb file
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
## Requirements
|
|
172
|
-
|
|
173
|
-
- [Sass](http://sass-lang.com/)
|
|
174
|
-
- [Compass](http://compass-style.org/)
|
|
175
|
-
|
|
176
184
|
|
|
185
|
+
@media screen and (min-height: 300px) and (max-height: 700px) {
|
|
186
|
+
.tgif {
|
|
187
|
+
content: "tgif";
|
|
188
|
+
}
|
|
189
|
+
}
|
|
177
190
|
|
|
191
|
+
@media screen and (resolution: 192dpi) {
|
|
192
|
+
.omgdpr {
|
|
193
|
+
content: "omgdpr";
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
178
197
|
|
|
179
198
|
## License
|
|
180
199
|
|
|
@@ -184,5 +203,4 @@ GPL license:
|
|
|
184
203
|
http://www.gnu.org/licenses/gpl.html
|
|
185
204
|
|
|
186
205
|
MIT license:
|
|
187
|
-
http://www.opensource.org/licenses/mit-license.php
|
|
188
|
-
|
|
206
|
+
http://www.opensource.org/licenses/mit-license.php
|
data/lib/breakpoint.rb
CHANGED
|
@@ -32,7 +32,7 @@ $breakpoint-default-feature: min-width !default;
|
|
|
32
32
|
// Feature/Value Placeholders
|
|
33
33
|
$feature: false !default;
|
|
34
34
|
$value: false !default;
|
|
35
|
-
// Prefixed Queries
|
|
35
|
+
// Prefixed Queries (We have none for now, mostly to be Future Friendly)
|
|
36
36
|
$webkit-query-string: false !default;
|
|
37
37
|
$moz-query-string: false !default;
|
|
38
38
|
$ms-query-string: false !default;
|
|
@@ -53,18 +53,13 @@ $breakpoint-default-feature: min-width !default;
|
|
|
53
53
|
@if type-of(nth($breakpoint, 1)) == number and type-of(nth($breakpoint, 2)) == number {
|
|
54
54
|
// Optionally pass in 3rd parameter
|
|
55
55
|
@if length($breakpoint) == 3 and breakpoint-min-max(nth($breakpoint, 3)) {
|
|
56
|
-
//
|
|
56
|
+
// If the feature is device-pixel-ratio, let's convert it to the standard resolution media query!
|
|
57
|
+
// - via http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio/
|
|
57
58
|
@if nth($breakpoint, 3) == 'device-pixel-ratio' {
|
|
58
|
-
|
|
59
|
-
$
|
|
60
|
-
$
|
|
61
|
-
|
|
62
|
-
$moz-query-string: breakpoint-concatenate($query-string, nth($breakpoint, 1), "min--moz-#{nth($breakpoint, 3)}");
|
|
63
|
-
$moz-query-string: breakpoint-concatenate($moz-query-string, nth($breakpoint, 2), "max--moz-#{nth($breakpoint, 3)}");
|
|
64
|
-
// Opera
|
|
65
|
-
// remove opera support for now.
|
|
66
|
-
// $o-query-string: breakpoint-concatenate($query-string, '#{numerator(nth($breakpoint, 1))}/#{denominator(nth($breakpoint, 1))}', "-o-min-#{nth($breakpoint, 3)}");
|
|
67
|
-
// $o-query-string: breakpoint-concatenate($o-query-string, '#{numerator(nth($breakpoint, 2))}/#{denominator(nth($breakpoint, 2))}', "-o-max-#{nth($breakpoint, 3)}");
|
|
59
|
+
$value1: 96 * nth($breakpoint, 1) * 1dpi;
|
|
60
|
+
$value2: 96 * nth($breakpoint, 2) * 1dpi;;
|
|
61
|
+
$feature: 'resolution';
|
|
62
|
+
$breakpoint: $value1 $value2 $feature;
|
|
68
63
|
}
|
|
69
64
|
// Min/Max for given
|
|
70
65
|
$query-string: breakpoint-concatenate($query-string, nth($breakpoint, 1), "min-#{nth($breakpoint, 3)}");
|
|
@@ -77,8 +72,6 @@ $breakpoint-default-feature: min-width !default;
|
|
|
77
72
|
$query-string: breakpoint-concatenate($query-string, nth($breakpoint, 1), "min-width");
|
|
78
73
|
$query-string: breakpoint-concatenate($query-string, nth($breakpoint, 2), "max-width");
|
|
79
74
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
75
|
}
|
|
83
76
|
@else if type-of(nth($breakpoint, 1)) == string or type-of(nth($breakpoint, 2)) == string {
|
|
84
77
|
// if one value is a string, assume a feature/value pair
|
|
@@ -91,17 +84,26 @@ $breakpoint-default-feature: min-width !default;
|
|
|
91
84
|
$feature: nth($breakpoint, 2);
|
|
92
85
|
$value: nth($breakpoint, 1);
|
|
93
86
|
}
|
|
94
|
-
// If the feature is device-pixel-ratio,
|
|
87
|
+
// If the feature is device-pixel-ratio, let's convert it to the standard resolution media query!
|
|
88
|
+
// - via http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio/
|
|
95
89
|
@if $feature == 'device-pixel-ratio' {
|
|
96
|
-
|
|
97
|
-
$
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
90
|
+
$value: 96 * $value * 1dpi;
|
|
91
|
+
$feature: 'resolution';
|
|
92
|
+
$query-string: breakpoint-concatenate($query-string, $value, $feature);
|
|
93
|
+
}
|
|
94
|
+
@else if $feature == 'min-device-pixel-ratio' {
|
|
95
|
+
$value: 96 * $value * 1dpi;
|
|
96
|
+
$feature: 'min-resolution';
|
|
97
|
+
$query-string: breakpoint-concatenate($query-string, $value, $feature);
|
|
98
|
+
}
|
|
99
|
+
@else if $feature == 'max-device-pixel-ratio' {
|
|
100
|
+
$value: 96 * $value * 1dpi;
|
|
101
|
+
$feature: 'max-resolution';
|
|
102
|
+
$query-string: breakpoint-concatenate($query-string, $value, $feature);
|
|
103
|
+
}
|
|
104
|
+
@else {
|
|
105
|
+
$query-string: breakpoint-concatenate($query-string, $value, $feature);
|
|
103
106
|
}
|
|
104
|
-
$query-string: breakpoint-concatenate($query-string, $value, $feature);
|
|
105
107
|
}
|
|
106
108
|
@else if type-of(nth($breakpoint, 1)) == list {
|
|
107
109
|
// for multidimensional lists, assume each item is a feature value pair
|
|
@@ -121,6 +123,7 @@ $breakpoint-default-feature: min-width !default;
|
|
|
121
123
|
@media #{$query-string} {
|
|
122
124
|
@content;
|
|
123
125
|
}
|
|
126
|
+
// We have no prefixed query strings, this is mostly to be Future Friendly for now.
|
|
124
127
|
@if $webkit-query-string {
|
|
125
128
|
@media #{$webkit-query-string} {
|
|
126
129
|
@content;
|
|
@@ -136,12 +139,11 @@ $breakpoint-default-feature: min-width !default;
|
|
|
136
139
|
@content;
|
|
137
140
|
}
|
|
138
141
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
// }
|
|
142
|
+
@if $o-query-string {
|
|
143
|
+
@media #{$o-query-string} {
|
|
144
|
+
@content;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
145
147
|
}
|
|
146
148
|
|
|
147
149
|
@function breakpoint-concatenate($query-string, $new-value, $feature: $breakpoint-default-feature) {
|
metadata
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: breakpoint
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
4
|
+
prerelease: false
|
|
6
5
|
segments:
|
|
7
6
|
- 0
|
|
8
|
-
-
|
|
9
|
-
version: "0.
|
|
7
|
+
- 3
|
|
8
|
+
version: "0.3"
|
|
10
9
|
platform: ruby
|
|
11
10
|
authors:
|
|
12
11
|
- Mason Wendell
|
|
@@ -15,17 +14,16 @@ autorequire:
|
|
|
15
14
|
bindir: bin
|
|
16
15
|
cert_chain: []
|
|
17
16
|
|
|
18
|
-
date: 2012-
|
|
17
|
+
date: 2012-06-21 00:00:00 -04:00
|
|
18
|
+
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
21
21
|
name: compass
|
|
22
22
|
prerelease: false
|
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
-
none: false
|
|
25
24
|
requirements:
|
|
26
25
|
- - ">="
|
|
27
26
|
- !ruby/object:Gem::Version
|
|
28
|
-
hash: 45
|
|
29
27
|
segments:
|
|
30
28
|
- 0
|
|
31
29
|
- 12
|
|
@@ -48,6 +46,7 @@ files:
|
|
|
48
46
|
- CHANGELOG.markdown
|
|
49
47
|
- lib/breakpoint.rb
|
|
50
48
|
- stylesheets/_breakpoint.scss
|
|
49
|
+
has_rdoc: true
|
|
51
50
|
homepage: http://thecodingdesigner.com
|
|
52
51
|
licenses: []
|
|
53
52
|
|
|
@@ -57,20 +56,16 @@ rdoc_options: []
|
|
|
57
56
|
require_paths:
|
|
58
57
|
- lib
|
|
59
58
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
|
-
none: false
|
|
61
59
|
requirements:
|
|
62
60
|
- - ">="
|
|
63
61
|
- !ruby/object:Gem::Version
|
|
64
|
-
hash: 3
|
|
65
62
|
segments:
|
|
66
63
|
- 0
|
|
67
64
|
version: "0"
|
|
68
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
69
|
-
none: false
|
|
70
66
|
requirements:
|
|
71
67
|
- - ">="
|
|
72
68
|
- !ruby/object:Gem::Version
|
|
73
|
-
hash: 23
|
|
74
69
|
segments:
|
|
75
70
|
- 1
|
|
76
71
|
- 3
|
|
@@ -79,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
79
74
|
requirements: []
|
|
80
75
|
|
|
81
76
|
rubyforge_project:
|
|
82
|
-
rubygems_version: 1.
|
|
77
|
+
rubygems_version: 1.3.6
|
|
83
78
|
signing_key:
|
|
84
79
|
specification_version: 3
|
|
85
80
|
summary: An easy to use system for writing and managing media queries.
|