singularitygs 0.0.15.1 → 0.0.16
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/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
|
-
}
|