singularitygs 1.1.2 → 1.8.0

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.
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
  }