breakpoint 0.1
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 +153 -0
- data/lib/breakpoint.rb +9 -0
- data/stylesheets/_breakpoint.sass +68 -0
- metadata +85 -0
data/CHANGELOG.markdown
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
# Breakpoint #
|
2
|
+
|
3
|
+
**Really simple media queries in Sass**
|
4
|
+
|
5
|
+
|
6
|
+
## Setup
|
7
|
+
|
8
|
+
```sass
|
9
|
+
// create $breakpoint variables like so
|
10
|
+
// assume $breakpoint-default-feature if only a number
|
11
|
+
$breakpoint1: 500px
|
12
|
+
$breakpoint2: 30em
|
13
|
+
// set min-width/max-width if both values are numbers
|
14
|
+
$breakpoint3: 500px 700px
|
15
|
+
// if one value is a string, assume a feature/value pair
|
16
|
+
$breakpoint4: min-width 700px
|
17
|
+
$breakpoint5: max-width 700px
|
18
|
+
// for multidimensional lists, assume each item is a feature value pair
|
19
|
+
$breakpoint6: max-width 700px, orientation portrait
|
20
|
+
// handle one-sided features (ie. monochrome)
|
21
|
+
$breakpoint7: max-width 700px, orientation portrait, monochrome
|
22
|
+
$breakpoint8: monochrome
|
23
|
+
```
|
24
|
+
|
25
|
+
|
26
|
+
## Using Breakpoint
|
27
|
+
|
28
|
+
Call the mixin and pass one of your breakpoint variables. You can also call it with a la carte arguments.
|
29
|
+
|
30
|
+
```sass
|
31
|
+
.foo
|
32
|
+
+breakpoint($breakpoint1)
|
33
|
+
content: 'foo'
|
34
|
+
.bar
|
35
|
+
+breakpoint($breakpoint2)
|
36
|
+
content: 'bar'
|
37
|
+
.baz
|
38
|
+
+breakpoint($breakpoint3)
|
39
|
+
content: 'baz'
|
40
|
+
.omg
|
41
|
+
+breakpoint($breakpoint4)
|
42
|
+
content: 'omg'
|
43
|
+
.wtf
|
44
|
+
+breakpoint($breakpoint5)
|
45
|
+
content: 'wtf'
|
46
|
+
.bbq
|
47
|
+
+breakpoint($breakpoint6)
|
48
|
+
content: 'bbq'
|
49
|
+
.zztop
|
50
|
+
+breakpoint($breakpoint7)
|
51
|
+
content: 'zztop'
|
52
|
+
.elp
|
53
|
+
+breakpoint($breakpoint1, print)
|
54
|
+
content: 'elp'
|
55
|
+
.csny
|
56
|
+
+breakpoint($breakpoint8)
|
57
|
+
content: 'csny'
|
58
|
+
.rhcp
|
59
|
+
+breakpoint(30em 40em)
|
60
|
+
content: 'rhcp'
|
61
|
+
```
|
62
|
+
|
63
|
+
Example generated CSS
|
64
|
+
|
65
|
+
```css
|
66
|
+
@media screen and (min-width: 500px) {
|
67
|
+
.foo {
|
68
|
+
content: "foo";
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
@media screen and (min-width: 30em) {
|
73
|
+
.bar {
|
74
|
+
content: "bar";
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
@media screen and (min-width: 500px) and (max-width: 700px) {
|
79
|
+
.baz {
|
80
|
+
content: "baz";
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
@media screen and (min-width: 700px) {
|
85
|
+
.omg {
|
86
|
+
content: "omg";
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
@media screen and (max-width: 700px) {
|
91
|
+
.wtf {
|
92
|
+
content: "wtf";
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
@media screen and (max-width: 700px) and (orientation: portrait) {
|
97
|
+
.bbq {
|
98
|
+
content: "bbq";
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
@media screen and (max-width: 700px) and (orientation: portrait) and (monochrome) {
|
103
|
+
.zztop {
|
104
|
+
content: "zztop";
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
@media print and (min-width: 500px) {
|
109
|
+
.elp {
|
110
|
+
content: "elp";
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
@media screen and (monochrome) {
|
115
|
+
.csny {
|
116
|
+
content: "csny";
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
@media screen and (min-width: 30em) and (max-width: 40em) {
|
121
|
+
.rhcp {
|
122
|
+
content: "rhcp";
|
123
|
+
}
|
124
|
+
}
|
125
|
+
```
|
126
|
+
|
127
|
+
### Installation
|
128
|
+
|
129
|
+
0. [Install Sass and Compass](http://compass-style.org/install/), if you haven't already.
|
130
|
+
1. **Terminal**: `gem install breakpoint`
|
131
|
+
2. Add `require 'breakpoint'` in Compass's config.rb file
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
## Requirements
|
137
|
+
|
138
|
+
- [Sass](http://sass-lang.com/)
|
139
|
+
- [Compass](http://compass-style.org/)
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
## License
|
145
|
+
|
146
|
+
Licensed under MIT/GPL.
|
147
|
+
|
148
|
+
GPL license:
|
149
|
+
http://www.gnu.org/licenses/gpl.html
|
150
|
+
|
151
|
+
MIT license:
|
152
|
+
http://www.opensource.org/licenses/mit-license.php
|
153
|
+
|
data/lib/breakpoint.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
// experimental - depends on Sass 3.2 or higher
|
2
|
+
define your own breakpoints
|
3
|
+
styles nested in the mixin will pass thru in @content
|
4
|
+
resist the urge to settle on common device sizes
|
5
|
+
http://marcdrummond.com/responsive-web-design/2011/12/29/default-breakpoints-are-dead
|
6
|
+
|
7
|
+
|
8
|
+
////////////////////////////
|
9
|
+
// BREAKPOINT
|
10
|
+
// breakpoint($breakpoint, $media: 'screen')
|
11
|
+
//
|
12
|
+
// // create $breakpoint variables like so
|
13
|
+
// // assume $breakpoint-default-feature if only a number
|
14
|
+
// $breakpoint1: 500px
|
15
|
+
// $breakpoint2: 30em
|
16
|
+
// // set min-width/max-width if both values are numbers
|
17
|
+
// $breakpoint3: 500px 700px
|
18
|
+
// // if one value is a string, assume a feature/value pair
|
19
|
+
// $breakpoint4: min-width 700px
|
20
|
+
// $breakpoint5: max-width 700px
|
21
|
+
// // for multidimensional lists, assume each item is a feature/value pair
|
22
|
+
// $breakpoint6: max-width 700px, orientation portrait
|
23
|
+
// // handle one-sided features (ie. monochrome)
|
24
|
+
// $breakpoint7: max-width 700px, orientation portrait, monochrome
|
25
|
+
// $breakpoint8: monochrome
|
26
|
+
////////////////////////////
|
27
|
+
|
28
|
+
$breakpoint-default-feature: min-width !default
|
29
|
+
|
30
|
+
@function breakpoint-concatenate($query-string, $new-value, $feature: $breakpoint-default-feature)
|
31
|
+
$new-string: ''
|
32
|
+
@if $feature != false
|
33
|
+
$new-string: #{$query-string}unquote("and (#{$feature}: #{$new-value}) ")
|
34
|
+
@else
|
35
|
+
$new-string: #{$query-string}unquote("and (#{$new-value}) ")
|
36
|
+
@return $new-string
|
37
|
+
|
38
|
+
=breakpoint($breakpoint, $media: 'screen')
|
39
|
+
// initialize string
|
40
|
+
$query-string: '#{$media} '
|
41
|
+
@if type-of($breakpoint) == number
|
42
|
+
// assume max-width if only a number
|
43
|
+
$query-string: breakpoint-concatenate($query-string, $breakpoint)
|
44
|
+
@if type-of($breakpoint) == string
|
45
|
+
// handle one-sided features (ie. monochrome)
|
46
|
+
$query-string: breakpoint-concatenate($query-string, $breakpoint, false)
|
47
|
+
@else if type-of($breakpoint) == list
|
48
|
+
@if (type-of(nth($breakpoint, 1)) == number) and (type-of(nth($breakpoint, 2)) == number)
|
49
|
+
// set min/max if both values are numbers
|
50
|
+
// @if $modular-scale-loaded == true
|
51
|
+
// $breakpoint: sort-list($breakpoint)
|
52
|
+
$query-string: breakpoint-concatenate($query-string, nth($breakpoint, 1), 'min-width')
|
53
|
+
$query-string: breakpoint-concatenate($query-string, nth($breakpoint, 2), 'max-width')
|
54
|
+
@else if (type-of(nth($breakpoint, 1)) == string)
|
55
|
+
// if one value is a string, assume a feature/value pair
|
56
|
+
$query-string: breakpoint-concatenate($query-string, nth($breakpoint, 2), nth($breakpoint, 1))
|
57
|
+
@else if (type-of(nth($breakpoint, 1)) == list)
|
58
|
+
// for multidimensional lists, assume each item is a feature value pair
|
59
|
+
@each $item in $breakpoint
|
60
|
+
@if type-of($item) == list
|
61
|
+
// $query-string: #{$query-string}unquote("and (#{nth($item, 1)}: #{nth($item, 2)}) ")
|
62
|
+
$query-string: breakpoint-concatenate($query-string, nth($item, 2), nth($item, 1))
|
63
|
+
@else
|
64
|
+
// handle one-sided features (ie. monochrome)
|
65
|
+
$query-string: breakpoint-concatenate($query-string, $item, false)
|
66
|
+
// write out the media query
|
67
|
+
@media #{$query-string}
|
68
|
+
@content
|
metadata
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: breakpoint
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 9
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: "0.1"
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Mason Wendell
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2012-05-22 00:00:00 Z
|
18
|
+
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
20
|
+
name: compass
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 45
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
- 12
|
31
|
+
- 1
|
32
|
+
version: 0.12.1
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description: Really simple media queries in Sass
|
36
|
+
email:
|
37
|
+
- mason@zivtech.com
|
38
|
+
executables: []
|
39
|
+
|
40
|
+
extensions: []
|
41
|
+
|
42
|
+
extra_rdoc_files: []
|
43
|
+
|
44
|
+
files:
|
45
|
+
- README.markdown
|
46
|
+
- CHANGELOG.markdown
|
47
|
+
- lib/breakpoint.rb
|
48
|
+
- stylesheets/_breakpoint.sass
|
49
|
+
homepage: http://thecodingdesigner.com
|
50
|
+
licenses: []
|
51
|
+
|
52
|
+
post_install_message:
|
53
|
+
rdoc_options: []
|
54
|
+
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 23
|
72
|
+
segments:
|
73
|
+
- 1
|
74
|
+
- 3
|
75
|
+
- 6
|
76
|
+
version: 1.3.6
|
77
|
+
requirements: []
|
78
|
+
|
79
|
+
rubyforge_project:
|
80
|
+
rubygems_version: 1.8.17
|
81
|
+
signing_key:
|
82
|
+
specification_version: 3
|
83
|
+
summary: An easy to use system for writing and managing media queries.
|
84
|
+
test_files: []
|
85
|
+
|