diff --git a/src/assets/logos/git-logo.png b/src/assets/logos/git-logo.png new file mode 100644 index 0000000..15cdf78 Binary files /dev/null and b/src/assets/logos/git-logo.png differ diff --git a/src/assets/logos/linkedin-logo.png b/src/assets/logos/linkedin-logo.png new file mode 100644 index 0000000..c503d6d Binary files /dev/null and b/src/assets/logos/linkedin-logo.png differ diff --git a/src/assets/models/ToyCar.glb b/src/assets/models/ToyCar.glb deleted file mode 100644 index 0aa1495..0000000 Binary files a/src/assets/models/ToyCar.glb and /dev/null differ diff --git a/src/assets/models/mbp-v1-pipe.glb b/src/assets/models/mbp-v1-pipe.glb deleted file mode 100644 index 2fed3be..0000000 Binary files a/src/assets/models/mbp-v1-pipe.glb and /dev/null differ diff --git a/src/assets/videos/drei.mp4 b/src/assets/videos/drei.mp4 deleted file mode 100644 index 9c90f5f..0000000 Binary files a/src/assets/videos/drei.mp4 and /dev/null differ diff --git a/src/components/App.jsx b/src/components/App.jsx index b2c62a8..f5b2dc3 100644 --- a/src/components/App.jsx +++ b/src/components/App.jsx @@ -1,83 +1,55 @@ import '../styles/styles.scss'; import * as THREE from 'three'; import { useRef, useState } from 'react'; -import { useFrame, useThree } from '@react-three/fiber'; +import { useFrame, useThree, useLoader } from '@react-three/fiber'; import { Text, MeshReflectorMaterial, - useTexture, Html, Image, - Scroll, useScroll, - ScrollControls, useGLTF, - useHelper, - OrbitControls } from '@react-three/drei'; import { gsap } from 'gsap'; import font from '../assets/fonts/Inter-Bold.woff'; -import toyCar from '../assets/models/ToyCar.glb'; import mac from '../assets/models/mac-draco.glb'; -import { SpotLightHelper, DirectionalLightHelper } from 'three'; import logo from '../assets/logos/fd..svg'; import ultradentLogo from '../assets/logos/ultradent-white.svg'; import monumetricLogo from '../assets/logos/monumetric-stacked-white.svg'; +import linkedInLogo from '../assets/logos/linkedin-logo.png'; +import git from '../assets/logos/git-logo.png'; -const rsqw = (t, delta = 0.1, a = 1, f = 1 / (2 * Math.PI)) => (a / Math.atan(1 / delta)) * Math.atan(Math.sin(2 * Math.PI * t * f) / delta) - -const Floor = () => { - // const [floor, normal] = useTexture([floorTexture, floorTextureNormal]); - return ( - - - - - ); -}; - -const Dog = ({position, scale, index}) => { - const ref = useRef(); - - const scroll = useScroll(); +const SocialSphere = ({texture, position, rotation, scale, url}) => { const [hovered, setHovered] = useState(false); - const [clicked, setClicked] = useState(false); - const [rnd] = useState(() => Math.random()); + const sphereRef = useRef(); useFrame((state, delta) => { - ref.current.material.scale[0] = ref.current.scale.x = THREE.MathUtils.damp(ref.current.scale.x, clicked ? 4 : scale[0], 6, delta); + // console.log( sphereRef.current.scale ); + if( hovered ) { + gsap.to( sphereRef.current.scale, { + x: 1.2, + y: 1.2, + z: 1.2 + } ); + } else { + gsap.to( sphereRef.current.scale, { + x: 1, + y: 1, + z: 1 + } ); + } + }) - ref.current.position.x = THREE.MathUtils.damp(ref.current.position.x, clicked ? position[0] + 1 : position[0], 6, delta); + function routeToSocial() { + window.open(url, '_blank'); + } - ref.current.scale.x = THREE.MathUtils.damp(ref.current.scale.x, hovered ? 0.75 : scale[0], 6, delta); - ref.current.scale.y = THREE.MathUtils.damp(ref.current.scale.y, hovered ? scale[1] + 0.1 : scale[1], 8, delta); - ref.current.material.grayscale = THREE.MathUtils.damp(ref.current.material.grayscale, hovered ? 0 : 1, 6, delta); - ref.current.material.zoom = 1.5 + Math.sin(rnd * 10000 + state.clock.elapsedTime / 3) / 2; - ref.current.material.color.lerp(new THREE.Color().set(hovered ? 'white' : '#aaa'), hovered ? 0.3 : 0.1); - }); return ( - setClicked(!clicked)} - onPointerOver={() => setHovered(true)} - onPointerOut={() => setHovered(false)} - url="https://picsum.photos/id/237/1920/1028" - position={position} - rotation={[0, 0, 0]} - scale={scale}/> + setHovered(true)} onPointerLeave={() => setHovered(false)} onPointerDown={() => routeToSocial()} receiveShadow castShadow position={position} rotation={rotation}> + + + ); }; @@ -88,12 +60,11 @@ const App = () => { const spotlightRef = useRef(); const directionalLightRef = useRef(); const lightingTarget = useRef(); - const sphereRef = useRef(); + const spheresRef = useRef(); const { camera, gl } = useThree(); const [screenClicked, setScreenClicked] = useState(false); - - // useHelper( spotlightRef, SpotLightHelper, 1 ); - // useHelper( directionalLightRef, DirectionalLightHelper, 1 ); + const linkedin = useLoader(THREE.TextureLoader, linkedInLogo); + const gitTexture = useLoader(THREE.TextureLoader, git); const mbp16 = useRef(); const xW = 0.7 + 0.15; @@ -107,6 +78,7 @@ const App = () => { sectionOneRef.current.rotation.y = -Math.sin(rnd * state.clock.elapsedTime) / 8; sectionTwoRef.current.rotation.y = -Math.sin(rnd * state.clock.elapsedTime) / 8; imageGroupRef.current.position.y = scroll.offset * 14; + spheresRef.current.position.y = scroll.offset * 14; if ( !r2 || scroll.range( 2 / 4, 2 / 4 ) ) { setScreenClicked( false ); @@ -123,8 +95,6 @@ const App = () => { y: screenClicked && r2 ? -0.5 : 0 } ); - // mbp16.current.rotation.x = Math.PI - (Math.PI / 2) * rsqw(r1) + r2 * 0.33; - if( scroll.range(1 / 3, 2 / 3) ) { gsap.to( sectionOneRef.current.position, {x: -5} ); } else { @@ -146,17 +116,18 @@ const App = () => { <> {/* */} - {/* */} - + - {/* - - - */} + + + + + + { - {/* - - */} - - {/* - - */} @@ -243,14 +207,14 @@ const App = () => { Monumetric Logo - Graphic of the Pale Blue Dot from Caral Sagan with Monumetric below -

Technologies Used:
Angular 3/7/13+, Javascript, SCSS(Sass), Multiple Auth APIs, UX/UI Design, Figma, Adobe XD

+

Frontend Developer and UX/UI Designer
Technologies Used:
Angular 3/7/13+, Javascript, SCSS(Sass), UX/UI Design, Adobe XD, Figma

Ultradent Logo - UPI in white for Ultradent Products Inc. -

Technologies Used:
React/Preact, Javascript, jQuery, Webpack, Storybook, React Testing Library, SCSS(Sass), Razor Views, Figma, Sketch

+

Front End Developer
Technologies Used:
React/Preact, Javascript, jQuery, Webpack, Storybook, React Testing Library, SCSS(Sass), Razor Views, Figma, Sketch

diff --git a/src/components/MainContent.jsx b/src/components/MainContent.jsx index e4686b0..c2c0435 100644 --- a/src/components/MainContent.jsx +++ b/src/components/MainContent.jsx @@ -3,21 +3,17 @@ import logo from '../assets/logos/fd..svg'; const MainContent = () => { return ( + <>
+ ); }; diff --git a/src/scripts/app.js b/src/scripts/app.js index 17a6b20..9187aca 100644 --- a/src/scripts/app.js +++ b/src/scripts/app.js @@ -12,7 +12,7 @@ render( - + diff --git a/src/styles/styles.scss b/src/styles/styles.scss index 824f5b7..79b56ad 100644 --- a/src/styles/styles.scss +++ b/src/styles/styles.scss @@ -11,6 +11,7 @@ body { } #root { + text-rendering: optimizeLegibility; position: relative; height: 100vh; .container { diff --git a/src/views/index.html b/src/views/index.html index 8cf1dcd..6999673 100644 --- a/src/views/index.html +++ b/src/views/index.html @@ -5,7 +5,7 @@ - Designer and Developer + Font End Web Developer and Designer