Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"preview": "vite preview"
},
"dependencies": {
"@types/styled-components": "^5.1.34",
"axios": "^1.7.9",
"react": "^18.3.1",
"react-dom": "^18.3.1",
Expand Down
Binary file added src/assets/FarmLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
84 changes: 84 additions & 0 deletions src/components/Header/Header.styled.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import styled from "styled-components";

// Styled Components 정의
export const HeaderContainer = styled.header`
display: flex;
flex-grow: 1;
flex-align: flex-end;
align-items: center;
background-color: var(--FarmSystem_White);
padding: 0.5rem 1rem;
width: auto;
height: 70px;
font-style: normal;
padding-bottom: 0px;
border-bottom: 4px solid var(--FarmSystem_White);
`;

export const Nav = styled.nav`
padding-top: 40px;
width: 600px;
flex-grow: 1;
text-align: center;
display: flex;
justify-content: center;
padding-right: 420px;
padding-bottom: 0px;
`;

export const NavList = styled.ul`
list-style: none;
display: flex;
flex: 1 1 auto;
justify-content: center;

padding: 0;
margin: 0;
margin-left: 100px;


li {
color: var(--FarmSystem_Green04);
width: 120px;
font-weight: 400;
font-size: 16px;
&:hover {
color: var(--FarmSystem_Green01);
border-bottom: 2px solid var(--FarmSystem_Green01);
}
border-bottom: 2px solid var(--FarmSystem_Green04);
}
`;

export const Button = styled.button`
width: 120px;
height: 40px;

margin-right: 0px;
margin-top: 5px;

box-shadow: 0px 2px 10px 0px #19191933;

font-style: normal;
font-weight: 400;
font-size: 16px;

text-align: center;
border-radius: 10px;
background-color: var(--FarmSystem_Green01);
color: var(--FarmSystem_White);
&:hover {
background-color: #1f5a2f;
}
`;

export const TextBlock = styled.div`
font-size: 20px;
font-weight: 700;
color: #28723f;
text-align: center;

margin-top: 5px;
margin-left: 20px;
`
;
24 changes: 24 additions & 0 deletions src/components/Header/Header.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import * as S from './Header.styled.tsx';


export default function Header() {
return (
<S.HeaderContainer>
<S.TextBlock>
Farm System
</S.TextBlock>
<S.Nav>
<S.NavList>
<li><a href="#home">홈</a></li>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
헤더 라우팅이 잘못된 것 같습니다...
저희 헤더가 두개가 있는데 디자인 해주신건 최상단 헤더같은데 초기 세팅해주신 헤더는 두번째 헤더(목차)인것 같습니다.

이부분 고쳐주시면 머지해도 될 것 같습니다!!
추후 수빈님 PR까지 머지하면 팝업을 공통 컴포넌트로 분리하는 방안도 좋아보입니다!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네 지금 일정으로 인해 밖이라, 오늘 밤까지 해결하겠습니다! 감사합니다:)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네 지금 일정으로 인해 밖이라, 오늘 밤까지 해결하겠습니다! 감사합니다:)

<li><a href="#about">블로그 / 프로젝트</a></li>
<li><a href="#tracks">소식</a></li>
<li><a href="#contact">FAQ</a></li>
<li><a href="#contact">지원하기</a></li>
</S.NavList>
</S.Nav>
<S.Button>
파밍로그
</S.Button>
</S.HeaderContainer>
);
}
14 changes: 0 additions & 14 deletions src/components/Header/Heder.tsx

This file was deleted.

2 changes: 1 addition & 1 deletion src/components/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { default } from "./Header/Heder";
export { default } from "./Header/Header";
125 changes: 125 additions & 0 deletions src/pages/Main/Intro/Intro.styled.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
import styled from 'styled-components';

export const Container = styled.div`
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
height: 110vh;
background: linear-gradient(90deg, #28723F, #A2E9B8);
padding: 50px;
color: white;
`;

export const Logo = styled.div`
display: flex;
align-items: center;
font-size: 64px;
font-weight: 800;

margin-bottom: 20px;
margin-left: 50px;
`;

export const Description = styled.p`
font-size: 24px;
line-height: 1.5;
max-width: 600px;


margin-bottom: 20px;
margin-left: 50px;
`;

export const TrackList = styled.p`
a {
font-weight: 600;
}
font-size: 24px;
line-height: 1.5;

margin-top: 20px;
margin-bottom: 20px;
margin-left: 50px;

`;

export const Apply = styled.div`
display: flex;
align-items: center;
justify-content: space-between;

margin-left: 50px;
`;

export const ApplyButton = styled.button`
background-color: #4CAF50;
color: white;
border: none;
padding: 15px 80px;
border-radius: 10px;
font-size: 24px;
margin-top: 20px;

box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);

&:hover {
background-color: #388E3C;
}
`;

export const ApplyDescription = styled.div`
font-size: 16px;
margin-left: 20px;
margin-top: 15px;
color: #E8F5E9;
`;

export const Bud = styled.div`
margin-left: 100px;
font-size: 64px;
top: 116px;
margin-left: 50px;
`;


/* 팝업 -> 수빈님 것과 통일 */
export const PopupOverlay = styled.div`
position: fixed;
inset: 0;
background: rgba(113, 113, 113, 0.3);
display: flex;
align-items: center;
justify-content: center;
`;

export const PopupBox = styled.div`
width: 500px;
background-color: #fcfcfc;
border: 3px solid #28723f;
border-radius: 15px;
text-align: center;
padding: 40px;
`;

export const PopupText = styled.p`
font-size: 20px;
color: black;
margin-bottom: 20px;
`;

export const PopupCloseButton = styled.button`
background-color: #28723f;
color: #fcfcfc;
font-size: 16px;
padding: 10px 20px;
border: none;
border-radius: 10px;
cursor: pointer;
box-shadow: 0px 2px 10px rgba(25, 25, 25, 0.2);
width: 100px;
margin-top: 20px;
&:hover {
background-color: #1f5b30;
}
`;
47 changes: 42 additions & 5 deletions src/pages/Main/Intro/Intro.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,44 @@
export default function Intro() {
import * as S from './Intro.styled.tsx';
import logo from '../../../assets/FarmLogo.png';
import { useState } from 'react';

const Intro = () => {
const [isPopupOpen, setPopupOpen] = useState(false);
return (
<div>
<h2>Intro Section</h2>
</div>
<S.Container>
<S.Bud>🌱</S.Bud>
<S.Description>
미래를 준비하고 성장하는 여정, <br />
Farm System에서 함께하세요.
</S.Description>
<S.Logo>
<img src = {logo} alt = "" />
Farm System
</S.Logo>

<S.TrackList>
SW/AI 분야에 관심있는 학생들로 구성된 <a>자율 학습 동아리</a>로, <br/>
<a>Union · 게임/영상 · 보안/웹 · 사물인터넷/로봇 · 인공지능 · 빅데이터</a>의 <br/>
5가지 신기술 트랙을 제공하여 학습 경험을 통해 SW/AI 역량을 배양합니다.
</S.TrackList>
<S.Apply>
<S.ApplyButton onClick={() => setPopupOpen(true)}> 지원하기 </S.ApplyButton>
<S.ApplyDescription>2025년 2월 공개 모집 예정</S.ApplyDescription>
</S.Apply>


{/* 팝업 수빈님 것과 통일 */}
{isPopupOpen && (
<S.PopupOverlay onClick={() => setPopupOpen(false)}>
<S.PopupBox onClick={(e) => e.stopPropagation()}>
<S.PopupText>지금은 모집 기간이 아닙니다.</S.PopupText>
<S.PopupText>공개 모집 예정: 2025년 2월</S.PopupText>
<S.PopupCloseButton onClick={() => setPopupOpen(false)}>확인</S.PopupCloseButton>
</S.PopupBox>
</S.PopupOverlay>
)}
</S.Container>
);
}
};

export default Intro;