jekyll-theme-basically-basic 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +19 -0
  3. data/LICENSE.md +21 -0
  4. data/README.md +582 -0
  5. data/_includes/author +31 -0
  6. data/_includes/contact-list.html +27 -0
  7. data/_includes/cv/awards.html +24 -0
  8. data/_includes/cv/basics.html +69 -0
  9. data/_includes/cv/education.html +36 -0
  10. data/_includes/cv/interests.html +20 -0
  11. data/_includes/cv/intro.html +18 -0
  12. data/_includes/cv/languages.html +20 -0
  13. data/_includes/cv/publications.html +30 -0
  14. data/_includes/cv/references.html +24 -0
  15. data/_includes/cv/skills.html +20 -0
  16. data/_includes/cv/volunteer.html +46 -0
  17. data/_includes/cv/work.html +46 -0
  18. data/_includes/disqus_comments.html +17 -0
  19. data/_includes/entry.html +29 -0
  20. data/_includes/footer.html +9 -0
  21. data/_includes/google-analytics.html +9 -0
  22. data/_includes/head-feed.html +1 -0
  23. data/_includes/head-seo.html +1 -0
  24. data/_includes/head.html +35 -0
  25. data/_includes/icon-arrow-left.svg +1 -0
  26. data/_includes/icon-arrow-right.svg +1 -0
  27. data/_includes/icon-bitbucket.html +4 -0
  28. data/_includes/icon-bitbucket.svg +1 -0
  29. data/_includes/icon-calendar.svg +1 -0
  30. data/_includes/icon-codepen.html +4 -0
  31. data/_includes/icon-codepen.svg +1 -0
  32. data/_includes/icon-download.svg +1 -0
  33. data/_includes/icon-dribbble.html +4 -0
  34. data/_includes/icon-dribbble.svg +1 -0
  35. data/_includes/icon-email.svg +1 -0
  36. data/_includes/icon-facebook.html +4 -0
  37. data/_includes/icon-facebook.svg +1 -0
  38. data/_includes/icon-flickr.html +4 -0
  39. data/_includes/icon-flickr.svg +1 -0
  40. data/_includes/icon-github.html +4 -0
  41. data/_includes/icon-github.svg +1 -0
  42. data/_includes/icon-gitlab.html +4 -0
  43. data/_includes/icon-gitlab.svg +1 -0
  44. data/_includes/icon-googleplus.html +4 -0
  45. data/_includes/icon-googleplus.svg +1 -0
  46. data/_includes/icon-instagram.html +4 -0
  47. data/_includes/icon-instagram.svg +1 -0
  48. data/_includes/icon-lastfm.html +4 -0
  49. data/_includes/icon-lastfm.svg +1 -0
  50. data/_includes/icon-linkedin.html +4 -0
  51. data/_includes/icon-linkedin.svg +1 -0
  52. data/_includes/icon-pdf.svg +1 -0
  53. data/_includes/icon-pinterest.html +4 -0
  54. data/_includes/icon-pinterest.svg +1 -0
  55. data/_includes/icon-rss.svg +1 -0
  56. data/_includes/icon-soundcloud.html +4 -0
  57. data/_includes/icon-soundcloud.svg +1 -0
  58. data/_includes/icon-stackoverflow.html +4 -0
  59. data/_includes/icon-stackoverflow.svg +1 -0
  60. data/_includes/icon-stopwatch.svg +1 -0
  61. data/_includes/icon-tumblr.html +4 -0
  62. data/_includes/icon-tumblr.svg +1 -0
  63. data/_includes/icon-twitter.html +4 -0
  64. data/_includes/icon-twitter.svg +1 -0
  65. data/_includes/icon-xing.html +4 -0
  66. data/_includes/icon-xing.svg +1 -0
  67. data/_includes/icon-youtube.html +4 -0
  68. data/_includes/icon-youtube.svg +1 -0
  69. data/_includes/masthead.html +27 -0
  70. data/_includes/navigation.html +25 -0
  71. data/_includes/page-intro.html +42 -0
  72. data/_includes/posts-all.html +3 -0
  73. data/_includes/posts-paginated.html +16 -0
  74. data/_includes/read-time.html +13 -0
  75. data/_includes/scripts.html +5 -0
  76. data/_includes/skip-links.html +8 -0
  77. data/_layouts/about.html +21 -0
  78. data/_layouts/cv.html +28 -0
  79. data/_layouts/default.html +38 -0
  80. data/_layouts/home.html +30 -0
  81. data/_layouts/page.html +17 -0
  82. data/_layouts/post.html +20 -0
  83. data/_sass/basically-basic.scss +37 -0
  84. data/_sass/basically-basic/_base.scss +110 -0
  85. data/_sass/basically-basic/_buttons.scss +39 -0
  86. data/_sass/basically-basic/_contact-lists.scss +11 -0
  87. data/_sass/basically-basic/_entries.scss +155 -0
  88. data/_sass/basically-basic/_footer.scss +13 -0
  89. data/_sass/basically-basic/_global.scss +36 -0
  90. data/_sass/basically-basic/_icons.scss +43 -0
  91. data/_sass/basically-basic/_intro.scss +65 -0
  92. data/_sass/basically-basic/_layout.scss +178 -0
  93. data/_sass/basically-basic/_mixins.scss +7 -0
  94. data/_sass/basically-basic/_navicons.scss +144 -0
  95. data/_sass/basically-basic/_navigation.scss +51 -0
  96. data/_sass/basically-basic/_reset.scss +522 -0
  97. data/_sass/basically-basic/_sidebar.scss +177 -0
  98. data/_sass/basically-basic/_syntax-highlighting.scss +127 -0
  99. data/_sass/basically-basic/_tables.scss +42 -0
  100. data/_sass/basically-basic/_utilities.scss +5 -0
  101. data/_sass/basically-basic/_variables.scss +84 -0
  102. data/_sass/basically-basic/mixins/_clearfix.scss +11 -0
  103. data/_sass/basically-basic/mixins/_color.scss +21 -0
  104. data/_sass/basically-basic/mixins/_float.scss +15 -0
  105. data/_sass/basically-basic/mixins/_fluid-type.scss +33 -0
  106. data/_sass/basically-basic/mixins/_image.scss +38 -0
  107. data/_sass/basically-basic/mixins/_lists.scss +9 -0
  108. data/_sass/basically-basic/mixins/_text-truncate.scss +10 -0
  109. data/_sass/basically-basic/themes/_default.scss +5 -0
  110. data/_sass/basically-basic/themes/_night.scss +12 -0
  111. data/_sass/basically-basic/themes/_plum.scss +12 -0
  112. data/_sass/basically-basic/themes/_sea.scss +12 -0
  113. data/_sass/basically-basic/themes/_soft.scss +12 -0
  114. data/_sass/basically-basic/themes/_steel.scss +12 -0
  115. data/_sass/basically-basic/utilities/_accessibility.scss +54 -0
  116. data/_sass/basically-basic/utilities/_align.scss +64 -0
  117. data/_sass/basically-basic/utilities/_clearfix.scss +7 -0
  118. data/_sass/basically-basic/utilities/_float.scss +7 -0
  119. data/_sass/basically-basic/utilities/_text.scss +28 -0
  120. data/_sass/basically-basic/vendor/_breakpoint.scss +114 -0
  121. data/_sass/basically-basic/vendor/_su.scss +4 -0
  122. data/_sass/basically-basic/vendor/_susy.scss +4 -0
  123. data/_sass/basically-basic/vendor/_susyone.scss +4 -0
  124. data/_sass/basically-basic/vendor/breakpoint/_context.scss +95 -0
  125. data/_sass/basically-basic/vendor/breakpoint/_helpers.scss +151 -0
  126. data/_sass/basically-basic/vendor/breakpoint/_legacy-settings.scss +50 -0
  127. data/_sass/basically-basic/vendor/breakpoint/_no-query.scss +15 -0
  128. data/_sass/basically-basic/vendor/breakpoint/_parsers.scss +215 -0
  129. data/_sass/basically-basic/vendor/breakpoint/_respond-to.scss +82 -0
  130. data/_sass/basically-basic/vendor/breakpoint/_settings.scss +71 -0
  131. data/_sass/basically-basic/vendor/breakpoint/parsers/_double.scss +33 -0
  132. data/_sass/basically-basic/vendor/breakpoint/parsers/_query.scss +82 -0
  133. data/_sass/basically-basic/vendor/breakpoint/parsers/_resolution.scss +31 -0
  134. data/_sass/basically-basic/vendor/breakpoint/parsers/_single.scss +26 -0
  135. data/_sass/basically-basic/vendor/breakpoint/parsers/_triple.scss +36 -0
  136. data/_sass/basically-basic/vendor/breakpoint/parsers/double/_default-pair.scss +21 -0
  137. data/_sass/basically-basic/vendor/breakpoint/parsers/double/_default.scss +22 -0
  138. data/_sass/basically-basic/vendor/breakpoint/parsers/double/_double-string.scss +22 -0
  139. data/_sass/basically-basic/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -0
  140. data/_sass/basically-basic/vendor/breakpoint/parsers/single/_default.scss +13 -0
  141. data/_sass/basically-basic/vendor/breakpoint/parsers/triple/_default.scss +18 -0
  142. data/_sass/basically-basic/vendor/susy/_su.scss +7 -0
  143. data/_sass/basically-basic/vendor/susy/language/_susy.scss +24 -0
  144. data/_sass/basically-basic/vendor/susy/language/_susyone.scss +13 -0
  145. data/_sass/basically-basic/vendor/susy/language/susy/_background.scss +385 -0
  146. data/_sass/basically-basic/vendor/susy/language/susy/_bleed.scss +200 -0
  147. data/_sass/basically-basic/vendor/susy/language/susy/_box-sizing.scss +47 -0
  148. data/_sass/basically-basic/vendor/susy/language/susy/_breakpoint-plugin.scss +185 -0
  149. data/_sass/basically-basic/vendor/susy/language/susy/_container.scss +81 -0
  150. data/_sass/basically-basic/vendor/susy/language/susy/_context.scss +36 -0
  151. data/_sass/basically-basic/vendor/susy/language/susy/_gallery.scss +94 -0
  152. data/_sass/basically-basic/vendor/susy/language/susy/_grids.scss +64 -0
  153. data/_sass/basically-basic/vendor/susy/language/susy/_gutters.scss +154 -0
  154. data/_sass/basically-basic/vendor/susy/language/susy/_isolate.scss +77 -0
  155. data/_sass/basically-basic/vendor/susy/language/susy/_margins.scss +94 -0
  156. data/_sass/basically-basic/vendor/susy/language/susy/_padding.scss +74 -0
  157. data/_sass/basically-basic/vendor/susy/language/susy/_rows.scss +138 -0
  158. data/_sass/basically-basic/vendor/susy/language/susy/_settings.scss +216 -0
  159. data/_sass/basically-basic/vendor/susy/language/susy/_span.scss +163 -0
  160. data/_sass/basically-basic/vendor/susy/language/susy/_validation.scss +16 -0
  161. data/_sass/basically-basic/vendor/susy/language/susyone/_background.scss +18 -0
  162. data/_sass/basically-basic/vendor/susy/language/susyone/_functions.scss +377 -0
  163. data/_sass/basically-basic/vendor/susy/language/susyone/_grid.scss +312 -0
  164. data/_sass/basically-basic/vendor/susy/language/susyone/_isolation.scss +51 -0
  165. data/_sass/basically-basic/vendor/susy/language/susyone/_margin.scss +93 -0
  166. data/_sass/basically-basic/vendor/susy/language/susyone/_media.scss +105 -0
  167. data/_sass/basically-basic/vendor/susy/language/susyone/_padding.scss +92 -0
  168. data/_sass/basically-basic/vendor/susy/language/susyone/_settings.scss +60 -0
  169. data/_sass/basically-basic/vendor/susy/output/_float.scss +9 -0
  170. data/_sass/basically-basic/vendor/susy/output/_shared.scss +15 -0
  171. data/_sass/basically-basic/vendor/susy/output/_support.scss +9 -0
  172. data/_sass/basically-basic/vendor/susy/output/float/_container.scss +16 -0
  173. data/_sass/basically-basic/vendor/susy/output/float/_end.scss +40 -0
  174. data/_sass/basically-basic/vendor/susy/output/float/_isolate.scss +22 -0
  175. data/_sass/basically-basic/vendor/susy/output/float/_span.scss +35 -0
  176. data/_sass/basically-basic/vendor/susy/output/shared/_background.scss +26 -0
  177. data/_sass/basically-basic/vendor/susy/output/shared/_container.scss +21 -0
  178. data/_sass/basically-basic/vendor/susy/output/shared/_direction.scss +42 -0
  179. data/_sass/basically-basic/vendor/susy/output/shared/_inspect.scss +25 -0
  180. data/_sass/basically-basic/vendor/susy/output/shared/_margins.scss +23 -0
  181. data/_sass/basically-basic/vendor/susy/output/shared/_output.scss +14 -0
  182. data/_sass/basically-basic/vendor/susy/output/shared/_padding.scss +23 -0
  183. data/_sass/basically-basic/vendor/susy/output/support/_background.scss +58 -0
  184. data/_sass/basically-basic/vendor/susy/output/support/_box-sizing.scss +19 -0
  185. data/_sass/basically-basic/vendor/susy/output/support/_clearfix.scss +18 -0
  186. data/_sass/basically-basic/vendor/susy/output/support/_prefix.scss +19 -0
  187. data/_sass/basically-basic/vendor/susy/output/support/_rem.scss +22 -0
  188. data/_sass/basically-basic/vendor/susy/output/support/_support.scss +85 -0
  189. data/_sass/basically-basic/vendor/susy/su/_grid.scss +103 -0
  190. data/_sass/basically-basic/vendor/susy/su/_settings.scss +73 -0
  191. data/_sass/basically-basic/vendor/susy/su/_utilities.scss +111 -0
  192. data/_sass/basically-basic/vendor/susy/su/_validation.scss +57 -0
  193. data/assets/javascripts/main.js +57 -0
  194. data/assets/stylesheets/main.scss +10 -0
  195. metadata +335 -0
@@ -0,0 +1,36 @@
1
+ // Context Syntax
2
+ // ==============
3
+
4
+ // Nested [function]
5
+ // -----------------
6
+ // Return a subset grid for nested context.
7
+ // - $context : <span>
8
+ @function nested(
9
+ $context
10
+ ) {
11
+ $context : parse-span($context);
12
+ $span : susy-get(span, $context);
13
+ $location : get-location($context);
14
+ $columns : susy-get(columns, $context);
15
+
16
+ @return susy-slice($span, $location, $columns);
17
+ }
18
+
19
+ // Nested [mixin]
20
+ // --------------
21
+ // Use a subset grid for a nested context
22
+ // - $context : <span>
23
+ // - @content : <content>
24
+ @mixin nested(
25
+ $context
26
+ ) {
27
+ $inspect : $context;
28
+ $context : parse-span($context);
29
+ $old : susy-get(columns);
30
+ $susy : map-merge($susy, (columns: nested($context))) !global;
31
+
32
+ @include susy-inspect(nested, $inspect);
33
+ @content;
34
+
35
+ $susy : map-merge($susy, (columns: $old)) !global;
36
+ }
@@ -0,0 +1,94 @@
1
+ // Gallery Syntax
2
+ // ==============
3
+
4
+ // Gallery
5
+ // -------
6
+ // Create an isolated gallery
7
+ // - $span : <span>
8
+ // - [$selector] : child | of-type
9
+ @mixin gallery(
10
+ $span,
11
+ $selector: child
12
+ ) {
13
+ $inspect : $span;
14
+ $span : parse-span($span);
15
+ $span : map-merge($span, (location: 1));
16
+
17
+ $n : susy-get(span, $span);
18
+ $columns : susy-get(columns, $span);
19
+ $context : susy-count($columns);
20
+ $flow : susy-get(flow, $span);
21
+
22
+ $inside : is-inside($span);
23
+ $from : from($flow);
24
+ $line : floor($context / $n);
25
+ $symmetrical : is-symmetrical($columns);
26
+
27
+ $output: (
28
+ width : null,
29
+ float : from,
30
+ margin-before : null,
31
+ margin-after : null,
32
+ padding-before : null,
33
+ padding-after : null,
34
+ flow : $flow,
35
+ );
36
+
37
+ @if $inside {
38
+ $gutters: get-gutters($span);
39
+ $output: map-merge($output, (
40
+ padding-before: map-get($gutters, before),
41
+ padding-after: map-get($gutters, after),
42
+ ));
43
+ }
44
+
45
+ @if $symmetrical {
46
+ $output: map-merge($output, (width: get-span-width($span)));
47
+ }
48
+
49
+ $box : susy-get(box-sizing, $span);
50
+ $global-box : if(susy-get(global-box-sizing) == 'border-box', true, false);
51
+
52
+ @include susy-inspect(gallery, $inspect);
53
+
54
+ // Collective Output
55
+ @if $box == border-box or ($inside and not($box) and not($global-box)) {
56
+ @include output((box-sizing: border-box));
57
+ } @else if $box == content-box {
58
+ @include output((box-sizing: content-box));
59
+ }
60
+
61
+ @include float-span-output($output...);
62
+
63
+ // Individual Loop
64
+ @for $item from 1 through $line {
65
+ $nth: '#{$line}n + #{$item}';
66
+ &:nth-#{$selector}(#{$nth}) {
67
+ // Individual Prep
68
+ $output: (
69
+ width : if($symmetrical, null, get-span-width($span)),
70
+ float : null,
71
+ margin-before : get-isolation($span),
72
+ margin-after : -100%,
73
+ padding-before : null,
74
+ padding-after : null,
75
+ flow : $flow,
76
+ );
77
+
78
+ // Individual Output
79
+ @include float-span-output($output...);
80
+
81
+ @if get-edge($span) == first {
82
+ @include break;
83
+ @include first($span);
84
+ } @else {
85
+ @include nobreak;
86
+ }
87
+
88
+ // Individual Location Increment
89
+ $location: get-location($span) + $n;
90
+ $location: if($location > $context, 1, $location);
91
+ $span: map-merge($span, (location: $location));
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,64 @@
1
+ // Grid Syntax
2
+ // ===========
3
+
4
+
5
+ // Layout
6
+ // ------
7
+ // Set a new layout using a shorthand
8
+ // - $layout: <settings>
9
+ // - $clean: boolean
10
+ @mixin layout(
11
+ $layout,
12
+ $clean: false
13
+ ) {
14
+ $inspect : $layout;
15
+ $susy : _get-layout($layout, $clean) !global;
16
+
17
+ @include susy-inspect(layout, $inspect);
18
+ }
19
+
20
+
21
+ // Use Grid
22
+ // --------
23
+ // Use an arbitrary layout for a section of code
24
+ // - $layout: <settings>
25
+ // - $clean: boolean
26
+ @mixin with-layout(
27
+ $layout,
28
+ $clean: false
29
+ ) {
30
+ $inspect : $layout;
31
+ $old : $susy;
32
+ $susy : _get-layout($layout, $clean) !global;
33
+
34
+ @include susy-inspect(with-layout, $inspect);
35
+
36
+ @content;
37
+
38
+ $susy: $old !global;
39
+ }
40
+
41
+
42
+ // Layout
43
+ // ------
44
+ // Return a parsed layout map based on shorthand syntax
45
+ // - $layout: <settings>
46
+ @function layout(
47
+ $layout: $susy
48
+ ) {
49
+ @return parse-grid($layout);
50
+ }
51
+
52
+
53
+ // Get Layout
54
+ // ----------
55
+ // Return a new layout based on current and given settings
56
+ // - $layout: <settings>
57
+ // - $clean: boolean
58
+ @function _get-layout(
59
+ $layout,
60
+ $clean: false
61
+ ) {
62
+ $layout: layout($layout);
63
+ @return if($clean, $layout, _susy-deep-merge($susy, $layout));
64
+ }
@@ -0,0 +1,154 @@
1
+ // Gutter Syntax
2
+ // =============
3
+
4
+
5
+ // Gutters
6
+ // -------
7
+ // Set gutters on an element.
8
+ // - [$span] : <settings>
9
+ @mixin gutters(
10
+ $span: $susy
11
+ ) {
12
+ $inspect : $span;
13
+ $span : parse-gutters($span);
14
+ $_gutters : get-gutters($span);
15
+
16
+ $_output: (
17
+ before: map-get($_gutters, before),
18
+ after: map-get($_gutters, after),
19
+ flow: susy-get(flow, $span),
20
+ );
21
+
22
+ @include susy-inspect(gutters, $inspect);
23
+
24
+ @if is-inside($span) {
25
+ @include padding-output($_output...);
26
+ } @else {
27
+ @include margin-output($_output...);
28
+ }
29
+ }
30
+
31
+ @mixin gutter(
32
+ $span: $susy
33
+ ) {
34
+ @include gutters($span);
35
+ }
36
+
37
+
38
+ // Gutter
39
+ // ------
40
+ // Return the width of a gutter.
41
+ // - [$span] : <settings>
42
+ @function gutter(
43
+ $span: $susy
44
+ ) {
45
+ $span: parse-gutters($span);
46
+
47
+ $_gutters: get-gutters($span);
48
+ $_gutters: map-get($_gutters, before) or map-get($_gutters, after);
49
+
50
+ @return $_gutters;
51
+ }
52
+
53
+ @function gutters(
54
+ $span: $susy
55
+ ) {
56
+ @return gutter($span);
57
+ }
58
+
59
+
60
+ // Get Gutter Width
61
+ // ----------------
62
+ // Return gutter width.
63
+ // - [$context]: <context>
64
+ @function get-gutter-width(
65
+ $context: $susy
66
+ ) {
67
+ $context : parse-gutters($context);
68
+
69
+ $_gutters : susy-get(gutters, $context);
70
+ $_gutter : susy-get(gutter-override, $context);
71
+
72
+ @if $_gutters and ($_gutters > 0) and not($_gutter) {
73
+ $_column-width: susy-get(column-width, $context);
74
+ $_math: gutter-math($context);
75
+ @if $_math == static {
76
+ $_gutter: $_gutters * valid-column-math($_math, $_column-width);
77
+ } @else {
78
+ $_columns : susy-get(columns, $context);
79
+ $_spread : if(is-split($context), wide, susy-get(spread, $context));
80
+ $_gutter : percentage($_gutters / susy-sum($_columns, $_gutters, $_spread));
81
+ }
82
+ }
83
+
84
+ $_gutter: if($_gutter == 'no-gutters' or $_gutter == 'no-gutter', null, $_gutter);
85
+
86
+ @return $_gutter;
87
+ }
88
+
89
+
90
+ // Get Gutters
91
+ // -----------
92
+ // Return before and after gutter values.
93
+ // - [$context]: <context>
94
+ @function get-gutters(
95
+ $context: $susy
96
+ ) {
97
+ $context : parse-gutters($context);
98
+
99
+ $_gutter-position : susy-get(gutter-position, $context);
100
+ $_gutter : get-gutter-width($context);
101
+
102
+ $_return : (before: null, after: null);
103
+
104
+ @if is-split($context) and $_gutter {
105
+ $_gutter: $_gutter / 2;
106
+ $_return: map-merge($_return, (before: $_gutter, after: $_gutter));
107
+ } @else {
108
+ $_return: map-merge($_return, ($_gutter-position: $_gutter));
109
+ }
110
+
111
+ @return $_return;
112
+ }
113
+
114
+
115
+ // Is Inside
116
+ // ---------
117
+ // Returns true if gutters are inside.
118
+ // $context: <context>
119
+ @function is-inside(
120
+ $context
121
+ ) {
122
+ $_inside: inside inside-static;
123
+ $_gutter-position: susy-get(gutter-position, $context);
124
+
125
+ @return if(index($_inside, $_gutter-position), true, false);
126
+ }
127
+
128
+
129
+ // Is Split
130
+ // --------
131
+ // Returns true if gutters are split.
132
+ // $context: <context>
133
+ @function is-split(
134
+ $context
135
+ ) {
136
+ $_split: split inside inside-static;
137
+ $_gutter-position: susy-get(gutter-position, $context);
138
+
139
+ @return if(index($_split, $_gutter-position), true, false);
140
+ }
141
+
142
+
143
+ // Gutter Math
144
+ // -----------
145
+ // Return the math to use for gutter calculations
146
+ // $context: <context>
147
+ @function gutter-math(
148
+ $context: $susy
149
+ ) {
150
+ $_return : susy-get(math, $context);
151
+ $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return);
152
+
153
+ @return $_return;
154
+ }
@@ -0,0 +1,77 @@
1
+ // Isolation Syntax
2
+ // ================
3
+
4
+
5
+ // Isolate [Mixin]
6
+ // ---------------
7
+ // Set isolation as an override.
8
+ // - $location: <span>
9
+ @mixin isolate(
10
+ $isolate: 1
11
+ ) {
12
+ $inspect: $isolate;
13
+
14
+ $output: (
15
+ push: isolate($isolate),
16
+ flow: susy-get(flow, $isolate),
17
+ );
18
+
19
+ @include susy-inspect(isolate, $inspect);
20
+ @include isolate-output($output...);
21
+ }
22
+
23
+
24
+ // Isolate [function]
25
+ // ------------------
26
+ // Return an isolation offset width.
27
+ // - $location: <span>
28
+ @function isolate(
29
+ $isolate: 1
30
+ ) {
31
+ $isolate: parse-span($isolate);
32
+ $isolation: susy-get(span, $isolate);
33
+
34
+ @if $isolation and not(get-location($isolate)) {
35
+ $new: (
36
+ span: null,
37
+ location: $isolation,
38
+ );
39
+ $isolate: map-merge($isolate, $new);
40
+ }
41
+
42
+ @return get-isolation($isolate);
43
+ }
44
+
45
+
46
+ // Get Isolation
47
+ // -------------
48
+ // Return the isolation offset width
49
+ // - $input: <map>
50
+ @function get-isolation(
51
+ $input
52
+ ) {
53
+ $location : get-location($input);
54
+ $columns : susy-get(columns, $input);
55
+ $width : null;
56
+
57
+ @if type-of($location) == number and not(unitless($location)) {
58
+ $width: $location;
59
+ } @else if $location {
60
+ $push: $location - 1;
61
+ @if $push > 0 {
62
+ $push: map-merge($input, (
63
+ span: $push,
64
+ location: 1,
65
+ spread: wide,
66
+ ));
67
+ $width: get-span-width($push);
68
+ }
69
+ }
70
+
71
+ @if susy-get(gutter-position, $input) == split
72
+ and susy-get(gutters, $input) > 0 {
73
+ $width: if($width == null, gutters($input), $width + gutters($input));
74
+ }
75
+
76
+ @return $width or 0;
77
+ }
@@ -0,0 +1,94 @@
1
+ // Margin Syntax
2
+ // =============
3
+
4
+ // Pre
5
+ // ---
6
+ // Add spanning-margins before an element.
7
+ // - $span : <span>
8
+ @mixin pre(
9
+ $span
10
+ ) {
11
+ $inspect: $span;
12
+ $span : map-merge((spread: wide), parse-span($span));
13
+ $flow : susy-get(flow, $span);
14
+ $split : if(susy-get(gutter-position, $span) == split, true, false);
15
+ $gutter : gutter($span);
16
+ $span : span($span);
17
+ $width : if($split and $gutter, $span + $gutter, $span);
18
+
19
+ @include susy-inspect(pre, $inspect);
20
+ @include margin-output($width, null, $flow);
21
+ }
22
+
23
+ // Post
24
+ // ----
25
+ // Add spanning-margins after an element.
26
+ // - $span : <span>
27
+ @mixin post(
28
+ $span
29
+ ) {
30
+ $inspect : $span;
31
+ $span : map-merge((spread: wide), parse-span($span));
32
+ $flow : susy-get(flow, $span);
33
+ $split : if(susy-get(gutter-position, $span) == split, true, false);
34
+ $width : if($split, span($span) + gutter($span), span($span));
35
+
36
+ @include susy-inspect(post, $inspect);
37
+ @include margin-output(null, $width, $flow);
38
+ }
39
+
40
+ // Push
41
+ // ----
42
+ // Simple synonymn for pre.
43
+ // - $span : <span>
44
+ @mixin push(
45
+ $span
46
+ ) {
47
+ @include pre($span);
48
+ }
49
+
50
+ // Pull
51
+ // ----
52
+ // Add negative spanning-margins before an element.
53
+ // - $span : <span>
54
+ @mixin pull(
55
+ $span
56
+ ) {
57
+ $inspect : $span;
58
+ $span : map-merge((spread: wide), parse-span($span));
59
+ $flow : susy-get(flow, $span);
60
+ $split : if(susy-get(gutter-position, $span) == split, true, false);
61
+ $width : if($split, 0 - span($span) + gutter($span), 0 - span($span));
62
+
63
+ @include susy-inspect(pull, $inspect);
64
+ @include margin-output($width, null, $flow);
65
+ }
66
+
67
+ // Squish
68
+ // ------
69
+ // Add spanning-margins before and after an element.
70
+ // - $pre : <span>
71
+ // - [$post] : <span>
72
+ @mixin squish(
73
+ $pre,
74
+ $post: false
75
+ ) {
76
+ $inspect : ($pre, $post);
77
+ $pre : map-merge((spread: wide), parse-span($pre));
78
+
79
+ @if $post {
80
+ $post: map-merge((spread: wide), parse-span($post));
81
+ } @else {
82
+ $span: susy-get(span, $pre);
83
+ @if length($span) > 1 {
84
+ $pre: map-merge($pre, (span: nth($span, 1)));
85
+ $post: map-merge($pre, (span: nth($span, 2)));
86
+ } @else {
87
+ $post: $pre;
88
+ }
89
+ }
90
+
91
+ @include susy-inspect(squish, $inspect);
92
+ @include pre($pre);
93
+ @include post($post);
94
+ }