singularitygs 0.0.15.1 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/singularitygs.rb +2 -2
- data/stylesheets/_singularitygs.scss +3 -0
- data/stylesheets/singularitygs/_column.scss +17 -16
- data/stylesheets/singularitygs/_grid-plugins.scss +1 -0
- data/stylesheets/singularitygs/_grid-structure.scss +0 -1
- data/stylesheets/singularitygs/_grid.scss +1 -1
- data/stylesheets/singularitygs/_gutter.scss +34 -0
- data/stylesheets/singularitygs/_mixins.scss +21 -15
- data/stylesheets/singularitygs/grid-plugins/_compound.scss +34 -31
- data/stylesheets/singularitygs/grid-plugins/_ratio-spiral.scss +42 -0
- data/stylesheets/singularitygs/grid-plugins/_ratio.scss +4 -0
- metadata +4 -5
- data/stylesheets/singularitygs/grid-structure/_structure-clear.scss +0 -32
data/lib/singularitygs.rb
CHANGED
@@ -1,19 +1,14 @@
|
|
1
|
-
// calculate the width of individual columns
|
2
|
-
//@function list-column-width($location, $columns) {
|
3
|
-
// // send a warning if this is used when $columns is not a list
|
4
|
-
// @if type-of($columns) != list {
|
5
|
-
// @warn "The column-list-sum function requires the variable $columns to be a list.";
|
6
|
-
// }
|
7
|
-
// @else {
|
8
|
-
// // divide the column from its context
|
9
|
-
// @return nth(nth($columns, $location), 1) / list-sum($columns);
|
10
|
-
// }
|
11
|
-
//}
|
12
|
-
|
13
1
|
// Calculate the width spanning multiple columns
|
14
|
-
@function column-span($span, $location: 1, $columns: $columns) {
|
15
|
-
|
2
|
+
@function column-span($span, $location: 1, $columns: $columns, $gutter: $gutter) {
|
3
|
+
// if the gutter is a percent, convert it to a ratio
|
16
4
|
|
5
|
+
@if unit($gutter) == '%' {
|
6
|
+
$gutter: percentage-gutter-conversion($gutter, $columns);
|
7
|
+
}
|
8
|
+
|
9
|
+
// gutters are a type of column
|
10
|
+
$columns-and-gutters: column-sum($columns, $gutter);
|
11
|
+
|
17
12
|
// Equal width columns
|
18
13
|
@if type-of($columns) == number {
|
19
14
|
$span-and-gutter: $span + (($span - 1) * $gutter);
|
@@ -28,14 +23,20 @@
|
|
28
23
|
@for $i from $location to $location + $span {
|
29
24
|
$holder: append($holder, nth(nth($columns, $i), 1), comma);
|
30
25
|
}
|
31
|
-
|
26
|
+
|
32
27
|
@return column-sum($holder, $gutter) / $columns-and-gutters * 100%;
|
33
28
|
}
|
34
|
-
|
29
|
+
|
35
30
|
@return 10%;
|
36
31
|
}
|
37
32
|
|
38
33
|
@function column-sum($columns: $columns, $gutter: $gutter) {
|
34
|
+
|
35
|
+
// if the gutter is a percent, convert it to a ratio
|
36
|
+
@if unit($gutter) == percentage {
|
37
|
+
$gutter: percentage-gutter-conversion($gutter, $columns);
|
38
|
+
}
|
39
|
+
|
39
40
|
@if type-of($columns) == 'number' {
|
40
41
|
@return $columns + ((column-count($columns) - 1) * $gutter);
|
41
42
|
}
|
@@ -1,10 +1,44 @@
|
|
1
|
+
// percentage conversion
|
2
|
+
@function percentage-gutter-conversion($percent-gutter, $columns) {
|
3
|
+
|
4
|
+
// find the resolution of the grids
|
5
|
+
$resolution: 0;
|
6
|
+
@if length($columns) == 1 {
|
7
|
+
$resolution: $columns;
|
8
|
+
}
|
9
|
+
@else {
|
10
|
+
@each $column in $columns {
|
11
|
+
$resolution: $resolution + $column;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
// divide the percentage gutter by 100% to get the offset
|
16
|
+
// then multiply be resolution for the full conversion
|
17
|
+
$new-gutter: ($percent-gutter / 100%) * $resolution;
|
18
|
+
|
19
|
+
@return $new-gutter;
|
20
|
+
}
|
21
|
+
|
22
|
+
|
1
23
|
// Gutters to be removed from columns
|
2
24
|
@function gutter-offset($gutter, $columns) {
|
25
|
+
|
26
|
+
// if the gutter is a percent, convert it to a ratio
|
27
|
+
@if unit($gutter) == percentage {
|
28
|
+
$gutter: percentage-gutter-conversion($gutter, $columns);
|
29
|
+
}
|
30
|
+
|
3
31
|
$gutter-sum: $gutter * (column-count($columns) - 1);
|
4
32
|
@return $gutter-sum / column-count($columns);
|
5
33
|
}
|
6
34
|
|
7
35
|
@function gutter-span($gutter, $columns) {
|
36
|
+
|
37
|
+
// if the gutter is a percent, convert it to a ratio
|
38
|
+
@if unit($gutter) == percentage {
|
39
|
+
$gutter: percentage-gutter-conversion($gutter, $columns);
|
40
|
+
}
|
41
|
+
|
8
42
|
$columns-and-gutters: column-sum($columns, $gutter);
|
9
43
|
|
10
44
|
@return $gutter / $columns-and-gutters * 100%;
|
@@ -57,11 +57,12 @@
|
|
57
57
|
@include grid-padding($padding);
|
58
58
|
margin-right: $gutter;
|
59
59
|
}
|
60
|
+
// This function now labels object prefix+span.location
|
60
61
|
@for $i from 1 through column-count($columns) {
|
61
|
-
@for $n from
|
62
|
-
#{$selector}#{$prefix}#{$
|
62
|
+
@for $n from 1 through (column-count($columns) - $count) {
|
63
|
+
#{$selector}#{$prefix}#{$n}-#{$count + 1} {
|
63
64
|
@extend %#{$prefix}column;
|
64
|
-
@include grid-span($n
|
65
|
+
@include grid-span($n, $count + 1, $columns, $gutter);
|
65
66
|
}
|
66
67
|
}
|
67
68
|
$count: $count + 1;
|
@@ -83,18 +84,18 @@
|
|
83
84
|
@mixin container($max-width: $container, $bfs: $base-font-size) {
|
84
85
|
$bfs-length: length($bfs);
|
85
86
|
$bfs-counter: 1;
|
86
|
-
|
87
|
+
|
87
88
|
@if length($containers) != 0 {
|
88
89
|
$query: 'min-width';
|
89
90
|
@if $grids-mobile-first == false {
|
90
91
|
$query: 'max-width';
|
91
92
|
}
|
92
|
-
|
93
|
+
|
93
94
|
$total: length($containers);
|
94
|
-
|
95
|
+
|
95
96
|
@if $total > 1 {
|
96
97
|
@for $i from 2 through $total {
|
97
|
-
|
98
|
+
|
98
99
|
@include breakpoint((nth(nth($containers, $i), 2) $query)) {
|
99
100
|
$bfs-holder: bfs-finder($query);
|
100
101
|
@if unit(nth(nth($containers, $i), 1)) != '%' and $container-to-ems == true {
|
@@ -121,28 +122,33 @@
|
|
121
122
|
max-width: $max-width;
|
122
123
|
}
|
123
124
|
}
|
124
|
-
|
125
|
+
|
125
126
|
//////////////////////////////
|
126
127
|
// Center Container
|
127
128
|
//////////////////////////////
|
128
129
|
margin: 0 auto;
|
129
130
|
|
131
|
+
//////////////////////////////
|
132
|
+
// Overflow: Hidden
|
133
|
+
//////////////////////////////
|
134
|
+
overflow: hidden;
|
135
|
+
|
130
136
|
//////////////////////////////
|
131
137
|
// Border box and clearfix
|
132
138
|
//////////////////////////////
|
133
139
|
@include box-sizing(border-box);
|
134
140
|
*behavior: url('../behaviors/box-sizing/boxsizing.php');
|
135
|
-
|
141
|
+
|
136
142
|
&:before,
|
137
143
|
&:after {
|
138
144
|
content: "";
|
139
145
|
display: table;
|
140
146
|
}
|
141
|
-
|
147
|
+
|
142
148
|
&:after {
|
143
149
|
clear: both;
|
144
150
|
}
|
145
|
-
|
151
|
+
|
146
152
|
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
147
153
|
/* for IE 6/7 */
|
148
154
|
*zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif");
|
@@ -161,10 +167,10 @@
|
|
161
167
|
@if $grids-mobile-first == false {
|
162
168
|
$query: 'max-width';
|
163
169
|
}
|
164
|
-
|
170
|
+
|
165
171
|
html {
|
166
172
|
font-size: nth($bfs, 1);
|
167
|
-
|
173
|
+
|
168
174
|
@if $bfs-length > 1 {
|
169
175
|
@for $i from 2 through $bfs-length {
|
170
176
|
@include breakpoint((nth(nth($bfs, $i), 2) $query)) {
|
@@ -181,11 +187,11 @@
|
|
181
187
|
@function bfs-finder($query) {
|
182
188
|
$context: breakpoint-get-context($query);
|
183
189
|
$reverse: reverse($base-font-size);
|
184
|
-
|
190
|
+
|
185
191
|
@if $grids-mobile-first == false {
|
186
192
|
$query: 'max-width';
|
187
193
|
}
|
188
|
-
|
194
|
+
|
189
195
|
@if $query == "min-width" and $context != false {
|
190
196
|
@each $size in $reverse {
|
191
197
|
@if length($size) == 2 {
|
@@ -1,46 +1,49 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
// 16 arguments can be passed into this function
|
2
|
+
// a max of 16 comma seperated grids
|
3
|
+
@function compound($cg1: 1, $cg2: 1, $cg3: 1, $cg4: 1, $cg5: 1, $cg6: 1, $cg7: 1, $cg8: 1, $cg9: 1, $cg10: 1, $cg11: 1, $cg12: 1, $cg13: 1, $cg14: 1, $cg15: 1, $cg16: 1) {
|
4
|
+
|
5
|
+
// merge arguments into a single list.
|
6
|
+
$compound-grids: $cg1, $cg2, $cg3, $cg4, $cg5, $cg6, $cg7, $cg8, $cg9, $cg10, $cg11, $cg12, $cg13, $cg14, $cg15, $cg16;
|
7
|
+
|
8
|
+
// Find the base resolution of grid
|
9
|
+
$resolution: 1;
|
10
|
+
@each $item in $compound-grids {
|
11
|
+
$resolution: $resolution * $item;
|
12
|
+
}
|
13
|
+
|
3
14
|
$compound-grid: ();
|
4
15
|
$compound-counter: 1;
|
5
|
-
|
16
|
+
// cycle through each step in grid resolution
|
17
|
+
@for $i from 1 through $resolution {
|
18
|
+
|
19
|
+
// dont add a column by default
|
6
20
|
$add-col: false;
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
@if $i / $
|
14
|
-
$add-col: true;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
@if $c3 != 1 {
|
18
|
-
@if $i / $c3 == round($i / $c3) {
|
19
|
-
$add-col: true;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
@if $c4 != 1 {
|
23
|
-
@if $i / $c4 == round($i / $c4) {
|
24
|
-
$add-col: true;
|
25
|
-
}
|
26
|
-
}
|
27
|
-
@if $c5 != 1 {
|
28
|
-
@if $i / $c5 == round($i / $c5) {
|
29
|
-
$add-col: true;
|
30
|
-
}
|
31
|
-
}
|
32
|
-
@if $c6 != 1 {
|
33
|
-
@if $i / $c6 == round($i / $c6) {
|
21
|
+
|
22
|
+
// cycle through all grids to see if any grids match
|
23
|
+
@each $grid in $compound-grids {
|
24
|
+
|
25
|
+
// if the grid divides evenly into the resolution, add a column
|
26
|
+
// divide the resolution by number of columns to get the column resolution
|
27
|
+
@if $i / ($resolution / $grid) == round($i / ($resolution / $grid)) {
|
34
28
|
$add-col: true;
|
35
29
|
}
|
36
30
|
}
|
31
|
+
|
32
|
+
// add the counter value to the compound grid list, reset counter
|
33
|
+
// this marks where one column ends and a new one begins
|
37
34
|
@if $add-col {
|
38
35
|
$compound-grid: join($compound-grid, $compound-counter, comma);
|
39
36
|
$compound-counter: 1;
|
40
37
|
}
|
38
|
+
// if no column is added, bump up counter
|
41
39
|
@else {
|
42
40
|
$compound-counter: $compound-counter + 1;
|
43
41
|
}
|
44
42
|
}
|
43
|
+
|
44
|
+
@if $singularity-debug {
|
45
|
+
@debug "Grid compounded to #{length($compound-grid)} columns";
|
46
|
+
}
|
47
|
+
|
45
48
|
@return $compound-grid;
|
46
|
-
}
|
49
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
// centralize spiral steps.
|
2
|
+
@function ratio-spiral-i($i) {
|
3
|
+
@return (($i * 2) + 1);
|
4
|
+
}
|
5
|
+
|
6
|
+
@function ratio-spiral($depth: 5, $ratio: golden(), $invert: false) {
|
7
|
+
|
8
|
+
// write the middle most column, a little out of step from the other columns.
|
9
|
+
$list: ms(ratio-spiral-i(-$depth) + 1, 100, $ratio);
|
10
|
+
|
11
|
+
// flip the direction the order columns are written in.
|
12
|
+
@if $invert == false {
|
13
|
+
@for $i from -($depth - 1) to 0 {
|
14
|
+
// if the number is even
|
15
|
+
@if $i/2 == round($i/2) {
|
16
|
+
// append after the list
|
17
|
+
$list: append($list, ms(ratio-spiral-i($i), 100, $ratio));
|
18
|
+
}
|
19
|
+
@else {
|
20
|
+
// append before the list
|
21
|
+
$list: append(ms(ratio-spiral-i($i), 100, $ratio), $list);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
@else {
|
27
|
+
@for $i from -($depth - 1) to 0 {
|
28
|
+
@if $i/2 == round($i/2) {
|
29
|
+
$list: append(ms(ratio-spiral-i($i), 100, $ratio), $list);
|
30
|
+
}
|
31
|
+
@else {
|
32
|
+
$list: append($list, ms(ratio-spiral-i($i), 100, $ratio));
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
@if $singularity-debug {
|
38
|
+
@debug "Grid compounded to #{length($list)} columns";
|
39
|
+
}
|
40
|
+
|
41
|
+
@return $list;
|
42
|
+
}
|
metadata
CHANGED
@@ -5,9 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
|
10
|
-
version: 0.0.15.1
|
8
|
+
- 16
|
9
|
+
version: 0.0.16
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Scott Kellum
|
@@ -16,7 +15,7 @@ autorequire:
|
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
17
|
|
19
|
-
date: 2012-10-
|
18
|
+
date: 2012-10-28 00:00:00 -04:00
|
20
19
|
default_executable:
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
@@ -99,8 +98,8 @@ files:
|
|
99
98
|
- stylesheets/singularitygs/_helpers.scss
|
100
99
|
- stylesheets/singularitygs/_mixins.scss
|
101
100
|
- stylesheets/singularitygs/grid-plugins/_compound.scss
|
101
|
+
- stylesheets/singularitygs/grid-plugins/_ratio-spiral.scss
|
102
102
|
- stylesheets/singularitygs/grid-plugins/_ratio.scss
|
103
|
-
- stylesheets/singularitygs/grid-structure/_structure-clear.scss
|
104
103
|
- stylesheets/singularitygs/grid-structure/_structure-display-table.scss
|
105
104
|
- stylesheets/singularitygs/grid-structure/_structure-float.scss
|
106
105
|
- stylesheets/singularitygs/grid-structure/_structure-grid-layout.scss
|
@@ -1,32 +0,0 @@
|
|
1
|
-
$legacy-support-for-ie6: true !default;
|
2
|
-
$legacy-support-for-ie7: true !default;
|
3
|
-
|
4
|
-
@mixin grid-clear($clear-dir) {
|
5
|
-
@if $clear-dir == 'left' {
|
6
|
-
clear: right;
|
7
|
-
}
|
8
|
-
@else if $clear-dir == 'right' {
|
9
|
-
clear: left;
|
10
|
-
}
|
11
|
-
@else if $clear-dir == 'both' {
|
12
|
-
clear: both;
|
13
|
-
}
|
14
|
-
|
15
|
-
|
16
|
-
&:before,
|
17
|
-
&:after {
|
18
|
-
content: "";
|
19
|
-
display: table;
|
20
|
-
}
|
21
|
-
|
22
|
-
&:after {
|
23
|
-
clear: both;
|
24
|
-
}
|
25
|
-
|
26
|
-
@if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
|
27
|
-
/* for IE 6/7 */
|
28
|
-
*zoom: expression(this.runtimeStyle.zoom="1", this.appendChild(document.createElement("br")).style.cssText="clear:both;font:0/0 serif");
|
29
|
-
}
|
30
|
-
/* non-JS fallback */
|
31
|
-
*zoom: 1;
|
32
|
-
}
|