singularitygs 1.1.2 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -7
  2. data/lib/singularitygs.rb +14 -6
  3. data/stylesheets/_singularitygs.scss +21 -30
  4. data/stylesheets/singularitygs/_api.scss +103 -24
  5. data/stylesheets/singularitygs/_css-grid.scss +141 -0
  6. data/stylesheets/singularitygs/_helpers.scss +6 -2
  7. data/stylesheets/singularitygs/api/_calc.scss +218 -0
  8. data/stylesheets/singularitygs/api/_float.scss +87 -147
  9. data/stylesheets/singularitygs/api/_isolation.scss +98 -131
  10. data/stylesheets/singularitygs/grids/_add.scss +34 -16
  11. data/stylesheets/singularitygs/grids/_find.scss +6 -8
  12. data/stylesheets/singularitygs/gutter-styles/_add.scss +39 -16
  13. data/stylesheets/singularitygs/gutter-styles/_find.scss +10 -5
  14. data/stylesheets/singularitygs/gutter-styles/_helpers.scss +6 -10
  15. data/stylesheets/singularitygs/gutters/_add.scss +37 -14
  16. data/stylesheets/singularitygs/gutters/_find.scss +9 -5
  17. data/stylesheets/singularitygs/helpers/_background-grid.scss +196 -219
  18. data/stylesheets/singularitygs/helpers/_box-sizing.scss +17 -32
  19. data/stylesheets/singularitygs/helpers/_clearfix.scss +10 -95
  20. data/stylesheets/singularitygs/helpers/_columns.scss +4 -3
  21. data/stylesheets/singularitygs/helpers/_directions.scss +6 -0
  22. data/stylesheets/singularitygs/helpers/_find.scss +112 -65
  23. data/stylesheets/singularitygs/helpers/_layout.scss +107 -10
  24. data/stylesheets/singularitygs/helpers/_sass-lists.scss +1 -1
  25. data/stylesheets/singularitygs/helpers/_settings.scss +60 -0
  26. data/stylesheets/singularitygs/helpers/_sort.scss +56 -0
  27. data/stylesheets/singularitygs/helpers/_span-shared.scss +20 -2
  28. data/stylesheets/singularitygs/language/_parse-add.scss +53 -9
  29. data/stylesheets/singularitygs/language/_parse-list.scss +3 -3
  30. data/stylesheets/singularitygs/math/_columns.scss +9 -7
  31. data/stylesheets/singularitygs/math/_context.scss +1 -1
  32. data/stylesheets/singularitygs/math/_gutters.scss +2 -1
  33. metadata +52 -72
  34. data/templates/box-sizing/behaviors/box-sizing/boxsizing.htc +0 -399
  35. data/templates/box-sizing/behaviors/box-sizing/boxsizing.php +0 -23
  36. data/templates/box-sizing/manifest.rb +0 -4
  37. data/templates/demos/demo-float.scss +0 -159
  38. data/templates/demos/demo-isolation.scss +0 -132
  39. data/templates/demos/float.html.erb +0 -18
  40. data/templates/demos/isolation.html.erb +0 -18
  41. data/templates/demos/manifest.rb +0 -17
  42. data/templates/grid-toggle/grid.js +0 -16
  43. data/templates/grid-toggle/grid.min.js +0 -2
  44. data/templates/grid-toggle/manifest.rb +0 -22
  45. data/templates/project/grid.js +0 -16
  46. data/templates/project/grid.min.js +0 -2
  47. data/templates/project/manifest.rb +0 -23
  48. data/templates/project/partials/_base.scss +0 -4
  49. data/templates/project/style.scss +0 -15
@@ -1,29 +1,52 @@
1
- // Accepts a gutter style definition in the human-readable format. Converts it to the internal format,
2
- // appends it to a list of gutter styles and returns the resulting list.
1
+ // Accepts a gutter-style style definition in the human-readable format. Converts it to the internal format,
2
+ // appends it to a list of gutter-style styles and returns the resulting list.
3
3
  //
4
4
  // Note that this function only returns a new list, it does not modify the source list.
5
5
  //
6
- // add-gutter-style($gutter-style-definition, $append-to-list)
7
- // - $gutter-definition : <definition> See documentation for syntax:
6
+ // add-gutter-style-style($gutter-style-style-definition, $append-to-list)
7
+ // - $gutter-style-definition : <definition> See documentation for syntax:
8
8
  // https://github.com/Team-Sass/Singularity/wiki/Creating-Grids
9
9
  // - $append-to-list : [list] A list to append to.
10
- // Defaults to $gutters if none is specified.
11
- @function add-gutter-style($gutter-style-definition, $append-to-list: $gutter-styles) {
12
- $parsed: parse-add($gutter-style-definition); // Converts the definition to a temporary format:
13
- // either `((<gutter-style>))` or `((<gutter-style>) (<breakpoint>))`
14
- $gutter-style: nth($parsed, 1); // E. g. `(<gutter-style>)`.
15
- $breakpoint: nth($parsed, 2); // Either `(<breakpoint>)` or false.
16
- $list-length: length($append-to-list);
10
+ // Defaults to $gutter-styles if none is specified.
11
+ @function add-gutter-style($gutter-style-definition, $custom-map: false) {
12
+ $Parsed: parse-add($gutter-style-definition); // Parses gutter-style definition to gutter-style/breakpoint
13
+ $Gutter-Style: nth($Parsed, 1); // E. g. `(<gutter-style>)`.
14
+ $Breakpoint: nth($Parsed, 2); // Either `(<breakpoint>)` or false.
15
+ $Mobile-First: sgs-get('mobile first');
16
+ $Gutter-Style-Map: ();
17
+
18
+ // Determine if a custom map or the default maps should be used.
19
+ @if $custom-map {
20
+ $Gutter-Style-Map: $custom-map;
21
+ }
22
+ @else {
23
+ @if sgs-has('gutter styles') {
24
+ $Gutter-Style-Map: sgs-get('gutter styles');
25
+ }
26
+ }
27
+ $Gutter-Style-Key-Length: length(map-keys($Gutter-Style-Map));
17
28
 
18
29
  // Check whether the definition will be the first one in the list
19
30
  // and whether it has no breakpoint specified.
20
- @if $breakpoint == false and $list-length == 0 {
31
+ @if $Breakpoint == null {
21
32
  // Returns the first item of the list, e. g. `(<gutter-style>)`
22
- @return $gutter-style;
33
+ $Gutter-Style-Map: map-merge($Gutter-Style-Map, (-1px: $Gutter-Style));
23
34
  }
35
+ // IF the list is initiated with a list of gutter-style columns need to start off
36
+ // a comma seprated list.
24
37
  @else {
25
- // Appends to a comma-separated list of definitions in the internal format
26
- // and returns it, e. g. `(<gutter>), (<gutter> <breakpoint>), (<gutter> <breakpoint>)`
27
- @return append($append-to-list, ($gutter-style $breakpoint), 'comma');
38
+ @if not (map-has-key($Gutter-Style-Map, -1px)) {
39
+ $Gutter-Style-Map: map-merge($Gutter-Style-Map, map-get($Singularity-Settings, 'gutter styles'));
40
+ }
41
+ $Gutter-Style-Map: map-merge($Gutter-Style-Map, ($Breakpoint: $Gutter-Style));
28
42
  }
43
+
44
+ $Gutter-Style-Map: sort-map($Gutter-Style-Map, not $Mobile-First);
45
+
46
+ @return $Gutter-Style-Map;
29
47
  }
48
+
49
+ @mixin add-gutter-style($gutter-style-definition) {
50
+ $Add-gutter-style: add-gutter-style($gutter-style-definition);
51
+ $HOLDER: sgs-set('gutter styles', $Add-gutter-style);
52
+ }
@@ -5,12 +5,17 @@
5
5
  // From Singularity
6
6
  // Must be using Breakpoint to work properly
7
7
  //////////////////////////////
8
- @function find-gutter-style($user-gutter-style: false) {
8
+ @function find-gutter-style($user-gutter-styles: null) {
9
9
 
10
- // We supply a default if the user hasn't set any gutter style and hasn't passed in a custom gutter
11
- @if length($gutter-styles) == 0 and $user-gutter-style == false {
12
- $user-gutter-style: opposite;
10
+ // We supply a default if the user hasn't set any gutters and hasn't passed in a custom column set
11
+ // The default supplied is based on original Susy options
12
+ $Gutters-Styles: sgs-get('gutter styles');
13
+
14
+ $Found: find-object($Gutters-Styles, $user-gutter-styles);
15
+
16
+ @if length($Found) == 1 {
17
+ $Found: nth($Found, 1);
13
18
  }
14
19
 
15
- @return find-object($gutter-styles, $user-gutter-style);
20
+ @return $Found;
16
21
  }
@@ -1,18 +1,14 @@
1
- @function fixed-gutter($user-columns: false, $user-gutter: false, $user-gutter-style: false) {
2
- $grid: find-grid($user-columns);
3
- $gutter: find-gutter($user-gutter);
4
- $gutter-style: find-gutter-style($user-gutter-style);
5
-
6
- @if index($gutter-style, fixed) {
1
+ @function fixed-gutter($user-columns, $user-gutter, $user-gutter-style) {
2
+ @if index($user-gutter-style, 'fixed') {
7
3
  // @debug 'Fixed in output style';
8
4
  @return true;
9
5
  }
10
- @else if type-of($grid) == 'number' and not unitless($gutter) {
6
+ @else if type-of($user-columns) == 'number' and not unitless($user-gutter) {
11
7
  // @debug 'Equal columns with a unit based gutter';
12
8
  @return true;
13
9
  }
14
- @else if type-of($grid) == 'list' {
15
- @if unit(nth($grid, 1)) != unit($gutter) {
10
+ @else if type-of($user-columns) == 'list' {
11
+ @if unit(nth($user-columns, 1)) != unit($user-gutter) {
16
12
  // @debug 'Columns and gutters are different units';
17
13
  @return true;
18
14
  }
@@ -24,7 +20,7 @@
24
20
  @return false;
25
21
  }
26
22
 
27
- @function gutter-property($user-columns: false, $user-gutter: false, $user-gutter-style: false) {
23
+ @function gutter-property($user-columns, $user-gutter, $user-gutter-style) {
28
24
  @if fixed-gutter($user-columns, $user-gutter, $user-gutter-style) {
29
25
  @return 'padding';
30
26
  }
@@ -3,27 +3,50 @@
3
3
  //
4
4
  // Note that this function only returns a new list, it does not modify the source list.
5
5
  //
6
- // add-gutter($grid-definition, $append-to-list)
6
+ // add-gutter($Gutter-definition, $append-to-list)
7
7
  // - $gutter-definition : <definition> See documentation for syntax:
8
- // https://github.com/Team-Sass/Singularity/wiki/Creating-Grids
8
+ // https://github.com/Team-Sass/Singularity/wiki/Creating-Gutters
9
9
  // - $append-to-list : [list] A list to append to.
10
10
  // Defaults to $gutters if none is specified.
11
- @function add-gutter($gutter-definition, $append-to-list: $gutters) {
12
- $parsed: parse-add($gutter-definition); // Converts the definiton to a temporary format:
13
- // either `((<gutter>))` or `((<gutter>) (<breakpoint>))`
14
- $gutter: nth($parsed, 1); // E. g. `(<gutter>)`.
15
- $breakpoint: nth($parsed, 2); // Either `(<breakpoint>)` or false.
16
- $list-length: length($append-to-list);
11
+ @function add-gutter($gutter-definition, $custom-map: false) {
12
+ $Parsed: parse-add($gutter-definition); // Parses Gutter definition to Gutter/breakpoint
13
+ $Gutter: nth($Parsed, 1); // E. g. `(<Gutter>)`.
14
+ $Breakpoint: nth($Parsed, 2); // Either `(<breakpoint>)` or false.
15
+ $Mobile-First: sgs-get('mobile first');
16
+ $Gutter-Map: ();
17
+
18
+ // Determine if a custom map or the default maps should be used.
19
+ @if $custom-map {
20
+ $Gutter-Map: $custom-map;
21
+ }
22
+ @else {
23
+ @if sgs-has('gutters') {
24
+ $Gutter-Map: sgs-get('gutters');
25
+ }
26
+ }
27
+ $Gutter-Key-Length: length(map-keys($Gutter-Map));
17
28
 
18
29
  // Check whether the definition will be the first one in the list
19
30
  // and whether it has no breakpoint specified.
20
- @if $breakpoint == false and $list-length == 0 {
21
- // Returns the first item of the list, e. g. `(<gutter>)`
22
- @return $gutter;
31
+ @if $Breakpoint == null {
32
+ // Returns the first item of the list, e. g. `(<Gutter>)`
33
+ $Gutter-Map: map-merge($Gutter-Map, (-1px: $Gutter));
23
34
  }
35
+ // IF the list is initiated with a list of Gutter columns need to start off
36
+ // a comma seprated list.
24
37
  @else {
25
- // Appends to a comma-separated list of definitions in the internal format
26
- // and returns it, e. g. `(<gutter>), (<gutter> <breakpoint>), (<gutter> <breakpoint>)`
27
- @return append($append-to-list, ($gutter $breakpoint), 'comma');
38
+ @if not (map-has-key($Gutter-Map, -1px)) {
39
+ $Gutter-Map: map-merge($Gutter-Map, map-get($Singularity-Settings, 'gutters'));
40
+ }
41
+ $Gutter-Map: map-merge($Gutter-Map, ($Breakpoint: $Gutter));
28
42
  }
43
+
44
+ $Gutter-Map: sort-map($Gutter-Map, not $Mobile-First);
45
+
46
+ @return $Gutter-Map;
29
47
  }
48
+
49
+ @mixin add-gutter($gutter-definition) {
50
+ $Add-Gutter: add-gutter($gutter-definition);
51
+ $HOLDER: sgs-set('gutters', $Add-Gutter);
52
+ }
@@ -5,13 +5,17 @@
5
5
  // From Singularity
6
6
  // Must be using Breakpoint to work properly
7
7
  //////////////////////////////
8
- @function find-gutter($user-gutter: false) {
8
+ @function find-gutter($user-gutters: null) {
9
9
 
10
- // We supply a default if the user hasn't set any gutters and hasn't passed in a custom gutter
10
+ // We supply a default if the user hasn't set any gutters and hasn't passed in a custom column set
11
11
  // The default supplied is based on original Susy options
12
- @if length($gutters) == 0 and $user-gutter == false {
13
- $user-gutter: .25;
12
+ $Gutters: sgs-get('gutters');
13
+
14
+ $Found: find-object($Gutters, $user-gutters);
15
+
16
+ @if length($Found) == 1 {
17
+ $Found: nth($Found, 1);
14
18
  }
15
19
 
16
- @return nth(find-object($gutters, $user-gutter), 1);
20
+ @return $Found;
17
21
  }