Skip to content

Commit

Permalink
Add about page
Browse files Browse the repository at this point in the history
  • Loading branch information
HyunnoH committed Jan 2, 2025
1 parent 5c253c3 commit b779ac9
Show file tree
Hide file tree
Showing 5 changed files with 177 additions and 173 deletions.
38 changes: 38 additions & 0 deletions src/components/header.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { css } from "@emotion/react";
import { Link } from "gatsby";

const headerStyle = css`
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 0px 48px;
background-color: white;
`;

const headerMenu = css`
list-style-type: none;
display: flex;
gap: 16px;
`;

export function Header() {
return (
<header css={headerStyle}>
<div>HyunnoH.github.io</div>
<div>
<menu css={headerMenu}>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About me</Link>
</li>
<li>
<Link to="/blog">Blog</Link>
</li>
</menu>
</div>
</header>
);
}
15 changes: 15 additions & 0 deletions src/components/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { ReactNode } from "react";
import { Header } from "./header";

type Props = {
children: ReactNode;
};

export function Layout({ children }: Props) {
return (
<div>
<Header />
{children}
</div>
);
}
Binary file added src/images/1735821869641-21.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
81 changes: 81 additions & 0 deletions src/pages/about.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import { HeadFC, PageProps } from "gatsby";
import { Layout } from "../components/layout";
import React from "react";
import { css } from "@emotion/react";
import myPic from "../images/1735821869641-21.jpg";

const pageStyles = css`
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 96px;
font-family: -apple-system, Roboto, sans-serif, serif;
h2 {
text-decoration: underline;
}
`;

const summary = css`
display: flex;
gap: 24px;
`;

const profilePicture = css`
width: 300px;
height: 300px;
`;

const AboutPage: React.FC<PageProps> = () => {
return (
<Layout>
<main css={pageStyles}>
<h1>About me</h1>
<section css={summary}>
<img src={myPic} alt="profile" css={profilePicture} />
<div>
<p>재밌게 살고 싶은 개발자 오현입니다.</p>
<div>Links</div>
</div>
</section>
<section>
<h2>WORK EXPERIENCE</h2>
<h3>
몬드리안에이아이 <i>Incheon, South Korea</i>
</h3>
<h4>프론트엔드 개발자 / 백엔드 개발자</h4>
<div>2020.02 - 현재</div>
<ul>
<li>
Kubernetes 기반 MLOps 플랫폼 Yennefer의 프론트엔드 & 백엔드 개발
</li>
<li>SK디스커버리 Data Intelligence Platform 백엔드 개발</li>
</ul>
</section>
<section>
<h2>SKILLS</h2>
<h3>Web Development</h3>
<ul>
<li>TypeScript</li>
<li>React.js</li>
<li>Node.js</li>
<li>NestJS</li>
</ul>
</section>
<section>
<h2>EDUCATION</h2>
<ul>
<li>
<b>Incheon Electronic Meister High School</b>, Incheon, South
Korea (2017-2019)
</li>
</ul>
</section>
</main>
</Layout>
);
};

export default AboutPage;

export const Head: HeadFC = () => <title>About me</title>;
216 changes: 43 additions & 173 deletions src/pages/index.tsx
Original file line number Diff line number Diff line change
@@ -1,192 +1,62 @@
import * as React from "react";
import type { HeadFC, PageProps } from "gatsby";
import { StaticImage } from "gatsby-plugin-image";
import { FaGithub, FaLinkedin } from "react-icons/fa6";
import { Layout } from "../components/layout";
import { css } from "@emotion/react";

const pageStyles = {
color: "#232129",
padding: 96,
fontFamily: "-apple-system, Roboto, sans-serif, serif",
};
const headingStyles = {
marginTop: 0,
marginBottom: 64,
maxWidth: 320,
};
const headingAccentStyles = {
color: "#663399",
};
const paragraphStyles = {
marginBottom: 48,
};
const codeStyles = {
color: "#8A6534",
padding: 4,
backgroundColor: "#FFF4DB",
fontSize: "1.25rem",
borderRadius: 4,
};
const listStyles = {
marginBottom: 96,
paddingLeft: 0,
};
const doclistStyles = {
paddingLeft: 0,
};
const listItemStyles = {
fontWeight: 300,
fontSize: 24,
maxWidth: 560,
marginBottom: 30,
};

const linkStyle = {
color: "#8954A8",
fontWeight: "bold",
fontSize: 16,
verticalAlign: "5%",
};

const docLinkStyle = {
...linkStyle,
listStyleType: "none",
display: `inline-block`,
marginBottom: 24,
marginRight: 12,
};

const descriptionStyle = {
color: "#232129",
fontSize: 14,
marginTop: 10,
marginBottom: 0,
lineHeight: 1.25,
};
const pageStyles = css`
display: flex;
flex-direction: column;
justify-content: space-between;
// color: #232129;
padding: 96px;
font-family: -apple-system, Roboto, sans-serif, serif;
`;

const docLinks = [
{
text: "TypeScript Documentation",
url: "https://www.gatsbyjs.com/docs/how-to/custom-configuration/typescript/",
color: "#8954A8",
},
{
text: "GraphQL Typegen Documentation",
url: "https://www.gatsbyjs.com/docs/how-to/local-development/graphql-typegen/",
color: "#8954A8",
},
];
const linkBox = css`
display: flex;
justify-content: center;
gap: 24px;
`;

const badgeStyle = {
color: "#fff",
backgroundColor: "#088413",
border: "1px solid #088413",
fontSize: 11,
fontWeight: "bold",
letterSpacing: 1,
borderRadius: 4,
padding: "4px 6px",
display: "inline-block",
position: "relative" as "relative",
top: -2,
marginLeft: 10,
lineHeight: 1,
};
const iconBox = css`
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border: 2px solid #232129;
font-size: 32px;
width: 48px;
height: 48px;
`;

const links = [
{
text: "Tutorial",
url: "https://www.gatsbyjs.com/docs/tutorial/getting-started/",
description:
"A great place to get started if you're new to web development. Designed to guide you through setting up your first Gatsby site.",
color: "#E95800",
},
{
text: "How to Guides",
url: "https://www.gatsbyjs.com/docs/how-to/",
description:
"Practical step-by-step guides to help you achieve a specific goal. Most useful when you're trying to get something done.",
color: "#1099A8",
},
{
text: "Reference Guides",
url: "https://www.gatsbyjs.com/docs/reference/",
description:
"Nitty-gritty technical descriptions of how Gatsby works. Most useful when you need detailed information about Gatsby's APIs.",
color: "#BC027F",
},
{
text: "Conceptual Guides",
url: "https://www.gatsbyjs.com/docs/conceptual/",
description:
"Big-picture explanations of higher-level Gatsby concepts. Most useful for building understanding of a particular topic.",
color: "#0D96F2",
},
{
text: "Plugin Library",
url: "https://www.gatsbyjs.com/plugins",
description:
"Add functionality and customize your Gatsby site or app with thousands of plugins built by our amazing developer community.",
color: "#8EB814",
icon: <FaLinkedin />,
to: "https://www.linkedin.com/in/hyunnoh01",
tooltip: "LinkedIn",
},
{
text: "Build and Host",
url: "https://www.gatsbyjs.com/cloud",
badge: true,
description:
"Now you’re ready to show the world! Give your Gatsby site superpowers: Build and host on Gatsby Cloud. Get started for free!",
color: "#663399",
icon: <FaGithub />,
to: "https://github.com/HyunnoH",
tooltip: "GitHub",
},
];

const IndexPage: React.FC<PageProps> = () => {
return (
<main style={pageStyles}>
<h1 style={headingStyles}>
Congratulations
<br />
<span style={headingAccentStyles}>
— you just made a Gatsby site! 🎉🎉🎉
</span>
</h1>
<p style={paragraphStyles}>
Edit <code style={codeStyles}>src/pages/index.tsx</code> to see this
page update in real-time. 😎
</p>
<ul style={doclistStyles}>
{docLinks.map((doc) => (
<li key={doc.url} style={docLinkStyle}>
<a
style={linkStyle}
href={`${doc.url}?utm_source=starter&utm_medium=ts-docs&utm_campaign=minimal-starter-ts`}
>
{doc.text}
<Layout>
<main css={pageStyles}>
<div css={linkBox}>
{links.map(({ icon, to, tooltip }) => (
<a href={to}>
<div css={iconBox}>{icon}</div>
</a>
</li>
))}
</ul>
<ul style={listStyles}>
{links.map((link) => (
<li key={link.url} style={{ ...listItemStyles, color: link.color }}>
<span>
<a
style={linkStyle}
href={`${link.url}?utm_source=starter&utm_medium=start-page&utm_campaign=minimal-starter-ts`}
>
{link.text}
</a>
{link.badge && (
<span style={badgeStyle} aria-label="New Badge">
NEW!
</span>
)}
<p style={descriptionStyle}>{link.description}</p>
</span>
</li>
))}
</ul>
<img
alt="Gatsby G Logo"
src="data:image/svg+xml,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 110 20 10 10 0 010-20zm0 2c-3.73 0-6.86 2.55-7.75 6L14 19.75c3.45-.89 6-4.02 6-7.75h-5.25v1.5h3.45a6.37 6.37 0 01-3.89 4.44L6.06 9.69C7 7.31 9.3 5.63 12 5.63c2.13 0 4 1.04 5.18 2.65l1.23-1.06A7.959 7.959 0 0012 4zm-8 8a8 8 0 008 8c.04 0 .09 0-8-8z' fill='%23639'/%3E%3C/svg%3E"
/>
</main>
))}
</div>
</main>
</Layout>
);
};

Expand Down

0 comments on commit b779ac9

Please sign in to comment.