futuro 1.1.0 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/html/overlay/browse/page.liquid +1 -1
  3. data/_includes/html/page/content/loop/screen/header.liquid +45 -2
  4. data/_includes/svg/site/icon.liquid +33 -21
  5. data/_sass/area/topbar.scss +1 -1
  6. data/_sass/block/form/screen.scss +62 -29
  7. data/_sass/block/page.scss +0 -5
  8. data/_sass/futuro.core.scss +1 -1
  9. data/_sass/helpers/variables.scss +2 -4
  10. data/_sass/helpers/variables/colors.scss +13 -13
  11. data/assets/js/footer/custom/1_Settings.js +5 -7
  12. data/assets/js/footer/custom/2_Check.width.js +5 -28
  13. data/assets/js/footer/custom/4_Setup.home.js +3 -1
  14. data/assets/js/footer/custom/4_Setup.overlays.js +35 -46
  15. data/assets/js/footer/custom/4_Start.browse.js +2 -67
  16. data/assets/js/footer/custom/5_Util.share.js +0 -75
  17. data/assets/js/footer/custom/5_WhatsOn.js +7 -7
  18. data/assets/js/footer/custom/5_respond.scroller.js +11 -0
  19. data/assets/js/footer/vendor/futuro/browsr.js +326 -0
  20. data/assets/js/footer/vendor/futuro/checkr.js +41 -0
  21. data/assets/js/footer/vendor/futuro/ovrly.js +102 -0
  22. data/assets/js/footer/vendor/{gsap-draw.js → gsap/draw.js} +0 -0
  23. data/assets/js/footer/vendor/{gsap-morph.js → gsap/morph.js} +0 -0
  24. data/assets/js/footer/vendor/{gsap-scramble.js → gsap/scramble.js} +0 -0
  25. data/assets/js/footer/vendor/gsap/scroll.js +11 -0
  26. data/assets/js/footer/vendor/{gsap-text.js → gsap/text.js} +0 -0
  27. data/assets/js/footer/vendor/{jquery.min.js → jquery.js} +0 -0
  28. data/assets/js/footer/vendor/{parsley.min.js → parsley.js} +0 -0
  29. data/assets/js/futuro.footer.custom.js +1 -1
  30. data/assets/js/futuro.footer.vendor.js +483 -314
  31. data/assets/js/futuro.header.legacy.js +4 -3
  32. data/assets/js/futuro.header.legacy.shopify.js +4 -3
  33. data/assets/js/futuro.header.vendor.js +4 -3
  34. data/assets/js/header/vendor/gsap.js +4 -3
  35. metadata +13 -13
  36. data/assets/js/footer/custom/3_Setup.browse.js +0 -298
  37. data/assets/js/footer/custom/5_Animate.scroller.js +0 -16
  38. data/assets/js/footer/custom/5_Respond.browse.js +0 -42
  39. data/assets/js/footer/vendor/scrollmagic-gsap.js +0 -310
  40. data/assets/js/footer/vendor/scrollmagic.js +0 -3
@@ -1,31 +1,8 @@
1
1
 
2
- Print.width = () => {
3
- var size = $(document)[0].documentElement.clientWidth,
4
- more = Site.desktop.width - size + "px",
5
- percent = (100/Site.desktop.width) * size + "%";
6
-
7
- $(".width").html(more);
8
-
9
- console.log("printing");
10
-
11
- gsap.set(Overlay.mobile.bar,{ width : percent });
12
- }
13
-
14
- Check.width = () => {
15
-
16
-
17
- if (!Site.desktop.active) {
18
- gsap.set(".site",{ clearProps : "display" });
19
- gsap.set(Overlay.mobile.screen,{ display : Config.display });
20
- Print.width();
21
- } else {
22
- gsap.set(Overlay.mobile.screen,{ clearProps : "display" });
23
- gsap.set(".site",{ display : Config.display });
24
- }
25
- }
26
-
27
2
  if (!Config.respond) {
28
- $(Check.width());
29
- $(window).resize(Check.width);
30
- }
3
+ Checkr(Site.desktop.active);
31
4
 
5
+ $(window).resize(() => {
6
+ Checkr(Site.desktop.active);
7
+ });
8
+ }
@@ -32,4 +32,6 @@ Setup.home = () => {
32
32
 
33
33
  }
34
34
 
35
- if (Site.isLibrary) { if (Body.isHome) { $(Setup.home()); } }
35
+ if (Site.isLibrary && Body.isHome) {
36
+ $(Setup.home());
37
+ }
@@ -1,92 +1,81 @@
1
-
2
- const ChangeScreen = (index,value,state) => {
3
-
4
- let source = Overlay.custom[index],
5
- target = ".area.overlay-" + source.name,
6
- input = $(".input.text-search"),
7
- results = $(".wrap.results");
1
+ const ChangeScreen = (index, value, state) => {
2
+ let source = Overlay.custom[index],
3
+ target = ".area.overlay-" + source.name,
4
+ input = $(".input.text-search"),
5
+ results = $(".wrap.results");
8
6
 
9
7
  if (state == "close") {
10
-
11
- gsap.set("body",{
12
- clearProps : "overflow"
8
+ gsap.set("body", {
9
+ clearProps: "overflow",
13
10
  });
14
11
 
15
12
  gsap.set(target, {
16
- clearProps : "display"
13
+ clearProps: "display",
17
14
  });
18
15
 
19
16
  source.open = false;
20
17
 
21
18
  if (value.name == "search") {
22
-
23
19
  input.val("");
24
20
 
25
21
  results.empty();
26
-
27
22
  }
28
-
29
23
  } else {
30
-
31
24
  gsap.set("body", {
32
- overflow : "hidden"
25
+ overflow: "hidden",
33
26
  });
34
27
 
35
28
  gsap.set(target, {
36
- display : Config.display
29
+ display: Config.display,
37
30
  });
38
31
 
39
32
  source.open = true;
40
33
 
41
34
  if (value.name == "search") {
42
-
43
35
  input.focus();
44
-
45
36
  }
46
37
  }
47
- }
38
+ };
48
39
 
49
- const BuildScreens = (index,value) => {
40
+ const BuildScreens = (index, value) => {
50
41
  let button = Overlay.button + "." + value.name,
51
- exit = Overlay.exit + "." + value.name;
42
+ exit = Overlay.exit + "." + value.name;
52
43
 
53
- $(button).click(function() {
54
- ChangeScreen(index,value,"open");
44
+ $(button).click(function () {
45
+ ChangeScreen(index, value, "open");
55
46
  });
56
47
 
57
- $(exit).click(function() {
58
- ChangeScreen(index,value,"close");
48
+ $(exit).click(function () {
49
+ ChangeScreen(index, value, "close");
59
50
  });
60
- }
51
+ };
61
52
 
62
53
  const KeyUp = (e) => {
63
-
64
- $(Overlay.custom).map((index,value) => {
65
-
66
- if (value.open && e.keyCode == 27) { ChangeScreen(index,value,"close"); }
54
+ $(Overlay.custom).map((index, value) => {
55
+ if (value.open && e.keyCode == 27) {
56
+ ChangeScreen(index, value, "close");
57
+ }
67
58
 
68
59
  if (!value.open && !Site.inFocus) {
60
+ if (e.keyCode == 65 && value.name == "about") {
61
+ ChangeScreen(index, value, "open");
62
+ }
69
63
 
70
- if (e.keyCode == 65 && value.name == "about") { ChangeScreen(index,value,"open"); }
71
-
72
- if (e.keyCode == 66 && value.name == "browse") { ChangeScreen(index,value,"open"); }
73
-
74
- if (e.keyCode == 83 && value.name == "search") { ChangeScreen(index,value,"open"); }
64
+ if (e.keyCode == 66 && value.name == "browse") {
65
+ ChangeScreen(index, value, "open");
66
+ }
75
67
 
68
+ if (e.keyCode == 83 && value.name == "search") {
69
+ ChangeScreen(index, value, "open");
70
+ }
76
71
  }
77
-
78
72
  });
73
+ };
79
74
 
80
- }
81
-
82
- $(Overlay.custom).map((index,value) => {
83
-
84
- BuildScreens(index,value);
85
-
75
+ $(Overlay.custom).map((index, value) => {
76
+ BuildScreens(index, value);
86
77
  });
87
78
 
88
- $(document).keyup(function(e) {
89
-
79
+ $(document).keyup(function (e) {
90
80
  KeyUp(e);
91
-
92
81
  });
@@ -1,68 +1,3 @@
1
-
2
- Start.browse = () => {
3
-
4
- if (Book.url) {
5
-
6
- Browse.book.links.map((index,value)=>{
7
-
8
- Check.book.class(value);
9
-
10
- if (Browse.found.success) {
11
-
12
- gsap.set(value,BackgroundShade);
13
-
14
- }
15
-
16
- });
17
-
18
- Browse.chapter.books.map((index,value)=>{
19
-
20
- Check.book.class(value);
21
-
22
- if (Browse.found.success) {
23
-
24
- Browse.chapter.books.filter(index,value);
25
-
26
- } else {
27
-
28
- gsap.set(value,DisplayNone);
29
-
30
- }
31
-
32
- });
33
-
34
- Browse.page.books.map((index,value)=>{
35
-
36
- Check.book.class(value);
37
-
38
- if (Browse.found.success) {
39
-
40
- Browse.page.books.filter(index,value);
41
-
42
- } else {
43
-
44
- gsap.set(value,DisplayNone);
45
-
46
- }
47
-
48
- });
49
-
50
- } else {
51
-
52
- Browse.chapter.books.map((index,value)=>{
53
-
54
- Browse.chapter.books.filter(index,value);
55
-
56
- });
57
-
58
- Browse.page.books.map((index,value)=>{
59
-
60
- Browse.page.books.filter(index,value);
61
-
62
- });
63
-
64
- }
65
-
1
+ if (!Site.isTheme && !Body.isHome && Browse.able) {
2
+ Browsr(Site.isLibrary);
66
3
  }
67
-
68
- if (!Site.isTheme) { if (!Body.isHome) { if (Browse.able) { Start.browse(); } } }
@@ -23,78 +23,3 @@ Util.share = function(ting) {
23
23
 
24
24
  Util.copy(getUrl);
25
25
  }
26
-
27
- // const UtilCopy = str => {
28
- // const el = document.createElement('textarea');
29
- // el.value = str;
30
- // document.body.appendChild(el);
31
- // el.select();
32
- // document.execCommand('copy');
33
- // document.body.removeChild(el);
34
- // }
35
-
36
- // // const UtilShare = e => {
37
- // // let ting = $(e.target).parents(Site.page.share),
38
- // // type = $(ting)[0].classList[2],
39
- // // url = $(ting).children(Site.page.url).text().replace('index',''),
40
- // // title = $(ting)[0].children[1],
41
- // // tl = gsap.timeline(),
42
- // // reset = '';
43
-
44
- // // console.log(e);
45
-
46
-
47
- // // if (type == 'page') {
48
- // // reset = 'Copy page';
49
- // // }
50
-
51
- // // UtilCopy(url);
52
-
53
- // // tl
54
- // // .set(title,{
55
- // // text : 'Copied!'
56
- // // })
57
- // // .to(title,{
58
- // // duration : 0.3,
59
- // // opacity : 0
60
- // // },'+=0.6')
61
- // // .set(title,{
62
- // // text : reset,
63
- // // clearProps : 'all'
64
- // // },'+=0.3');
65
- // // }
66
-
67
- // function UtilShare() {
68
- // let target = $(this).parents(Site.page.share),
69
- // getUrl = $(target.context).find(Site.page.url).text(),
70
- // tl = gsap.timeline(),
71
- // type = "";
72
- // getUrl = getUrl.replace("index","");
73
-
74
- // console.log("Util runs!");
75
-
76
-
77
- // $(target.context.classList).map((index,value)=>{
78
- // if (value.includes("type-")) {
79
- // type = value;
80
- // }
81
- // });
82
-
83
- // UtilCopy(getUrl);
84
-
85
- // // tl
86
- // // .set(title,{
87
- // // text : 'Copied!'
88
- // // })
89
- // // .to(title,{
90
- // // duration : 0.3,
91
- // // opacity : 0
92
- // // },'+=0.6')
93
- // // .set(title,{
94
- // // text : reset,
95
- // // clearProps : 'all'
96
- // // },'+=0.3');
97
-
98
- // }
99
-
100
- // // if (!Site.isTheme) { if (Site.isShareable) { $(Site.page.share).click(UtilShare); }}
@@ -2,17 +2,17 @@
2
2
  const WhatsOn = {
3
3
 
4
4
  speed : input => {
5
- return input * 0.03;
5
+ return input * 0.05;
6
6
  },
7
7
 
8
8
  slide : value => {
9
9
 
10
- let alert = $(".block.alert-content",value),
11
- feed = $(".alert-feed",value),
10
+ let alert = $(".screen-alert__wrap",value),
11
+ feed = $(".screen-alert__feed",value),
12
12
  width = $(feed).width() + 100,
13
- clone = $(".alert-clone",value);
13
+ clone = $(".screen-alert__clone",value);
14
14
 
15
- $(alert).addClass("modify-grid");
15
+ $(alert).addClass("modify-grid");
16
16
 
17
17
  const prep = gsap.timeline({ defaults : { ease : "none" }});
18
18
 
@@ -33,9 +33,9 @@ const WhatsOn = {
33
33
 
34
34
  scroll : value => {
35
35
 
36
- let feed = $(".feed",value),
36
+ let feed = $(".screen-event__feed",value),
37
37
  height = $(feed).height(),
38
- clone = $(".clone",value);
38
+ clone = $(".screen-event__clone",value);
39
39
 
40
40
  let tl = gsap.timeline({ repeat : -1, defaults : { ease : "none" }});
41
41
 
@@ -0,0 +1,11 @@
1
+ $(Site.scroller).map((_index, value) => {
2
+ gsap.to(value, {
3
+ scrollTrigger: {
4
+ trigger: ".block.stop#" + value.classList[2],
5
+ start: "+=80 center",
6
+ end: "+=280",
7
+ scrub: true,
8
+ },
9
+ opacity: 1,
10
+ });
11
+ });
@@ -0,0 +1,326 @@
1
+ (function (global, $) {
2
+ var Browsr = function (target) {
3
+ return new Browsr.init(target);
4
+ };
5
+
6
+ let found = false,
7
+ book = {
8
+ found: false,
9
+ },
10
+ chapter = {
11
+ found: false,
12
+ },
13
+ page = {
14
+ found: false,
15
+ };
16
+
17
+ Browsr.prototype = {
18
+ match(value, type = "book") {
19
+ $(value.classList).map((_, value) => {
20
+ if (type == "book") {
21
+ if (value.startsWith(type + "-")) {
22
+ book.class = value;
23
+ }
24
+ } else if (type == "chapter") {
25
+ if (value.startsWith(type + "-")) {
26
+ chapter.class = value;
27
+ }
28
+ }
29
+ });
30
+ },
31
+ checkPage(value) {
32
+ found = false;
33
+ $(value.classList).map((_, value) => {
34
+ if (value.startsWith("page-")) {
35
+ if (page.class == value) {
36
+ found = true;
37
+ page.found = true;
38
+ }
39
+ }
40
+ });
41
+ },
42
+ checkChapter(value) {
43
+ found = false;
44
+ $(value.classList).map((_, value) => {
45
+ if (value.startsWith("chapter-")) {
46
+ if (chapter.class == value) {
47
+ found = true;
48
+ chapter.found = true;
49
+ }
50
+ }
51
+ });
52
+ },
53
+ checkBook(value) {
54
+ found = false;
55
+ $(value.classList).map((_, value) => {
56
+ if (value.startsWith("book-")) {
57
+ if (book.class == value) {
58
+ found = true;
59
+ book.found = true;
60
+ }
61
+ }
62
+ });
63
+ },
64
+ setPageUrl(index) {
65
+ if (!this.pathify()[index]) {
66
+ $(page.links[0].classList).map((_, value) => {
67
+ if (value.startsWith("page-")) {
68
+ page.url = value.slice(5);
69
+ }
70
+ });
71
+ } else {
72
+ page.url = this.pathify()[index];
73
+ }
74
+ },
75
+ setChapterUrl(index) {
76
+ if (!this.pathify()[index]) {
77
+ $(chapter.links[0].classList).map((_, value) => {
78
+ if (value.startsWith("chapter-")) {
79
+ chapter.url = value.slice(8);
80
+ }
81
+ });
82
+ } else {
83
+ chapter.url = this.pathify()[index];
84
+ }
85
+ },
86
+ nunify(value) {
87
+ gsap.set(value, { display: "none" });
88
+ },
89
+ shadify(value) {
90
+ gsap.set(value, { background: "rgba(0,0,0,0.05)" });
91
+ },
92
+ clearify(value, attr = "background") {
93
+ gsap.set(value, { clearProps: attr });
94
+ },
95
+ bookify(value) {
96
+ return $(".block.browse-book", ".wrap.browse-" + value);
97
+ },
98
+ linkify(value) {
99
+ return $(".link.browse-" + value, ".wrap.browse-" + value);
100
+ },
101
+ classify(value, type) {
102
+ return type + "-" + value;
103
+ },
104
+ pathify() {
105
+ return window.location.pathname.split("/").map((value) => {
106
+ if (value != "") {
107
+ return value;
108
+ }
109
+ });
110
+ },
111
+ setup(library) {
112
+ chapter.links = this.linkify("chapter");
113
+ page.links = this.linkify("page");
114
+ if (library) {
115
+ book.url = this.pathify()[1];
116
+ this.setChapterUrl(2);
117
+ this.setPageUrl(3);
118
+ book.links = this.linkify("book");
119
+ book.class = this.classify(book.url, "book");
120
+ } else {
121
+ this.setChapterUrl(1);
122
+ this.setPageUrl(2);
123
+ }
124
+ chapter.books = this.bookify("chapter");
125
+ chapter.class = this.classify(chapter.url, "chapter");
126
+ page.books = this.bookify("page");
127
+ page.class = this.classify(page.url, "page");
128
+ },
129
+ start(library) {
130
+ this.setup(library);
131
+
132
+ if (library) {
133
+ if (book.url) {
134
+ book.links.map((_, value) => {
135
+ this.checkBook(value);
136
+ if (found) {
137
+ this.shadify(value);
138
+ }
139
+ });
140
+ }
141
+ }
142
+
143
+ if (library) {
144
+ chapter.books.map((_, value) => {
145
+ this.checkBook(value);
146
+ if (found) {
147
+ chapter.books.map((_, value) => {
148
+ $(value.children).map((_, value) => {
149
+ this.checkChapter(value);
150
+ if (found) {
151
+ this.shadify(value);
152
+ }
153
+ });
154
+ });
155
+ } else {
156
+ this.nunify(value);
157
+ }
158
+ });
159
+ } else {
160
+ chapter.books.map((_, value) => {
161
+ $(value.children).map((_, value) => {
162
+ this.checkChapter(value);
163
+ if (found) {
164
+ this.shadify(value);
165
+ }
166
+ });
167
+ });
168
+ }
169
+
170
+ if (library) {
171
+ page.books.map((_, value) => {
172
+ this.checkBook(value);
173
+
174
+ if (found) {
175
+ page.books.map((_, value) => {
176
+ $(value.children).map((_, value) => {
177
+ this.checkChapter(value);
178
+
179
+ if (found) {
180
+ $(value.children).map((_, value) => {
181
+ this.checkPage(value);
182
+
183
+ if (found) {
184
+ this.shadify(value);
185
+ }
186
+ });
187
+ } else {
188
+ this.nunify(value);
189
+ }
190
+ });
191
+ });
192
+ } else {
193
+ this.nunify(value);
194
+ }
195
+ });
196
+ } else {
197
+ page.books.map((_, value) => {
198
+ $(value.children).map((_, value) => {
199
+ this.checkChapter(value);
200
+
201
+ if (found) {
202
+ $(value.children).map((_, value) => {
203
+ this.checkPage(value);
204
+
205
+ if (found) {
206
+ this.shadify(value);
207
+ }
208
+ });
209
+ } else {
210
+ this.nunify(value);
211
+ }
212
+ });
213
+ });
214
+ }
215
+
216
+ return this;
217
+ },
218
+ respond(library) {
219
+ if (library) {
220
+ book.links.hover((e) => {
221
+ this.match(e.target);
222
+ this.clearify(book.links);
223
+ this.shadify(e.target);
224
+
225
+ chapter.books.map((_, value) => {
226
+ this.nunify(value);
227
+ this.clearify(value.children);
228
+ this.checkBook(value);
229
+
230
+ if (found) {
231
+ this.clearify(value, "display");
232
+ this.shadify(value.children[0]);
233
+ }
234
+ });
235
+
236
+ page.books.map((_, value) => {
237
+ this.nunify(value);
238
+ this.checkBook(value);
239
+
240
+ if (found) {
241
+ this.clearify(value, "display");
242
+
243
+ $(value.children).map((index, value) => {
244
+ this.nunify(value);
245
+ this.clearify(value.children);
246
+
247
+ if (index == 0) {
248
+ this.clearify(value, "display");
249
+ this.shadify(value.children[0]);
250
+ }
251
+ });
252
+ }
253
+ });
254
+ });
255
+
256
+ chapter.links.hover((e) => {
257
+ this.match(e.target, "chapter");
258
+ this.clearify(chapter.links);
259
+ this.shadify(e.target);
260
+
261
+ page.books.map((_, value) => {
262
+ this.nunify(value);
263
+ this.checkBook(value);
264
+
265
+ if (found) {
266
+ this.clearify(value, "display");
267
+
268
+ $(value.children).map((_, value) => {
269
+ this.nunify(value);
270
+ this.clearify(value.children);
271
+ this.checkChapter(value);
272
+
273
+ if (found) {
274
+ this.clearify(value, "display");
275
+ this.shadify(value.children[0]);
276
+ }
277
+ });
278
+ }
279
+ });
280
+ });
281
+ page.links.hover((e) => {
282
+ this.clearify(page.links);
283
+ this.shadify(e.target);
284
+ });
285
+ } else {
286
+ chapter.links.hover((e) => {
287
+ this.match(e.target, "chapter");
288
+ this.clearify(chapter.links);
289
+ this.shadify(e.target);
290
+
291
+ page.books.map((_, value) => {
292
+ $(value.children).map((_, value) => {
293
+ this.nunify(value);
294
+ this.clearify(value.children);
295
+ this.checkChapter(value);
296
+
297
+ if (found) {
298
+ this.clearify(value, "display");
299
+ this.shadify(value.children[0]);
300
+ }
301
+ });
302
+ });
303
+ });
304
+ page.links.hover((e) => {
305
+ this.clearify(page.links);
306
+ this.shadify(e.target);
307
+ });
308
+ }
309
+
310
+ return this;
311
+ },
312
+ };
313
+
314
+ Browsr.init = function (library) {
315
+ var self = this;
316
+ self.target = document;
317
+ if (library == null) {
318
+ library = false;
319
+ }
320
+ this.start(library).respond(library);
321
+ };
322
+
323
+ Browsr.init.prototype = Browsr.prototype;
324
+
325
+ global.Browsr = Browsr;
326
+ })(window, $);