jekyll-theme-eva 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,14 @@
1
+ module Jekyll
2
+ module ValuesFilter
3
+ def values(input)
4
+ case
5
+ when input.instance_of?(Hash)
6
+ input.values
7
+ else
8
+ input
9
+ end
10
+ end
11
+ end
12
+ end
13
+
14
+ Liquid::Template.register_filter(Jekyll::ValuesFilter)
@@ -0,0 +1,24 @@
1
+ Jekyll::Hooks.register :site, :after_init do |site|
2
+ unless (File.file?("package.json") and File.directory?("node_modules"))
3
+ p "-- Eva: Initializing Node package…"
4
+
5
+ system("npm init --yes")
6
+ system("npm install webpack webpack-cli jquery")
7
+ end
8
+ end
9
+
10
+ Jekyll::Hooks.register :site, :post_write do |site|
11
+ p "-- Eva: Building assets with Webpack…"
12
+
13
+ if site.theme or site.config["theme_root"]
14
+ theme_dir = site.config["theme_root"] || site.theme.root
15
+ else
16
+ theme_dir = site.source
17
+ end
18
+
19
+ out_assets_dir = File.join(site.config["destination"], 'assets')
20
+ cfg_path = site.config["webpack_config"] || File.join(theme_dir, 'webpack.config.js')
21
+ system("npx webpack --config #{cfg_path} --context #{theme_dir} --output-path #{out_assets_dir}")
22
+
23
+ p "-- Eva: Build complete"
24
+ end
data/_sass/buorg.scss ADDED
@@ -0,0 +1,47 @@
1
+ .buorg-icon {width: 22px; height: 16px; vertical-align: middle; position: relative; top: -0.05em; display: inline-block; background: no-repeat 0px center;}
2
+ .buorg {position:absolute;position:fixed;z-index:111111; width:100%; top:0px; left:0px; border-bottom:1px solid #A29330; text-align:center; cursor:pointer; color:#000; background-color: #fff8ea; font: 18px Calibri,Helvetica,Arial,sans-serif; box-shadow: 0 0 5px rgba(0,0,0,0.2);}.buorg-pad { padding: 9px; line-height: 1.7em; }.buorg-buttons { display: block; text-align: center; }.buorg div a { color: #fff; text-decoration: none; box-shadow: 0 0 2px rgba(0,0,0,0.4); padding: 1px 10px; border-radius: 4px; font-weight: normal; background: #5ab400; white-space: nowrap; margin: 0 2px; display: inline-block;}#buorgig { background-color: #edbc68; position: relative;}@media only screen and (max-width: 700px){.buorg div { padding:5px 12px 5px 9px; line-height: 1.3em;}}@keyframes buorgfly {from {opacity:0;transform:translateY(-50px)} to {opacity:1;transform:translateY(0px)}}.buorg { animation: 1s ease-out 0s buorgfly} .buorg-fadeout {transition: visibility 0s 8.5s, opacity 8s ease-out .5s;}
3
+
4
+ .buorg {
5
+ background-position: 8px 17px;
6
+ position:absolute;
7
+ position:fixed;
8
+ z-index:111111;
9
+ width:100%;
10
+ top:0px;
11
+ left:0px;
12
+ border-bottom:1px solid #A29330;
13
+ text-align:left;
14
+ cursor:pointer;
15
+ background-color: #fff;
16
+ box-shadow: 0 0 5px rgba(0,0,0,0.2);
17
+ }
18
+ .buorg div {
19
+ padding: 11px 12px 11px 30px;
20
+ line-height: 1.7em;
21
+ }
22
+ .buorg div a,.buorg div a:visited {
23
+ text-indent: 0;
24
+ color: #fff;
25
+ text-decoration: none;
26
+ box-shadow: 0 0 2px rgba(0,0,0,0.4);
27
+ padding: 1px 10px;
28
+ border-radius: 4px;
29
+ font-weight: normal;
30
+ background: #5ab400;
31
+ white-space: nowrap;
32
+ margin: 0 2px; display: inline-block;
33
+ }
34
+
35
+ #buorgig{
36
+ background-color: #edbc68;
37
+ }
38
+
39
+ @media only screen and (max-width: 700px){
40
+ .buorg div {
41
+ padding:5px 12px 5px 9px;
42
+ text-indent: 22px;
43
+ line-height: 1.3em;
44
+ }
45
+ .buorg {
46
+ background-position: 9px 8px;}
47
+ }
@@ -0,0 +1,534 @@
1
+ @import "buorg";
2
+
3
+ $color-primary: #555 !default;
4
+ $color-primary-darker: darken($color-primary, 15%) !default;
5
+ $color-primary-album-bg: desaturate(darken($color-primary, 20%), 35%) !default;
6
+
7
+ // Media query screen size breakpoints (bp), width (w) and height (h)
8
+ $h-bp: 794px;
9
+ $h-bp2: 1024px;
10
+ $w-bp: 873px;
11
+
12
+
13
+ @keyframes fade-in {
14
+ 10% { opacity: 0; }
15
+ 100% { opacity: 1; }
16
+ }
17
+ @keyframes fade-in-2 {
18
+ 10% { opacity: 0; }
19
+ 100% { opacity: 1; }
20
+ }
21
+ @keyframes fade-out {
22
+ 0% { opacity: 1; }
23
+ 100% { opacity: 0; }
24
+ }
25
+ @keyframes nav-hide-on-selection {
26
+ 0% { opacity: 1; display: block }
27
+ 90% { opacity: 0; display: block }
28
+ 100% { opacity: 0; display: none; }
29
+ }
30
+ @keyframes nav-enlarge-selected {
31
+ 0% { transform: scale(1) translateY(0); }
32
+ 100% { transform: scale(1.5) translateY(-30px); }
33
+ }
34
+ @keyframes enlarge {
35
+ 0% { transform: scale(0.9); }
36
+ 100% { transform: scale(1); }
37
+ }
38
+
39
+ h1, h2, h3, h4, p {
40
+ margin: 0;
41
+ padding: 0;
42
+ }
43
+
44
+ a, a:link, a:hover, a:visited {
45
+ color: #FFFFFF;
46
+ text-decoration: none;
47
+ }
48
+
49
+ html {
50
+ padding: 0;
51
+ margin: 0;
52
+ position: absolute;
53
+ left: 0px;
54
+ right: 0px;
55
+ top: 0px;
56
+ bottom: 0px;
57
+ }
58
+ body {
59
+ padding: 0;
60
+ margin: 0;
61
+ position: absolute;
62
+ left: 0px;
63
+ right: 0px;
64
+ top: 0px;
65
+ bottom: 0px;
66
+
67
+ background: linear-gradient(180deg, rgba($color-primary, 0.67) -12.01%, $color-primary 104.49%);
68
+ background-repeat: no-repeat;
69
+ background-attachment: fixed;
70
+
71
+ color: #fff;
72
+
73
+ font-family: "Barlow Condensed", "PT Sans Narrow", "Arial Narrow", Helvetica, Arial, sans-serif;
74
+ }
75
+ body > main {
76
+ padding: 0;
77
+ margin: 0;
78
+ position: absolute;
79
+ left: 0px;
80
+ right: 0px;
81
+ top: 0px;
82
+ bottom: 0px;
83
+
84
+ -webkit-font-smoothing: antialiased;
85
+ -moz-osx-font-smoothing: grayscale;
86
+
87
+ min-height: 640px;
88
+
89
+ transition: background 6s ease-in-out;
90
+ }
91
+
92
+
93
+ .footer {
94
+ position: absolute;
95
+ width: 260px;
96
+ height: 86px;
97
+ left: calc(50% - 260px/2 + 30px);
98
+ bottom: 0;
99
+
100
+ opacity: 0;
101
+ animation: fade-in 1s both;
102
+ animation-delay: .5s;
103
+
104
+ body.layout-album & {
105
+ left: 86px;
106
+ opacity: 0;
107
+ animation: fade-in-2 1s forwards;
108
+ animation-delay: 2s;
109
+ }
110
+ body.out & {
111
+ animation: fade-out .3s forwards;
112
+ }
113
+
114
+ @media screen and (max-width: $w-bp) {
115
+ position: fixed;
116
+ }
117
+
118
+ > .social {
119
+ position: absolute;
120
+ left: 0%;
121
+ right: 33.85%;
122
+ top: 0%;
123
+ bottom: 61.63%;
124
+
125
+ > .ico {
126
+ width: 33px;
127
+ height: 33px;
128
+ display: inline-block;
129
+
130
+ .fa-layers {
131
+ > .fa-circle {
132
+ color: rgba(255, 255, 255, 0.7);
133
+ }
134
+ > :not(.fa-circle) {
135
+ color: $color-primary-darker;
136
+ }
137
+ }
138
+ }
139
+ }
140
+
141
+ > .legal {
142
+ position: absolute;
143
+ left: 0%;
144
+ right: 0%;
145
+ top: 56.98%;
146
+ bottom: 0%;
147
+
148
+ font-style: normal;
149
+ font-weight: normal;
150
+ line-height: normal;
151
+ font-size: 16px;
152
+
153
+ color: rgba(255, 255, 255, 0.5);
154
+ }
155
+ }
156
+
157
+
158
+ /* HOME */
159
+
160
+ .home__header {
161
+ position: absolute;
162
+ height: 282px;
163
+ left: calc(50% - 199px/2 - 0.5px);
164
+ top: calc(50% - 282px/2 - 164px);
165
+ display: block;
166
+
167
+ @media screen and (max-height: $h-bp) {
168
+ top: calc(50% - 282px/2 - 104px);
169
+ height: 90px;
170
+ }
171
+
172
+ > .name {
173
+ height: 90px;
174
+ left: 0px;
175
+ right: 0px;
176
+ top: 0px;
177
+
178
+ font-style: normal;
179
+ font-weight: normal;
180
+ line-height: normal;
181
+ font-size: 75px;
182
+
183
+ color: #F2F2F2;
184
+ }
185
+
186
+ > .tagline {
187
+ position: relative;
188
+ left: 17px;
189
+ top: 30px;
190
+ width: 83px;
191
+ height: 161px;
192
+
193
+ font-style: normal;
194
+ font-weight: normal;
195
+ line-height: normal;
196
+ font-size: 28px;
197
+
198
+ color: #FFFFFF;
199
+
200
+ word-spacing: 83px; /* Wrap after every word */
201
+
202
+ @media screen and (max-height: $h-bp) {
203
+ word-spacing: unset;
204
+ width: auto;
205
+ height: auto;
206
+ top: 101px;
207
+ left: 0;
208
+ }
209
+ }
210
+
211
+ // Gets hidden when transitioning to album
212
+ body.out & {
213
+ animation: fade-out .3s forwards;
214
+ }
215
+ }
216
+ img.home__shadowything {
217
+ position: absolute;
218
+ width: 187px;
219
+ height: 542px;
220
+ left: calc(50% - 187px/2 - 244.5px);
221
+ top: calc(50% - 542px/2 - 118px);
222
+
223
+ mix-blend-mode: luminosity;
224
+
225
+ body.out & {
226
+ animation: fade-out 1s;
227
+ }
228
+
229
+ opacity: 0;
230
+ animation: fade-in-2 1s forwards;
231
+ animation-delay: .3s;
232
+ }
233
+
234
+
235
+ .home__nav {
236
+ position: absolute;
237
+ height: 255px;
238
+ left: calc(50% - 432px/2 + 116px);
239
+ top: calc(50% - 255px/2 + 139.5px);
240
+ transform-origin: top left;
241
+
242
+ display: flex;
243
+ flex-flow: row nowrap;
244
+
245
+ @media screen and (max-height: $h-bp) {
246
+ top: calc(50% - 255px/2 + 139.5px - 81px);
247
+ }
248
+ @media screen and (max-width: $w-bp) {
249
+ flex-flow: row wrap;
250
+ width: 250px;
251
+ height: auto;
252
+ position: relative;
253
+
254
+ margin-bottom: 150px;
255
+ }
256
+
257
+
258
+ > a.nav-item {
259
+ margin-right: 20px;
260
+ position: relative;
261
+ width: 211px;
262
+ height: 255px;
263
+
264
+ @media screen and (max-width: $w-bp) {
265
+ margin-bottom: 20px;
266
+ }
267
+
268
+ body.out &:not(.selected) {
269
+ animation: fade-out .2s forwards;
270
+ }
271
+ body.out &.selected {
272
+ animation: nav-enlarge-selected 1s ease-in-out, fade-out .6s forwards;
273
+ }
274
+
275
+ > .label {
276
+ position: absolute;
277
+ left: 0%;
278
+ right: 71.09%;
279
+ top: 88.63%;
280
+ bottom: 0%;
281
+
282
+ font-style: normal;
283
+ font-weight: normal;
284
+ line-height: normal;
285
+ font-size: 24px;
286
+
287
+ color: #FFFFFF;
288
+ }
289
+
290
+ > .icon {
291
+ mix-blend-mode: luminosity;
292
+ transition: mix-blend-mode .3s linear;
293
+ }
294
+
295
+ &.full-bleed {
296
+ > .backdrop {
297
+ position: absolute;
298
+ left: 0%;
299
+ right: 0%;
300
+ top: 0%;
301
+ bottom: 17.25%;
302
+
303
+ background: $color-primary-darker;
304
+ }
305
+ > .icon {
306
+ position: absolute;
307
+ left: 0%;
308
+ right: 0%;
309
+ top: 0%;
310
+ bottom: 17.25%;
311
+ width: 211px;
312
+ height: 211px;
313
+
314
+ mix-blend-mode: luminosity;
315
+ }
316
+ }
317
+
318
+ &.inset {
319
+ > .backdrop {
320
+ position: absolute;
321
+ left: 0%;
322
+ right: 0%;
323
+ top: 0%;
324
+ bottom: 17.25%;
325
+
326
+ background: $color-primary-darker;
327
+ box-shadow: inset 0px 4px 94px rgba(0, 0, 0, 0.15);
328
+ }
329
+ > .icon {
330
+ position: absolute;
331
+ width: 163px;
332
+ height: 161px;
333
+ left: 26px;
334
+ top: 27px;
335
+ }
336
+ }
337
+ }
338
+
339
+ > .nav-item:hover {
340
+ > .icon {
341
+ mix-blend-mode: normal;
342
+ }
343
+ }
344
+ }
345
+
346
+
347
+ /* ALBUM */
348
+
349
+ body.layout-album {
350
+ overflow-y: hidden;
351
+ }
352
+
353
+ .album__artwork {
354
+ position: absolute;
355
+ left: calc(50% - 187px/2 - 244.5px + 187px);
356
+ right: 0px;
357
+ top: 0px;
358
+ bottom: 0px;
359
+
360
+ background: $color-primary-album-bg;
361
+ box-shadow: 0px 4.8px 120px rgba(0, 0, 0, 0.15);
362
+
363
+ min-width: 449px;
364
+ overflow-y: auto;
365
+
366
+ display: flex;
367
+
368
+ opacity: 0;
369
+
370
+ animation: fade-in .3s forwards, enlarge .3s forwards;
371
+ animation-delay: .4s;
372
+
373
+ @media screen and (max-width: $w-bp) {
374
+ position: relative;
375
+ left: 0;
376
+ right: 0;
377
+ top: 400px;
378
+ align-items: center;
379
+ width: auto;
380
+ min-width: 0;
381
+ padding: 20px 0;
382
+
383
+ margin-bottom: 150px;
384
+ }
385
+
386
+ body.out & {
387
+ animation: fade-out .3s forwards;
388
+ }
389
+
390
+ > .item {
391
+ display: inline-block;
392
+
393
+ opacity: 0;
394
+ animation: fade-in .3s both, enlarge .3s forwards;
395
+ animation-delay: .7s;
396
+ }
397
+
398
+ // Styles
399
+ &.full-bleed {
400
+ > .item img {
401
+ max-width: 100%;
402
+ margin: 0;
403
+ display: block;
404
+ }
405
+ }
406
+ &.inset {
407
+ padding: 139px 96px 119px 116px;
408
+ }
409
+ &.one-column {
410
+ flex-flow: column nowrap;
411
+ justify-content: flex-start;
412
+ }
413
+ &.multi-column {
414
+ flex-flow: row wrap;
415
+ justify-content: center;
416
+
417
+ > .item {
418
+ width: 211px;
419
+ height: 211px;
420
+ padding: 10px;
421
+ margin-right: 20px;
422
+ margin-bottom: 20px;
423
+ display: inline-block;
424
+
425
+ img {
426
+ max-width: 201px;
427
+ max-height: 201px;
428
+ width: auto;
429
+ height: auto;
430
+ display: block;
431
+ }
432
+ }
433
+ }
434
+ }
435
+
436
+ .album__header {
437
+
438
+ > .shadowything-top {
439
+ position: absolute;
440
+ width: 280px;
441
+ height: 167px;
442
+ left: 50px;
443
+ top: 20px;
444
+
445
+ mix-blend-mode: luminosity;
446
+
447
+ @media screen and (min-height: $h-bp2) {
448
+ top: calc(50% - 167px/2 - 408.5px);
449
+ }
450
+
451
+ opacity: 0;
452
+ animation: fade-in-2 .5s forwards;
453
+ animation-delay: .2s;
454
+
455
+ body.out & {
456
+ animation: fade-out .4s forwards;
457
+ }
458
+ }
459
+
460
+ > .brand {
461
+ position: absolute;
462
+ width: 242px;
463
+ height: 212px;
464
+ left: 88px;
465
+ top: 208px;
466
+
467
+ @media screen and (min-height: $h-bp2) {
468
+ top: calc(50% - 212px/2 - 198px);
469
+ }
470
+
471
+ > .author {
472
+ position: absolute;
473
+ width: 61.82px;
474
+ height: 119.91px;
475
+ left: 13.39px;
476
+ top: 0px;
477
+
478
+ font-style: normal;
479
+ font-weight: normal;
480
+ line-height: normal;
481
+ font-size: 20.8538px;
482
+
483
+ color: #FFFFFF;
484
+
485
+ z-index: 2;
486
+
487
+ a {
488
+ background-image: linear-gradient(to right, white 33%, rgba(255, 255, 255, 0) 0%);
489
+ background-position: bottom;
490
+ background-size: 3px 1px;
491
+ background-repeat: repeat-x;
492
+ padding-bottom: 2px;
493
+ }
494
+ }
495
+
496
+ > .album-title {
497
+ position: absolute;
498
+ width: 240px;
499
+ height: 68px;
500
+ left: 1px;
501
+ top: 10px;
502
+
503
+ font-style: normal;
504
+ font-weight: normal;
505
+ line-height: normal;
506
+ font-size: 56px;
507
+
508
+ color: #FFFFFF;
509
+
510
+ body.out & {
511
+ animation: fade-out .4s forwards;
512
+ }
513
+ }
514
+
515
+ > .album-desc {
516
+ position: absolute;
517
+ width: 236px;
518
+ height: 47px;
519
+ left: 13px;
520
+ top: 110px;
521
+
522
+ font-style: normal;
523
+ font-weight: normal;
524
+ line-height: normal;
525
+ font-size: 18px;
526
+
527
+ color: #FFFFFF;
528
+
529
+ body.out & {
530
+ animation: fade-out .4s forwards;
531
+ }
532
+ }
533
+ }
534
+ }