futuro 1.0.7 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/html/assign/page.liquid +2 -1
  3. data/_includes/html/assign/site.liquid +30 -21
  4. data/_includes/html/layout/footer.liquid +5 -1
  5. data/_includes/html/overlay/browse/page.liquid +1 -1
  6. data/_includes/html/page/content/loop/screen/header.liquid +45 -2
  7. data/_includes/html/page/footnote.liquid +4 -2
  8. data/_includes/html/page/header.liquid +1 -2
  9. data/_includes/html/page/layout/home.liquid +17 -7
  10. data/_includes/html/page/topbar.liquid +28 -17
  11. data/_includes/html/page/topbar/navigation/link.liquid +22 -0
  12. data/_includes/html/site/scroller.liquid +1 -1
  13. data/_includes/svg/site/icon.liquid +39 -19
  14. data/_sass/_button.scss +4 -4
  15. data/_sass/area/chapter.scss +2 -1
  16. data/_sass/area/page.scss +1 -1
  17. data/_sass/area/topbar.scss +1 -1
  18. data/_sass/block/chart.scss +2 -1
  19. data/_sass/block/form/screen.scss +62 -29
  20. data/_sass/block/util.scss +3 -0
  21. data/_sass/futuro.core.scss +5 -1
  22. data/_sass/helpers/extends.scss +0 -17
  23. data/_sass/helpers/mixins/layout.scss +0 -1
  24. data/_sass/helpers/mixins/theme.scss +111 -118
  25. data/_sass/helpers/themes.scss +14 -13
  26. data/_sass/helpers/variables.scss +24 -226
  27. data/_sass/helpers/variables/colors.scss +290 -0
  28. data/_sass/item/scroller.scss +0 -1
  29. data/_sass/link/book.scss +8 -6
  30. data/_sass/link/navigation.scss +11 -7
  31. data/_sass/link/scroller.scss +4 -0
  32. data/_sass/title/book.scss +9 -0
  33. data/_sass/title/page.scss +2 -0
  34. data/_sass/title/type.scss +1 -0
  35. data/_sass/wrap/switch.scss +12 -0
  36. data/assets/js/footer/custom/1_Settings.js +1 -2
  37. data/assets/js/footer/custom/2_Check.width.js +6 -23
  38. data/assets/js/footer/custom/4_Setup.home.js +3 -1
  39. data/assets/js/footer/custom/4_Setup.overlays.js +56 -56
  40. data/assets/js/footer/custom/4_Start.browse.js +3 -67
  41. data/assets/js/footer/custom/5_Util.share.js +0 -75
  42. data/assets/js/footer/custom/5_WhatsOn.js +7 -7
  43. data/assets/js/footer/custom/5_button.func.reset.js +15 -0
  44. data/assets/js/footer/custom/5_button.func.submit.js +39 -0
  45. data/assets/js/footer/custom/5_button.func.switch.js +26 -0
  46. data/assets/js/footer/custom/5_button.func.update.js +39 -0
  47. data/assets/js/footer/custom/5_respond.scroller.js +11 -0
  48. data/assets/js/footer/vendor/futuro/browsr.js +269 -0
  49. data/assets/js/footer/vendor/futuro/checkr.js +41 -0
  50. data/assets/js/footer/vendor/futuro/ovrly.js +102 -0
  51. data/assets/js/footer/vendor/{gsap-draw.js → gsap/draw.js} +0 -0
  52. data/assets/js/footer/vendor/{gsap-morph.js → gsap/morph.js} +0 -0
  53. data/assets/js/footer/vendor/{gsap-scramble.js → gsap/scramble.js} +0 -0
  54. data/assets/js/footer/vendor/gsap/scroll.js +11 -0
  55. data/assets/js/footer/vendor/{gsap-text.js → gsap/text.js} +0 -0
  56. data/assets/js/footer/vendor/{jquery.min.js → jquery.js} +0 -0
  57. data/assets/js/footer/vendor/{parsley.min.js → parsley.js} +0 -0
  58. data/assets/js/futuro.footer.custom.js +1 -1
  59. data/assets/js/futuro.footer.vendor.js +426 -314
  60. data/assets/js/futuro.header.custom.js +1 -1
  61. data/assets/js/futuro.header.legacy.js +4 -3
  62. data/assets/js/futuro.header.legacy.shopify.js +4 -3
  63. data/assets/js/futuro.header.vendor.js +4 -3
  64. data/assets/js/header/custom/1_Settings.js +8 -2
  65. data/assets/js/header/custom/2_Site.js +1 -3
  66. data/assets/js/header/vendor/gsap.js +4 -3
  67. metadata +22 -16
  68. data/_includes/svg/site/book/orwell.svg +0 -1
  69. data/_includes/svg/site/book/woolf.svg +0 -1
  70. data/assets/js/footer/custom/3_Setup.browse.js +0 -298
  71. data/assets/js/footer/custom/5_Animate.scroller.js +0 -11
  72. data/assets/js/footer/custom/5_Respond.browse.js +0 -42
  73. data/assets/js/footer/custom/5_Switch.button.js +0 -97
  74. data/assets/js/footer/vendor/scrollmagic-gsap.js +0 -310
  75. data/assets/js/footer/vendor/scrollmagic.js +0 -3
@@ -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,15 @@
1
+
2
+ Button.func.reset = (self,saved) => {
3
+ let text = $(self).find(".button-title"),
4
+ bg = $(self).find(".button-bg"),
5
+ all = [text,bg,self],
6
+ tl = gsap.timeline();
7
+
8
+ tl
9
+ .set(all,{
10
+ clearProps : "all"
11
+ })
12
+ .set(text,{
13
+ text : saved
14
+ });
15
+ }
@@ -0,0 +1,39 @@
1
+
2
+ Button.func.submit = (self, complete = "Done", reset = true) => {
3
+ let text = $(self).find(".button-title"),
4
+ bg = $(self).find(".button-bg"),
5
+ all = [text,bg,self],
6
+ tl = gsap.timeline();
7
+
8
+ Save.text = $(self).find(".button-title").text();
9
+ Save.color = $(self).css('backgroundColor');
10
+
11
+ tl
12
+ .set(self,{
13
+ backgroundColor : tinycolor(Save.color).lighten(44).desaturate(5)
14
+ })
15
+ .set(text,{
16
+ color : Save.color
17
+ })
18
+ .set(all,{
19
+ clearProps : "all"
20
+ })
21
+ .set([self,bg],{
22
+ backgroundColor : Color.green
23
+ })
24
+ .set(text,{
25
+ text : complete
26
+ })
27
+ .to(bg,{
28
+ duration : 0.5,
29
+ scaleX : 1.2,
30
+ scaleY : 1.3,
31
+ opacity : 0
32
+ });
33
+
34
+ if (reset) {
35
+ tl.call(()=>{
36
+ Button.func.reset(self,Save.text);
37
+ },"+=1");
38
+ }
39
+ }
@@ -0,0 +1,26 @@
1
+
2
+ Button.func.switch = self => {
3
+
4
+ if ($(self).hasClass('undo')) {
5
+
6
+ $(self).parents(".control").siblings(".before").show();
7
+ $(self).parents(".control").siblings(".after").hide();
8
+ $(self).parents(".wrap.switch").siblings(".wrap.switch").children(".before").show();
9
+ $(self).parents(".wrap.switch").siblings(".wrap.switch").children(".after").hide();
10
+ $(self).removeClass("undo");
11
+
12
+ Button.func.reset(self, "Next");
13
+
14
+ } else {
15
+
16
+ Button.func.submit(self, "Back", false);
17
+
18
+ $(self).parents(".control").siblings(".before").hide();
19
+ $(self).parents(".control").siblings(".after").show();
20
+ $(self).parents(".wrap.switch").siblings(".wrap.switch").children(".before").hide();
21
+ $(self).parents(".wrap.switch").siblings(".wrap.switch").children(".after").show();
22
+ $(self).addClass("undo");
23
+
24
+ }
25
+
26
+ }
@@ -0,0 +1,39 @@
1
+
2
+ Button.func.update = self => {
3
+ let text = $(self).find(".button-title"),
4
+ bg = $(self).find(".button-bg"),
5
+ all = [text,bg,self];
6
+
7
+ Save.text = $(self).find(".button-title").text();
8
+ Save.color = $(self).css('backgroundColor');
9
+
10
+ if (!UpdateIsLocked) {
11
+
12
+ let tl = gsap.timeline();
13
+
14
+ tl
15
+ .set(text,{
16
+ text : "Adding"
17
+ })
18
+ .set(bg,{
19
+ backgroundColor : tinycolor(Save.color).darken(8)
20
+ })
21
+ .to(bg,{
22
+ right : 0,
23
+ duration : 1
24
+ })
25
+ .set(text,{
26
+ text : "Added"
27
+ })
28
+ .to(bg,{
29
+ duration : 0.5,
30
+ backgroundColor : Color.green
31
+ });
32
+
33
+ if (reset) {
34
+ tl.call(()=>{
35
+ Button.func.reset(self,Save.text);
36
+ },"+=1");
37
+ }
38
+ }
39
+ }
@@ -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,269 @@
1
+ (function (global, $) {
2
+ var Browsr = function (target) {
3
+ return new Browsr.init(target);
4
+ };
5
+
6
+ let library = true,
7
+ found = false,
8
+ book = {
9
+ found: false,
10
+ },
11
+ chapter = {
12
+ found: false,
13
+ },
14
+ page = {
15
+ found: false,
16
+ };
17
+
18
+ Browsr.prototype = {
19
+ match(value, type = "book") {
20
+ $(value.classList).map((_, value) => {
21
+ if (type == "book") {
22
+ if (value.startsWith(type + "-")) {
23
+ book.class = value;
24
+ }
25
+ } else if (type == "chapter") {
26
+ if (value.startsWith(type + "-")) {
27
+ chapter.class = value;
28
+ }
29
+ }
30
+ });
31
+ },
32
+ checkPage(value) {
33
+ found = false;
34
+ $(value.classList).map((_, value) => {
35
+ if (value.startsWith("page-")) {
36
+ if (page.class == value) {
37
+ found = true;
38
+ page.found = true;
39
+ }
40
+ }
41
+ });
42
+ },
43
+ checkChapter(value) {
44
+ found = false;
45
+ $(value.classList).map((_, value) => {
46
+ if (value.startsWith("chapter-")) {
47
+ if (chapter.class == value) {
48
+ found = true;
49
+ chapter.found = true;
50
+ }
51
+ }
52
+ });
53
+ },
54
+ checkBook(value) {
55
+ found = false;
56
+ $(value.classList).map((_, value) => {
57
+ if (value.startsWith("book-")) {
58
+ if (book.class == value) {
59
+ found = true;
60
+ book.found = true;
61
+ }
62
+ }
63
+ });
64
+ },
65
+ setPageUrl(index) {
66
+ if (!this.pathify()[index]) {
67
+ $(page.links[0].classList).map((_, value) => {
68
+ if (value.startsWith("page-")) {
69
+ page.url = value.slice(5);
70
+ }
71
+ });
72
+ } else {
73
+ page.url = this.pathify()[index];
74
+ }
75
+ },
76
+ setChapterUrl(index) {
77
+ if (!this.pathify()[index]) {
78
+ $(chapter.links[0].classList).map((_, value) => {
79
+ if (value.startsWith("chapter-")) {
80
+ chapter.url = value.slice(8);
81
+ }
82
+ });
83
+ } else {
84
+ chapter.url = this.pathify()[index];
85
+ }
86
+ },
87
+ nunify(value) {
88
+ gsap.set(value, { display: "none" });
89
+ },
90
+ shadify(value) {
91
+ gsap.set(value, { background: "rgba(0,0,0,0.05)" });
92
+ },
93
+ clearify(value, attr = "background") {
94
+ gsap.set(value, { clearProps: attr });
95
+ },
96
+ bookify(value) {
97
+ return $(".block.browse-book", ".wrap.browse-" + value);
98
+ },
99
+ linkify(value) {
100
+ return $(".link.browse-" + value, ".wrap.browse-" + value);
101
+ },
102
+ classify(value, type) {
103
+ return type + "-" + value;
104
+ },
105
+ pathify() {
106
+ return window.location.pathname.split("/").map((value) => {
107
+ if (value != "") {
108
+ return value;
109
+ }
110
+ });
111
+ },
112
+ setup() {
113
+ chapter.links = this.linkify("chapter");
114
+ page.links = this.linkify("page");
115
+ if (library) {
116
+ book.url = this.pathify()[1];
117
+ this.setChapterUrl(2);
118
+ this.setPageUrl(3);
119
+ book.links = this.linkify("book");
120
+ book.class = this.classify(book.url, "book");
121
+ } else {
122
+ this.setChapterUrl(1);
123
+ this.setPageUrl(2);
124
+ }
125
+ chapter.books = this.bookify("chapter");
126
+ chapter.class = this.classify(chapter.url, "chapter");
127
+ page.books = this.bookify("page");
128
+ page.class = this.classify(page.url, "page");
129
+ },
130
+ start() {
131
+ this.setup();
132
+ // console.log(book,chapter,page);
133
+
134
+ if (book.url) {
135
+ book.links.map((_, value) => {
136
+ this.checkBook(value);
137
+ if (found) {
138
+ this.shadify(value);
139
+ }
140
+ });
141
+ }
142
+
143
+ chapter.books.map((_, value) => {
144
+ this.checkBook(value);
145
+
146
+ if (found) {
147
+ chapter.books.map((_, value) => {
148
+ $(value.children).map((_, value) => {
149
+ this.checkChapter(value);
150
+
151
+ if (found) {
152
+ this.shadify(value);
153
+ }
154
+ });
155
+ });
156
+ } else {
157
+ this.nunify(value);
158
+ }
159
+ });
160
+
161
+ page.books.map((_, value) => {
162
+ this.checkBook(value);
163
+
164
+ if (found) {
165
+ page.books.map((_, value) => {
166
+ $(value.children).map((_, value) => {
167
+ this.checkChapter(value);
168
+
169
+ if (found) {
170
+ $(value.children).map((_, value) => {
171
+ this.checkPage(value);
172
+
173
+ if (found) {
174
+ this.shadify(value);
175
+ }
176
+ });
177
+ } else {
178
+ this.nunify(value);
179
+ }
180
+ });
181
+ });
182
+ } else {
183
+ this.nunify(value);
184
+ }
185
+ });
186
+
187
+ return this;
188
+ },
189
+ respond() {
190
+ book.links.hover((e) => {
191
+ this.match(e.target);
192
+ this.clearify(book.links);
193
+ this.shadify(e.target);
194
+
195
+ chapter.books.map((_, value) => {
196
+ this.nunify(value);
197
+ this.clearify(value.children);
198
+ this.checkBook(value);
199
+
200
+ if (found) {
201
+ this.clearify(value, "display");
202
+ this.shadify(value.children[0]);
203
+ }
204
+ });
205
+
206
+ page.books.map((_, value) => {
207
+ this.nunify(value);
208
+ this.checkBook(value);
209
+
210
+ if (found) {
211
+ this.clearify(value, "display");
212
+
213
+ $(value.children).map((_, value) => {
214
+ this.nunify(value);
215
+ this.clearify(value.children);
216
+
217
+ if (_ == 0) {
218
+ this.clearify(value, "display");
219
+ this.shadify(value.children[0]);
220
+ }
221
+ });
222
+ }
223
+ });
224
+ });
225
+
226
+ chapter.links.hover((e) => {
227
+ this.match(e.target, "chapter");
228
+ this.clearify(chapter.links);
229
+ this.shadify(e.target);
230
+
231
+ page.books.map((_, value) => {
232
+ this.nunify(value);
233
+ this.checkBook(value);
234
+
235
+ if (found) {
236
+ this.clearify(value, "display");
237
+
238
+ $(value.children).map((_, value) => {
239
+ this.nunify(value);
240
+ this.clearify(value.children);
241
+ this.checkChapter(value);
242
+
243
+ if (found) {
244
+ this.clearify(value, "display");
245
+ this.shadify(value.children[0]);
246
+ }
247
+ });
248
+ }
249
+ });
250
+ });
251
+ page.links.hover((e) => {
252
+ this.clearify(page.links);
253
+ this.shadify(e.target);
254
+ });
255
+
256
+ return this;
257
+ },
258
+ };
259
+
260
+ Browsr.init = function (target) {
261
+ var self = this;
262
+ self.target = target || document;
263
+ this.start().respond();
264
+ };
265
+
266
+ Browsr.init.prototype = Browsr.prototype;
267
+
268
+ global.Browsr = Browsr;
269
+ })(window, $);
@@ -0,0 +1,41 @@
1
+ (function (global, $) {
2
+ var Checkr = function (desktop) {
3
+ return new Checkr.init(desktop);
4
+ };
5
+
6
+ Checkr.prototype = {
7
+ width(
8
+ site = ".site",
9
+ overlay = ".area.overlay-mobile",
10
+ display = "grid"
11
+ ) {
12
+ if (!this.desktop) {
13
+ gsap.set(site, { clearProps: "display" });
14
+ gsap.set(overlay, { display: display });
15
+ this.print();
16
+ } else {
17
+ gsap.set(overlay, { clearProps: "display" });
18
+ gsap.set(site, { display: display });
19
+ }
20
+ },
21
+ print(self = ".width", width = 1200, bar = ".bar.mobile") {
22
+ if (!this.desktop) {
23
+ var size = document.documentElement.clientWidth,
24
+ more = width - size + "px",
25
+ percent = (100 / width) * size + "%";
26
+ $(self).html(more);
27
+ gsap.set(bar, { width: percent });
28
+ }
29
+ },
30
+ };
31
+
32
+ Checkr.init = function (desktop) {
33
+ var self = this;
34
+ self.desktop = desktop;
35
+ this.width();
36
+ };
37
+
38
+ Checkr.init.prototype = Checkr.prototype;
39
+
40
+ global.Checkr = Checkr;
41
+ })(window, $);