jekyll-bulma-theme 1.0.6 → 1.0.7

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.
data/assets/css/app.scss CHANGED
@@ -1,4 +1,4 @@
1
- ---
2
- ---
3
-
4
- @import "app";
1
+ ---
2
+ ---
3
+
4
+ @import "app";
data/assets/js/app.js CHANGED
@@ -1,241 +1,241 @@
1
- 'use strict';
2
-
3
- document.addEventListener('DOMContentLoaded', function () {
4
-
5
- // Dropdowns
6
-
7
- var $metalinks = getAll('#meta a');
8
-
9
- if ($metalinks.length > 0) {
10
- $metalinks.forEach(function ($el) {
11
- $el.addEventListener('click', function (event) {
12
- event.preventDefault();
13
- var target = $el.getAttribute('href');
14
- var $target = document.getElementById(target.substring(1));
15
- $target.scrollIntoView(true);
16
- // window.history.replaceState(null, document.title, `${window.location.origin}${window.location.pathname}${target}`);
17
- return false;
18
- });
19
- });
20
- }
21
-
22
- // Dropdowns
23
-
24
- var $dropdowns = getAll('.dropdown:not(.is-hoverable)');
25
-
26
- if ($dropdowns.length > 0) {
27
- $dropdowns.forEach(function ($el) {
28
- $el.addEventListener('click', function (event) {
29
- event.stopPropagation();
30
- $el.classList.toggle('is-active');
31
- });
32
- });
33
-
34
- document.addEventListener('click', function (event) {
35
- closeDropdowns();
36
- });
37
- }
38
-
39
- function closeDropdowns() {
40
- $dropdowns.forEach(function ($el) {
41
- $el.classList.remove('is-active');
42
- });
43
- }
44
-
45
- // Toggles
46
-
47
- var $burgers = getAll('.navbar-burger');
48
-
49
- if ($burgers.length > 0) {
50
- $burgers.forEach(function ($el) {
51
- $el.addEventListener('click', function () {
52
- var target = $el.dataset.target;
53
- var $target = document.getElementById(target);
54
- $el.classList.toggle('is-active');
55
- $target.classList.toggle('is-active');
56
- });
57
- });
58
- }
59
-
60
- // Modals
61
-
62
- var rootEl = document.documentElement;
63
- var $modals = getAll('.modal');
64
- var $modalButtons = getAll('.modal-button');
65
- var $modalCloses = getAll('.modal-background, .modal-close, .modal-card-head .delete, .modal-card-foot .button');
66
-
67
- if ($modalButtons.length > 0) {
68
- $modalButtons.forEach(function ($el) {
69
- $el.addEventListener('click', function () {
70
- var target = $el.dataset.target;
71
- var $target = document.getElementById(target);
72
- rootEl.classList.add('is-clipped');
73
- $target.classList.add('is-active');
74
- });
75
- });
76
- }
77
-
78
- if ($modalCloses.length > 0) {
79
- $modalCloses.forEach(function ($el) {
80
- $el.addEventListener('click', function () {
81
- closeModals();
82
- });
83
- });
84
- }
85
-
86
- document.addEventListener('keydown', function (event) {
87
- var e = event || window.event;
88
- if (e.keyCode === 27) {
89
- closeModals();
90
- closeDropdowns();
91
- }
92
- });
93
-
94
- function closeModals() {
95
- rootEl.classList.remove('is-clipped');
96
- $modals.forEach(function ($el) {
97
- $el.classList.remove('is-active');
98
- });
99
- }
100
-
101
- // Functions
102
-
103
- function getAll(selector) {
104
- return Array.prototype.slice.call(document.querySelectorAll(selector), 0);
105
- }
106
-
107
- // Scrolling
108
-
109
- var shadowedEl = document.getElementById('shadowed');
110
- var navbarEl = document.getElementById('navbar');
111
- var navbarBurger = document.getElementById('navbarBurger');
112
- var specialShadow = document.getElementById('specialShadow');
113
- var NAVBAR_HEIGHT = 52;
114
- var THRESHOLD = 160;
115
- var navbarOpen = false;
116
- var horizon = NAVBAR_HEIGHT;
117
- var whereYouStoppedScrolling = 0;
118
- var scrollFactor = 0;
119
- var currentTranslate = 0;
120
-
121
- navbarBurger.addEventListener('click', function (el) {
122
- navbarOpen = !navbarOpen;
123
-
124
- if (navbarOpen) {
125
- rootEl.classList.add('bd-is-clipped-touch');
126
- shadowedEl.style.display = shadowedEl.style.display == 'none' ? 'block' : 'none';
127
- } else {
128
- rootEl.classList.remove('bd-is-clipped-touch');
129
- shadowedEl.style.display = shadowedEl.style.display == 'none' ? 'block' : 'none';
130
- }
131
- });
132
-
133
- function upOrDown(lastY, currentY) {
134
- if (currentY >= lastY) {
135
- return goingDown(currentY);
136
- }
137
- return goingUp(currentY);
138
- }
139
-
140
- function goingDown(currentY) {
141
- var trigger = NAVBAR_HEIGHT;
142
- whereYouStoppedScrolling = currentY;
143
-
144
- if (currentY > horizon) {
145
- horizon = currentY;
146
- }
147
-
148
- translateHeader(currentY, false);
149
- }
150
-
151
- function goingUp(currentY) {
152
- var trigger = 0;
153
-
154
- if (currentY < whereYouStoppedScrolling - NAVBAR_HEIGHT) {
155
- horizon = currentY + NAVBAR_HEIGHT;
156
- }
157
-
158
- translateHeader(currentY, true);
159
- }
160
-
161
- function constrainDelta(delta) {
162
- return Math.max(0, Math.min(delta, NAVBAR_HEIGHT));
163
- }
164
-
165
- function translateHeader(currentY, upwards) {
166
- // let topTranslateValue;
167
- var translateValue = void 0;
168
-
169
- if (upwards && currentTranslate == 0) {
170
- translateValue = 0;
171
- } else if (currentY <= NAVBAR_HEIGHT) {
172
- translateValue = currentY * -1;
173
- } else {
174
- var delta = constrainDelta(Math.abs(currentY - horizon));
175
- translateValue = delta - NAVBAR_HEIGHT;
176
- }
177
-
178
- if (translateValue != currentTranslate) {
179
- var navbarStyle = '\n transform: translateY(' + translateValue + 'px);\n ';
180
- currentTranslate = translateValue;
181
- navbarEl.setAttribute('style', navbarStyle);
182
- }
183
-
184
- if (currentY > THRESHOLD * 2) {
185
- scrollFactor = 1;
186
- } else if (currentY > THRESHOLD) {
187
- scrollFactor = (currentY - THRESHOLD) / THRESHOLD;
188
- } else {
189
- scrollFactor = 0;
190
- }
191
-
192
- var translateFactor = 1 + translateValue / NAVBAR_HEIGHT;
193
- specialShadow.style.opacity = scrollFactor;
194
- specialShadow.style.transform = 'scaleY(' + translateFactor + ')';
195
- }
196
-
197
- translateHeader(window.scrollY, false);
198
-
199
- var ticking = false;
200
- var lastY = 0;
201
-
202
- window.addEventListener('scroll', function () {
203
- var currentY = window.scrollY;
204
-
205
- if (!ticking) {
206
- window.requestAnimationFrame(function () {
207
- upOrDown(lastY, currentY);
208
- ticking = false;
209
- lastY = currentY;
210
- });
211
- }
212
-
213
- ticking = true;
214
- });
215
-
216
- // Popup Sharing
217
-
218
- function popupSharing(url, provider) {
219
- return window.open(url, 'Share to ' + provider, 'menubar=1,resizable=1,width=600,height=350')
220
- }
221
-
222
- var $onShare = Array.prototype.slice.call(document.querySelectorAll('.on-share'), 0);
223
- if ($onShare.length > 0) {
224
- $onShare.forEach(function ($el) {
225
- $el.addEventListener('click', function () {
226
- var url = $el.dataset.url;
227
- var provider = $el.dataset.provider;
228
- switch (provider) {
229
- case 'facebook':
230
- return popupSharing('https://www.facebook.com/sharer/sharer.php?u=' + url, provider);
231
- case 'twitter':
232
- return popupSharing('https://twitter.com/intent/tweet?url=' + url, provider);
233
- case 'google':
234
- return popupSharing('https://plus.google.com/share?url=' + url, provider);
235
- case 'pinterest':
236
- return popupSharing('http://pinterest.com/pin/create/button/?url=' + url, provider);
237
- }
238
- });
239
- });
240
- }
241
- });
1
+ 'use strict';
2
+
3
+ document.addEventListener('DOMContentLoaded', function () {
4
+
5
+ // Dropdowns
6
+
7
+ var $metalinks = getAll('#meta a');
8
+
9
+ if ($metalinks.length > 0) {
10
+ $metalinks.forEach(function ($el) {
11
+ $el.addEventListener('click', function (event) {
12
+ event.preventDefault();
13
+ var target = $el.getAttribute('href');
14
+ var $target = document.getElementById(target.substring(1));
15
+ $target.scrollIntoView(true);
16
+ // window.history.replaceState(null, document.title, `${window.location.origin}${window.location.pathname}${target}`);
17
+ return false;
18
+ });
19
+ });
20
+ }
21
+
22
+ // Dropdowns
23
+
24
+ var $dropdowns = getAll('.dropdown:not(.is-hoverable)');
25
+
26
+ if ($dropdowns.length > 0) {
27
+ $dropdowns.forEach(function ($el) {
28
+ $el.addEventListener('click', function (event) {
29
+ event.stopPropagation();
30
+ $el.classList.toggle('is-active');
31
+ });
32
+ });
33
+
34
+ document.addEventListener('click', function (event) {
35
+ closeDropdowns();
36
+ });
37
+ }
38
+
39
+ function closeDropdowns() {
40
+ $dropdowns.forEach(function ($el) {
41
+ $el.classList.remove('is-active');
42
+ });
43
+ }
44
+
45
+ // Toggles
46
+
47
+ var $burgers = getAll('.navbar-burger');
48
+
49
+ if ($burgers.length > 0) {
50
+ $burgers.forEach(function ($el) {
51
+ $el.addEventListener('click', function () {
52
+ var target = $el.dataset.target;
53
+ var $target = document.getElementById(target);
54
+ $el.classList.toggle('is-active');
55
+ $target.classList.toggle('is-active');
56
+ });
57
+ });
58
+ }
59
+
60
+ // Modals
61
+
62
+ var rootEl = document.documentElement;
63
+ var $modals = getAll('.modal');
64
+ var $modalButtons = getAll('.modal-button');
65
+ var $modalCloses = getAll('.modal-background, .modal-close, .modal-card-head .delete, .modal-card-foot .button');
66
+
67
+ if ($modalButtons.length > 0) {
68
+ $modalButtons.forEach(function ($el) {
69
+ $el.addEventListener('click', function () {
70
+ var target = $el.dataset.target;
71
+ var $target = document.getElementById(target);
72
+ rootEl.classList.add('is-clipped');
73
+ $target.classList.add('is-active');
74
+ });
75
+ });
76
+ }
77
+
78
+ if ($modalCloses.length > 0) {
79
+ $modalCloses.forEach(function ($el) {
80
+ $el.addEventListener('click', function () {
81
+ closeModals();
82
+ });
83
+ });
84
+ }
85
+
86
+ document.addEventListener('keydown', function (event) {
87
+ var e = event || window.event;
88
+ if (e.keyCode === 27) {
89
+ closeModals();
90
+ closeDropdowns();
91
+ }
92
+ });
93
+
94
+ function closeModals() {
95
+ rootEl.classList.remove('is-clipped');
96
+ $modals.forEach(function ($el) {
97
+ $el.classList.remove('is-active');
98
+ });
99
+ }
100
+
101
+ // Functions
102
+
103
+ function getAll(selector) {
104
+ return Array.prototype.slice.call(document.querySelectorAll(selector), 0);
105
+ }
106
+
107
+ // Scrolling
108
+
109
+ var shadowedEl = document.getElementById('shadowed');
110
+ var navbarEl = document.getElementById('navbar');
111
+ var navbarBurger = document.getElementById('navbarBurger');
112
+ var specialShadow = document.getElementById('specialShadow');
113
+ var NAVBAR_HEIGHT = 52;
114
+ var THRESHOLD = 160;
115
+ var navbarOpen = false;
116
+ var horizon = NAVBAR_HEIGHT;
117
+ var whereYouStoppedScrolling = 0;
118
+ var scrollFactor = 0;
119
+ var currentTranslate = 0;
120
+
121
+ navbarBurger.addEventListener('click', function (el) {
122
+ navbarOpen = !navbarOpen;
123
+
124
+ if (navbarOpen) {
125
+ rootEl.classList.add('bd-is-clipped-touch');
126
+ shadowedEl.style.display = shadowedEl.style.display == 'none' ? 'block' : 'none';
127
+ } else {
128
+ rootEl.classList.remove('bd-is-clipped-touch');
129
+ shadowedEl.style.display = shadowedEl.style.display == 'none' ? 'block' : 'none';
130
+ }
131
+ });
132
+
133
+ function upOrDown(lastY, currentY) {
134
+ if (currentY >= lastY) {
135
+ return goingDown(currentY);
136
+ }
137
+ return goingUp(currentY);
138
+ }
139
+
140
+ function goingDown(currentY) {
141
+ var trigger = NAVBAR_HEIGHT;
142
+ whereYouStoppedScrolling = currentY;
143
+
144
+ if (currentY > horizon) {
145
+ horizon = currentY;
146
+ }
147
+
148
+ translateHeader(currentY, false);
149
+ }
150
+
151
+ function goingUp(currentY) {
152
+ var trigger = 0;
153
+
154
+ if (currentY < whereYouStoppedScrolling - NAVBAR_HEIGHT) {
155
+ horizon = currentY + NAVBAR_HEIGHT;
156
+ }
157
+
158
+ translateHeader(currentY, true);
159
+ }
160
+
161
+ function constrainDelta(delta) {
162
+ return Math.max(0, Math.min(delta, NAVBAR_HEIGHT));
163
+ }
164
+
165
+ function translateHeader(currentY, upwards) {
166
+ // let topTranslateValue;
167
+ var translateValue = void 0;
168
+
169
+ if (upwards && currentTranslate == 0) {
170
+ translateValue = 0;
171
+ } else if (currentY <= NAVBAR_HEIGHT) {
172
+ translateValue = currentY * -1;
173
+ } else {
174
+ var delta = constrainDelta(Math.abs(currentY - horizon));
175
+ translateValue = delta - NAVBAR_HEIGHT;
176
+ }
177
+
178
+ if (translateValue != currentTranslate) {
179
+ var navbarStyle = '\n transform: translateY(' + translateValue + 'px);\n ';
180
+ currentTranslate = translateValue;
181
+ navbarEl.setAttribute('style', navbarStyle);
182
+ }
183
+
184
+ if (currentY > THRESHOLD * 2) {
185
+ scrollFactor = 1;
186
+ } else if (currentY > THRESHOLD) {
187
+ scrollFactor = (currentY - THRESHOLD) / THRESHOLD;
188
+ } else {
189
+ scrollFactor = 0;
190
+ }
191
+
192
+ var translateFactor = 1 + translateValue / NAVBAR_HEIGHT;
193
+ specialShadow.style.opacity = scrollFactor;
194
+ specialShadow.style.transform = 'scaleY(' + translateFactor + ')';
195
+ }
196
+
197
+ translateHeader(window.scrollY, false);
198
+
199
+ var ticking = false;
200
+ var lastY = 0;
201
+
202
+ window.addEventListener('scroll', function () {
203
+ var currentY = window.scrollY;
204
+
205
+ if (!ticking) {
206
+ window.requestAnimationFrame(function () {
207
+ upOrDown(lastY, currentY);
208
+ ticking = false;
209
+ lastY = currentY;
210
+ });
211
+ }
212
+
213
+ ticking = true;
214
+ });
215
+
216
+ // Popup Sharing
217
+
218
+ function popupSharing(url, provider) {
219
+ return window.open(url, 'Share to ' + provider, 'menubar=1,resizable=1,width=600,height=350')
220
+ }
221
+
222
+ var $onShare = Array.prototype.slice.call(document.querySelectorAll('.on-share'), 0);
223
+ if ($onShare.length > 0) {
224
+ $onShare.forEach(function ($el) {
225
+ $el.addEventListener('click', function () {
226
+ var url = $el.dataset.url;
227
+ var provider = $el.dataset.provider;
228
+ switch (provider) {
229
+ case 'facebook':
230
+ return popupSharing('https://www.facebook.com/sharer/sharer.php?u=' + url, provider);
231
+ case 'twitter':
232
+ return popupSharing('https://twitter.com/intent/tweet?url=' + url, provider);
233
+ case 'google':
234
+ return popupSharing('https://plus.google.com/share?url=' + url, provider);
235
+ case 'pinterest':
236
+ return popupSharing('http://pinterest.com/pin/create/button/?url=' + url, provider);
237
+ }
238
+ });
239
+ });
240
+ }
241
+ });