jekyll-theme-so-simple-libre 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +329 -0
  3. data/LICENSE +21 -0
  4. data/README.md +1148 -0
  5. data/_data/authors.yml +16 -0
  6. data/_data/navigation.yml +14 -0
  7. data/_data/text.yml +193 -0
  8. data/_includes/documents-collection.html +19 -0
  9. data/_includes/entry-date.html +6 -0
  10. data/_includes/entry.html +38 -0
  11. data/_includes/footer-custom.html +3 -0
  12. data/_includes/footer.html +24 -0
  13. data/_includes/head-custom.html +5 -0
  14. data/_includes/head-feed.html +1 -0
  15. data/_includes/head-seo.html +1 -0
  16. data/_includes/head.html +47 -0
  17. data/_includes/masthead.html +18 -0
  18. data/_includes/navigation.html +17 -0
  19. data/_includes/page-author.html +37 -0
  20. data/_includes/page-categories.html +15 -0
  21. data/_includes/page-date.html +4 -0
  22. data/_includes/page-image.html +14 -0
  23. data/_includes/page-pagination.html +19 -0
  24. data/_includes/page-tags.html +15 -0
  25. data/_includes/posts-all.html +3 -0
  26. data/_includes/posts-category.html +3 -0
  27. data/_includes/posts-limit.html +5 -0
  28. data/_includes/posts-paginated.html +74 -0
  29. data/_includes/posts-tag.html +3 -0
  30. data/_includes/read-time.html +16 -0
  31. data/_includes/responsive-embed +16 -0
  32. data/_includes/skip-links.html +8 -0
  33. data/_includes/social-share.html +6 -0
  34. data/_includes/talkyard-comments-provider.html +10 -0
  35. data/_includes/toc +9 -0
  36. data/_layouts/categories.html +81 -0
  37. data/_layouts/category.html +9 -0
  38. data/_layouts/collection.html +9 -0
  39. data/_layouts/default.html +21 -0
  40. data/_layouts/home.html +17 -0
  41. data/_layouts/page.html +30 -0
  42. data/_layouts/post.html +41 -0
  43. data/_layouts/posts.html +29 -0
  44. data/_layouts/tag.html +9 -0
  45. data/_layouts/tags.html +81 -0
  46. data/_sass/so-simple.scss +31 -0
  47. data/_sass/so-simple/_author.scss +47 -0
  48. data/_sass/so-simple/_base.scss +106 -0
  49. data/_sass/so-simple/_buttons.scss +64 -0
  50. data/_sass/so-simple/_entries.scss +194 -0
  51. data/_sass/so-simple/_functions.scss +4 -0
  52. data/_sass/so-simple/_global.scss +353 -0
  53. data/_sass/so-simple/_icons.scss +43 -0
  54. data/_sass/so-simple/_mixins.scss +5 -0
  55. data/_sass/so-simple/_notices.scss +57 -0
  56. data/_sass/so-simple/_page.scss +286 -0
  57. data/_sass/so-simple/_reset.scss +522 -0
  58. data/_sass/so-simple/_skin.scss +552 -0
  59. data/_sass/so-simple/_syntax-highlighting.scss +68 -0
  60. data/_sass/so-simple/_tables.scss +34 -0
  61. data/_sass/so-simple/_utilities.scss +7 -0
  62. data/_sass/so-simple/_variables.scss +98 -0
  63. data/_sass/so-simple/functions/_color.scss +21 -0
  64. data/_sass/so-simple/functions/_em.scss +7 -0
  65. data/_sass/so-simple/functions/_fluid-type.scss +33 -0
  66. data/_sass/so-simple/functions/_yiq.scss +38 -0
  67. data/_sass/so-simple/mixins/_clearfix.scss +32 -0
  68. data/_sass/so-simple/mixins/_float.scss +15 -0
  69. data/_sass/so-simple/mixins/_image.scss +38 -0
  70. data/_sass/so-simple/mixins/_lists.scss +9 -0
  71. data/_sass/so-simple/mixins/_text-truncate.scss +10 -0
  72. data/_sass/so-simple/utilities/_accessibility.scss +42 -0
  73. data/_sass/so-simple/utilities/_align.scss +60 -0
  74. data/_sass/so-simple/utilities/_animations.scss +99 -0
  75. data/_sass/so-simple/utilities/_clearfix.scss +7 -0
  76. data/_sass/so-simple/utilities/_float.scss +7 -0
  77. data/_sass/so-simple/utilities/_responsive-embed.scss +66 -0
  78. data/_sass/so-simple/utilities/_text.scss +48 -0
  79. data/_sass/so-simple/vendor/breakpoint/_breakpoint.scss +114 -0
  80. data/_sass/so-simple/vendor/breakpoint/_context.scss +95 -0
  81. data/_sass/so-simple/vendor/breakpoint/_helpers.scss +151 -0
  82. data/_sass/so-simple/vendor/breakpoint/_legacy-settings.scss +50 -0
  83. data/_sass/so-simple/vendor/breakpoint/_no-query.scss +15 -0
  84. data/_sass/so-simple/vendor/breakpoint/_parsers.scss +215 -0
  85. data/_sass/so-simple/vendor/breakpoint/_respond-to.scss +82 -0
  86. data/_sass/so-simple/vendor/breakpoint/_settings.scss +71 -0
  87. data/_sass/so-simple/vendor/breakpoint/parsers/_double.scss +33 -0
  88. data/_sass/so-simple/vendor/breakpoint/parsers/_query.scss +82 -0
  89. data/_sass/so-simple/vendor/breakpoint/parsers/_resolution.scss +31 -0
  90. data/_sass/so-simple/vendor/breakpoint/parsers/_single.scss +26 -0
  91. data/_sass/so-simple/vendor/breakpoint/parsers/_triple.scss +36 -0
  92. data/_sass/so-simple/vendor/breakpoint/parsers/double/_default-pair.scss +21 -0
  93. data/_sass/so-simple/vendor/breakpoint/parsers/double/_default.scss +22 -0
  94. data/_sass/so-simple/vendor/breakpoint/parsers/double/_double-string.scss +22 -0
  95. data/_sass/so-simple/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -0
  96. data/_sass/so-simple/vendor/breakpoint/parsers/single/_default.scss +13 -0
  97. data/_sass/so-simple/vendor/breakpoint/parsers/triple/_default.scss +18 -0
  98. data/_sass/so-simple/vendor/lity/_lity.scss +221 -0
  99. data/assets/css/main.scss +8 -0
  100. data/assets/css/skins/dark.scss +43 -0
  101. data/assets/css/skins/default.scss +44 -0
  102. data/assets/css/skins/light.scss +44 -0
  103. metadata +262 -0
@@ -0,0 +1,151 @@
1
+ //////////////////////////////
2
+ // Converts the input value to Base EMs
3
+ //////////////////////////////
4
+ @function breakpoint-to-base-em($value) {
5
+ $value-unit: unit($value);
6
+
7
+ // Will convert relative EMs into root EMs.
8
+ @if breakpoint-get('base font size') and type-of(breakpoint-get('base font size')) == 'number' and $value-unit == 'em' {
9
+ $base-unit: unit(breakpoint-get('base font size'));
10
+
11
+ @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' {
12
+ @return base-conversion($value) / base-conversion(breakpoint-get('base font size')) * 1em;
13
+ }
14
+ @else {
15
+ @warn '#{breakpoint-get(\'base font size\')} is not set in valid units for font size!';
16
+ @return false;
17
+ }
18
+ }
19
+ @else {
20
+ @return base-conversion($value);
21
+ }
22
+ }
23
+
24
+ @function base-conversion($value) {
25
+ $unit: unit($value);
26
+
27
+ @if $unit == 'px' {
28
+ @return $value / 16px * 1em;
29
+ }
30
+ @else if $unit == '%' {
31
+ @return $value / 100% * 1em;
32
+ }
33
+ @else if $unit == 'em' {
34
+ @return $value;
35
+ }
36
+ @else if $unit == 'pt' {
37
+ @return $value / 12pt * 1em;
38
+ }
39
+ @else {
40
+ @return $value;
41
+ // @warn 'Everything is terrible! What have you done?!';
42
+ }
43
+ }
44
+
45
+ //////////////////////////////
46
+ // Returns whether the feature can have a min/max pair
47
+ //////////////////////////////
48
+ $breakpoint-min-max-features: 'color',
49
+ 'color-index',
50
+ 'aspect-ratio',
51
+ 'device-aspect-ratio',
52
+ 'device-height',
53
+ 'device-width',
54
+ 'height',
55
+ 'monochrome',
56
+ 'resolution',
57
+ 'width';
58
+
59
+ @function breakpoint-min-max($feature) {
60
+ @each $item in $breakpoint-min-max-features {
61
+ @if $feature == $item {
62
+ @return true;
63
+ }
64
+ }
65
+ @return false;
66
+ }
67
+
68
+ //////////////////////////////
69
+ // Returns whether the feature can have a string value
70
+ //////////////////////////////
71
+ $breakpoint-string-features: 'orientation',
72
+ 'scan',
73
+ 'color',
74
+ 'aspect-ratio',
75
+ 'device-aspect-ratio',
76
+ 'pointer',
77
+ 'luminosity';
78
+
79
+ @function breakpoint-string-value($feature) {
80
+ @each $item in $breakpoint-string-features {
81
+ @if breakpoint-min-max($item) {
82
+ @if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' {
83
+ @return true;
84
+ }
85
+ }
86
+ @else if $feature == $item {
87
+ @return true;
88
+ }
89
+ }
90
+ @return false;
91
+ }
92
+
93
+ //////////////////////////////
94
+ // Returns whether the feature is a media type
95
+ //////////////////////////////
96
+ $breakpoint-media-types: 'all',
97
+ 'braille',
98
+ 'embossed',
99
+ 'handheld',
100
+ 'print',
101
+ 'projection',
102
+ 'screen',
103
+ 'speech',
104
+ 'tty',
105
+ 'tv';
106
+
107
+ @function breakpoint-is-media($feature) {
108
+ @each $media in $breakpoint-media-types {
109
+ @if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') {
110
+ @return true;
111
+ }
112
+ }
113
+
114
+ @return false;
115
+ }
116
+
117
+ //////////////////////////////
118
+ // Returns whether the feature can stand alone
119
+ //////////////////////////////
120
+ $breakpoint-single-string-features: 'color',
121
+ 'color-index',
122
+ 'grid',
123
+ 'monochrome';
124
+
125
+ @function breakpoint-single-string($feature) {
126
+ @each $item in $breakpoint-single-string-features {
127
+ @if $feature == $item {
128
+ @return true;
129
+ }
130
+ }
131
+ @return false;
132
+ }
133
+
134
+ //////////////////////////////
135
+ // Returns whether the feature
136
+ //////////////////////////////
137
+ @function breakpoint-is-resolution($feature) {
138
+ $resolutions: 'device-pixel-ratio', 'dpr';
139
+
140
+ @if breakpoint-get('transform resolutions') {
141
+ $resolutions: append($resolutions, 'resolution');
142
+ }
143
+
144
+ @each $reso in $resolutions {
145
+ @if index($feature, $reso) or index($feature, 'min-#{$reso}') or index($feature, 'max-#{$reso}') {
146
+ @return true;
147
+ }
148
+ }
149
+
150
+ @return false;
151
+ }
@@ -0,0 +1,50 @@
1
+ @mixin legacy-settings-warning {
2
+ $legacyVars: (
3
+ 'default-media': 'default media',
4
+ 'default-feature': 'default feature',
5
+ 'force-media-all': 'force all media type',
6
+ 'to-ems': 'to ems',
7
+ 'resolutions': 'transform resolutions',
8
+ 'no-queries': 'no queries',
9
+ 'no-query-fallbacks': 'no query fallbacks',
10
+ 'base-font-size': 'base font size',
11
+ 'legacy-syntax': 'legacy syntax'
12
+ );
13
+
14
+ @each $legacy, $new in $legacyVars {
15
+ @if global-variable-exists('breakpoint-' + $legacy) {
16
+ @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release."
17
+ }
18
+ };
19
+
20
+ //////////////////////////////
21
+ // Hand correct each setting
22
+ //////////////////////////////
23
+ @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {
24
+ @include breakpoint-set('default media', $breakpoint-default-media);
25
+ }
26
+ @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {
27
+ @include breakpoint-set('default feature', $breakpoint-default-feature);
28
+ }
29
+ @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {
30
+ @include breakpoint-set('force all media type', $breakpoint-force-media-all);
31
+ }
32
+ @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {
33
+ @include breakpoint-set('to ems', $breakpoint-to-ems);
34
+ }
35
+ @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {
36
+ @include breakpoint-set('transform resolutions', $breakpoint-resolutions);
37
+ }
38
+ @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {
39
+ @include breakpoint-set('no queries', $breakpoint-no-queries);
40
+ }
41
+ @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {
42
+ @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);
43
+ }
44
+ @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {
45
+ @include breakpoint-set('base font size', $breakpoint-base-font-size);
46
+ }
47
+ @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {
48
+ @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);
49
+ }
50
+ }
@@ -0,0 +1,15 @@
1
+ @function breakpoint-no-query($query) {
2
+ @if type-of($query) == 'list' {
3
+ $keyword: nth($query, 1);
4
+
5
+ @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {
6
+ @return nth($query, 2);
7
+ }
8
+ @else {
9
+ @return false;
10
+ }
11
+ }
12
+ @else {
13
+ @return false;
14
+ }
15
+ }
@@ -0,0 +1,215 @@
1
+ //////////////////////////////
2
+ // Import Parser Pieces
3
+ //////////////////////////////
4
+ @import "parsers/query";
5
+ @import "parsers/single";
6
+ @import "parsers/double";
7
+ @import "parsers/triple";
8
+ @import "parsers/resolution";
9
+
10
+ $Memo-Exists: function-exists(memo-get) and function-exists(memo-set);
11
+
12
+ //////////////////////////////
13
+ // Breakpoint Function
14
+ //////////////////////////////
15
+ @function breakpoint($query, $contexts...) {
16
+ $run: true;
17
+ $return: ();
18
+
19
+ // Grab the Memo Output if Memoization can be a thing
20
+ @if $Memo-Exists {
21
+ $return: memo-get(breakpoint, breakpoint $query $contexts);
22
+
23
+ @if $return != null {
24
+ $run: false;
25
+ }
26
+ }
27
+
28
+ @if not $Memo-Exists or $run {
29
+ // Internal Variables
30
+ $query-string: '';
31
+ $query-fallback: false;
32
+ $return: ();
33
+
34
+ // Reserve Global Private Breakpoint Context
35
+ $holder-context: $private-breakpoint-context-holder;
36
+ $holder-query-count: $private-breakpoint-query-count;
37
+
38
+ // Reset Global Private Breakpoint Context
39
+ $private-breakpoint-context-holder: () !global;
40
+ $private-breakpoint-query-count: 0 !global;
41
+
42
+
43
+ // Test to see if it's a comma-separated list
44
+ $or-list: if(list-separator($query) == 'comma', true, false);
45
+
46
+
47
+ @if ($or-list == false and breakpoint-get('legacy syntax') == false) {
48
+ $query-string: breakpoint-parse($query);
49
+ }
50
+ @else {
51
+ $length: length($query);
52
+
53
+ $last: nth($query, $length);
54
+ $query-fallback: breakpoint-no-query($last);
55
+
56
+ @if ($query-fallback != false) {
57
+ $length: $length - 1;
58
+ }
59
+
60
+ @if (breakpoint-get('legacy syntax') == true) {
61
+ $mq: ();
62
+
63
+ @for $i from 1 through $length {
64
+ $mq: append($mq, nth($query, $i), comma);
65
+ }
66
+
67
+ $query-string: breakpoint-parse($mq);
68
+ }
69
+ @else {
70
+ $query-string: '';
71
+ @for $i from 1 through $length {
72
+ $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i));
73
+ }
74
+ }
75
+ }
76
+
77
+ $return: ('query': $query-string,
78
+ 'fallback': $query-fallback,
79
+ 'context holder': $private-breakpoint-context-holder,
80
+ 'query count': $private-breakpoint-query-count
81
+ );
82
+ @if length($contexts) > 0 and nth($contexts, 1) != false {
83
+ @if $query-fallback != false {
84
+ $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
85
+ }
86
+ $context-map: ();
87
+ @each $context in $contexts {
88
+ $context-map: map-merge($context-map, ($context: breakpoint-get-context($context)));
89
+ }
90
+ $return: map-merge($return, (context: $context-map));
91
+ }
92
+
93
+ // Reset Global Private Breakpoint Context
94
+ $private-breakpoint-context-holder: () !global;
95
+ $private-breakpoint-query-count: 0 !global;
96
+
97
+ @if $Memo-Exists {
98
+ $holder: memo-set(breakpoint, breakpoint $query $contexts, $return);
99
+ }
100
+ }
101
+
102
+ @return $return;
103
+ }
104
+
105
+ //////////////////////////////
106
+ // General Breakpoint Parser
107
+ //////////////////////////////
108
+ @function breakpoint-parse($query) {
109
+ // Increase number of 'and' queries
110
+ $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global;
111
+
112
+ // Set up Media Type
113
+ $query-print: '';
114
+
115
+ $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all'));
116
+ $empty-media: true;
117
+ @if ($force-all == true) or (breakpoint-get('default media') != 'all') {
118
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
119
+ $query-print: breakpoint-get('default media');
120
+ $empty-media: false;
121
+ }
122
+
123
+
124
+ $query-resolution: false;
125
+
126
+ $query-holder: breakpoint-parse-query($query);
127
+
128
+
129
+
130
+ // Loop over each parsed out query and write it to $query-print
131
+ $first: true;
132
+
133
+ @each $feature in $query-holder {
134
+ $length: length($feature);
135
+
136
+ // Parse a single feature
137
+ @if ($length == 1) {
138
+ // Feature is currently a list, grab the actual value
139
+ $feature: nth($feature, 1);
140
+
141
+ // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type
142
+ @if (breakpoint-is-media($feature)) {
143
+ @if ($force-all == true) or ($feature != 'all') {
144
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
145
+ $query-print: $feature;
146
+ $empty-media: false;
147
+
148
+ // Set Context
149
+ $context-setter: private-breakpoint-set-context(media, $query-print);
150
+ }
151
+ }
152
+ @else {
153
+ $parsed: breakpoint-parse-single($feature, $empty-media, $first);
154
+ $query-print: '#{$query-print} #{$parsed}';
155
+ $first: false;
156
+ }
157
+ }
158
+ // Parse a double feature
159
+ @else if ($length == 2) {
160
+ @if (breakpoint-is-resolution($feature) != false) {
161
+ $query-resolution: $feature;
162
+ }
163
+ @else {
164
+ $parsed: null;
165
+ // If it's a string/number pair,
166
+ // we check to see if one is a single-string value,
167
+ // then we parse it as a normal double
168
+ $alpha: nth($feature, 1);
169
+ $beta: nth($feature, 2);
170
+ @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) {
171
+ $parsed: breakpoint-parse-single($alpha, $empty-media, $first);
172
+ $query-print: '#{$query-print} #{$parsed}';
173
+ $first: false;
174
+ $parsed: breakpoint-parse-single($beta, $empty-media, $first);
175
+ $query-print: '#{$query-print} #{$parsed}';
176
+ }
177
+ @else {
178
+ $parsed: breakpoint-parse-double($feature, $empty-media, $first);
179
+ $query-print: '#{$query-print} #{$parsed}';
180
+ $first: false;
181
+ }
182
+ }
183
+ }
184
+ // Parse a triple feature
185
+ @else if ($length == 3) {
186
+ $parsed: breakpoint-parse-triple($feature, $empty-media, $first);
187
+ $query-print: '#{$query-print} #{$parsed}';
188
+ $first: false;
189
+ }
190
+
191
+ }
192
+
193
+ @if ($query-resolution != false) {
194
+ $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first);
195
+ }
196
+
197
+ // Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters
198
+ @each $f, $v in $private-breakpoint-context-holder {
199
+ $v-holder: $v;
200
+ $length: length($v-holder);
201
+ @if length($v-holder) < $private-breakpoint-query-count {
202
+ @for $i from $length to $private-breakpoint-query-count {
203
+ @if $f == 'media' {
204
+ $v-holder: append($v-holder, breakpoint-get('default media'));
205
+ }
206
+ @else {
207
+ $v-holder: append($v-holder, false);
208
+ }
209
+ }
210
+ }
211
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global;
212
+ }
213
+
214
+ @return $query-print;
215
+ }
@@ -0,0 +1,82 @@
1
+ ////////////////////////
2
+ // Default the Breakpoints variable
3
+ ////////////////////////
4
+ $breakpoints: () !default;
5
+ $BREAKPOINTS: () !default;
6
+
7
+ ////////////////////////
8
+ // Respond-to API Mixin
9
+ ////////////////////////
10
+ @mixin respond-to($context, $no-query: false) {
11
+ @if length($breakpoints) > 0 and length($BREAKPOINTS) == 0 {
12
+ @warn "In order to avoid variable namespace collisions, we have updated the way to add breakpoints for respond-to. Please change all instances of `$breakpoints: add-breakpoint()` to `@include add-breakpoint()`. The `add-breakpoint()` function will be deprecated in a future release.";
13
+ $BREAKPOINTS: $breakpoints !global;
14
+ $breakpoints: () !global;
15
+ }
16
+
17
+ @if type-of($BREAKPOINTS) != 'map' {
18
+ // Just in case someone writes gibberish to the $breakpoints variable.
19
+ @warn "Your breakpoints aren't a map! `respond-to` expects a map. Please check the value of $BREAKPOINTS variable.";
20
+ @content;
21
+ }
22
+ @else if map-has-key($BREAKPOINTS, $context) {
23
+ @include breakpoint(map-get($BREAKPOINTS, $context), $no-query) {
24
+ @content;
25
+ }
26
+ }
27
+ @else if not map-has-key($BREAKPOINTS, $context) {
28
+ @warn "`#{$context}` isn't a defined breakpoint! Please add it using `$breakpoints: add-breakpoint(`#{$context}`, $value);`";
29
+ @content;
30
+ }
31
+ @else {
32
+ @warn "You haven't created any breakpoints yet! Make some already! `@include add-breakpoint($name, $bkpt)`";
33
+ @content;
34
+ }
35
+ }
36
+
37
+ //////////////////////////////
38
+ // Add Breakpoint to Breakpoints
39
+ // TODO: Remove function in next release
40
+ //////////////////////////////
41
+ @function add-breakpoint($name, $bkpt, $overwrite: false) {
42
+ $output: ($name: $bkpt);
43
+
44
+ @if length($breakpoints) == 0 {
45
+ @return $output;
46
+ }
47
+ @else {
48
+ @if map-has-key($breakpoints, $name) and $overwrite != true {
49
+ @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
50
+ @return $breakpoints;
51
+ }
52
+ @else if not map-has-key($breakpoints, $name) or $overwrite == true {
53
+ @return map-merge($breakpoints, $output);
54
+ }
55
+ }
56
+ }
57
+
58
+ @mixin add-breakpoint($name, $bkpt, $overwrite: false) {
59
+ $output: ($name: $bkpt);
60
+
61
+ @if length($BREAKPOINTS) == 0 {
62
+ $BREAKPOINTS: $output !global;
63
+ }
64
+ @else {
65
+ @if map-has-key($BREAKPOINTS, $name) and $overwrite != true {
66
+ @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
67
+ $BREAKPOINTS: $BREAKPOINTS !global;
68
+ }
69
+ @else if not map-has-key($BREAKPOINTS, $name) or $overwrite == true {
70
+ $BREAKPOINTS: map-merge($BREAKPOINTS, $output) !global;
71
+ }
72
+ }
73
+ }
74
+
75
+ @function get-breakpoint($name: false) {
76
+ @if $name == false {
77
+ @return $BREAKPOINTS;
78
+ }
79
+ @else {
80
+ @return map-get($BREAKPOINTS, $name);
81
+ }
82
+ }