futuro 0.9.9 → 1.0.0

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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/html/assign/site.liquid +1 -0
  3. data/_includes/html/page/content/loop/roller/assign.liquid +28 -0
  4. data/_includes/html/page/content/loop/roller/input.liquid +16 -0
  5. data/_includes/html/page/content/loop/roller/list.liquid +12 -0
  6. data/_includes/html/page/content/loop/roller/output.liquid +20 -0
  7. data/_includes/html/page/content/roller.liquid +12 -71
  8. data/_includes/html/search/loop.liquid +2 -1
  9. data/_sass/helpers/mixins/theme.scss +32 -8
  10. data/_sass/item/pie.scss +12 -3
  11. data/_sass/list/pie.scss +5 -1
  12. data/_sass/list/roller.scss +4 -0
  13. data/assets/js/footer/custom/1_Settings.js +13 -1
  14. data/assets/js/footer/custom/4_Roller.default.js +73 -0
  15. data/assets/js/footer/custom/4_Roller.morph.js +115 -0
  16. data/assets/js/footer/custom/4_Roller.snap.js +146 -0
  17. data/assets/js/footer/custom/{4_SmoothScroll.js → 4_Setup.scroll.js} +2 -2
  18. data/assets/js/footer/custom/5_Animate.chart.js +52 -0
  19. data/assets/js/footer/custom/5_Animate.number.js +28 -0
  20. data/assets/js/footer/custom/5_Animate.pies.js +74 -0
  21. data/assets/js/footer/custom/5_Respond.roller.js +46 -0
  22. data/assets/js/futuro.footer.custom.js +1 -1
  23. data/assets/js/futuro.header.custom.js +1 -1
  24. data/assets/js/header/custom/1_Settings.js +25 -2
  25. metadata +27 -18
  26. data/_includes/html/page/content/loop/roller/item.liquid +0 -47
  27. data/_includes/html/page/content/loop/roller.liquid +0 -6
  28. /data/assets/js/footer/custom/{2_CheckWidth.js → 2_Check.width.js} +0 -0
  29. /data/assets/js/footer/custom/{3_SetupBrowse.js → 3_Setup.browse.js} +0 -0
  30. /data/assets/js/footer/custom/{5_ActiveBook.js → 4_Setup.book.js} +0 -0
  31. /data/assets/js/footer/custom/{4_SetupHome.js → 4_Setup.home.js} +0 -0
  32. /data/assets/js/footer/custom/{4_SetupOverlays.js → 4_Setup.overlays.js} +0 -0
  33. /data/assets/js/footer/custom/{4_SetupSite.js → 4_Setup.site.js} +0 -0
  34. /data/assets/js/footer/custom/{4_StartBrowse.js → 4_Start.browse.js} +0 -0
  35. /data/assets/js/footer/custom/{5_AnimateScroller.js → 5_Animate.scroller.js} +0 -0
  36. /data/assets/js/footer/custom/{5_Artform.js → 5_Artform.header.js} +0 -0
  37. /data/assets/js/footer/custom/{5_RespondBrowse.js → 5_Respond.browse.js} +0 -0
  38. /data/assets/js/footer/custom/{5_SwitchButton.js → 5_Switch.button.js} +0 -0
  39. /data/assets/js/footer/custom/{5_SwitchFocus.js → 5_Switch.focus.js} +0 -0
  40. /data/assets/js/footer/custom/{5_UtilShare.js → 5_Util.share.js} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88bfbc1f3328ee5154dc064ddfb904f9ebf4435ec7bb8d6413eaf65402652c1b
4
- data.tar.gz: dfc3cb8a14cdaad18071aed49a3b9cee2b46aae6f6cfdece90a9d424342caf5c
3
+ metadata.gz: 5d530d37ba776df440f2c666b767c2c3b3079944e7c1472989b566132d494f7b
4
+ data.tar.gz: 871c66b9d5a0f0711b7cd984ce67bf6d59ddb8a1b28c1fc9cba53fd918a42900
5
5
  SHA512:
6
- metadata.gz: f710a9862db4ae7662529f4c3c005790e0f9274e95ead6986d2d8cd8d33387978567b9d446f26707f2761a19028f4b22b082f28395398aa0107504c2d0ea4069
7
- data.tar.gz: ecc6c7f000e1e2ae93edbce99504424c6cab9249b8b54d3a8f05d7155857f79c38af0591fc8e480c8f6907d93dec4bda4262f9e196d78befb2ec0cf86417ee85
6
+ metadata.gz: bf01794aec599c6fc831dfdf634a55aaf9092abd452a1b2a1617549be9c78987cb004b421f65b0ccda87ef613bb76bc2f2f4b3e2598dec937d6e1e709f3bc68b
7
+ data.tar.gz: d1c979756e476f0a8c602990a3961b31bfbd2c761e0253672832ad42a4ff3fa12d516dc3d0c80f1ffc1348f11e5b833936cfd7c17c12a664b7a2638cdcd6da0b
@@ -14,6 +14,7 @@
14
14
  {% assign ContentLoop = SiteContent | append : 'loop/' %}
15
15
  {% assign LoopArtwork = ContentLoop | append : 'artwork/' %}
16
16
  {% assign LoopForm = ContentLoop | append : 'form/' %}
17
+ {% assign LoopRoller = ContentLoop | append : 'roller/' %}
17
18
  {% assign LoopHeader = ContentLoop | append : 'header/' %}
18
19
  {% assign LoopScreen = ContentLoop | append : 'screen/' %}
19
20
  {% assign LoopButton = ContentLoop | append : 'button/' %}
@@ -0,0 +1,28 @@
1
+
2
+ {% assign RollerItems = 0 %}
3
+
4
+ {% assign RollerInline = false %}
5
+
6
+ {% assign RollerOutput = false %}
7
+
8
+ {% for item in include.loop %}
9
+
10
+ {% if item.inline %}
11
+
12
+ {% assign RollerInline = true %}
13
+
14
+ {% endif %}
15
+
16
+ {% if item.input %}
17
+
18
+ {% assign RollerItems = RollerItems | plus : 1 %}
19
+
20
+ {% endif %}
21
+
22
+ {% if item.output %}
23
+
24
+ {% assign RollerOutput = true %}
25
+
26
+ {% endif %}
27
+
28
+ {% endfor %}
@@ -0,0 +1,16 @@
1
+
2
+ {% for item in include.loop %}
3
+
4
+ {% if item.input %}
5
+
6
+ {% assign RollerInput = item.input | replace : ' ','-' | downcase %}
7
+
8
+ <li class="item roller input {{ RollerInput | prepend : 'title-' }}">
9
+
10
+ {{ item.input }}
11
+
12
+ </li>
13
+
14
+ {% endif %}
15
+
16
+ {% endfor %}
@@ -0,0 +1,12 @@
1
+
2
+ {% assign RollerPath = include.type | append : '.liquid' %}
3
+
4
+ <ul class="list roller {{ include.type }}
5
+ {{ RollerType | prepend : 'style-' }}
6
+ {{ PageChapter | prepend : 'chapter-' }}
7
+ {% if RollerInline %}{{ items | prepend : 'split-' }}{% endif %}">
8
+
9
+ {% include {{ LoopRoller | append : RollerPath }}
10
+ loop = include.loop %}
11
+
12
+ </ul>
@@ -0,0 +1,20 @@
1
+
2
+ {% for item in include.loop %}
3
+
4
+ {% if item.input %}
5
+
6
+ {% assign RollerLabel = item.input | replace : ' ','-' | downcase %}
7
+
8
+ {% endif %}
9
+
10
+ {% if item.output %}
11
+
12
+ <li class="item roller output {{ RollerLabel | prepend : 'title-' }}">
13
+
14
+ {{ item.output }}
15
+
16
+ </li>
17
+
18
+ {% endif %}
19
+
20
+ {% endfor %}
@@ -1,76 +1,17 @@
1
1
 
2
- {% assign items = 0 %}
3
- {% assign inline = false %}
4
- {% assign output = false %}
2
+ {% include {{ LoopRoller | append : 'assign.liquid' }}
3
+ loop = page.roller.loop %}
5
4
 
6
- {%- for item in page.roller -%}
5
+ {% assign RollerType = page.roller.type %}
7
6
 
8
- {%- if item.inline -%}
7
+ {% include {{ LoopRoller | append : 'list.liquid' }}
8
+ loop = page.roller.loop
9
+ type = "input" %}
9
10
 
10
- {% assign inline = true %}
11
+ {% if RollerType == "default" %}
11
12
 
12
- {%- endif -%}
13
-
14
- {%- if item.input -%}
15
-
16
- {% assign items = items | plus : 1 %}
17
-
18
- {%- endif -%}
19
-
20
- {%- if item.output -%}
21
-
22
- {% assign output = true %}
23
-
24
- {%- endif -%}
25
-
26
- {%- endfor -%}
27
-
28
- <ul class="list roller input {{ PageChapter | prepend : 'chapter-' }}
29
- {% if inline %}{{ items | prepend : 'split-' }}{% endif %}">
30
-
31
- {%- for item in page.roller -%}
32
-
33
- {%- if item.input -%}
34
-
35
- {% assign label = item.input | replace : ' ','-' | downcase %}
36
-
37
- <li class="item roller input {{ label | prepend : 'title-' }}">
38
-
39
- {{ item.input }}
40
-
41
- </li>
42
-
43
- {%- endif -%}
44
-
45
- {%- endfor -%}
46
-
47
- </ul>
48
-
49
- {%- if output -%}
50
-
51
- <ul class="list roller output {{ PageChapter | prepend : 'chapter-' }}
52
- {% if inline %}{{ items | prepend : 'split-' }}{% endif %}">
53
-
54
- {%- for item in page.roller -%}
55
-
56
- {%- if item.input -%}
57
-
58
- {% assign label = item.input | replace : ' ','-' | downcase %}
59
-
60
- {%- endif -%}
61
-
62
- {%- if item.output -%}
63
-
64
- <li class="item roller output {{ label | prepend : 'title-' }}">
65
-
66
- {{ item.output }}
67
-
68
- </li>
69
-
70
- {%- endif -%}
71
-
72
- {%- endfor -%}
73
-
74
- </ul>
75
-
76
- {%- endif -%}
13
+ {% include {{ LoopRoller | append : 'list.liquid' }}
14
+ loop = page.roller.loop
15
+ type = "output" %}
16
+
17
+ {% endif %}
@@ -7,10 +7,11 @@
7
7
  {% assign shorturl = item.url | replace : '.html','' %}
8
8
  {% assign longurl = longurl | replace : '/index','' %}
9
9
  {% assign shorturl = shorturl | replace : '/index','' %}
10
+ {% assign chapter = item.chapter | replace : ' ','-' | downcase %}
10
11
 
11
12
  {
12
13
  "book" : "{{ item.collection }}",
13
- "chapter" : "{{ item.chapter }}",
14
+ "chapter" : "{{ chapter }}",
14
15
  "title" : "{{ item.title }}",
15
16
  "shorturl" : "{{ shorturl }}",
16
17
  "longurl" : "{{ longurl }}"
@@ -9,13 +9,16 @@
9
9
  color: setcolor($custom,dark);
10
10
  }
11
11
 
12
+ // Used in Mindsets
12
13
  @mixin ThemeMorph($name,$color) {
13
-
14
+ // find output path by dynamic class name
14
15
  svg#morph path#output.#{$name} {
16
+ // set associated color for this class
15
17
  stroke: $color;
16
18
  }
17
19
  }
18
20
 
21
+ // Used in Patterns
19
22
  @mixin ThemeArtformHeader($name) {
20
23
 
21
24
  .block.header.title-artform.tag-#{$name} {
@@ -40,6 +43,7 @@
40
43
  }
41
44
  }
42
45
 
46
+ // Used in Patterns
43
47
  @mixin ThemeHeader($name,$col) {
44
48
 
45
49
  .block.header.title-#{$name} {
@@ -64,6 +68,7 @@
64
68
  }
65
69
  }
66
70
 
71
+ // Used in Patterns
67
72
  @mixin ThemeCheckbox($name,$col) {
68
73
  .area.title-#{$name} {
69
74
 
@@ -75,6 +80,7 @@
75
80
  }
76
81
  }
77
82
 
83
+ // Used in Patterns
78
84
  @mixin ThemeRadio($name,$col) {
79
85
  .area.title-#{$name} {
80
86
 
@@ -93,6 +99,7 @@
93
99
  }
94
100
  }
95
101
 
102
+ // Used in Patterns
96
103
  @mixin ThemeTextArea($name,$col) {
97
104
  .area.title-#{$name} {
98
105
 
@@ -112,6 +119,7 @@
112
119
  }
113
120
  }
114
121
 
122
+ // Used in Patterns
115
123
  @mixin ThemeSelect($name,$col) {
116
124
  .area.title-#{$name} {
117
125
 
@@ -127,6 +135,7 @@
127
135
  }
128
136
  }
129
137
 
138
+ // Used in Patterns
130
139
  @mixin ThemeList($name,$col) {
131
140
  .area.title-#{$name} {
132
141
 
@@ -150,6 +159,7 @@
150
159
  }
151
160
  }
152
161
 
162
+ // Used in Patterns
153
163
  @mixin ThemeText($name,$col) {
154
164
  .area.title-#{$name} {
155
165
 
@@ -168,6 +178,7 @@
168
178
  }
169
179
  }
170
180
 
181
+ // Used in Patterns
171
182
  @mixin ThemePassword($name,$col) {
172
183
  .area.title-#{$name} {
173
184
  .block.password-strength {
@@ -179,6 +190,7 @@
179
190
  }
180
191
  }
181
192
 
193
+ // Used in Patterns
182
194
  @mixin ThemeMessage($name,$col) {
183
195
  .area.title-#{$name} {
184
196
  .block.message {
@@ -187,6 +199,7 @@
187
199
  }
188
200
  }
189
201
 
202
+ // Used in Patterns
190
203
  @mixin ThemeCallout($name,$col) {
191
204
  .area.title-#{$name} {
192
205
  .block.title {
@@ -196,6 +209,7 @@
196
209
  }
197
210
  }
198
211
 
212
+ // Used in Patterns
199
213
  @mixin ThemeAlert($name,$col) {
200
214
  .area.title-#{$name} {
201
215
  .block.form-alert {
@@ -206,6 +220,7 @@
206
220
  }
207
221
  }
208
222
 
223
+ // Used in Patterns
209
224
  @mixin ThemeButton($name,$color) {
210
225
 
211
226
  .area.title-#{$name} {
@@ -220,6 +235,7 @@
220
235
  }
221
236
  }
222
237
 
238
+ // Used globally
223
239
  @mixin ThemeHome($name,$color){
224
240
  // inherit theme color for the book cover
225
241
  .link.book.#{$name} {
@@ -227,6 +243,7 @@
227
243
  }
228
244
  }
229
245
 
246
+ // Used globally
230
247
  @mixin ThemeTopbar($name,$color) {
231
248
  // inherit theme color for the topbar link
232
249
  .link.navigation.#{$name} {
@@ -238,6 +255,7 @@
238
255
  }
239
256
  }
240
257
 
258
+ // Used globally
241
259
  @mixin ThemeCover($name,$color,$left:false,$chapter:false) {
242
260
 
243
261
  @if $chapter {
@@ -263,6 +281,7 @@
263
281
  }
264
282
  }
265
283
 
284
+ // Used globally
266
285
  @mixin PageInfo($col,$right) {
267
286
 
268
287
  .title.page-weight {
@@ -277,17 +296,20 @@
277
296
  }
278
297
  }
279
298
 
299
+ // Used in Mindsets
280
300
  @mixin ThemeRollerInput($name,$col) {
281
301
  background-color: rgba($col,10%);
282
302
  color: $col;
283
303
  }
284
304
 
305
+ // Used in Mindsets
285
306
  @mixin ThemeRollerOutput($name,$col) {
286
307
  background-color: rgba($col,10%);
287
308
  border-color: rgba($col,20%);
288
309
  color: $col;
289
310
  }
290
311
 
312
+ // Used in Mindsets
291
313
  @mixin ThemeRoller($name,$col,$chapter:false) {
292
314
 
293
315
  @if $chapter {
@@ -325,6 +347,7 @@
325
347
  }
326
348
  }
327
349
 
350
+ // Used in Mindsets
328
351
  @mixin ThemeChart($col) {
329
352
  .block.chart-pcent-title {
330
353
  color: $col;
@@ -335,6 +358,7 @@
335
358
  }
336
359
  }
337
360
 
361
+ // Used in Mindsets
338
362
  @mixin ThemePages($name,$col,$right:false,$chapter:false) {
339
363
 
340
364
  @if $chapter {
@@ -384,20 +408,20 @@
384
408
  }
385
409
  }
386
410
 
387
- @mixin ThemePies($name,$col) {
388
- &.#{$name} {
389
- color: $col;
390
-
391
- .chunk.#{$name} {
392
- opacity: 1;
411
+ // Used in Mindsets
412
+ @mixin ThemeSnap($name,$color) {
413
+ svg.snap {
414
+ path.#{$name} {
415
+ fill: #{$color};
393
416
  }
394
417
  }
395
418
  }
396
419
 
420
+ // Used everywhere
397
421
  @mixin ThemeSearch($name,$col,$chapter:false) {
398
422
 
399
423
  @if $chapter {
400
-
424
+
401
425
  // Search Results
402
426
 
403
427
  .block.results-entry.chapter-#{$name} {
data/_sass/item/pie.scss CHANGED
@@ -1,15 +1,24 @@
1
1
 
2
- .item.pie {
2
+ %ItemPie {
3
3
  text-align: center;
4
4
  display: grid;
5
5
  }
6
6
 
7
+ %ItemPieSnap {
8
+ @extend %ItemPie;
9
+ grid-row-gap: 15px;
10
+ font-size: 2.4rem;
11
+ }
12
+
13
+ .item.pie {
14
+ @extend %ItemPie;
15
+ }
16
+
7
17
  .item.pie.style-spin {
8
18
  grid-row-gap: 30px;
9
19
  font-size: 2.8rem;
10
20
  }
11
21
 
12
22
  .item.pie.style-snap {
13
- grid-row-gap: 15px;
14
- font-size: 2.4rem;
23
+ @extend %ItemPieSnap;
15
24
  }
data/_sass/list/pie.scss CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- .list.pies {
2
+ %ListPies {
3
3
  @include Grid(3);
4
4
  @extend %bold;
5
5
  list-style: none;
@@ -9,4 +9,8 @@
9
9
  svg {
10
10
  margin: 0 auto;
11
11
  }
12
+ }
13
+
14
+ .list.pies {
15
+ @extend %ListPies;
12
16
  }
@@ -14,4 +14,8 @@
14
14
  .list.roller.input {
15
15
  @extend %bold;
16
16
  grid-template-columns: repeat(2,1fr);
17
+ }
18
+
19
+ .list.roller.output.style-snap {
20
+ @extend %ListPies;
17
21
  }
@@ -12,4 +12,16 @@ if ($("body").hasClass("type-home")) {
12
12
 
13
13
  if (!Site.isTheme) {
14
14
  Browse.able = $(".wrap.type-page").length;
15
- }
15
+ }
16
+
17
+ const HandleClass = (e,state,name="active") => {
18
+ $(e).map((index,value) => {
19
+ if (state == "add") {
20
+ $(value).addClass(name);
21
+ } else if (state == "remove") {
22
+ $(value).removeClass(name);
23
+ } else if (state == "clear") {
24
+ $(value).removeClass();
25
+ }
26
+ });
27
+ }
@@ -0,0 +1,73 @@
1
+
2
+ Roller.default.over = (tl, input, value, output, index) => {
3
+
4
+ tl.pause();
5
+
6
+ input.map((index,value) => {
7
+
8
+ if ($(value).hasClass("active")) {
9
+
10
+ Save.input = value;
11
+ Save.index = index;
12
+
13
+ HandleClass([value,output[index]],'remove');
14
+
15
+ }
16
+
17
+ });
18
+
19
+ HandleClass([value,output[index]],'add');
20
+
21
+ }
22
+
23
+ Roller.default.out = (tl, input, output) => {
24
+
25
+ input.map((index,value) => {
26
+
27
+ if ($(value).hasClass("active")) {
28
+
29
+ HandleClass([value,output[index]],'remove');
30
+
31
+ }
32
+
33
+ });
34
+
35
+ HandleClass([Save.input,output[Save.index]],'add');
36
+
37
+ tl.play();
38
+
39
+ }
40
+
41
+ Roller.default.tl = (input, output) => {
42
+
43
+ let tl = gsap.timeline({ repeat : -1 });
44
+
45
+ input.map((index,value) => {
46
+
47
+ let live = "";
48
+
49
+ $(value.classList).map((index,value) => {
50
+
51
+ if (value.startsWith("title-")) { live = value.slice(6); }
52
+
53
+ });
54
+
55
+ tl
56
+ .call(HandleClass,[value,'add'])
57
+ .call(HandleClass,[output[index],'add'])
58
+ .call(HandleClass,[value,'remove'],"+=1")
59
+ .call(HandleClass,[output[index],'remove']);
60
+
61
+ $(value).hover(function(){
62
+
63
+ Roller.default.over(tl, input, value, output, index);
64
+
65
+ }, function() {
66
+
67
+ Roller.default.out(tl, input, output);
68
+
69
+ });
70
+
71
+ });
72
+
73
+ }
@@ -0,0 +1,115 @@
1
+
2
+
3
+ Roller.morph.over = (tl, input, value, output, index, data, live) => {
4
+
5
+ tl.pause();
6
+
7
+ input.map((index,value)=>{
8
+
9
+ if ($(value).hasClass("active")) {
10
+
11
+ Save.input = value;
12
+ Save.index = index;
13
+
14
+ HandleClass(value,'remove');
15
+
16
+ }
17
+
18
+ });
19
+
20
+ HandleClass(output,'clear');
21
+
22
+ $(value.classList).map((index,value) => {
23
+
24
+ if (value.startsWith("title-")) { live = value.slice(6); }
25
+
26
+ });
27
+
28
+ data = `path#${live}`;
29
+
30
+ gsap.to(output,{
31
+ morphSVG : data,
32
+ duration : 0.3
33
+ });
34
+
35
+ HandleClass(value,'add');
36
+
37
+ HandleClass(output,'add',live);
38
+
39
+ }
40
+
41
+ Roller.morph.out = (tl, input, output, live, data) => {
42
+
43
+ input.map((index,value) => {
44
+
45
+ if ($(value).hasClass("active")) {
46
+
47
+ HandleClass(value,'remove');
48
+
49
+ }
50
+
51
+ });
52
+
53
+ HandleClass(output,'clear');
54
+
55
+ $(Save.input.classList).map((index,value) => {
56
+
57
+ if (value.startsWith("title-")) { live = value.slice(6); }
58
+
59
+ });
60
+
61
+ data = `path#${live}`;
62
+
63
+ gsap.to(output,{
64
+ morphSVG : data,
65
+ duration : 0.3
66
+ });
67
+
68
+ HandleClass(Save.input,'add');
69
+
70
+ HandleClass(output,'add',live);
71
+
72
+ tl.play();
73
+
74
+ }
75
+
76
+ Roller.morph.tl = (input, output) => {
77
+
78
+ let tl = gsap.timeline({ repeat : -1 }),
79
+ live = "",
80
+ data = "";
81
+
82
+ input.map((index,value) => {
83
+
84
+ $(value.classList).map((index,value) => {
85
+
86
+ if (value.startsWith("title-")) { live = value.slice(6); }
87
+
88
+ });
89
+
90
+ data = `path#${live}`;
91
+
92
+ tl
93
+ .call(HandleClass,[value,'add'])
94
+ .call(HandleClass,[output,'add',live])
95
+ .to(output,{
96
+ morphSVG : data,
97
+ duration : 0.3
98
+ })
99
+ .call(HandleClass,[value,'remove'],"+=1")
100
+ .call(HandleClass,[output,'remove',live])
101
+ ;
102
+
103
+ $(value).hover(function(){
104
+
105
+ Roller.morph.over(tl, input, value, output, index, data, live);
106
+
107
+ }, function() {
108
+
109
+ Roller.morph.out(tl, input, output);
110
+
111
+ });
112
+
113
+ });
114
+
115
+ }