futuro 0.9.9 → 1.0.0

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/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
+ }