singularity-extras 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,11 @@
1
+ require 'compass'
2
+ require 'singularitygs'
3
+ require 'modular-scale'
4
+ require 'sassy-math'
5
+
6
+ Compass::Frameworks.register("singularity-extras", :path => "#{File.dirname(__FILE__)}/..")
7
+
8
+ module SingularityExtras
9
+ VERSION = "0.0.1"
10
+ DATE = "2012-04-04"
11
+ end
@@ -0,0 +1,3 @@
1
+ @import "singularity-extras/helpers";
2
+ @import "singularity-extras/generators";
3
+ @import "singularity-extras/output";
@@ -0,0 +1,3 @@
1
+ @import "generators/compound";
2
+ @import "generators/ratio";
3
+ @import "generators/ratio-spiral";
@@ -0,0 +1,3 @@
1
+ @import "helpers/list-sum";
2
+ @import "helpers/repeat";
3
+ @import "helpers/reverse";
File without changes
@@ -0,0 +1,45 @@
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
+
14
+ $compound-grid: ();
15
+ $compound-counter: 1;
16
+ // cycle through each step in grid resolution
17
+ @for $i from 1 through $resolution {
18
+
19
+ // dont add a column by default
20
+ $add-col: false;
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)) {
28
+ $add-col: true;
29
+ }
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
34
+ @if $add-col {
35
+ $compound-grid: join($compound-grid, $compound-counter, comma);
36
+ $compound-counter: 1;
37
+ }
38
+ // if no column is added, bump up counter
39
+ @else {
40
+ $compound-counter: $compound-counter + 1;
41
+ }
42
+ }
43
+
44
+ @return $compound-grid;
45
+ }
@@ -0,0 +1,40 @@
1
+ @import "modular-scale";
2
+
3
+ // centralize spiral steps.
4
+ @function ratio-spiral-i($i) {
5
+ @return (($i * 2) + 1);
6
+ }
7
+
8
+ @function ratio-spiral($depth: 5, $ratio: golden(), $invert: false) {
9
+
10
+ // write the middle most column, a little out of step from the other columns.
11
+ $list: ms(ratio-spiral-i(-$depth) + 1, 100, $ratio);
12
+
13
+ // flip the direction the order columns are written in.
14
+ @if $invert == false {
15
+ @for $i from -($depth - 1) to 0 {
16
+ // if the number is even
17
+ @if $i/2 == round($i/2) {
18
+ // append after the list
19
+ $list: append($list, ms(ratio-spiral-i($i), 100, $ratio));
20
+ }
21
+ @else {
22
+ // append before the list
23
+ $list: append(ms(ratio-spiral-i($i), 100, $ratio), $list);
24
+ }
25
+ }
26
+ }
27
+
28
+ @else {
29
+ @for $i from -($depth - 1) to 0 {
30
+ @if $i/2 == round($i/2) {
31
+ $list: append(ms(ratio-spiral-i($i), 100, $ratio), $list);
32
+ }
33
+ @else {
34
+ $list: append($list, ms(ratio-spiral-i($i), 100, $ratio));
35
+ }
36
+ }
37
+ }
38
+
39
+ @return $list;
40
+ }
@@ -0,0 +1,20 @@
1
+ // Creates a list based on a ratio
2
+ // Valid options for $start: 'large' or 'small'
3
+ @function ratio($ratio, $steps, $start: 'small') {
4
+ $x: 1;
5
+ $return: ();
6
+
7
+ @for $i from 0 through $steps - 1 {
8
+ $xr: $x * pow($ratio, $i);
9
+ $return: append($return, $xr, comma);
10
+ }
11
+
12
+ @if $start == 'small' and $ratio < 1 {
13
+ $return: reverse($return);
14
+ }
15
+ @else if $start == 'large' and $ratio > 1 {
16
+ $return: reverse($return);
17
+ }
18
+
19
+ @return $return;
20
+ }
@@ -0,0 +1,10 @@
1
+ // Calculate the total sum of a list
2
+ @function list-sum($list) {
3
+ // zero out the initial sum
4
+ $sum: 0;
5
+ // loop through each value in the list adding it to $list-sum
6
+ @for $i from 1 through length($list) {
7
+ $sum: $sum + nth(nth($list, $i), 1);
8
+ }
9
+ @return nth($sum, 1);
10
+ }
@@ -0,0 +1,8 @@
1
+ // Repeat a list
2
+ @function repeat($count, $repeat) {
3
+ $list: $repeat;
4
+ @for $i from 2 through $count {
5
+ $list: join($repeat, $list);
6
+ }
7
+ @return $list;
8
+ }
@@ -0,0 +1,9 @@
1
+ // Reverses direction of a list
2
+ @function reverse($list) {
3
+ $length: length($list);
4
+ $return: ();
5
+ @for $i from 0 to $length {
6
+ $return: append($return, nth($list, $length - $i), comma);
7
+ }
8
+ @return $return;
9
+ }
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: singularity-extras
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Scott Kellum
13
+ - Sam Richard
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-04-04 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: singularitygs
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 0
31
+ - 1
32
+ version: 0.0.1
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: sassy-math
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 5
45
+ version: "1.5"
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: modular-scale
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 1
57
+ - 0
58
+ - 6
59
+ version: 1.0.6
60
+ type: :runtime
61
+ version_requirements: *id003
62
+ description: Advanced responsive grid system for Sass and Compass
63
+ email:
64
+ - scott@scottkellum.com
65
+ - snugug@gmail.com
66
+ executables: []
67
+
68
+ extensions: []
69
+
70
+ extra_rdoc_files: []
71
+
72
+ files:
73
+ - lib/singularity-extras.rb
74
+ - stylesheets/_singularity-extras.scss
75
+ - stylesheets/singularity-extras/_generators.scss
76
+ - stylesheets/singularity-extras/_helpers.scss
77
+ - stylesheets/singularity-extras/_output.scss
78
+ - stylesheets/singularity-extras/generators/_compound.scss
79
+ - stylesheets/singularity-extras/generators/_ratio-spiral.scss
80
+ - stylesheets/singularity-extras/generators/_ratio.scss
81
+ - stylesheets/singularity-extras/helpers/_list-sum.scss
82
+ - stylesheets/singularity-extras/helpers/_repeat.scss
83
+ - stylesheets/singularity-extras/helpers/_reverse.scss
84
+ has_rdoc: true
85
+ homepage: http://singularity.gs
86
+ licenses: []
87
+
88
+ post_install_message:
89
+ rdoc_options: []
90
+
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ segments:
105
+ - 1
106
+ - 2
107
+ version: "1.2"
108
+ requirements: []
109
+
110
+ rubyforge_project: singularity-extras
111
+ rubygems_version: 1.3.6
112
+ signing_key:
113
+ specification_version: 3
114
+ summary: Singularity is a fluid grid system that can generate uniform columns as well as asymmetric and compound grids with tools to write grids as functions, mixins, or class based objects.
115
+ test_files: []
116
+