From d12211fc66b22f14035c656a297e4f42996975ae Mon Sep 17 00:00:00 2001 From: Hazem Krimi Date: Tue, 12 Jan 2021 23:34:31 +0100 Subject: [PATCH] Add about page --- components/MobileNav.tsx | 11 +++- components/Nav.tsx | 8 +-- pages/about.tsx | 134 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 148 insertions(+), 5 deletions(-) create mode 100644 pages/about.tsx diff --git a/components/MobileNav.tsx b/components/MobileNav.tsx index f27f2c0..2bbc5ac 100644 --- a/components/MobileNav.tsx +++ b/components/MobileNav.tsx @@ -1,5 +1,6 @@ import { FC, useContext, useRef, useEffect } from 'react'; import { DarkModeContext } from './DarkMode'; +import { useRouter } from 'next/router'; import styled from 'styled-components'; import IconButton from './IconButton'; import Button from './Button'; @@ -53,6 +54,7 @@ const Bar = styled.nav` const MobileNav: FC = ({ open, close }) => { const { dark, toggle } = useContext(DarkModeContext); const ref = useRef(null); + const router = useRouter(); useEffect(() => { document.addEventListener('mousedown', (event: MouseEvent) => { @@ -79,7 +81,14 @@ const MobileNav: FC = ({ open, close }) => {
- +
diff --git a/components/Nav.tsx b/components/Nav.tsx index 30cc159..896202d 100644 --- a/components/Nav.tsx +++ b/components/Nav.tsx @@ -1,10 +1,10 @@ import { FC, useContext, useState } from 'react'; import { DarkModeContext } from './DarkMode'; +import { useRouter } from 'next/router'; import styled from 'styled-components'; import Image from 'next/image'; import Button from './Button'; import IconButton from './IconButton'; -import { useRouter } from 'next/router'; import MobileNav from './MobileNav'; const Bar = styled.nav` @@ -72,15 +72,15 @@ const Nav: FC = () => {
- + -
- ` + padding: 1rem 0rem; + display: grid; + grid-template-columns: repeat(2, 1fr); + column-gap: 2rem; + + @media (max-width: 768px) { + padding: 0rem; + grid-template-columns: auto; + column-gap: 0rem; + row-gap: 1rem; + } + + .photo { + order: initial; + + @media (max-width: 768px) { + order: -1; + } + } + + h1 { + font-size: 1.5rem; + } + + .content { + display: flex; + flex-direction: column; + justify-content: space-between; + } + + .about, + .contact { + margin-top: 1rem; + + @media (max-width: 768px) { + margin: 1rem 0rem; + } + } + + .contact { + display: grid; + grid-template-columns: repeat(auto-fill, 36px); + column-gap: 1rem; + align-items: center; + justify-content: flex-start; + + @media (max-width: 768px) { + column-gap: 0.5rem; + } + } +`; + +const About: FC = () => { + const { dark } = useContext(DarkModeContext); + + return ( + +
+
+

About Me

+
+

+ I am Hazem Krimi, a Full Stack JavaScript Developer helping companies and individuals + build modern web and mobile applications I am a student and a freelance full stack + developer.

I have a good experience building web and cross platform mobile + apps using various technologies like React, React Native, Node.js, MongoDB, Firebase + and I am constantly exploring and learning Software Engineering to make sure I get the + job done faster and easier. +

+
+
+
+

Contact Me

+
+ window.open('mailto:krimihazem1@gmail.com', '_blank')} + /> + window.open('https://github.com/hazemKrimi', '_blank')} + /> + window.open('https://twitter.com/HazemKrimi', '_blank')} + /> + window.open('https://linkedin.com/in/hazemkrimi', '_blank')} + /> + window.open('https://codepen.io/hazemkrimi', '_blank')} + /> + window.open('https://dribbble.com/HazemKrimi', '_blank')} + /> + window.open('https://instagram.com/hazemkrimi', '_blank')} + /> +
+
+
+
+ +
+
+ ); +}; + +export default About;