Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Portfolio {site} #30

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added public/images/D.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/M.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/W.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 12 additions & 8 deletions src/components/Acomplishments/Acomplishments.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import React from 'react';
import React from "react";

import { Section, SectionDivider, SectionTitle } from '../../styles/GlobalComponents';
import { Box, Boxes, BoxNum, BoxText } from './AcomplishmentsStyles';
import {
Section,
SectionDivider,
SectionTitle,
} from "../../styles/GlobalComponents";
import { Box, Boxes, BoxNum, BoxText } from "./AcomplishmentsStyles";

const data = [
{ number: 20, text: 'Open Source Projects'},
{ number: 1000, text: 'Students', },
{ number: 1900, text: 'Github Followers', },
{ number: 5000, text: 'Github Stars', }
{ number: 5, text: "Open Source Projects" },
{ number: 10, text: "Students" },
{ number: 2, text: "Github Followers" },
{ number: 0, text: "Github Stars" },
];

const Acomplishments = () => (
Expand All @@ -21,7 +25,7 @@ const Acomplishments = () => (
</Box>
))}
</Boxes>
<SectionDivider/>
<SectionDivider />
</Section>
);

Expand Down
24 changes: 17 additions & 7 deletions src/components/Footer/Footer.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
import React from 'react';
import { AiFillGithub, AiFillInstagram, AiFillLinkedin } from 'react-icons/ai';
import React from "react";
import { AiFillGithub, AiFillInstagram, AiFillLinkedin } from "react-icons/ai";

import { SocialIcons } from '../Header/HeaderStyles';
import { CompanyContainer, FooterWrapper, LinkColumn, LinkItem, LinkList, LinkTitle, Slogan, SocialContainer, SocialIconsContainer } from './FooterStyles';
import { SocialIcons } from "../Header/HeaderStyles";
import {
CompanyContainer,
FooterWrapper,
LinkColumn,
LinkItem,
LinkList,
LinkTitle,
Slogan,
SocialContainer,
SocialIconsContainer,
} from "./FooterStyles";

const Footer = () => {
return (
<FooterWrapper>
<LinkList>
<LinkColumn>
<LinkTitle>Call</LinkTitle>
<LinkItem href="tel:314-343-3432">314-343-3432</LinkItem>
<LinkItem href="tel:919-454-2775">919-454-2775</LinkItem>
</LinkColumn>
<LinkColumn>
<LinkTitle>Email</LinkTitle>
<LinkItem href="mailto:[email protected]">
[email protected]
<LinkItem href="mailto:[email protected]">
[email protected]
</LinkItem>
</LinkColumn>
</LinkList>
Expand Down
18 changes: 12 additions & 6 deletions src/components/Hero/Hero.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
import React from 'react';
import React from "react";

import { Section, SectionText, SectionTitle } from '../../styles/GlobalComponents';
import Button from '../../styles/GlobalComponents/Button';
import { LeftSection } from './HeroStyles';
import {
Section,
SectionText,
SectionTitle,
} from "../../styles/GlobalComponents";
import Button from "../../styles/GlobalComponents/Button";
import { LeftSection } from "./HeroStyles";

let site = "HolderDesigns";
const Hero = (props) => (
<>
<Section row nopadding>
Expand All @@ -13,12 +18,13 @@ const Hero = (props) => (
My Personal Portfolio
</SectionTitle>
<SectionText>
The purpose of JavaScript Mastery is to help aspiring and established developers to take their development skills to the next level and build awesome apps.
The purpose of {site} is to showcase valuable design and development practices to assist with modern business problems.
Let's take your project to the next level and build something awesome.
</SectionText>
<Button onClick={props.handleClick}>Learn More</Button>
</LeftSection>
</Section>
</>
);

export default Hero;
export default Hero;
28 changes: 22 additions & 6 deletions src/components/Projects/Projects.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,24 @@
import React from 'react';
import React from "react";

import { BlogCard, CardInfo, ExternalLinks, GridContainer, HeaderThree, Hr, Tag, TagList, TitleContent, UtilityList, Img } from './ProjectsStyles';
import { Section, SectionDivider, SectionTitle } from '../../styles/GlobalComponents';
import { projects } from '../../constants/constants';
import {
BlogCard,
CardInfo,
ExternalLinks,
GridContainer,
HeaderThree,
Hr,
Tag,
TagList,
TitleContent,
UtilityList,
Img,
} from "./ProjectsStyles";
import {
Section,
SectionDivider,
SectionTitle,
} from "../../styles/GlobalComponents";
import { projects } from "../../constants/constants";

const Projects = () => (
<Section nopadding id="projects">
Expand All @@ -12,7 +28,7 @@ const Projects = () => (
{projects.map((p, i) => {
return (
<BlogCard key={i}>
<Img src={p.image} />
<Img src={p.image} />
<TitleContent>
<HeaderThree title>{p.title}</HeaderThree>
<Hr />
Expand All @@ -37,4 +53,4 @@ const Projects = () => (
</Section>
);

export default Projects;
export default Projects;
30 changes: 21 additions & 9 deletions src/components/Technologies/Technologies.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,26 @@
import React from 'react';
import { DiFirebase, DiReact, DiZend } from 'react-icons/di';
import { Section, SectionDivider, SectionText, SectionTitle } from '../../styles/GlobalComponents';
import { List, ListContainer, ListItem, ListParagraph, ListTitle } from './TechnologiesStyles';
import React from "react";
import { DiFirebase, DiReact, DiZend } from "react-icons/di";
import {
Section,
SectionDivider,
SectionText,
SectionTitle,
} from "../../styles/GlobalComponents";
import {
List,
ListContainer,
ListItem,
ListParagraph,
ListTitle,
} from "./TechnologiesStyles";

const Technologies = () => (
const Technologies = () => (
<Section id="tech">
<SectionDivider divider />
<SectionTitle>Technologies</SectionTitle>
<SectionText>
I've worked with a range a technologies in the web development world.
From Back-end To Design
I've worked with a range a technologies in the web development world. From
Design Tools Like Figma, Zeplin, E-commerce like Shopify or Squarespace. Frontend custom code solutions with HTML, CSS, and Javascript
</SectionText>
<List>
<ListItem>
Expand All @@ -20,6 +31,7 @@ const Technologies = () => (
<ListTitle>Front-End</ListTitle>
<ListParagraph>
Experiece with <br />
HTML CSS
React.js
</ListParagraph>
</ListContainer>
Expand All @@ -32,7 +44,7 @@ const Technologies = () => (
<ListTitle>Back-End</ListTitle>
<ListParagraph>
Experience with <br />
Node and Databases
Node and SQL Databases
</ListParagraph>
</ListContainer>
</ListItem>
Expand All @@ -44,7 +56,7 @@ const Technologies = () => (
<ListTitle>UI/UX</ListTitle>
<ListParagraph>
Experience with <br />
tools like Figma
tools like Figma & Framer
</ListParagraph>
</ListContainer>
</ListItem>
Expand Down
65 changes: 46 additions & 19 deletions src/components/TimeLine/TimeLine.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,23 @@
import React, { useState, useRef, useEffect } from 'react';
import React, { useState, useRef, useEffect } from "react";

import { CarouselButton, CarouselButtonDot, CarouselButtons, CarouselContainer, CarouselItem, CarouselItemImg, CarouselItemText, CarouselItemTitle, CarouselMobileScrollNode } from './TimeLineStyles';
import { Section, SectionDivider, SectionText, SectionTitle } from '../../styles/GlobalComponents';
import { TimeLineData } from '../../constants/constants';
import {
CarouselButton,
CarouselButtonDot,
CarouselButtons,
CarouselContainer,
CarouselItem,
CarouselItemImg,
CarouselItemText,
CarouselItemTitle,
CarouselMobileScrollNode,
} from "./TimeLineStyles";
import {
Section,
SectionDivider,
SectionText,
SectionTitle,
} from "../../styles/GlobalComponents";
import { TimeLineData } from "../../constants/constants";

const TOTAL_CAROUSEL_COUNT = TimeLineData.length;

Expand All @@ -11,62 +26,72 @@ const Timeline = () => {
const carouselRef = useRef();

const scroll = (node, left) => {
return node.scrollTo({ left, behavior: 'smooth' });
}
return node.scrollTo({ left, behavior: "smooth" });
};

const handleClick = (e, i) => {
e.preventDefault();

if (carouselRef.current) {
const scrollLeft = Math.floor(carouselRef.current.scrollWidth * 0.7 * (i / TimeLineData.length));

const scrollLeft = Math.floor(
carouselRef.current.scrollWidth * 0.7 * (i / TimeLineData.length)
);

scroll(carouselRef.current, scrollLeft);
}
}
};

const handleScroll = () => {
if (carouselRef.current) {
const index = Math.round((carouselRef.current.scrollLeft / (carouselRef.current.scrollWidth * 0.7)) * TimeLineData.length);
const index = Math.round(
(carouselRef.current.scrollLeft /
(carouselRef.current.scrollWidth * 0.7)) *
TimeLineData.length
);

setActiveItem(index);
}
}
};

// snap back to beginning of scroll when window is resized
// avoids a bug where content is covered up if coming from smaller screen
useEffect(() => {
const handleResize = () => {
scroll(carouselRef.current, 0);
}
};

window.addEventListener('resize', handleResize);
window.addEventListener("resize", handleResize);
}, []);

return (
<Section id="about">
<SectionTitle>About Me</SectionTitle>
<SectionText>
The purpose of JavaScript Mastery is to help aspiring and established developers to take their development skills to the next level and build awesome apps.
The purpose of HolderDesigns is to bring valuable design and development solutions
to assist with modern business problems.
</SectionText>
<CarouselContainer ref={carouselRef} onScroll={handleScroll}>
<>
{TimeLineData.map((item, index) => (
<CarouselMobileScrollNode
key={index}
final={index === TOTAL_CAROUSEL_COUNT - 1}>
final={index === TOTAL_CAROUSEL_COUNT - 1}
>
<CarouselItem
index={index}
id={`carousel__item-${index}`}
active={activeItem}
onClick={(e) => handleClick(e, index)}>
onClick={(e) => handleClick(e, index)}
>
<CarouselItemTitle>
{`${item.year}`}
<CarouselItemImg
width="208"
height="6"
viewBox="0 0 208 6"
fill="none"
xmlns="http://www.w3.org/2000/svg">
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
Expand All @@ -81,7 +106,8 @@ const Timeline = () => {
y1="0.5"
x2="208"
y2="0.500295"
gradientUnits="userSpaceOnUse">
gradientUnits="userSpaceOnUse"
>
<stop stop-color="white" />
<stop
offset="0.79478"
Expand All @@ -106,7 +132,8 @@ const Timeline = () => {
index={index}
active={activeItem}
onClick={(e) => handleClick(e, index)}
type="button">
type="button"
>
<CarouselButtonDot active={activeItem} />
</CarouselButton>
);
Expand Down
Loading