React App
--------------------------------------------------------------------------------
/assets/icons/github.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # About
2 |
3 | - This application is a reconstruction of the effects on the pages of [unshift's works](https://unshift.jp/works#aimessenger).
4 | [Takumi HASEGAWA / 長谷川 巧 (unshift Inc.)](https://twitter.com/_unshift)
5 |
6 | - The images are borrowed from the wonderful work of [WLOP](https://twitter.com/wlopwangling).
7 |
8 | - The background is based on the following great video.
9 | [How To Create a Parallax Text Scrolling Effect on Mousemove | Website Parallax Effects 2021](https://www.youtube.com/watch?v=ADAmKlVs25w)
10 |
11 | https://nemutas.github.io/r3f-unshift-effect/
12 |
13 | 
14 |
15 | # Technology
16 |
17 | - TypeScript
18 | - React(Create React App)
19 | - React Three Fiber(Three.js)
20 | - GLSL
21 | - InstancedMesh
22 | - gsap
23 |
24 | # Source Code
25 |
26 | Source code is not available.
27 | If there are many requests for it, I will consider distributing it through Patreon.
28 |
29 | # License
30 |
31 | This source code is not MIT License.
32 |
33 | ❗ In particular, please do not redistribute the images.
34 | ❌ Commercial use is prohibited.
35 | ❌ Redistribution is prohibited.
36 | ❌ Diversion is prohibited.
37 | ✅ You can look at the application and reproduce the representation.
38 |
--------------------------------------------------------------------------------
/static/js/main.c676cab9.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /*
2 | object-assign
3 | (c) Sindre Sorhus
4 | @license MIT
5 | */
6 |
7 | /*!
8 | * GSAP 3.9.1
9 | * https://greensock.com
10 | *
11 | * @license Copyright 2008-2021, GreenSock. All rights reserved.
12 | * Subject to the terms at https://greensock.com/standard-license or for
13 | * Club GreenSock members, the agreement issued with that membership.
14 | * @author: Jack Doyle, jack@greensock.com
15 | */
16 |
17 | /** @license React v0.20.2
18 | * scheduler.production.min.js
19 | *
20 | * Copyright (c) Facebook, Inc. and its affiliates.
21 | *
22 | * This source code is licensed under the MIT license found in the
23 | * LICENSE file in the root directory of this source tree.
24 | */
25 |
26 | /** @license React v0.26.2
27 | * react-reconciler.production.min.js
28 | *
29 | * Copyright (c) Facebook, Inc. and its affiliates.
30 | *
31 | * This source code is licensed under the MIT license found in the
32 | * LICENSE file in the root directory of this source tree.
33 | */
34 |
35 | /** @license React v17.0.2
36 | * react-dom.production.min.js
37 | *
38 | * Copyright (c) Facebook, Inc. and its affiliates.
39 | *
40 | * This source code is licensed under the MIT license found in the
41 | * LICENSE file in the root directory of this source tree.
42 | */
43 |
44 | /** @license React v17.0.2
45 | * react-jsx-runtime.production.min.js
46 | *
47 | * Copyright (c) Facebook, Inc. and its affiliates.
48 | *
49 | * This source code is licensed under the MIT license found in the
50 | * LICENSE file in the root directory of this source tree.
51 | */
52 |
53 | /** @license React v17.0.2
54 | * react.production.min.js
55 | *
56 | * Copyright (c) Facebook, Inc. and its affiliates.
57 | *
58 | * This source code is licensed under the MIT license found in the
59 | * LICENSE file in the root directory of this source tree.
60 | */
61 |
--------------------------------------------------------------------------------
/static/js/27.ef0cb643.chunk.js:
--------------------------------------------------------------------------------
1 | "use strict";(self.webpackChunkr3f_unshift_effect=self.webpackChunkr3f_unshift_effect||[]).push([[27],{27:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return h},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},h=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f((function(){p.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]);
--------------------------------------------------------------------------------