This repository has been archived by the owner on May 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
James Manes
committed
Feb 27, 2022
1 parent
913b774
commit e5c65da
Showing
13 changed files
with
277 additions
and
509 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
import React from 'react'; | ||
import styled from 'styled-components'; | ||
|
||
/** | ||
* A component that displays a name and biography. | ||
* | ||
* @author James Manes ([email protected]) | ||
*/ | ||
const About = () => { | ||
|
||
const About = styled.div` | ||
` | ||
const Link = styled.a` | ||
color: white; | ||
` | ||
const Header = styled.h1` | ||
margin: 0; | ||
` | ||
|
||
const Biography = styled.p` | ||
` | ||
|
||
const Paragraph = styled.p` | ||
margin-bottom: 4px; | ||
:last-child { | ||
margin-top: 2px; | ||
} | ||
` | ||
|
||
return( | ||
<About> | ||
<Header>James Manes</Header> | ||
<div> | ||
<Biography> | ||
Senior Software Engineer passionate about clean code and concise | ||
documentation. | ||
</Biography> | ||
<Paragraph> | ||
🎓 Bachelor & Master of Science from <Link rel="noopener noreferrer" | ||
href="https://ucmo.edu" target="_blank">UCM</Link>. | ||
</Paragraph> | ||
<Paragraph> | ||
💼 Currently employed at <Link rel="noopener noreferrer" | ||
href="https://www.cerner.com/" target="_blank">Cerner Corporation</Link>. | ||
</Paragraph> | ||
</div> | ||
</About> | ||
); | ||
} | ||
|
||
export default About; |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
import styled, { keyframes} from 'styled-components'; | ||
import Image from '../../img/photo.jpg'; | ||
|
||
const rotate = keyframes` | ||
to { | ||
transform: rotate(360deg); | ||
} | ||
` | ||
|
||
const Avatar = styled.div` | ||
background-image: url(${Image}); | ||
background-size: 100%; | ||
outline-offset: 10px; | ||
border-radius: 100%; | ||
margin-right: 20px; | ||
width: 150px; | ||
height: 150px; | ||
position: relative; | ||
:before { | ||
animation: ${rotate} 60s linear infinite; | ||
outline: 4px dotted rgba(255, 255, 255, 0.1); | ||
postion: absolute; | ||
display: block; | ||
border-radius: 100%; | ||
outline-offset: 10px; | ||
width: 150px; | ||
height: 150px; | ||
content: ''; | ||
} | ||
` | ||
|
||
export default Avatar; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
import React from 'react'; | ||
import styled from 'styled-components'; | ||
|
||
const Button = ({ children, angle, href }) => { | ||
const OuterButton = styled.a` | ||
border-radius: 10px; | ||
display: inline-block; | ||
background: rgba(240, 0, 20, 0.4); | ||
text-decoration: none; | ||
text-align: center; | ||
line-height: 30px; | ||
min-width: 100px; | ||
margin-left: 20px; | ||
user-select: none; | ||
color: white; | ||
transform: rotate(${props => props.angle}deg); | ||
transition: transform .2s; | ||
:first-child { | ||
margin-left: 0; | ||
} | ||
:hover { | ||
text-decoration: underline; | ||
transform: scale(1.2); | ||
cursor: pointer; | ||
} | ||
:focus { | ||
outline: 4px solid rgba(0, 0, 0, 0.3); | ||
} | ||
` | ||
const InnerButton = styled.div` | ||
border-radius: 5px; | ||
background: rgba(0, 0, 0, 0.3); | ||
margin: 6px; | ||
transform: rotate(-${props => props.angle}deg); | ||
` | ||
|
||
return ( | ||
<OuterButton angle={angle} href={href} rel="noopener noreferrer" target="_blank"> | ||
<InnerButton angle={angle}> | ||
{children} | ||
</InnerButton> | ||
</OuterButton> | ||
) | ||
} | ||
|
||
export default Button; |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,57 +1,31 @@ | ||
import React from 'react'; | ||
import styled, { keyframes} from 'styled-components'; | ||
import styled from 'styled-components'; | ||
import Button from './Button'; | ||
|
||
/** | ||
* Represents the navigation bar. | ||
* Navigation bar component. | ||
* | ||
* @author James Manes ([email protected]) | ||
*/ | ||
const Navigation = () => { | ||
|
||
const randomAngle = () => { | ||
return Math.floor((Math.random() * 3) + 1); | ||
return Math.floor((Math.random() * 4) + 1); | ||
} | ||
|
||
const angle1 = randomAngle(); | ||
const angle2 = randomAngle(); | ||
|
||
const Button = styled.a` | ||
border-radius: 10px; | ||
display: inline-block; | ||
background: rgba(240, 0, 20, 0.4); | ||
text-decoration: none; | ||
text-align: center; | ||
line-height: 30px; | ||
min-width: 100px; | ||
margin-right: 8px; | ||
margin-left: 8px; | ||
user-select: none; | ||
color: white; | ||
transform: rotate(${props => props.angle}deg); | ||
` | ||
const InnerButton = styled.div` | ||
border-radius: 5px; | ||
background: rgba(0, 0, 0, 0.3); | ||
margin: 6px; | ||
transform: rotate(-${props => props.angle}deg); | ||
const ButtonContainer = styled.div` | ||
margin-top: 20px | ||
` | ||
|
||
return( | ||
<div id="navigation"> | ||
<ButtonContainer> | ||
<Button href="http://stackoverflow.com/story/jmanes" | ||
rel="noopener noreferrer" target="_blank" | ||
className="navigation-item" | ||
angle={angle1}> | ||
<InnerButton angle={angle1}>History</InnerButton> | ||
</Button> | ||
angle={randomAngle()}>History</Button> | ||
<Button href="https://www.linkedin.com/in/jamesmanes" | ||
rel="noopener noreferrer" target="_blank" | ||
className="navigation-item" | ||
angle={angle2}> | ||
<InnerButton angle={angle2}>LinkedIn</InnerButton> | ||
</Button> | ||
</div> | ||
angle={randomAngle()}>LinkedIn</Button> | ||
<Button href="https://jmanes.blog" | ||
angle={randomAngle()}>Blog</Button> | ||
</ButtonContainer> | ||
); | ||
} | ||
|
||
|
Oops, something went wrong.