├── .gitignore
├── img
├── 1.jpg
├── 2.jpg
└── Divi.jpg
├── favicon.ico
├── README.md
├── js
├── demo.js
└── anime.min.js
├── index.html
└── css
└── base.css
/.gitignore:
--------------------------------------------------------------------------------
1 | *.DS_Store
2 |
--------------------------------------------------------------------------------
/img/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codrops/CollapsingLogo/HEAD/img/1.jpg
--------------------------------------------------------------------------------
/img/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codrops/CollapsingLogo/HEAD/img/2.jpg
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codrops/CollapsingLogo/HEAD/favicon.ico
--------------------------------------------------------------------------------
/img/Divi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codrops/CollapsingLogo/HEAD/img/Divi.jpg
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Collapsing Logo Effect
2 |
3 | A recreation of the collapsing logo effect seen on [PracticalVR](https://experience.practicalvr.com/).
4 |
5 | 
6 |
7 | [Article on Codrops](https://tympanus.net/codrops/?p=35022)
8 |
9 | [Demo](http://tympanus.net/Development/CollapsingLogo/)
10 |
11 | ## Credits
12 |
13 | - Images from [Unsplash.com](http://unsplash.com)
14 | - [anime.js](http://animejs.com/) by Julian Garnier
15 |
16 | ## License
17 | This resource can be used freely if integrated or build upon in personal or commercial projects such as websites, web apps and web templates intended for sale. It is not allowed to take the resource "as-is" and sell it, redistribute, re-publish it, or sell "pluginized" versions of it. Free plugins built using this resource should have a visible mention and link to the original work. Always consider the licenses of all included libraries, scripts and images used.
18 |
19 | ## Misc
20 |
21 | Follow Codrops: [Twitter](http://www.twitter.com/codrops), [Facebook](http://www.facebook.com/codrops), [Google+](https://plus.google.com/101095823814290637419), [GitHub](https://github.com/codrops), [Pinterest](http://www.pinterest.com/codrops/), [Instagram](https://www.instagram.com/codropsss/)
22 |
23 |
24 | [© Codrops 2018](http://www.codrops.com)
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/js/demo.js:
--------------------------------------------------------------------------------
1 | /**
2 | * demo.js
3 | * http://www.codrops.com
4 | *
5 | * Licensed under the MIT license.
6 | * http://www.opensource.org/licenses/mit-license.php
7 | *
8 | * Copyright 2018, Codrops
9 | * http://www.codrops.com
10 | */
11 | {
12 | // From https://davidwalsh.name/javascript-debounce-function.
13 | function debounce(func, wait, immediate) {
14 | var timeout;
15 | return function() {
16 | var context = this, args = arguments;
17 | var later = function() {
18 | timeout = null;
19 | if (!immediate) func.apply(context, args);
20 | };
21 | var callNow = immediate && !timeout;
22 | clearTimeout(timeout);
23 | timeout = setTimeout(later, wait);
24 | if (callNow) func.apply(context, args);
25 | };
26 | };
27 |
28 | let winsize = {width: window.innerWidth, height: window.innerHeight};
29 |
30 | const DOM = {
31 | intro: document.querySelector('.intro'),
32 | slideshowImagesWrappers: document.querySelectorAll('.slideshow__item-img'),
33 | slideshowImages: document.querySelectorAll('.slideshow__item-img-inner')
34 | };
35 |
36 | class Panel {
37 | constructor(el) {
38 | this.DOM = {el: el};
39 |
40 | this.DOM.logo = DOM.intro.querySelector('.intro__logo');
41 | this.DOM.logoImg = this.DOM.logo.querySelector('.icon--arrowup');
42 | this.DOM.enter = DOM.intro.querySelector('.intro__enter');
43 |
44 | this.animatableElems = Array.from(DOM.intro.querySelectorAll('.animatable')).sort(() => 0.5 - Math.random());
45 |
46 | // set layout
47 | this.boxRect = this.DOM.el.getBoundingClientRect();
48 | this.layout();
49 |
50 | this.isOpen = true;
51 | this.initEvents();
52 | }
53 | layout() {
54 | this.DOM.el.style.transform = `scaleX(${winsize.width/this.boxRect.width}) scaleY(${winsize.height/this.boxRect.height})`;
55 | document.body.classList.remove('loading');
56 | }
57 | initEvents() {
58 | this.DOM.enter.addEventListener('click', (ev) => {
59 | ev.preventDefault();
60 | this.close();
61 | });
62 |
63 | this.DOM.logo.addEventListener('click', (ev) => {
64 | ev.preventDefault();
65 | this.open();
66 | });
67 |
68 | // Window resize
69 | this.onResize = () => {
70 | winsize = {width: window.innerWidth, height: window.innerHeight};
71 | if ( this.isOpen ) {
72 | this.layout();
73 | }
74 | };
75 | window.addEventListener('resize', debounce(() => this.onResize(), 10));
76 | }
77 | open() {
78 | if ( this.isOpen || this.isAnimating ) return;
79 | this.isOpen = true;
80 | this.isAnimating = true;
81 |
82 | DOM.intro.style.pointerEvents = 'auto';
83 |
84 | anime.remove(this.DOM.logoImg);
85 | anime({
86 | targets: this.DOM.logoImg,
87 | translateY: [{value: '-400%', duration: 200, easing: 'easeOutQuad'}, {value: ['200%', '0%'], duration: 700, easing: 'easeOutExpo'}]
88 | });
89 |
90 | anime.remove(this.animatableElems);
91 | anime({
92 | targets: this.animatableElems,
93 | duration: 1200,
94 | delay: (t,i) => 350 + i*30,
95 | easing: 'easeOutExpo',
96 | translateX: '0%',
97 | opacity: {
98 | value: 1,
99 | easing: 'linear',
100 | duration: 400
101 | }
102 | });
103 |
104 | const boxRect = this.DOM.el.getBoundingClientRect();
105 | anime.remove(this.DOM.el);
106 | anime({
107 | targets: this.DOM.el,
108 | scaleX: {value: winsize.width/boxRect.width, duration: 700, delay: 300, easing: 'easeOutExpo'},
109 | scaleY: {value: winsize.height/boxRect.height, duration: 300, easing: 'easeOutQuad'},
110 | complete: () => this.isAnimating = false
111 | });
112 | }
113 | close() {
114 | if ( !this.isOpen || this.isAnimating ) return;
115 | this.isOpen = false;
116 | this.isAnimating = true;
117 |
118 | DOM.intro.style.pointerEvents = 'none';
119 |
120 | anime.remove(this.DOM.logoImg);
121 | anime({
122 | targets: this.DOM.logoImg,
123 | translateY: [{value: '-400%', duration: 300, easing: 'easeOutQuad'}, {value: ['200%', '0%'], duration: 700, easing: 'easeOutExpo'}],
124 | rotate: [{value: 0, duration: 300}, {value: [90,0], duration: 1300, easing: 'easeOutElastic'}]
125 | });
126 |
127 | anime.remove(this.animatableElems);
128 | anime({
129 | targets: this.animatableElems,
130 | duration: 150,
131 | easing: 'easeOutQuad',
132 | translateX: '-30%',
133 | opacity: 0
134 | });
135 |
136 | anime.remove(this.DOM.el);
137 | anime({
138 | targets: this.DOM.el,
139 | duration: 1000,
140 | scaleX: {value: 1, duration: 300, easing: 'easeOutQuad'},
141 | scaleY: {value: 1, duration: 700, delay: 300, easing: 'easeOutExpo'},
142 | complete: () => this.isAnimating = false
143 | });
144 |
145 | anime.remove(DOM.slideshowImages);
146 | anime({
147 | targets: DOM.slideshowImages,
148 | duration: 1000,
149 | delay: (t,i) => i*60,
150 | easing: 'easeOutCubic',
151 | scale: [1.5,1]
152 | });
153 | anime.remove(DOM.slideshowImagesWrappers);
154 | anime({
155 | targets: DOM.slideshowImagesWrappers,
156 | duration: 1000,
157 | delay: (t,i) => i*60,
158 | easing: 'easeOutCubic',
159 | translateY: ['10%','0%']
160 | });
161 | }
162 | }
163 |
164 | const panel = new Panel(DOM.intro.querySelector('.intro__box'));
165 | }
166 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Collapsing Logo Effect | Codrops
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | arrow
18 |
19 |
20 |
21 | drop
22 |
23 |
24 |
25 | github
26 |
27 |
28 |
29 | arrow up
30 |
31 |
32 |
33 |
34 |
35 |
46 |
47 |
48 |
51 |
#1
52 |
53 |
Werry & Smith
54 |
Technical portfolio design and implementation
55 |
56 |
57 |
58 |
61 |
#2
62 |
63 |
Gimpson Technology
64 |
Future technology assessment and consultation
65 |
66 |
67 |
68 | 1
69 | 2
70 | 3
71 | 4
72 | 5
73 | 6
74 | 7
75 | 8
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
Vonnov
87 |
88 |
Collapsing Logo Effect
89 |
Inspired by practicalvr
90 |
91 |
95 |
Enter
96 |
97 |
98 |
Philosophy
99 |
Banjo ethical readymade, microdosing subway tile pinterest glossier put a bird on it retro direct trade blog tumeric wayfarers mustache
100 |
Thundercats hella sartorial occupy portland DIY raclette mlkshk poke DIY chambray franzen tattooed thundercats master
101 |
102 |
103 |
About
104 |
We are a quadruple award winning hyper active super duper cryptocurrency consultation and technology assessment firm that will help you understand what's going on in the present and future of finances
105 |
106 |
9529 Vernon Court, New York, NY 10027
107 |
111 |
GitHub
112 |
113 |
114 |
115 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/css/base.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Inconsolata:400,700');
2 | article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}audio,canvas,video{display:inline-block;}audio:not([controls]){display:none;height:0;}[hidden]{display:none;}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}body{margin:0;}a:focus{outline:thin dotted;}a:active,a:hover{outline:0;}h1{font-size:2em;margin:0.67em 0;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:bold;}dfn{font-style:italic;}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}mark{background:#ff0;color:#000;}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em;}pre{white-space:pre-wrap;}q{quotes:"\201C" "\201D" "\2018" "\2019";}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}img{border:0;}svg:not(:root){overflow:hidden;}figure{margin:0;}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}legend{border:0;padding:0;}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}button,input{line-height:normal;}button,select{text-transform:none;}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}button[disabled],html input[disabled]{cursor:default;}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}textarea{overflow:auto;vertical-align:top;}table{border-collapse:collapse;border-spacing:0;}
3 | *,
4 | *::after,
5 | *::before {
6 | box-sizing: border-box;
7 | }
8 |
9 | body {
10 | --color-text: #000;
11 | --color-bg: #fff;
12 | --color-link: #000;
13 | --color-link-hover: #000;
14 | --color-logo-bg: #a09f92;
15 | font-family: 'Inconsolata', monospace;
16 | height: 100vh;
17 | color: var(--color-text);
18 | background-color: var(--color-bg);
19 | -webkit-font-smoothing: antialiased;
20 | -moz-osx-font-smoothing: grayscale;
21 | }
22 |
23 | .js .loading::before {
24 | content: '';
25 | position: fixed;
26 | z-index: 100000;
27 | top: 0;
28 | left: 0;
29 | width: 100%;
30 | height: 100%;
31 | background: var(--color-logo-bg);
32 | }
33 |
34 | a {
35 | text-decoration: none;
36 | color: var(--color-link);
37 | outline: none;
38 | }
39 |
40 | a:hover,
41 | a:focus {
42 | color: var(--color-link-hover);
43 | outline: none;
44 | }
45 |
46 | .hidden {
47 | position: absolute;
48 | overflow: hidden;
49 | width: 0;
50 | height: 0;
51 | pointer-events: none;
52 | }
53 |
54 | /* Icons */
55 | .icon {
56 | display: block;
57 | width: 1.5rem;
58 | height: 1.5rem;
59 | margin: 0 auto;
60 | fill: currentColor;
61 | }
62 |
63 | .icon--inline {
64 | display: inline-block;
65 | width: 0.75em;
66 | height: 0.65em;
67 | }
68 |
69 | .icon--light {
70 | color: #5cad7c;
71 | }
72 |
73 | main {
74 | position: relative;
75 | width: 100%;
76 | }
77 |
78 | .content {
79 | width: 100%;
80 | position: relative;
81 | }
82 |
83 | .no-js .content {
84 | top: 100vh;
85 | }
86 |
87 | .intro {
88 | position: fixed;
89 | top: 0;
90 | left: 0;
91 | width: 100%;
92 | height: 100%;
93 | padding: 2rem;
94 | display: flex;
95 | flex-direction: column;
96 | align-items: center;
97 | }
98 |
99 | .no-js .intro {
100 | position: absolute;
101 | }
102 |
103 | .intro__box,
104 | .intro__logo {
105 | position: absolute;
106 | top: 0;
107 | left: 0;
108 | width: 80px;
109 | height: 80px;
110 | background: var(--color-logo-bg);
111 | opacity: 1;
112 | }
113 |
114 | .intro__box {
115 | transform-origin: 0 0;
116 | z-index: 0;
117 | }
118 |
119 | .no-js .intro__box {
120 | width: 100%;
121 | height: 100vh;
122 | }
123 |
124 | .intro__logo {
125 | background: transparent;
126 | display: flex;
127 | align-items: center;
128 | color: #000;
129 | pointer-events: auto;
130 | cursor: pointer;
131 | }
132 |
133 | .icon--arrowup {
134 | width: 1.25rem;
135 | height: 1.25rem;
136 | }
137 |
138 | .intro__logo-text {
139 | font-weight: normal;
140 | position: absolute;
141 | width: 100%;
142 | top: 100%;
143 | text-align: center;
144 | margin: 0;
145 | padding: 0.25rem 0 0 0;
146 | font-size: 0.85rem;
147 | opacity: 0;
148 | }
149 |
150 | .intro__title-wrap {
151 | text-align: center;
152 | position: relative;
153 | z-index: 100;
154 | margin-top: 6rem;
155 | }
156 |
157 | .intro__title {
158 | font-size: 10vw;
159 | letter-spacing: -0.15rem;
160 | margin: 0 0 1.5rem;
161 | line-height: 0.5;
162 | text-transform: lowercase;
163 | }
164 |
165 | .intro__subtitle-wrap {
166 | text-transform: lowercase;
167 | }
168 |
169 | .intro__subtitle {
170 | margin: 0;
171 | font-size: 0.85rem;
172 | }
173 |
174 | .intro__info {
175 | margin: 0 0 1rem 0;
176 | font-size: 0.85rem;
177 | }
178 |
179 | .codrops-icon {
180 | color: #000;
181 | display: inline-block;
182 | }
183 |
184 | .codrops-icon:hover {
185 | opacity: 0.7;
186 | }
187 |
188 | .intro__enter {
189 | text-transform: lowercase;
190 | margin: 5vh 0 0 0;
191 | padding: 1rem 0 0 0;
192 | display: inline-block;
193 | cursor: pointer;
194 | color: #980a0a;
195 | }
196 |
197 | .intro__enter:hover {
198 | color: #000;
199 | }
200 |
201 | .no-js .intro__enter {
202 | display: none;
203 | }
204 |
205 | .intro__github {
206 | text-transform: lowercase;
207 | position: relative;
208 | font-size: 0.85rem;
209 | }
210 |
211 | .intro__content {
212 | position: relative;
213 | text-align: center;
214 | max-width: 300px;
215 | margin: 0 auto;
216 | }
217 |
218 | .intro__content--second {
219 | display: none;
220 | }
221 |
222 | .intro__content-title {
223 | text-transform: lowercase;
224 | font-size: 1.5rem;
225 | line-height: 0.5;
226 | font-weight: normal;
227 | display: none;
228 | margin: 0;
229 | }
230 |
231 | .intro__content-title::before {
232 | content: '\2015';
233 | margin: 0 1rem 0;
234 | font-size: 1.25rem;
235 | }
236 |
237 | .intro__content-text {
238 | font-size: 0.85rem;
239 | }
240 |
241 | .intro__location {
242 | display: flex;
243 | align-items: center;
244 | justify-content: center;
245 | position: relative;
246 | font-size: 0.85rem;
247 | }
248 |
249 | .intro__social {
250 | display: flex;
251 | align-items: center;
252 | justify-content: center;
253 | position: relative;
254 | font-size: 0.85rem;
255 | margin: 1rem 0;
256 | }
257 |
258 | .intro__social-item {
259 | text-transform: lowercase;
260 | margin: 0 1rem;
261 | }
262 |
263 | .sidebar {
264 | display: flex;
265 | flex-direction: column;
266 | justify-content: space-between;
267 | }
268 |
269 | .menu {
270 | margin: 1rem 1rem 1rem 6rem;
271 | display: flex;
272 | }
273 |
274 | .menu__item {
275 | color: #aaa;
276 | display: block;
277 | margin: 0 1rem 0 0;
278 | }
279 |
280 | .menu__item--current {
281 | color: #000;
282 | }
283 |
284 | .slideshow {
285 | flex: 1;
286 | }
287 |
288 | .slideshow__item {
289 | position: relative;
290 | margin: 2rem 0 0 auto;
291 | border-bottom: 1px solid #f3f3f3;
292 | }
293 |
294 | .slideshow__item::after {
295 | content: '+';
296 | position: absolute;
297 | bottom: 0;
298 | right: calc(75vh + 4rem);
299 | margin: 1rem;
300 | font-size: 2rem;
301 | line-height: 0.5;
302 | }
303 |
304 | .slideshow__item--featured {
305 | margin-top: 0;
306 | }
307 |
308 | .slideshow__item-number {
309 | position: absolute;
310 | top: 0;
311 | right: 0;
312 | font-size: 1.15rem;
313 | margin: 1rem 1rem 0 0;
314 | }
315 |
316 | .slideshow__item-title {
317 | font-size: 1.5rem;
318 | font-weight: normal;
319 | position: relative;
320 | padding: 0 0 0 4rem;
321 | margin: 0.5rem 0 0 0;
322 | }
323 |
324 | .slideshow__item-title--larger {
325 | font-size: 1.85rem;
326 | }
327 |
328 | .slideshow__item-subtitle {
329 | color: #000;
330 | max-width: 200px;
331 | margin: 0.5rem 0 0 1rem;
332 | }
333 |
334 | .slideshow__item-title::before {
335 | content: '';
336 | position: absolute;
337 | top: 55%;
338 | left: 0;
339 | margin: 0 1rem 0;
340 | height: 1px;
341 | width: 2rem;
342 | background: #000;
343 | }
344 |
345 | .slideshow__item-img {
346 | width: 45vh;
347 | height: 45vh;
348 | max-width: 100vw;
349 | max-height: 77vh;
350 | margin: 0 0 0 auto;
351 | overflow: hidden;
352 | }
353 |
354 | .slideshow__item-img--larger {
355 | width: 75vh;
356 | height: 75vh;
357 | }
358 |
359 | .slideshow__item-img-inner {
360 | background-size: cover;
361 | background-position: 50% 50%;
362 | width: 100%;
363 | height: 100%;
364 | }
365 |
366 | .slideshow__item-titlewrap {
367 | position: absolute;
368 | bottom: 3rem;
369 | width: 100%;
370 | left: 0;
371 | padding: 1rem;
372 | }
373 |
374 | .slideshow__nav {
375 | display: none;
376 | }
377 |
378 | .slideshow__nav-item {
379 | cursor: default;
380 | background: #ddd;
381 | border: 0;
382 | height: 1.5rem;
383 | width: 1px;
384 | color: transparent;
385 | font-size: 0;
386 | padding: 0;
387 | display: block;
388 | margin-bottom: 0.5rem;
389 | position: relative;
390 | }
391 |
392 | .slideshow__nav-item:focus {
393 | outline: none;
394 | }
395 |
396 | .slideshow__nav-item--current {
397 | background: #333;
398 | }
399 |
400 | .pater {
401 | display: none;
402 | }
403 |
404 | .pater::before {
405 | content: '\2015 Sponsor';
406 | word-spacing: -5px;
407 | margin: 0 0 0 0.15rem;
408 | color: #000;
409 | }
410 |
411 | .pater__description {
412 | font-size: 0.85rem;
413 | padding: 0.5rem 1rem 1rem 1rem;
414 | color: #aaa;
415 | margin: 0;
416 | }
417 |
418 | .pater__description strong {
419 | color: #000;
420 | font-weight: normal;
421 | }
422 |
423 | .pater__img-inner {
424 | background: url(../img/Divi.jpg) no-repeat 50% 50%;
425 | height: 25vh;
426 | width: 100%;
427 | background-size: cover;
428 | }
429 |
430 | @media screen and (min-width: 67em) {
431 | .intro {
432 | display: grid;
433 | align-items: start;
434 | grid-template-columns: repeat(4,25%);
435 | grid-template-rows: 40% 60%;
436 | }
437 | .intro__title {
438 | font-size: 5rem;
439 | }
440 | .intro__location {
441 | -webkit-writing-mode: vertical-rl;
442 | writing-mode: vertical-rl;
443 | grid-area: 2 / 4 / 2 / 4;
444 | align-self: start;
445 | justify-self: end;
446 | margin-bottom: 3rem;
447 | }
448 | .intro__content {
449 | max-width: none;
450 | text-align: right;
451 | }
452 | .intro__content--second {
453 | grid-area: 1 / 2 / 1 / 3;
454 | display: block;
455 | }
456 | .intro__content--forth {
457 | grid-area: 1 / 4 / 1 / 5;
458 | }
459 | .intro__content-title {
460 | display: block;
461 | }
462 | .intro__title-wrap {
463 | grid-area: 2 / 1 / 2 / 3;
464 | justify-self: end;
465 | align-self: stretch;
466 | text-align: right;
467 | margin: 0;
468 | display: flex;
469 | flex-direction: column;
470 | align-items: flex-end;
471 | }
472 | .intro__enter {
473 | margin: auto 0 0 0;
474 | }
475 | .intro__github {
476 | font-size: 1rem;
477 | align-self: end;
478 | justify-self: start;
479 | grid-area: 2 / 1 / 2 / 1;
480 | }
481 | .intro__social {
482 | grid-area: 2 / 4 / 2 / 4;
483 | align-self: end;
484 | justify-self: end;
485 | font-size: 1rem;
486 | margin: 0;
487 | }
488 | .intro__social-item {
489 | margin: 0 0 0 1rem;
490 | }
491 | .content {
492 | width: 100%;
493 | height: 100vh;
494 | overflow: hidden;
495 | position: relative;
496 | display: flex;
497 | }
498 | .sidebar {
499 | width: 280px;
500 | border-right: 1px solid #f3f3f3;
501 | }
502 | .menu {
503 | margin: 3rem 0.5rem 0 auto;
504 | -webkit-writing-mode: vertical-rl;
505 | writing-mode: vertical-rl;
506 | transform: rotate3d(0,0,1,180deg);
507 | display: flex;
508 | }
509 | .menu__item {
510 | margin: 1.5rem 0 0 0;
511 | }
512 | .pater {
513 | display: block;
514 | }
515 | .slideshow__item {
516 | padding: 0 4rem 0 0;
517 | }
518 | .slideshow__item-number {
519 | right: 4rem;
520 | }
521 | .slideshow__item-title {
522 | font-size: 2rem;
523 | }
524 | .slideshow__item-titlewrap {
525 | top: 5vh;
526 | width: 75vh;
527 | right: 4rem;
528 | left: auto;
529 | padding: 0;
530 | }
531 | .slideshow__item-subtitle {
532 | color: #aaa;
533 | }
534 | .slideshow__item-titlewrap--featured {
535 | top: 10vh;
536 | right: 12rem;
537 | }
538 | .slideshow__item-title--larger {
539 | font-size: 3rem;
540 | }
541 | .slideshow__nav {
542 | position: absolute;
543 | right: 0;
544 | top: 0;
545 | width: 4rem;
546 | height: 75vh;
547 | justify-content: center;
548 | flex-direction: column;
549 | align-items: center;
550 | display: flex;
551 | }
552 | }
553 |
--------------------------------------------------------------------------------
/js/anime.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | 2017 Julian Garnier
3 | Released under the MIT license
4 | */
5 | var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(e,r,p){if(p.get||p.set)throw new TypeError("ES3 does not support getters and setters.");e!=Array.prototype&&e!=Object.prototype&&(e[r]=p.value)};$jscomp.getGlobal=function(e){return"undefined"!=typeof window&&window===e?e:"undefined"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
6 | $jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||"")+$jscomp.symbolCounter_++};
7 | $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var r=0;return $jscomp.iteratorPrototype(function(){return rb&&(b+=1);1b?c:b<2/3?a+(c-a)*(2/3-b)*6:a}var d=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(a)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(a);a=parseInt(d[1])/360;var b=parseInt(d[2])/100,f=parseInt(d[3])/100,d=d[4]||1;if(0==b)f=b=a=f;else{var n=.5>f?f*(1+b):f+b-f*b,k=2*f-n,f=c(k,n,a+1/3),b=c(k,n,a);a=c(k,n,a-1/3)}return"rgba("+
13 | 255*f+","+255*b+","+255*a+","+d+")"}function y(a){if(a=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a))return a[2]}function V(a){if(-1=g.currentTime)for(var G=0;G=w||!k)g.began||(g.began=!0,f("begin")),f("run");if(q>n&&q=k&&r!==k||!k)b(k),x||e();f("update");a>=k&&(g.remaining?(t=h,"alternate"===g.direction&&(g.reversed=!g.reversed)):(g.pause(),g.completed||(g.completed=!0,f("complete"),"Promise"in window&&(p(),m=c()))),l=0)}a=void 0===a?{}:a;var h,t,l=0,p=null,m=c(),g=fa(a);g.reset=function(){var a=g.direction,c=g.loop;g.currentTime=
25 | 0;g.progress=0;g.paused=!0;g.began=!1;g.completed=!1;g.reversed="reverse"===a;g.remaining="alternate"===a&&1===c?2:c;b(0);for(a=g.children.length;a--;)g.children[a].reset()};g.tick=function(a){h=a;t||(t=h);k((l+h-t)*q.speed)};g.seek=function(a){k(d(a))};g.pause=function(){var a=v.indexOf(g);-1=c&&0<=b&&1>=b){var e=new Float32Array(11);if(c!==d||b!==f)for(var k=0;11>k;++k)e[k]=a(.1*k,c,b);return function(k){if(c===d&&b===f)return k;if(0===k)return 0;if(1===k)return 1;for(var h=0,l=1;10!==l&&e[l]<=k;++l)h+=.1;--l;var l=h+(k-e[l])/(e[l+1]-e[l])*.1,n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(.001<=n){for(h=0;4>h;++h){n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(0===n)break;var m=a(l,c,b)-k,l=l-m/n}k=l}else if(0===
29 | n)k=l;else{var l=h,h=h+.1,g=0;do m=l+(h-l)/2,n=a(m,c,b)-k,0++g);k=m}return a(k,d,f)}}}}(),Q=function(){function a(a,b){return 0===a||1===a?a:-Math.pow(2,10*(a-1))*Math.sin(2*(a-1-b/(2*Math.PI)*Math.asin(1))*Math.PI/b)}var c="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),d={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],a],Out:[[.25,
30 | .46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(b,c){return 1-a(1-b,c)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(b,c){return.5>b?a(2*b,c)/2:1-a(-2*b+2,c)/2}]},b={linear:A(.25,.25,.75,.75)},f={},e;for(e in d)f.type=e,d[f.type].forEach(function(a){return function(d,f){b["ease"+a.type+c[f]]=h.fnc(d)?
31 | d:A.apply($jscomp$this,d)}}(f)),f={type:f.type};return b}(),ha={css:function(a,c,d){return a.style[c]=d},attribute:function(a,c,d){return a.setAttribute(c,d)},object:function(a,c,d){return a[c]=d},transform:function(a,c,d,b,f){b[f]||(b[f]=[]);b[f].push(c+"("+d+")")}},v=[],B=0,ia=function(){function a(){B=requestAnimationFrame(c)}function c(c){var b=v.length;if(b){for(var d=0;db&&(c.duration=d.duration);c.children.push(d)});c.seek(0);c.reset();c.autoplay&&c.restart();return c};return c};q.random=function(a,c){return Math.floor(Math.random()*(c-a+1))+a};return q});
--------------------------------------------------------------------------------