From 5f3017c7cf5cfc0f80d7510ceaf542eb676ac989 Mon Sep 17 00:00:00 2001 From: Morten Olsen Date: Fri, 27 Aug 2021 21:47:53 +0200 Subject: [PATCH] Improvements --- components/Background/index.tsx | 6 +++- components/Me.tsx | 52 ++++++++++++++++++++++++--------- pages/index.tsx | 13 +++++++++ 3 files changed, 56 insertions(+), 15 deletions(-) diff --git a/components/Background/index.tsx b/components/Background/index.tsx index db40e20..a382aef 100644 --- a/components/Background/index.tsx +++ b/components/Background/index.tsx @@ -28,12 +28,16 @@ const setup = () => { renderer.domElement.style.width = '100%'; renderer.domElement.style.height = '100%'; renderer.domElement.style.zIndex = -1; - renderer.domElement.style.opacity = 1; + renderer.domElement.style.animationName = 'fadein'; + renderer.domElement.style.animationDuration = '2s'; document.body.appendChild(renderer.domElement); addParticles(); addLights(); render(); + requestAnimationFrame(() => { + //renderer.domElement.style.opacity = 1; + }) } const addParticles = () => { diff --git a/components/Me.tsx b/components/Me.tsx index a3321e4..87af655 100644 --- a/components/Me.tsx +++ b/components/Me.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useRef, useState, useEffect } from 'react'; import styled from 'styled-components'; import image from '../public/images/me.jpg'; @@ -10,14 +10,17 @@ const Wrapper = styled.div` padding: 80px; `; -const ImageWrapper = styled.div` +const ImageWrapper = styled.div<{loaded: boolean}>` border-radius: 50%; border: solid 10px rgba(255, 255, 255, .5); box-shadow: 0 0 35px rgba(0, 0, 0, .5); overflow: hidden; width: 100%; - max-width: 360px; + max-width: 300px; position: relative; + transition: opacity 1s; + transform: rotateY(180deg); + opacity: ${({ loaded }) => loaded ? '1' : '0'}; `; const Spacer = styled.div` @@ -34,6 +37,12 @@ const Title = styled.h1` 0 0 5px rgba(255, 255, 255, .5); 0 0 10px rgba(0, 0, 0, .5); margin-bottom: 0px; + letter-spacing: 1px; + letter-spacing: 7px; + + &::first-letter { + font-size: 36px; + } `; const SubTitle = styled.h2` @@ -66,16 +75,31 @@ const Image = styled.img<{blurDataURL: string}>` height: 100%; ` -const Me: React.FC<{}> = () => ( - - - - - - Morten Olsen - “...One part genius, one part crazy” - - -); +const Me: React.FC<{}> = () => { + const imgRef = useRef(); + const [loaded, setLoaded] = useState(false); + console.log('l', loaded); + useEffect(() => { + if (imgRef.current) { + setLoaded(imgRef.current.complete); + } + }, [imgRef]); + return ( + + + setLoaded(true)} + /> + + + Morten Olsen + “...One part genius, one part crazy” + + + ); +}; export default Me; diff --git a/pages/index.tsx b/pages/index.tsx index d872ff0..76de7aa 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { createGlobalStyle } from 'styled-components'; import Head from 'next/head'; import Background from '../components/Background'; import Me from '../components/Me'; @@ -8,6 +9,17 @@ import githubLogo from '../public/images/logos/github.svg'; import linkedinLogo from '../public/images/logos/linkedin.svg'; import stackOverflowLogo from '../public/images/logos/stackoverflow.svg'; +const Globals = createGlobalStyle` + body { + background: #03544e; + } + + @keyframes fadein { + from {opacity: 0} + to {opacity: 1} + } +`; + const Frontpage: React.FC<{}> = () => { return ( <> @@ -17,6 +29,7 @@ const Frontpage: React.FC<{}> = () => { +