diff --git a/src/components/pages/home.js b/src/components/pages/home.js index 3ac86f2..219edd8 100644 --- a/src/components/pages/home.js +++ b/src/components/pages/home.js @@ -1,14 +1,16 @@ import React, {Component} from 'react'; import Header from '../shared/header/header'; import Footer from "../shared/footer/footer"; -import Content from '../shared/content/content'; +import Introduction from '../shared/introduction/introduction'; +import Bio from '../shared/bio/bio'; class Home extends Component { render() { return (
- + +
); diff --git a/src/components/shared/bio/bio.css b/src/components/shared/bio/bio.css new file mode 100644 index 0000000..e69de29 diff --git a/src/components/shared/bio/bio.js b/src/components/shared/bio/bio.js new file mode 100644 index 0000000..cff343a --- /dev/null +++ b/src/components/shared/bio/bio.js @@ -0,0 +1,23 @@ +import React, {Component} from 'react'; + +class Bio extends Component { + render() { + return ( +
+
+
+
+

+ My name is Giovani Rodriguez and I create tools, applications and websites as solutions for individuals or businesses that need them. + I am problem solver, solution maker upper and answer deilverer. I'm always itching to learn something new and striving to deliver my best. When I'm not + creating I am either reading, writing or spending time with the people that I care. +

+
+
+
+
+ ); + } +} + +export default Bio; \ No newline at end of file diff --git a/src/components/shared/content/content.css b/src/components/shared/content/content.css deleted file mode 100644 index 8b6c64d..0000000 --- a/src/components/shared/content/content.css +++ /dev/null @@ -1,3 +0,0 @@ -.align-text-top { - line-height: 100%; -} \ No newline at end of file diff --git a/src/components/shared/content/content.js b/src/components/shared/content/content.js deleted file mode 100644 index c5e7381..0000000 --- a/src/components/shared/content/content.js +++ /dev/null @@ -1,91 +0,0 @@ -import React, {Component} from 'react'; -import ProfilePicture from '../../../images/home/profilePicture.jpg'; -import "./content.css"; - -const lineOneText = 'Hi, my name is Giovani.'; -const lineTwoText = 'I am a software developer.'; - -class Content extends Component { - constructor(props) { - super(props); - - let typingInterval = this.startTyping(); - this.state = { - currentLineOne: '', - currentLineTwo: '', - currentCharLineOne: 0, - currentCharLineTwo: 0, - isCursorVisible: false, - typingInterval: typingInterval, - cursorBlinkingInterval: null - }; - } - - getLineOneText = () => { - return lineOneText; - } - - getLineTwoText = () => { - return lineTwoText; - } - - startTyping = () => { - let typingInterval = setInterval(this.type, 55); - return typingInterval; - } - - startBlinking = () => { - let blinkingInterval = setInterval(this.blink, 100); - } - - type = () => { - let { currentLineOne, - currentCharLineOne, - interval } = this.state; - - if (currentCharLineOne === 0 || currentCharLineOne !== this.getLineOneText().length) { - currentLineOne += this.getLineOneText()[currentCharLineOne]; - } else { - clearInterval(interval); - return; - } - - currentCharLineOne++; - this.setState({ currentLineOne: currentLineOne, - currentCharLineOne: currentCharLineOne }); - } - - blink = () => { - - } - - getCursorClasses = () => { - let isCursorVisible = this.state.isCursorVisible; - return `align-text-top ${isCursorVisible ? 'visible' : 'invisible'}`; - } - - render() { - return ( -
-
-
-
- Giovani's Face -
-
-
-
-

{this.state.currentLineOne}|

-

{this.state.currentLineTwo}

-
-
-
-
- ); - } - - // componentDidUpdate() { - // } -} - -export default Content; \ No newline at end of file diff --git a/src/components/shared/header/header.js b/src/components/shared/header/header.js index deb2616..4b51133 100644 --- a/src/components/shared/header/header.js +++ b/src/components/shared/header/header.js @@ -7,10 +7,16 @@ class Header extends Component {
-

Home

+

Intro

-

About Me

+

Bio

+
+
+

Portfolio

+
+
+

Skills

Contact

diff --git a/src/components/shared/introduction/introduction.css b/src/components/shared/introduction/introduction.css new file mode 100644 index 0000000..df89562 --- /dev/null +++ b/src/components/shared/introduction/introduction.css @@ -0,0 +1,13 @@ +#introduction { + +} + +.intro-background { + background-image: url("../../../images/home/introductionBackground2.jpg"); + background-repeat: no-repeat; + background-size: cover; +} + +.align-text-top { + line-height: 100%; +} \ No newline at end of file diff --git a/src/components/shared/introduction/introduction.js b/src/components/shared/introduction/introduction.js new file mode 100644 index 0000000..40f2b54 --- /dev/null +++ b/src/components/shared/introduction/introduction.js @@ -0,0 +1,117 @@ +import React, {Component} from 'react'; +import ProfilePicture from '../../../images/home/profilePicture.jpg'; +import "./introduction.css"; + +const lineOneText = 'Hi, my name is Giovani.'; +const lineTwoText = 'I am a software developer. '; + +class Introduction extends Component { + constructor(props) { + super(props); + + let typingInterval = this.startTyping(); + this.state = { + currentLineOne: '', + currentLineTwo: '', + currentCharLineOne: 0, + currentCharLineTwo: 0, + isCursorOneVisible: true, + isCursorTwoVisible: false, + typingInterval: typingInterval, + cursorBlinkingInterval: null + }; + } + + getLineOneText = () => { + return lineOneText; + } + + getLineTwoText = () => { + return lineTwoText; + } + + startTyping = () => { + let typingInterval = setInterval(this.type, 55); + return typingInterval; + } + + startBlinking = () => { + let blinkingInterval = setInterval(this.blink, 125); + return blinkingInterval; + } + + type = () => { + let { currentLineOne, + currentCharLineOne, + currentLineTwo, + currentCharLineTwo, + typingInterval, + blinkingInterval, + isCursorOneVisible, + isCursorTwoVisible } = this.state; + + if (currentCharLineOne === 0 || currentCharLineOne !== this.getLineOneText().length) { + isCursorOneVisible = true; + isCursorTwoVisible = false; + currentLineOne += this.getLineOneText()[currentCharLineOne]; + currentCharLineOne++; + } else if (currentCharLineTwo === 0 || currentCharLineTwo !== this.getLineTwoText().length) { + isCursorOneVisible = false; + isCursorTwoVisible = true; + currentLineTwo += this.getLineTwoText()[currentCharLineTwo]; + currentCharLineTwo++; + } else { + clearInterval(typingInterval); + blinkingInterval = setInterval(this.blink, 500, 2); + } + + this.setState({ currentLineOne: currentLineOne, + currentCharLineOne: currentCharLineOne, + currentLineTwo: currentLineTwo, + currentCharLineTwo: currentCharLineTwo, + blinkingInterval: blinkingInterval, + isCursorOneVisible: isCursorOneVisible, + isCursorTwoVisible: isCursorTwoVisible }); + } + + blink = (cursorNumber) => { + if (cursorNumber === 1) { + this.setState({ isCursorOneVisible: !this.state.isCursorOneVisible }); + } else { + this.setState({ isCursorTwoVisible: !this.state.isCursorTwoVisible }); + } + } + + getCursorClasses = (cursorNumber) => { + let isCursorVisible = cursorNumber === 1 ? this.state.isCursorOneVisible : this.state.isCursorTwoVisible; + return `align-text-top ${isCursorVisible ? 'visible' : 'invisible'}`; + } + + render() { + return ( +
+
+
+
+ Giovani's Face +
+
+
+
+

{this.state.currentLineOne}|

+

{this.state.currentLineTwo}|

+
+
+ +
+
+
+
+ ); + } + + // componentDidUpdate() { + // } +} + +export default Introduction; \ No newline at end of file diff --git a/src/components/shared/portfolio/portfolio.js b/src/components/shared/portfolio/portfolio.js new file mode 100644 index 0000000..77ba1d7 --- /dev/null +++ b/src/components/shared/portfolio/portfolio.js @@ -0,0 +1,23 @@ +import React, {Component} from 'react'; + +class Portfolio extends Component { + render() { + return ( +
+
+
+
+

+ My name is Giovani Rodriguez and I create tools, applications and websites as solutions for individuals or businesses that need them. + I am problem solver, solution maker upper and answer deilverer. I'm always itching to learn something new and striving to deliver my best. When I'm not + creating I am either reading, writing or spending time with the people that I care. +

+
+
+
+
+ ); + } +} + +export default Portfolio; \ No newline at end of file diff --git a/src/images/home/desktop.ini b/src/images/home/desktop.ini new file mode 100644 index 0000000..04f6582 --- /dev/null +++ b/src/images/home/desktop.ini @@ -0,0 +1,2 @@ +[LocalizedFileNames] +introductionBackground.jpg=@introductionBackground.jpg,0 diff --git a/src/images/home/introductionBackground.jpg b/src/images/home/introductionBackground.jpg new file mode 100644 index 0000000..273e41c Binary files /dev/null and b/src/images/home/introductionBackground.jpg differ diff --git a/src/images/home/introductionBackground2.jpg b/src/images/home/introductionBackground2.jpg new file mode 100644 index 0000000..d36b6e1 Binary files /dev/null and b/src/images/home/introductionBackground2.jpg differ