jekyll-theme-basically-basic 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -19
  3. data/LICENSE.md +20 -20
  4. data/README.md +32 -2
  5. data/_includes/author +30 -30
  6. data/_includes/contact-list.html +26 -26
  7. data/_includes/cv/awards.html +23 -23
  8. data/_includes/cv/education.html +36 -36
  9. data/_includes/cv/interests.html +19 -19
  10. data/_includes/cv/intro.html +18 -18
  11. data/_includes/cv/languages.html +19 -19
  12. data/_includes/cv/publications.html +29 -29
  13. data/_includes/cv/references.html +23 -23
  14. data/_includes/cv/skills.html +19 -19
  15. data/_includes/cv/volunteer.html +46 -46
  16. data/_includes/cv/work.html +46 -46
  17. data/_includes/disqus_comments.html +16 -16
  18. data/_includes/entry.html +29 -29
  19. data/_includes/footer.html +9 -9
  20. data/_includes/google-analytics.html +8 -8
  21. data/_includes/icon-bitbucket.html +4 -4
  22. data/_includes/icon-codepen.html +4 -4
  23. data/_includes/icon-dribbble.html +4 -4
  24. data/_includes/icon-facebook.html +4 -4
  25. data/_includes/icon-flickr.html +4 -4
  26. data/_includes/icon-github.html +4 -4
  27. data/_includes/icon-gitlab.html +4 -4
  28. data/_includes/icon-googleplus.html +4 -4
  29. data/_includes/icon-instagram.html +4 -4
  30. data/_includes/icon-lastfm.html +4 -4
  31. data/_includes/icon-linkedin.html +4 -4
  32. data/_includes/icon-pinterest.html +4 -4
  33. data/_includes/icon-soundcloud.html +4 -4
  34. data/_includes/icon-stackoverflow.html +4 -4
  35. data/_includes/icon-tumblr.html +4 -4
  36. data/_includes/icon-twitter.html +4 -4
  37. data/_includes/icon-xing.html +4 -4
  38. data/_includes/icon-youtube.html +4 -4
  39. data/_includes/navigation.html +24 -24
  40. data/_includes/page-intro.html +42 -42
  41. data/_includes/posts-all.html +2 -2
  42. data/_includes/posts-paginated.html +15 -15
  43. data/_includes/read-time.html +13 -13
  44. data/_includes/scripts.html +4 -4
  45. data/_includes/skip-links.html +7 -7
  46. data/_layouts/about.html +21 -21
  47. data/_layouts/cv.html +28 -28
  48. data/_layouts/default.html +38 -38
  49. data/_layouts/home.html +30 -30
  50. data/_layouts/page.html +17 -17
  51. data/_layouts/post.html +20 -20
  52. data/_sass/basically-basic.scss +41 -37
  53. data/_sass/basically-basic/_base.scss +110 -110
  54. data/_sass/basically-basic/_buttons.scss +39 -39
  55. data/_sass/basically-basic/_contact-lists.scss +11 -11
  56. data/_sass/basically-basic/_entries.scss +155 -155
  57. data/_sass/basically-basic/_footer.scss +13 -13
  58. data/_sass/basically-basic/_global.scss +36 -36
  59. data/_sass/basically-basic/_icons.scss +43 -43
  60. data/_sass/basically-basic/_intro.scss +65 -65
  61. data/_sass/basically-basic/_layout.scss +178 -178
  62. data/_sass/basically-basic/_mixins.scss +7 -7
  63. data/_sass/basically-basic/_navicons.scss +144 -144
  64. data/_sass/basically-basic/_navigation.scss +51 -51
  65. data/_sass/basically-basic/_print.scss +226 -0
  66. data/_sass/basically-basic/_reset.scss +522 -522
  67. data/_sass/basically-basic/_responsive-embed.scss +70 -0
  68. data/_sass/basically-basic/_sidebar.scss +177 -177
  69. data/_sass/basically-basic/_syntax-highlighting.scss +127 -127
  70. data/_sass/basically-basic/_tables.scss +42 -42
  71. data/_sass/basically-basic/_variables.scss +84 -84
  72. data/_sass/basically-basic/mixins/_clearfix.scss +11 -11
  73. data/_sass/basically-basic/mixins/_color.scss +21 -21
  74. data/_sass/basically-basic/mixins/_float.scss +15 -15
  75. data/_sass/basically-basic/mixins/_fluid-type.scss +33 -33
  76. data/_sass/basically-basic/mixins/_image.scss +38 -38
  77. data/_sass/basically-basic/mixins/_lists.scss +9 -9
  78. data/_sass/basically-basic/mixins/_text-truncate.scss +10 -10
  79. data/_sass/basically-basic/themes/_default.scss +5 -5
  80. data/_sass/basically-basic/themes/_night.scss +12 -12
  81. data/_sass/basically-basic/themes/_plum.scss +12 -12
  82. data/_sass/basically-basic/themes/_sea.scss +12 -12
  83. data/_sass/basically-basic/themes/_soft.scss +12 -12
  84. data/_sass/basically-basic/themes/_steel.scss +12 -12
  85. data/_sass/basically-basic/utilities/_accessibility.scss +54 -54
  86. data/_sass/basically-basic/utilities/_align.scss +64 -64
  87. data/_sass/basically-basic/utilities/_clearfix.scss +7 -7
  88. data/_sass/basically-basic/utilities/_float.scss +7 -7
  89. data/_sass/basically-basic/utilities/_text.scss +28 -28
  90. data/_sass/basically-basic/vendor/_breakpoint.scss +114 -114
  91. data/_sass/basically-basic/vendor/_su.scss +4 -4
  92. data/_sass/basically-basic/vendor/_susy.scss +4 -4
  93. data/_sass/basically-basic/vendor/_susyone.scss +4 -4
  94. data/_sass/basically-basic/vendor/breakpoint/_context.scss +94 -94
  95. data/_sass/basically-basic/vendor/breakpoint/_helpers.scss +151 -151
  96. data/_sass/basically-basic/vendor/breakpoint/_legacy-settings.scss +49 -49
  97. data/_sass/basically-basic/vendor/breakpoint/_no-query.scss +15 -15
  98. data/_sass/basically-basic/vendor/breakpoint/_parsers.scss +215 -215
  99. data/_sass/basically-basic/vendor/breakpoint/_respond-to.scss +82 -82
  100. data/_sass/basically-basic/vendor/breakpoint/_settings.scss +70 -70
  101. data/_sass/basically-basic/vendor/breakpoint/parsers/_double.scss +33 -33
  102. data/_sass/basically-basic/vendor/breakpoint/parsers/_query.scss +82 -82
  103. data/_sass/basically-basic/vendor/breakpoint/parsers/_resolution.scss +31 -31
  104. data/_sass/basically-basic/vendor/breakpoint/parsers/_single.scss +26 -26
  105. data/_sass/basically-basic/vendor/breakpoint/parsers/_triple.scss +36 -36
  106. data/_sass/basically-basic/vendor/breakpoint/parsers/double/_default-pair.scss +21 -21
  107. data/_sass/basically-basic/vendor/breakpoint/parsers/double/_default.scss +22 -22
  108. data/_sass/basically-basic/vendor/breakpoint/parsers/double/_double-string.scss +21 -21
  109. data/_sass/basically-basic/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -60
  110. data/_sass/basically-basic/vendor/breakpoint/parsers/single/_default.scss +13 -13
  111. data/_sass/basically-basic/vendor/breakpoint/parsers/triple/_default.scss +18 -18
  112. data/_sass/basically-basic/vendor/susy/_su.scss +7 -7
  113. data/_sass/basically-basic/vendor/susy/language/_susy.scss +24 -24
  114. data/_sass/basically-basic/vendor/susy/language/_susyone.scss +13 -13
  115. data/_sass/basically-basic/vendor/susy/language/susy/_background.scss +385 -385
  116. data/_sass/basically-basic/vendor/susy/language/susy/_bleed.scss +200 -200
  117. data/_sass/basically-basic/vendor/susy/language/susy/_box-sizing.scss +47 -47
  118. data/_sass/basically-basic/vendor/susy/language/susy/_breakpoint-plugin.scss +185 -185
  119. data/_sass/basically-basic/vendor/susy/language/susy/_container.scss +81 -81
  120. data/_sass/basically-basic/vendor/susy/language/susy/_context.scss +36 -36
  121. data/_sass/basically-basic/vendor/susy/language/susy/_gallery.scss +94 -94
  122. data/_sass/basically-basic/vendor/susy/language/susy/_grids.scss +64 -64
  123. data/_sass/basically-basic/vendor/susy/language/susy/_gutters.scss +154 -154
  124. data/_sass/basically-basic/vendor/susy/language/susy/_isolate.scss +77 -77
  125. data/_sass/basically-basic/vendor/susy/language/susy/_margins.scss +94 -94
  126. data/_sass/basically-basic/vendor/susy/language/susy/_padding.scss +74 -74
  127. data/_sass/basically-basic/vendor/susy/language/susy/_rows.scss +138 -138
  128. data/_sass/basically-basic/vendor/susy/language/susy/_settings.scss +216 -216
  129. data/_sass/basically-basic/vendor/susy/language/susy/_span.scss +163 -163
  130. data/_sass/basically-basic/vendor/susy/language/susy/_validation.scss +16 -16
  131. data/_sass/basically-basic/vendor/susy/language/susyone/_background.scss +18 -18
  132. data/_sass/basically-basic/vendor/susy/language/susyone/_functions.scss +377 -377
  133. data/_sass/basically-basic/vendor/susy/language/susyone/_grid.scss +312 -312
  134. data/_sass/basically-basic/vendor/susy/language/susyone/_isolation.scss +51 -51
  135. data/_sass/basically-basic/vendor/susy/language/susyone/_margin.scss +93 -93
  136. data/_sass/basically-basic/vendor/susy/language/susyone/_media.scss +105 -105
  137. data/_sass/basically-basic/vendor/susy/language/susyone/_padding.scss +92 -92
  138. data/_sass/basically-basic/vendor/susy/language/susyone/_settings.scss +60 -60
  139. data/_sass/basically-basic/vendor/susy/output/_float.scss +9 -9
  140. data/_sass/basically-basic/vendor/susy/output/_shared.scss +15 -15
  141. data/_sass/basically-basic/vendor/susy/output/_support.scss +9 -9
  142. data/_sass/basically-basic/vendor/susy/output/float/_container.scss +16 -16
  143. data/_sass/basically-basic/vendor/susy/output/float/_end.scss +40 -40
  144. data/_sass/basically-basic/vendor/susy/output/float/_isolate.scss +22 -22
  145. data/_sass/basically-basic/vendor/susy/output/float/_span.scss +35 -35
  146. data/_sass/basically-basic/vendor/susy/output/shared/_background.scss +26 -26
  147. data/_sass/basically-basic/vendor/susy/output/shared/_container.scss +21 -21
  148. data/_sass/basically-basic/vendor/susy/output/shared/_direction.scss +42 -42
  149. data/_sass/basically-basic/vendor/susy/output/shared/_inspect.scss +25 -25
  150. data/_sass/basically-basic/vendor/susy/output/shared/_margins.scss +23 -23
  151. data/_sass/basically-basic/vendor/susy/output/shared/_output.scss +14 -14
  152. data/_sass/basically-basic/vendor/susy/output/shared/_padding.scss +23 -23
  153. data/_sass/basically-basic/vendor/susy/output/support/_background.scss +58 -58
  154. data/_sass/basically-basic/vendor/susy/output/support/_box-sizing.scss +19 -19
  155. data/_sass/basically-basic/vendor/susy/output/support/_clearfix.scss +18 -18
  156. data/_sass/basically-basic/vendor/susy/output/support/_prefix.scss +19 -19
  157. data/_sass/basically-basic/vendor/susy/output/support/_rem.scss +22 -22
  158. data/_sass/basically-basic/vendor/susy/output/support/_support.scss +85 -85
  159. data/_sass/basically-basic/vendor/susy/su/_grid.scss +103 -103
  160. data/_sass/basically-basic/vendor/susy/su/_settings.scss +73 -73
  161. data/_sass/basically-basic/vendor/susy/su/_utilities.scss +111 -111
  162. data/_sass/basically-basic/vendor/susy/su/_validation.scss +57 -57
  163. data/assets/javascripts/main.js +57 -57
  164. data/assets/stylesheets/main.scss +9 -9
  165. metadata +4 -2
@@ -1,103 +1,103 @@
1
- // Column math
2
- // ===========
3
-
4
-
5
- // Is Symmetrical
6
- // --------------
7
- // Returns true if a grid is symmetrical.
8
- // - [$columns] : <number> | <list>
9
- @function is-symmetrical(
10
- $columns: susy-get(columns)
11
- ) {
12
- $columns: valid-columns($columns);
13
- @return if(type-of($columns) == number, $columns, null);
14
- }
15
-
16
-
17
- // Susy Count
18
- // ----------
19
- // Find the number of columns in a given layout
20
- // - [$columns] : <number> | <list>
21
- @function susy-count(
22
- $columns: susy-get(columns)
23
- ) {
24
- $columns: valid-columns($columns);
25
- @return is-symmetrical($columns) or length($columns);
26
- }
27
-
28
-
29
- // Susy Sum
30
- // --------
31
- // Find the total sum of column-units in a layout
32
- // - [$columns] : <number> | <list>
33
- // - [$gutters] : <ratio>
34
- // - [$spread] : false/narrow | wide | wider
35
- @function susy-sum(
36
- $columns : susy-get(columns),
37
- $gutters : susy-get(gutters),
38
- $spread : false
39
- ) {
40
- $columns: valid-columns($columns);
41
- $gutters: valid-gutters($gutters);
42
-
43
- $spread: if($spread == wide, 0, if($spread == wider, 1, -1));
44
- $gutter-sum: (susy-count($columns) + $spread) * $gutters;
45
- $column-sum: is-symmetrical($columns);
46
-
47
- @if not($column-sum) {
48
- @each $column in $columns {
49
- $column-sum: ($column-sum or 0) + $column;
50
- }
51
- }
52
-
53
- @return $column-sum + $gutter-sum;
54
- }
55
-
56
-
57
- // Susy Slice
58
- // ----------
59
- // Return a subset of columns at a given location.
60
- // - $span : <number>
61
- // - $location : <number>
62
- // - [$columns] : <number> | <list>
63
- @function susy-slice(
64
- $span,
65
- $location,
66
- $columns: susy-get(columns)
67
- ) {
68
- $columns: valid-columns($columns);
69
- $sub-columns: $span;
70
-
71
- @if not(is-symmetrical($columns)) {
72
- $location: $location or 1;
73
- $sub-columns: ();
74
- @for $i from $location to ($location + $span) {
75
- $sub-columns: append($sub-columns, nth($columns, $i));
76
- }
77
- }
78
-
79
- @return $sub-columns;
80
- }
81
-
82
-
83
- // Susy
84
- // ----
85
- // Find the sum of a column-span.
86
- // - $span : <number>
87
- // - $location : <number>
88
- // - [$columns] : <number> | <list>
89
- // - [$gutters] : <ratio>
90
- // - [$spread] : false/narrow | wide | wider
91
- @function susy(
92
- $span,
93
- $location : false,
94
- $columns : susy-get(columns),
95
- $gutters : susy-get(gutters),
96
- $spread : false
97
- ) {
98
- $columns: valid-columns($columns);
99
- $gutters: valid-gutters($gutters);
100
- $span: susy-slice($span, $location, $columns);
101
-
102
- @return susy-sum($span, $gutters, $spread);
103
- }
1
+ // Column math
2
+ // ===========
3
+
4
+
5
+ // Is Symmetrical
6
+ // --------------
7
+ // Returns true if a grid is symmetrical.
8
+ // - [$columns] : <number> | <list>
9
+ @function is-symmetrical(
10
+ $columns: susy-get(columns)
11
+ ) {
12
+ $columns: valid-columns($columns);
13
+ @return if(type-of($columns) == number, $columns, null);
14
+ }
15
+
16
+
17
+ // Susy Count
18
+ // ----------
19
+ // Find the number of columns in a given layout
20
+ // - [$columns] : <number> | <list>
21
+ @function susy-count(
22
+ $columns: susy-get(columns)
23
+ ) {
24
+ $columns: valid-columns($columns);
25
+ @return is-symmetrical($columns) or length($columns);
26
+ }
27
+
28
+
29
+ // Susy Sum
30
+ // --------
31
+ // Find the total sum of column-units in a layout
32
+ // - [$columns] : <number> | <list>
33
+ // - [$gutters] : <ratio>
34
+ // - [$spread] : false/narrow | wide | wider
35
+ @function susy-sum(
36
+ $columns : susy-get(columns),
37
+ $gutters : susy-get(gutters),
38
+ $spread : false
39
+ ) {
40
+ $columns: valid-columns($columns);
41
+ $gutters: valid-gutters($gutters);
42
+
43
+ $spread: if($spread == wide, 0, if($spread == wider, 1, -1));
44
+ $gutter-sum: (susy-count($columns) + $spread) * $gutters;
45
+ $column-sum: is-symmetrical($columns);
46
+
47
+ @if not($column-sum) {
48
+ @each $column in $columns {
49
+ $column-sum: ($column-sum or 0) + $column;
50
+ }
51
+ }
52
+
53
+ @return $column-sum + $gutter-sum;
54
+ }
55
+
56
+
57
+ // Susy Slice
58
+ // ----------
59
+ // Return a subset of columns at a given location.
60
+ // - $span : <number>
61
+ // - $location : <number>
62
+ // - [$columns] : <number> | <list>
63
+ @function susy-slice(
64
+ $span,
65
+ $location,
66
+ $columns: susy-get(columns)
67
+ ) {
68
+ $columns: valid-columns($columns);
69
+ $sub-columns: $span;
70
+
71
+ @if not(is-symmetrical($columns)) {
72
+ $location: $location or 1;
73
+ $sub-columns: ();
74
+ @for $i from $location to ($location + $span) {
75
+ $sub-columns: append($sub-columns, nth($columns, $i));
76
+ }
77
+ }
78
+
79
+ @return $sub-columns;
80
+ }
81
+
82
+
83
+ // Susy
84
+ // ----
85
+ // Find the sum of a column-span.
86
+ // - $span : <number>
87
+ // - $location : <number>
88
+ // - [$columns] : <number> | <list>
89
+ // - [$gutters] : <ratio>
90
+ // - [$spread] : false/narrow | wide | wider
91
+ @function susy(
92
+ $span,
93
+ $location : false,
94
+ $columns : susy-get(columns),
95
+ $gutters : susy-get(gutters),
96
+ $spread : false
97
+ ) {
98
+ $columns: valid-columns($columns);
99
+ $gutters: valid-gutters($gutters);
100
+ $span: susy-slice($span, $location, $columns);
101
+
102
+ @return susy-sum($span, $gutters, $spread);
103
+ }
@@ -1,73 +1,73 @@
1
- // Settings
2
- // ========
3
-
4
- // Version
5
- // -------
6
- $su-version: 1.1;
7
-
8
-
9
- // Default Settings
10
- // ----------------
11
- // PRIVATE: The basic settings
12
- $susy-defaults: (
13
- columns: 4,
14
- gutters: .25,
15
- );
16
-
17
-
18
- // User Settings
19
- // -------------
20
- // - Define the $susy variable with a map of your own settings.
21
- // - Set EITHER $column-width OR $container
22
- // - Use $column-width for static layouts
23
- $susy: () !default;
24
-
25
-
26
- // Susy Defaults
27
- // -------------
28
- // PRIVATE: Add defaults to Susy
29
- @mixin susy-defaults(
30
- $defaults
31
- ) {
32
- $susy-defaults: map-merge($susy-defaults, $defaults) !global;
33
- }
34
-
35
-
36
- // Susy Set
37
- // --------
38
- // Change one setting
39
- // - $key : setting name
40
- // - $value : setting value
41
- @mixin susy-set(
42
- $key-value...
43
- ) {
44
- $susy: _susy-deep-set($susy, $key-value...) !global;
45
- }
46
-
47
-
48
- // Susy Get
49
- // --------
50
- // Return one setting from a grid
51
- // - $key : <keyword>
52
- // - $layout : <settings>
53
- @function susy-get(
54
- $key,
55
- $layout: map-merge($susy-defaults, $susy)
56
- ) {
57
- $layout: parse-grid($layout);
58
- $_options: $layout $susy $susy-defaults;
59
- $_break: false;
60
- $_return: null;
61
-
62
- @each $opt in $_options {
63
- @if type-of($opt) == map and not($_break) {
64
- $_keyset: _susy-deep-has-key($opt, $key...);
65
- @if $_keyset {
66
- $_return: _susy-deep-get($opt, $key...);
67
- $_break: true;
68
- }
69
- }
70
- }
71
-
72
- @return $_return;
73
- }
1
+ // Settings
2
+ // ========
3
+
4
+ // Version
5
+ // -------
6
+ $su-version: 1.1;
7
+
8
+
9
+ // Default Settings
10
+ // ----------------
11
+ // PRIVATE: The basic settings
12
+ $susy-defaults: (
13
+ columns: 4,
14
+ gutters: .25,
15
+ );
16
+
17
+
18
+ // User Settings
19
+ // -------------
20
+ // - Define the $susy variable with a map of your own settings.
21
+ // - Set EITHER $column-width OR $container
22
+ // - Use $column-width for static layouts
23
+ $susy: () !default;
24
+
25
+
26
+ // Susy Defaults
27
+ // -------------
28
+ // PRIVATE: Add defaults to Susy
29
+ @mixin susy-defaults(
30
+ $defaults
31
+ ) {
32
+ $susy-defaults: map-merge($susy-defaults, $defaults) !global;
33
+ }
34
+
35
+
36
+ // Susy Set
37
+ // --------
38
+ // Change one setting
39
+ // - $key : setting name
40
+ // - $value : setting value
41
+ @mixin susy-set(
42
+ $key-value...
43
+ ) {
44
+ $susy: _susy-deep-set($susy, $key-value...) !global;
45
+ }
46
+
47
+
48
+ // Susy Get
49
+ // --------
50
+ // Return one setting from a grid
51
+ // - $key : <keyword>
52
+ // - $layout : <settings>
53
+ @function susy-get(
54
+ $key,
55
+ $layout: map-merge($susy-defaults, $susy)
56
+ ) {
57
+ $layout: parse-grid($layout);
58
+ $_options: $layout $susy $susy-defaults;
59
+ $_break: false;
60
+ $_return: null;
61
+
62
+ @each $opt in $_options {
63
+ @if type-of($opt) == map and not($_break) {
64
+ $_keyset: _susy-deep-has-key($opt, $key...);
65
+ @if $_keyset {
66
+ $_return: _susy-deep-get($opt, $key...);
67
+ $_break: true;
68
+ }
69
+ }
70
+ }
71
+
72
+ @return $_return;
73
+ }
@@ -1,111 +1,111 @@
1
- // Map Functions
2
- // =============
3
-
4
-
5
- // Truncate List
6
- // -------------
7
- // - Return a list, truncated to a given length
8
- @function _susy-truncate-list(
9
- $list,
10
- $length
11
- ) {
12
- $_return: ();
13
-
14
- @for $i from 1 through length($list) {
15
- $_return: if($i <= $length, append($_return, nth($list, $i)), $_return);
16
- }
17
-
18
- @return $_return;
19
- }
20
-
21
-
22
- // Deep Get
23
- // --------
24
- // - Return a value deep in nested maps
25
- @function _susy-deep-get(
26
- $map,
27
- $keys...
28
- ) {
29
- $_return: $map;
30
-
31
- @each $key in $keys {
32
- @if type-of($_return) == map {
33
- $_return: map-get($_return, $key);
34
- }
35
- }
36
-
37
- @return $_return;
38
- }
39
-
40
-
41
- // Deep Set
42
- // --------
43
- // - Set a value deep in nested maps
44
- @function _susy-deep-set(
45
- $map,
46
- $keys-value...
47
- ) {
48
- $_value: nth($keys-value, -1);
49
- $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1);
50
- $_length: length($_keys);
51
- $_return: ();
52
-
53
- @for $i from 1 through $_length {
54
- $_n: 0 - $i;
55
- $_level: _susy-truncate-list($_keys, $_length + $_n);
56
- $_level: _susy-deep-get($map, $_level...);
57
- $_merge: nth($_keys, $_n);
58
- $_merge: ($_merge: $_value);
59
- $_return: if($_level, map-merge($_level, $_merge), $_merge);
60
- $_value: $_return;
61
- }
62
-
63
- @return $_return;
64
- }
65
-
66
-
67
- // Deep Merge
68
- // ----------
69
- // Return 2 objects of any depth, merged
70
- @function _susy-deep-merge(
71
- $map1,
72
- $map2
73
- ) {
74
-
75
- @if type-of($map1) != map or type-of($map2) != map {
76
- $map1: $map2;
77
- } @else {
78
- @each $key, $value in $map2 {
79
- $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value));
80
- $map1: map-merge($map1, $_new);
81
- }
82
- }
83
-
84
- @return $map1;
85
- }
86
-
87
-
88
- // Deep Has-Key
89
- // ------------
90
- // - Return true if a deep key exists
91
- @function _susy-deep-has-key(
92
- $map,
93
- $keys...
94
- ) {
95
- $_return: null;
96
- $_stop: false;
97
-
98
- @each $key in $keys {
99
- @if not($_stop) {
100
- $_return: map-has-key($map, $key);
101
- }
102
-
103
- @if $_return {
104
- $map: map-get($map, $key);
105
- } @else {
106
- $_stop: true;
107
- }
108
- }
109
-
110
- @return $_return;
111
- }
1
+ // Map Functions
2
+ // =============
3
+
4
+
5
+ // Truncate List
6
+ // -------------
7
+ // - Return a list, truncated to a given length
8
+ @function _susy-truncate-list(
9
+ $list,
10
+ $length
11
+ ) {
12
+ $_return: ();
13
+
14
+ @for $i from 1 through length($list) {
15
+ $_return: if($i <= $length, append($_return, nth($list, $i)), $_return);
16
+ }
17
+
18
+ @return $_return;
19
+ }
20
+
21
+
22
+ // Deep Get
23
+ // --------
24
+ // - Return a value deep in nested maps
25
+ @function _susy-deep-get(
26
+ $map,
27
+ $keys...
28
+ ) {
29
+ $_return: $map;
30
+
31
+ @each $key in $keys {
32
+ @if type-of($_return) == map {
33
+ $_return: map-get($_return, $key);
34
+ }
35
+ }
36
+
37
+ @return $_return;
38
+ }
39
+
40
+
41
+ // Deep Set
42
+ // --------
43
+ // - Set a value deep in nested maps
44
+ @function _susy-deep-set(
45
+ $map,
46
+ $keys-value...
47
+ ) {
48
+ $_value: nth($keys-value, -1);
49
+ $_keys: _susy-truncate-list($keys-value, length($keys-value) - 1);
50
+ $_length: length($_keys);
51
+ $_return: ();
52
+
53
+ @for $i from 1 through $_length {
54
+ $_n: 0 - $i;
55
+ $_level: _susy-truncate-list($_keys, $_length + $_n);
56
+ $_level: _susy-deep-get($map, $_level...);
57
+ $_merge: nth($_keys, $_n);
58
+ $_merge: ($_merge: $_value);
59
+ $_return: if($_level, map-merge($_level, $_merge), $_merge);
60
+ $_value: $_return;
61
+ }
62
+
63
+ @return $_return;
64
+ }
65
+
66
+
67
+ // Deep Merge
68
+ // ----------
69
+ // Return 2 objects of any depth, merged
70
+ @function _susy-deep-merge(
71
+ $map1,
72
+ $map2
73
+ ) {
74
+
75
+ @if type-of($map1) != map or type-of($map2) != map {
76
+ $map1: $map2;
77
+ } @else {
78
+ @each $key, $value in $map2 {
79
+ $_new: ($key: _susy_deep-merge(map-get($map1, $key), $value));
80
+ $map1: map-merge($map1, $_new);
81
+ }
82
+ }
83
+
84
+ @return $map1;
85
+ }
86
+
87
+
88
+ // Deep Has-Key
89
+ // ------------
90
+ // - Return true if a deep key exists
91
+ @function _susy-deep-has-key(
92
+ $map,
93
+ $keys...
94
+ ) {
95
+ $_return: null;
96
+ $_stop: false;
97
+
98
+ @each $key in $keys {
99
+ @if not($_stop) {
100
+ $_return: map-has-key($map, $key);
101
+ }
102
+
103
+ @if $_return {
104
+ $map: map-get($map, $key);
105
+ } @else {
106
+ $_stop: true;
107
+ }
108
+ }
109
+
110
+ @return $_return;
111
+ }