From cb7a7779473b6d924334c7421ec3929dd495cdc0 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 14:36:00 +0900
Subject: [PATCH 01/10] =?UTF-8?q?feat:=20Union=20=EC=84=B9=EC=85=98=20?=
=?UTF-8?q?=EA=B8=B0=EC=B4=88=20=ED=8B=80=20=EC=9E=A1=EA=B8=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/ContentBox.tsx | 38 +++++++++++++++++++++++++++++
src/pages/Main/Union/Union.tsx | 34 +++++++++++++++++++++++---
2 files changed, 69 insertions(+), 3 deletions(-)
create mode 100644 src/pages/Main/Union/ContentBox.tsx
diff --git a/src/pages/Main/Union/ContentBox.tsx b/src/pages/Main/Union/ContentBox.tsx
new file mode 100644
index 0000000..d63ecb0
--- /dev/null
+++ b/src/pages/Main/Union/ContentBox.tsx
@@ -0,0 +1,38 @@
+import styled from "styled-components";
+
+export default function ContentBox() {
+ return (
+
+
+
+
+ );
+}
+
+const ContentBoxBorder = styled.div`
+ width: 700px;
+ height: 500px;
+ background: linear-gradient(
+ 90deg,
+ var(--FarmSystem_Orange) 0%,
+ var(--FarmSystem_Green02) 100%
+ );
+ padding: 5px;
+ border-radius: 20px;
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`
+
+const Content = styled.div`
+ width: 100%;
+ height: 100%;
+ background-color: var(--FarmSystem_White);
+ border-radius: 15px;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`
\ No newline at end of file
diff --git a/src/pages/Main/Union/Union.tsx b/src/pages/Main/Union/Union.tsx
index b67f0c2..8d4770d 100644
--- a/src/pages/Main/Union/Union.tsx
+++ b/src/pages/Main/Union/Union.tsx
@@ -1,7 +1,35 @@
+import styled from "styled-components";
+import ContentBox from "./ContentBox";
+
export default function Union() {
return (
-
-
Union Section
-
+
);
}
+
+const Container = styled.section`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ height: 1500px;
+`
+
+const UnionText = styled.h2`
+ width: 132px;
+ height: 57px;
+
+ text-align: center;
+ color: var(--FarmSystem_Orange);
+ font-size: 48px;
+ font-weight: 700;
+
+ margin-top: 70px;
+ margin-bottom: 50px;
+`
+
From 6e7a14d99ecd742f82b1b61063c0254da29ccfd5 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 15:32:59 +0900
Subject: [PATCH 02/10] =?UTF-8?q?feat:=20Union=20=EB=A0=88=EC=9D=B4?=
=?UTF-8?q?=EC=95=84=EC=9B=83=20=EC=BD=98=ED=85=90=EC=B8=A0=20=EB=B0=95?=
=?UTF-8?q?=EC=8A=A4=20=EC=A0=9C=EC=99=B8=ED=95=98=EA=B3=A0=20=EC=9A=94?=
=?UTF-8?q?=EC=86=8C=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/Union.tsx | 67 ++++++++++++++++++++++++++++++++--
1 file changed, 64 insertions(+), 3 deletions(-)
diff --git a/src/pages/Main/Union/Union.tsx b/src/pages/Main/Union/Union.tsx
index 8d4770d..908eeb4 100644
--- a/src/pages/Main/Union/Union.tsx
+++ b/src/pages/Main/Union/Union.tsx
@@ -5,7 +5,14 @@ export default function Union() {
return (
- Union
+
+ 신입생이라서
+ 어떤 트랙을 선택할지 고민되나요?
+
+
+ Union
+ New
+
@@ -13,11 +20,39 @@ export default function Union() {
}
const Container = styled.section`
- display: flex;
+ display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 1500px;
+
+ @media (max-width: 768px) {
+ padding: 20px; /* 모바일에서 여백 추가 */
+ height: auto; /* 필요에 따라 높이를 자동으로 조정 */
+ }
+`
+
+const IntroduceText = styled.p`
+ width: 500px;
+ height: 86px;
+
+ text-align: center;
+ color: var(--FarmSystem_Black);
+ font-style: normal;
+ font-weight: 500;
+ font-size: 36px;
+ line-height: 43px;
+
+ margin-bottom: 70px;
+
+ @media (max-width: 768px) {
+ width: 100%; /* 화면에 맞게 폭 확장 */
+ font-size: 24px;
+ line-height: 32px;
+ margin-bottom: 50px;
+ }
+
+
`
const UnionText = styled.h2`
@@ -29,7 +64,33 @@ const UnionText = styled.h2`
font-size: 48px;
font-weight: 700;
- margin-top: 70px;
margin-bottom: 50px;
+
+ @media (max-width: 768px) {
+ width: auto; /* 가로 제한 해제 */
+ font-size: 32px;
+ margin-bottom: 30px;
+ }
+
+ @media (max-width: 480px) {
+ font-size: 24px; /* 더 작은 화면에서는 폰트 크기 줄이기 */
+ }
`
+const NewBadge = styled.div`
+ width: 70px;
+ height: 25px;
+ background: var(--FarmSystem_Green02);
+ border-radius: 10px;
+
+ font-style: normal;
+ font-weight: 500;
+ font-size: 16px;
+ line-height: 19px;
+ color: var(--FarmSystem_White);
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+`
\ No newline at end of file
From e2494d322c84abb369b8ba20a5b76c5b77032e96 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 15:55:07 +0900
Subject: [PATCH 03/10] =?UTF-8?q?feat:=20New=20=EB=B1=83=EC=A7=80=EC=99=80?=
=?UTF-8?q?=20=EC=9C=A0=EB=8B=88=EC=98=A8=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20?=
=?UTF-8?q?=EC=A0=95=EB=A0=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/Union.tsx | 56 ++++++++++++++++++++++------------
1 file changed, 37 insertions(+), 19 deletions(-)
diff --git a/src/pages/Main/Union/Union.tsx b/src/pages/Main/Union/Union.tsx
index 908eeb4..9b23386 100644
--- a/src/pages/Main/Union/Union.tsx
+++ b/src/pages/Main/Union/Union.tsx
@@ -9,10 +9,10 @@ export default function Union() {
신입생이라서
어떤 트랙을 선택할지 고민되나요?
-
+
Union
New
-
+
@@ -25,12 +25,13 @@ const Container = styled.section`
justify-content: center;
align-items: center;
height: 1500px;
+ user-select: none;
@media (max-width: 768px) {
padding: 20px; /* 모바일에서 여백 추가 */
height: auto; /* 필요에 따라 높이를 자동으로 조정 */
}
-`
+`;
const IntroduceText = styled.p`
width: 500px;
@@ -51,33 +52,44 @@ const IntroduceText = styled.p`
line-height: 32px;
margin-bottom: 50px;
}
+`;
-
-`
+/*
+ 이걸 그리드로 해결한 건 진짜 레전드 씽크빅이다...
+ 진짜 이걸 어떻게 떠올렸지?????
+*/
+const UnionTextContainer = styled.div`
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr 1fr; /* 4분할 */
+ justify-items: center; /* 그리드 셀 내에서 중앙 정렬 */
+ align-items: center;
+ width: 280px;
+ margin-bottom: 50px;
-const UnionText = styled.h2`
- width: 132px;
- height: 57px;
+ @media (max-width: 768px) {
+ margin-bottom: 30px;
+ grid-template-columns: 1fr 2fr 1fr; /* 모바일에서는 더 간결하게 조정 가능 */
+ }
+`;
- text-align: center;
+const UnionText = styled.h2`
+ grid-column: 2 / 4; /* 두 번째에서 세 번째 그리드 셀을 차지 */
+ text-align: center;
color: var(--FarmSystem_Orange);
font-size: 48px;
- font-weight: 700;
-
- margin-bottom: 50px;
+ font-weight: 700;
@media (max-width: 768px) {
- width: auto; /* 가로 제한 해제 */
font-size: 32px;
- margin-bottom: 30px;
}
@media (max-width: 480px) {
- font-size: 24px; /* 더 작은 화면에서는 폰트 크기 줄이기 */
+ font-size: 24px;
}
-`
+`;
-const NewBadge = styled.div`
+const NewBadge = styled.div`
+ grid-column: 4 / 5; /* 네 번째 그리드 셀에 배치 */
width: 70px;
height: 25px;
background: var(--FarmSystem_Green02);
@@ -91,6 +103,12 @@ const NewBadge = styled.div`
display: flex;
align-items: center;
- justify-content: center;
+ justify-content: center;
text-align: center;
-`
\ No newline at end of file
+
+ @media (max-width: 768px) {
+ font-size: 14px;
+ width: 60px;
+ height: 22px;
+ }
+`;
\ No newline at end of file
From ee91eea8148454c31302c963e779033bead2dd01 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 16:16:18 +0900
Subject: [PATCH 04/10] =?UTF-8?q?feat:=20=EC=BD=98=ED=85=90=EC=B8=A0?=
=?UTF-8?q?=EB=B0=95=EC=8A=A4=20=EB=B0=B0=EA=B2=BD=20Gradiant=20=EC=B6=94?=
=?UTF-8?q?=EA=B0=80=20+=20refactor:=20=EC=8A=A4=ED=83=80=EC=9D=BC?=
=?UTF-8?q?=EB=93=9C=20=EB=94=B0=EB=A1=9C=20=EB=B6=84=EB=A6=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/ContentBox.styled.ts | 71 ++++++++++++++
src/pages/Main/Union/ContentBox.tsx | 45 +++------
src/pages/Main/Union/Union.styled.ts | 95 ++++++++++++++++++
src/pages/Main/Union/Union.tsx | 114 ++--------------------
4 files changed, 188 insertions(+), 137 deletions(-)
create mode 100644 src/pages/Main/Union/ContentBox.styled.ts
create mode 100644 src/pages/Main/Union/Union.styled.ts
diff --git a/src/pages/Main/Union/ContentBox.styled.ts b/src/pages/Main/Union/ContentBox.styled.ts
new file mode 100644
index 0000000..bed672f
--- /dev/null
+++ b/src/pages/Main/Union/ContentBox.styled.ts
@@ -0,0 +1,71 @@
+import styled from "styled-components";
+
+export const Container = styled.div`
+ width: 100%
+ heigh: 500px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: relative
+
+`
+
+export const ContentBoxBorder = styled.div`
+ position: absolute;
+ top: 0px;
+
+ width: 700px;
+ height: 500px;
+ background: linear-gradient(
+ 90deg,
+ var(--FarmSystem_Orange) 0%,
+ var(--FarmSystem_Green02) 100%
+ );
+ padding: 5px;
+ border-radius: 20px;
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ z-index: 10;
+`;
+
+export const Content = styled.div`
+ width: 100%;
+ height: 100%;
+ background-color: var(--FarmSystem_White);
+ border-radius: 15px;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`;
+
+export const GradientContainer = styled.div`
+ position: absolute;
+ top: 0px;
+
+ height: 500px;
+ display: flex;
+ gap: 80px;
+ justify-content: center;
+ align-items: center;
+`
+
+export const GradientLeft = styled.div`
+ width: 560px;
+ height: 400px;
+ background: linear-gradient(270deg, var(--FarmSystem_Orange) 50%, var(--FarmSystem_White) 100%);
+ opacity: 0.5;
+ border-radius: 20px;
+`;
+
+export const GradientRight = styled.div`
+ width: 560px;
+ height: 400px;
+ background: linear-gradient(90deg, var(--FarmSystem_Green02) 50%, var(--FarmSystem_White) 100%);
+ opacity: 0.5;
+ border-radius: 20px;
+`;
\ No newline at end of file
diff --git a/src/pages/Main/Union/ContentBox.tsx b/src/pages/Main/Union/ContentBox.tsx
index d63ecb0..a1aeed0 100644
--- a/src/pages/Main/Union/ContentBox.tsx
+++ b/src/pages/Main/Union/ContentBox.tsx
@@ -1,38 +1,17 @@
-import styled from "styled-components";
+import * as S from './ContentBox.styled';
export default function ContentBox() {
return (
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
);
}
-
-const ContentBoxBorder = styled.div`
- width: 700px;
- height: 500px;
- background: linear-gradient(
- 90deg,
- var(--FarmSystem_Orange) 0%,
- var(--FarmSystem_Green02) 100%
- );
- padding: 5px;
- border-radius: 20px;
-
- display: flex;
- justify-content: center;
- align-items: center;
-`
-
-const Content = styled.div`
- width: 100%;
- height: 100%;
- background-color: var(--FarmSystem_White);
- border-radius: 15px;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
-
- display: flex;
- justify-content: center;
- align-items: center;
-`
\ No newline at end of file
diff --git a/src/pages/Main/Union/Union.styled.ts b/src/pages/Main/Union/Union.styled.ts
new file mode 100644
index 0000000..0851e6e
--- /dev/null
+++ b/src/pages/Main/Union/Union.styled.ts
@@ -0,0 +1,95 @@
+import styled from "styled-components";
+
+export const Container = styled.section`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ height: 1500px;
+ user-select: none;
+
+ @media (max-width: 768px) {
+ padding: 20px; /* 모바일에서 여백 추가 */
+ height: auto; /* 필요에 따라 높이를 자동으로 조정 */
+ }
+`;
+
+export const IntroduceText = styled.p`
+ width: 500px;
+ height: 86px;
+
+ text-align: center;
+ color: var(--FarmSystem_Black);
+ font-style: normal;
+ font-weight: 500;
+ font-size: 36px;
+ line-height: 43px;
+
+ margin-bottom: 70px;
+
+ @media (max-width: 768px) {
+ width: 100%; /* 화면에 맞게 폭 확장 */
+ font-size: 24px;
+ line-height: 32px;
+ margin-bottom: 50px;
+ }
+`;
+
+/*
+ 이걸 그리드로 해결한 건 진짜 레전드 씽크빅이다...
+ 진짜 이걸 어떻게 떠올렸지?????
+*/
+export const UnionTextContainer = styled.div`
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr 1fr; /* 4분할 */
+ justify-items: center; /* 그리드 셀 내에서 중앙 정렬 */
+ align-items: center;
+ width: 280px;
+ margin-bottom: 50px;
+
+ @media (max-width: 768px) {
+ margin-bottom: 30px;
+ grid-template-columns: 1fr 2fr 1fr; /* 모바일에서는 더 간결하게 조정 가능 */
+ }
+`;
+
+export const UnionText = styled.h2`
+ grid-column: 2 / 4; /* 두 번째에서 세 번째 그리드 셀을 차지 */
+ text-align: center;
+ color: var(--FarmSystem_Orange);
+ font-size: 48px;
+ font-weight: 700;
+
+ @media (max-width: 768px) {
+ font-size: 32px;
+ }
+
+ @media (max-width: 480px) {
+ font-size: 24px;
+ }
+`;
+
+export const NewBadge = styled.div`
+ grid-column: 4 / 5; /* 네 번째 그리드 셀에 배치 */
+ width: 70px;
+ height: 25px;
+ background: var(--FarmSystem_Green02);
+ border-radius: 10px;
+
+ font-style: normal;
+ font-weight: 500;
+ font-size: 16px;
+ line-height: 19px;
+ color: var(--FarmSystem_White);
+
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+
+ @media (max-width: 768px) {
+ font-size: 14px;
+ width: 60px;
+ height: 22px;
+ }
+`;
\ No newline at end of file
diff --git a/src/pages/Main/Union/Union.tsx b/src/pages/Main/Union/Union.tsx
index 9b23386..26019f8 100644
--- a/src/pages/Main/Union/Union.tsx
+++ b/src/pages/Main/Union/Union.tsx
@@ -1,114 +1,20 @@
-import styled from "styled-components";
import ContentBox from "./ContentBox";
+import * as S from './Union.styled';
export default function Union() {
return (
-
-
+
+
신입생이라서
어떤 트랙을 선택할지 고민되나요?
-
-
- Union
- New
-
+
+
+ Union
+ New
+
-
+
);
-}
-
-const Container = styled.section`
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- height: 1500px;
- user-select: none;
-
- @media (max-width: 768px) {
- padding: 20px; /* 모바일에서 여백 추가 */
- height: auto; /* 필요에 따라 높이를 자동으로 조정 */
- }
-`;
-
-const IntroduceText = styled.p`
- width: 500px;
- height: 86px;
-
- text-align: center;
- color: var(--FarmSystem_Black);
- font-style: normal;
- font-weight: 500;
- font-size: 36px;
- line-height: 43px;
-
- margin-bottom: 70px;
-
- @media (max-width: 768px) {
- width: 100%; /* 화면에 맞게 폭 확장 */
- font-size: 24px;
- line-height: 32px;
- margin-bottom: 50px;
- }
-`;
-
-/*
- 이걸 그리드로 해결한 건 진짜 레전드 씽크빅이다...
- 진짜 이걸 어떻게 떠올렸지?????
-*/
-const UnionTextContainer = styled.div`
- display: grid;
- grid-template-columns: 1fr 1fr 1fr 1fr; /* 4분할 */
- justify-items: center; /* 그리드 셀 내에서 중앙 정렬 */
- align-items: center;
- width: 280px;
- margin-bottom: 50px;
-
- @media (max-width: 768px) {
- margin-bottom: 30px;
- grid-template-columns: 1fr 2fr 1fr; /* 모바일에서는 더 간결하게 조정 가능 */
- }
-`;
-
-const UnionText = styled.h2`
- grid-column: 2 / 4; /* 두 번째에서 세 번째 그리드 셀을 차지 */
- text-align: center;
- color: var(--FarmSystem_Orange);
- font-size: 48px;
- font-weight: 700;
-
- @media (max-width: 768px) {
- font-size: 32px;
- }
-
- @media (max-width: 480px) {
- font-size: 24px;
- }
-`;
-
-const NewBadge = styled.div`
- grid-column: 4 / 5; /* 네 번째 그리드 셀에 배치 */
- width: 70px;
- height: 25px;
- background: var(--FarmSystem_Green02);
- border-radius: 10px;
-
- font-style: normal;
- font-weight: 500;
- font-size: 16px;
- line-height: 19px;
- color: var(--FarmSystem_White);
-
- display: flex;
- align-items: center;
- justify-content: center;
- text-align: center;
-
- @media (max-width: 768px) {
- font-size: 14px;
- width: 60px;
- height: 22px;
- }
-`;
\ No newline at end of file
+};
From 9533c2c8fbc11d6fd83204c70ecfb3a1f549c680 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 16:43:03 +0900
Subject: [PATCH 05/10] =?UTF-8?q?fix:=20=EC=98=A4=ED=83=80=20=EC=88=98?=
=?UTF-8?q?=EC=A0=95=20+=20=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=20?=
=?UTF-8?q?=EC=A4=91=EC=95=99=20=EC=A0=95=EB=A0=AC=EB=90=98=EA=B2=8C=20?=
=?UTF-8?q?=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/ContentBox.styled.ts | 6 +++---
src/pages/Main/Union/ContentBox.tsx | 17 ++++++++--------
src/pages/Main/Union/Union.tsx | 24 +++++++++++------------
3 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/src/pages/Main/Union/ContentBox.styled.ts b/src/pages/Main/Union/ContentBox.styled.ts
index bed672f..9daa89c 100644
--- a/src/pages/Main/Union/ContentBox.styled.ts
+++ b/src/pages/Main/Union/ContentBox.styled.ts
@@ -1,13 +1,13 @@
import styled from "styled-components";
export const Container = styled.div`
- width: 100%
- heigh: 500px;
+ width: 100%;
+ height: 500px;
display: flex;
justify-content: center;
align-items: center;
- position: relative
+ position: relative;
`
export const ContentBoxBorder = styled.div`
diff --git a/src/pages/Main/Union/ContentBox.tsx b/src/pages/Main/Union/ContentBox.tsx
index a1aeed0..46ed33d 100644
--- a/src/pages/Main/Union/ContentBox.tsx
+++ b/src/pages/Main/Union/ContentBox.tsx
@@ -3,15 +3,14 @@ import * as S from './ContentBox.styled';
export default function ContentBox() {
return (
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
);
}
diff --git a/src/pages/Main/Union/Union.tsx b/src/pages/Main/Union/Union.tsx
index 26019f8..82ded83 100644
--- a/src/pages/Main/Union/Union.tsx
+++ b/src/pages/Main/Union/Union.tsx
@@ -3,18 +3,16 @@ import * as S from './Union.styled';
export default function Union() {
return (
-
-
-
- 신입생이라서
- 어떤 트랙을 선택할지 고민되나요?
-
-
- Union
- New
-
-
-
-
+
+
+ 신입생이라서
+ 어떤 트랙을 선택할지 고민되나요?
+
+
+ Union
+ New
+
+
+
);
};
From 80defd9eacac5c59f1b5ed8c86a32967b4608df5 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 20:27:33 +0900
Subject: [PATCH 06/10] =?UTF-8?q?feat:=20Union=20=EC=84=A4=EB=AA=85=20?=
=?UTF-8?q?=EB=82=B4=EC=9A=A9=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/ContentBox.styled.ts | 22 ++++++++++++++++++++++
src/pages/Main/Union/ContentBox.tsx | 8 ++++++++
2 files changed, 30 insertions(+)
diff --git a/src/pages/Main/Union/ContentBox.styled.ts b/src/pages/Main/Union/ContentBox.styled.ts
index 9daa89c..b42cbf7 100644
--- a/src/pages/Main/Union/ContentBox.styled.ts
+++ b/src/pages/Main/Union/ContentBox.styled.ts
@@ -39,10 +39,32 @@ export const Content = styled.div`
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
display: flex;
+ flex-direction: column;
justify-content: center;
align-items: center;
`;
+export const ContentInfoTextBox = styled.div`
+ width: 600px;
+ height: 210px;
+
+ color: var(--FarmSystem_Black);
+ font-style: normal;
+ font-weight: 500;
+ font-size: 24px;
+ line-height: 35px;
+
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+`
+
+export const HighlightOrange = styled.span`
+ font-weight: 700;
+ color: var(--FarmSystem_Orange)
+`
+
export const GradientContainer = styled.div`
position: absolute;
top: 0px;
diff --git a/src/pages/Main/Union/ContentBox.tsx b/src/pages/Main/Union/ContentBox.tsx
index 46ed33d..eea3414 100644
--- a/src/pages/Main/Union/ContentBox.tsx
+++ b/src/pages/Main/Union/ContentBox.tsx
@@ -9,6 +9,14 @@ export default function ContentBox() {
+
+ Union은
+ SW/AI 기초 역량을 다지기 위한 과정으로,
+ 트랙 구분 없이 다섯 가지 트랙의 다양한 주제에 대한
+ SW 기본 역량을 다집니다.
+ 각 트랙의 멘토가 제공하는 프로젝트와 스터디에
+ 멘티로서 참여하게 됩니다.
+
From 88a680b5c1418e3f33af821cfb9d6658366a6675 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 21:00:10 +0900
Subject: [PATCH 07/10] =?UTF-8?q?feat:=20=ED=95=9C=20=ED=95=99=EA=B8=B0=20?=
=?UTF-8?q?=ED=99=9C=EB=8F=99=20=EB=82=B4=EC=9A=A9=20=EC=B6=94=EA=B0=80=20?=
=?UTF-8?q?+=20=EC=95=BD=EA=B0=84=EC=9D=98=20=EB=AF=B8=EB=94=94=EC=96=B4?=
=?UTF-8?q?=EC=BF=BC=EB=A6=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/ContentBox.styled.ts | 135 ++++++++++++++++++----
src/pages/Main/Union/ContentBox.tsx | 7 ++
2 files changed, 121 insertions(+), 21 deletions(-)
diff --git a/src/pages/Main/Union/ContentBox.styled.ts b/src/pages/Main/Union/ContentBox.styled.ts
index b42cbf7..6692e20 100644
--- a/src/pages/Main/Union/ContentBox.styled.ts
+++ b/src/pages/Main/Union/ContentBox.styled.ts
@@ -6,14 +6,17 @@ export const Container = styled.div`
display: flex;
justify-content: center;
align-items: center;
-
position: relative;
-`
+
+ @media (max-width: 768px) {
+ height: auto;
+ padding: 20px 0;
+ }
+`;
export const ContentBoxBorder = styled.div`
position: absolute;
- top: 0px;
-
+ top: 0;
width: 700px;
height: 500px;
background: linear-gradient(
@@ -23,12 +26,17 @@ export const ContentBoxBorder = styled.div`
);
padding: 5px;
border-radius: 20px;
-
display: flex;
justify-content: center;
align-items: center;
-
z-index: 10;
+
+ @media (max-width: 768px) {
+ position: relative;
+ width: 90%;
+ height: auto;
+ margin: 0 auto;
+ }
`;
export const Content = styled.div`
@@ -47,47 +55,132 @@ export const Content = styled.div`
export const ContentInfoTextBox = styled.div`
width: 600px;
height: 210px;
-
color: var(--FarmSystem_Black);
font-style: normal;
font-weight: 500;
font-size: 24px;
line-height: 35px;
-
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
-`
+ margin-bottom: 35px;
+
+ @media (max-width: 768px) {
+ width: 90%;
+ height: auto;
+ font-size: 20px;
+ line-height: 30px;
+ }
+`;
export const HighlightOrange = styled.span`
font-weight: 700;
- color: var(--FarmSystem_Orange)
-`
+ color: var(--FarmSystem_Orange);
+`;
+
+export const ActivityTitle = styled.h3`
+ width: 149px;
+ height: 38px;
+ font-weight: 700;
+ font-size: 24px;
+ line-height: 35px;
+ color: var(--FarmSystem_Green01);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ margin-bottom: 17px;
+
+ @media (max-width: 768px) {
+ width: auto;
+ font-size: 20px;
+ line-height: 30px;
+ }
+`;
+
+export const ActivityList = styled.ul`
+ width: 577px;
+ height: 80px;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ align-items: flex-end;
+ align-content: flex-start;
+ padding: 0;
+ gap: 10px 20px;
+ list-style-type: disc;
+
+ @media (max-width: 768px) {
+ width: 90%;
+ height: auto;
+ justify-content: center;
+ }
+`;
+
+export const Li = styled.li`
+ height: 35px;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 24px;
+ line-height: 35px;
+ color: var(--FarmSystem_Black);
+ list-style-type: disc;
+ list-style-position: outside;
+ margin-left: 40px;
+ text-align: center;
+
+ @media (max-width: 768px) {
+ margin-left: 20px;
+ font-size: 20px;
+ line-height: 30px;
+ }
+`;
export const GradientContainer = styled.div`
position: absolute;
- top: 0px;
-
+ top: 0;
height: 500px;
- display: flex;
- gap: 80px;
- justify-content: center;
- align-items: center;
-`
+ display: flex;
+ gap: 80px;
+ justify-content: center;
+ align-items: center;
+
+ @media (max-width: 768px) {
+ display: none;
+ }
+`;
export const GradientLeft = styled.div`
width: 560px;
height: 400px;
- background: linear-gradient(270deg, var(--FarmSystem_Orange) 50%, var(--FarmSystem_White) 100%);
+ background: linear-gradient(
+ 270deg,
+ var(--FarmSystem_Orange) 50%,
+ var(--FarmSystem_White) 100%
+ );
opacity: 0.5;
border-radius: 20px;
+
+ @media (max-width: 768px) {
+ width: 300px;
+ height: 250px;
+ }
`;
export const GradientRight = styled.div`
width: 560px;
height: 400px;
- background: linear-gradient(90deg, var(--FarmSystem_Green02) 50%, var(--FarmSystem_White) 100%);
+ background: linear-gradient(
+ 90deg,
+ var(--FarmSystem_Green02) 50%,
+ var(--FarmSystem_White) 100%
+ );
opacity: 0.5;
border-radius: 20px;
-`;
\ No newline at end of file
+
+ @media (max-width: 768px) {
+ width: 300px;
+ height: 250px;
+ }
+`;
diff --git a/src/pages/Main/Union/ContentBox.tsx b/src/pages/Main/Union/ContentBox.tsx
index eea3414..ae08686 100644
--- a/src/pages/Main/Union/ContentBox.tsx
+++ b/src/pages/Main/Union/ContentBox.tsx
@@ -17,6 +17,13 @@ export default function ContentBox() {
각 트랙의 멘토가 제공하는 프로젝트와 스터디에
멘티로서 참여하게 됩니다.
+ 한 학기 활동
+
+ 월별 기술 블로그
+ Farm System 아이디어톤 참가
+ 스터디 정기 모임
+ 트랙 멘토-멘티 프로그램
+
From 89b7bdd5bf41c8346ef83b97815fe412edf05fc8 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Tue, 11 Feb 2025 21:13:48 +0900
Subject: [PATCH 08/10] =?UTF-8?q?feat:=20=EB=AF=B8=EB=94=94=EC=96=B4=20?=
=?UTF-8?q?=EC=BF=BC=EB=A6=AC=20=EC=A1=B0=EC=A0=95=20=EB=B0=8F=20=EC=8A=A4?=
=?UTF-8?q?=ED=83=80=EC=9D=BC=20=EC=84=B8=EB=B6=80=20=EC=9E=91=EC=97=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/Main/Union/ContentBox.styled.ts | 21 ++++++++++++++++++---
src/pages/Main/Union/Union.styled.ts | 19 +++++++++----------
2 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/src/pages/Main/Union/ContentBox.styled.ts b/src/pages/Main/Union/ContentBox.styled.ts
index 6692e20..1f44ff5 100644
--- a/src/pages/Main/Union/ContentBox.styled.ts
+++ b/src/pages/Main/Union/ContentBox.styled.ts
@@ -30,6 +30,7 @@ export const ContentBoxBorder = styled.div`
justify-content: center;
align-items: center;
z-index: 10;
+ margin: 0 auto;
@media (max-width: 768px) {
position: relative;
@@ -71,6 +72,9 @@ export const ContentInfoTextBox = styled.div`
height: auto;
font-size: 20px;
line-height: 30px;
+
+ padding-top: 20px;
+ padding-bottom: 20px;
}
`;
@@ -94,8 +98,9 @@ export const ActivityTitle = styled.h3`
@media (max-width: 768px) {
width: auto;
- font-size: 20px;
+ font-size: 22px;
line-height: 30px;
+ margin-bottom: 7px;
}
`;
@@ -107,7 +112,6 @@ export const ActivityList = styled.ul`
flex-wrap: wrap;
align-items: flex-end;
align-content: flex-start;
- padding: 0;
gap: 10px 20px;
list-style-type: disc;
@@ -115,25 +119,36 @@ export const ActivityList = styled.ul`
width: 90%;
height: auto;
justify-content: center;
+ gap: 1px 10px;
}
`;
export const Li = styled.li`
height: 35px;
+
font-style: normal;
font-weight: 500;
font-size: 24px;
line-height: 35px;
color: var(--FarmSystem_Black);
+
list-style-type: disc;
list-style-position: outside;
margin-left: 40px;
text-align: center;
@media (max-width: 768px) {
- margin-left: 20px;
font-size: 20px;
line-height: 30px;
+ margin-left: 20px;
+ }
+
+ @media (max-width: 385px) {
+ font-size: 18px;
+ line-height: 30px;
+ margin-left: 0px;
+ list-style-type: none;
+ list-style-position: none;
}
`;
diff --git a/src/pages/Main/Union/Union.styled.ts b/src/pages/Main/Union/Union.styled.ts
index 0851e6e..39f55b3 100644
--- a/src/pages/Main/Union/Union.styled.ts
+++ b/src/pages/Main/Union/Union.styled.ts
@@ -9,8 +9,8 @@ export const Container = styled.section`
user-select: none;
@media (max-width: 768px) {
- padding: 20px; /* 모바일에서 여백 추가 */
- height: auto; /* 필요에 따라 높이를 자동으로 조정 */
+ padding: 5px; /* 모바일에서 여백 추가 */
+ height: 1000px;
}
`;
@@ -43,13 +43,14 @@ export const UnionTextContainer = styled.div`
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr; /* 4분할 */
justify-items: center; /* 그리드 셀 내에서 중앙 정렬 */
- align-items: center;
- width: 280px;
+ align-items: top;
+ width: 300px;
margin-bottom: 50px;
@media (max-width: 768px) {
margin-bottom: 30px;
- grid-template-columns: 1fr 2fr 1fr; /* 모바일에서는 더 간결하게 조정 가능 */
+ grid-template-columns: 1fr 2fr 1fr;
+ width: 220px;
}
`;
@@ -60,12 +61,8 @@ export const UnionText = styled.h2`
font-size: 48px;
font-weight: 700;
- @media (max-width: 768px) {
- font-size: 32px;
- }
-
@media (max-width: 480px) {
- font-size: 24px;
+ font-size: 40px;
}
`;
@@ -87,6 +84,8 @@ export const NewBadge = styled.div`
justify-content: center;
text-align: center;
+ margin-top: 10px;
+
@media (max-width: 768px) {
font-size: 14px;
width: 60px;
From 352320e21fecc7f7ab0323b279738b3701197636 Mon Sep 17 00:00:00 2001
From: Yunseok
Date: Wed, 12 Feb 2025 12:34:01 +0900
Subject: [PATCH 09/10] =?UTF-8?q?feat:=20=EB=AF=B8=EB=94=94=EC=96=B4?=
=?UTF-8?q?=EC=BF=BC=EB=A6=AC=20=EC=BB=A4=EC=8A=A4=ED=85=80=ED=9B=85=20?=
=?UTF-8?q?=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package-lock.json | 72 ++++++++++++++++++++++++++++++++++++
package.json | 1 +
src/hooks/.gitkeep | 0
src/hooks/useMediaQueries.ts | 15 ++++++++
4 files changed, 88 insertions(+)
delete mode 100644 src/hooks/.gitkeep
create mode 100644 src/hooks/useMediaQueries.ts
diff --git a/package-lock.json b/package-lock.json
index 8a5ccf7..48a4df9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"axios": "^1.7.9",
"react": "^18.3.1",
"react-dom": "^18.3.1",
+ "react-responsive": "^10.0.0",
"react-router": "^7.1.5",
"styled-components": "^6.1.15",
"zustand": "^5.0.3"
@@ -1953,6 +1954,12 @@
"node": ">=4"
}
},
+ "node_modules/css-mediaquery": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
+ "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==",
+ "license": "BSD"
+ },
"node_modules/css-to-react-native": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz",
@@ -2479,6 +2486,12 @@
"node": ">=8"
}
},
+ "node_modules/hyphenate-style-name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz",
+ "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==",
+ "license": "BSD-3-Clause"
+ },
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -2691,6 +2704,15 @@
"yallist": "^3.0.2"
}
},
+ "node_modules/matchmediaquery": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.4.2.tgz",
+ "integrity": "sha512-wrZpoT50ehYOudhDjt/YvUJc6eUzcdFPdmbizfgvswCKNHD1/OBOHYJpHie+HXpu6bSkEGieFMYk6VuutaiRfA==",
+ "license": "MIT",
+ "dependencies": {
+ "css-mediaquery": "^0.1.2"
+ }
+ },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -2788,6 +2810,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -2935,6 +2966,17 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -2997,6 +3039,12 @@
"react": "^18.3.1"
}
},
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
"node_modules/react-refresh": {
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
@@ -3007,6 +3055,24 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-responsive": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-10.0.0.tgz",
+ "integrity": "sha512-N6/UiRLGQyGUqrarhBZmrSmHi2FXSD++N5VbSKsBBvWfG0ZV7asvUBluSv5lSzdMyEVjzZ6Y8DL4OHABiztDOg==",
+ "license": "MIT",
+ "dependencies": {
+ "hyphenate-style-name": "^1.0.0",
+ "matchmediaquery": "^0.4.2",
+ "prop-types": "^15.6.1",
+ "shallow-equal": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
"node_modules/react-router": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.5.tgz",
@@ -3140,6 +3206,12 @@
"integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==",
"license": "MIT"
},
+ "node_modules/shallow-equal": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-3.1.0.tgz",
+ "integrity": "sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==",
+ "license": "MIT"
+ },
"node_modules/shallowequal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
diff --git a/package.json b/package.json
index 6ee0811..640eb7e 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"axios": "^1.7.9",
"react": "^18.3.1",
"react-dom": "^18.3.1",
+ "react-responsive": "^10.0.0",
"react-router": "^7.1.5",
"styled-components": "^6.1.15",
"zustand": "^5.0.3"
diff --git a/src/hooks/.gitkeep b/src/hooks/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/src/hooks/useMediaQueries.ts b/src/hooks/useMediaQueries.ts
new file mode 100644
index 0000000..2b0aa8d
--- /dev/null
+++ b/src/hooks/useMediaQueries.ts
@@ -0,0 +1,15 @@
+import { useMediaQuery } from "react-responsive";
+
+const useMediaQueries = () => {
+ const isMobile = useMediaQuery({ query: "(max-width: 767px)" });
+ const isTablet = useMediaQuery({
+ query: "(min-width: 768px) and (max-width: 1023px)",
+ });
+ const isDesktop = useMediaQuery({
+ query: "(min-width: 1024px)"
+ });
+
+ return { isMobile, isTablet, isDesktop };
+};
+
+export default useMediaQueries;
\ No newline at end of file
From 33ecf3a7eff8df7d03eb79bd88315c2c7e01ecc2 Mon Sep 17 00:00:00 2001
From: Yunseok <87839885+karpitony@users.noreply.github.com>
Date: Wed, 12 Feb 2025 13:10:40 +0900
Subject: [PATCH 10/10] =?UTF-8?q?refactor:=20=EB=AF=B8=EB=94=94=EC=96=B4?=
=?UTF-8?q?=20=EC=BF=BC=EB=A6=AC=20=EC=BB=A4=EC=8A=A4=ED=85=80=ED=9B=85?=
=?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/hooks/useMediaQueries.ts | 7 +-
src/pages/Main/Union/ContentBox.styled.ts | 172 +++++++++-------------
src/pages/Main/Union/ContentBox.tsx | 43 ++++--
src/pages/Main/Union/Union.styled.ts | 89 ++++-------
src/pages/Main/Union/Union.tsx | 13 +-
5 files changed, 145 insertions(+), 179 deletions(-)
diff --git a/src/hooks/useMediaQueries.ts b/src/hooks/useMediaQueries.ts
index 2b0aa8d..646036b 100644
--- a/src/hooks/useMediaQueries.ts
+++ b/src/hooks/useMediaQueries.ts
@@ -1,6 +1,11 @@
import { useMediaQuery } from "react-responsive";
const useMediaQueries = () => {
+ /*
+ * Union 작업중 콘텐츠 박스에서 767보다 더 작은 크기 조절이 필요해서 isTiny를 추가했습니다.
+ * 반응형 작업하실 때 한번더 봐주시고 고쳐주시면 좋을거 같습니다.
+ */
+ const isTiny = useMediaQuery({ query: "(max-width: 385px)" })
const isMobile = useMediaQuery({ query: "(max-width: 767px)" });
const isTablet = useMediaQuery({
query: "(min-width: 768px) and (max-width: 1023px)",
@@ -9,7 +14,7 @@ const useMediaQueries = () => {
query: "(min-width: 1024px)"
});
- return { isMobile, isTablet, isDesktop };
+ return { isTiny, isMobile, isTablet, isDesktop };
};
export default useMediaQueries;
\ No newline at end of file
diff --git a/src/pages/Main/Union/ContentBox.styled.ts b/src/pages/Main/Union/ContentBox.styled.ts
index 1f44ff5..421377d 100644
--- a/src/pages/Main/Union/ContentBox.styled.ts
+++ b/src/pages/Main/Union/ContentBox.styled.ts
@@ -1,24 +1,24 @@
import styled from "styled-components";
-export const Container = styled.div`
+export const Container = styled.div<{ $isMobile: boolean }>`
width: 100%;
- height: 500px;
+ height: ${(props) => (props.$isMobile ? "auto" : "500px")};
+
display: flex;
justify-content: center;
align-items: center;
- position: relative;
- @media (max-width: 768px) {
- height: auto;
- padding: 20px 0;
- }
+ position: relative;
+ padding: ${(props) => (props.$isMobile ? "20px 0" : "0")};
`;
-export const ContentBoxBorder = styled.div`
- position: absolute;
+// 테두리에 Gradient가 안돼서 박스 두개를 겹쳐서 테두리 Gradient를 만들었습니다.
+export const ContentBoxBorder = styled.div<{ $isMobile: boolean }>`
+ position: ${(props) => (props.$isMobile ? "relative" : "absolute")};
top: 0;
- width: 700px;
- height: 500px;
+ width: ${(props) => (props.$isMobile ? "90%" : "700px")};
+ height: ${(props) => (props.$isMobile ? "auto" : "500px")};
+
background: linear-gradient(
90deg,
var(--FarmSystem_Orange) 0%,
@@ -26,23 +26,18 @@ export const ContentBoxBorder = styled.div`
);
padding: 5px;
border-radius: 20px;
+
display: flex;
justify-content: center;
align-items: center;
z-index: 10;
margin: 0 auto;
-
- @media (max-width: 768px) {
- position: relative;
- width: 90%;
- height: auto;
- margin: 0 auto;
- }
`;
export const Content = styled.div`
width: 100%;
height: 100%;
+
background-color: var(--FarmSystem_White);
border-radius: 15px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
@@ -53,29 +48,24 @@ export const Content = styled.div`
align-items: center;
`;
-export const ContentInfoTextBox = styled.div`
- width: 600px;
- height: 210px;
+export const ContentInfoTextBox = styled.div<{ $isMobile: boolean }>`
+ width: ${(props) => (props.$isMobile ? "90%" : "600px")};
+ height: ${(props) => (props.$isMobile ? "auto" : "210px")};
+
color: var(--FarmSystem_Black);
font-style: normal;
font-weight: 500;
- font-size: 24px;
- line-height: 35px;
+ font-size: ${(props) => (props.$isMobile ? "20px" : "24px")};
+ line-height: ${(props) => (props.$isMobile ? "30px" : "35px")};
+
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
- margin-bottom: 35px;
-
- @media (max-width: 768px) {
- width: 90%;
- height: auto;
- font-size: 20px;
- line-height: 30px;
- padding-top: 20px;
- padding-bottom: 20px;
- }
+ margin-bottom: 35px;
+ padding-top: ${(props) => (props.$isMobile ? "20px" : "0")};
+ padding-bottom: ${(props) => (props.$isMobile ? "20px" : "0")};
`;
export const HighlightOrange = styled.span`
@@ -83,92 +73,83 @@ export const HighlightOrange = styled.span`
color: var(--FarmSystem_Orange);
`;
-export const ActivityTitle = styled.h3`
- width: 149px;
- height: 38px;
+export const ActivityTitle = styled.h3<{ $isMobile: boolean }>`
+ width: ${(props) => (props.$isMobile ? "auto" : "149px")};
+ height: ${(props) => (props.$isMobile ? "auto" : "38px")};
+
font-weight: 700;
- font-size: 24px;
- line-height: 35px;
+ font-size: ${(props) => (props.$isMobile ? "22px" : "24px")};
+ line-height: ${(props) => (props.$isMobile ? "30px" : "35px")};
color: var(--FarmSystem_Green01);
+
display: flex;
align-items: center;
justify-content: center;
text-align: center;
- margin-bottom: 17px;
-
- @media (max-width: 768px) {
- width: auto;
- font-size: 22px;
- line-height: 30px;
- margin-bottom: 7px;
- }
+
+ margin-bottom: ${(props) => (props.$isMobile ? "7px" : "17px")};
`;
-export const ActivityList = styled.ul`
- width: 577px;
- height: 80px;
+export const ActivityList = styled.ul<{ $isMobile: boolean }>`
+ width: ${(props) => (props.$isMobile ? "90%" : "577px")};
+ height: ${(props) => (props.$isMobile ? "auto" : "80px")};
+
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: flex-end;
align-content: flex-start;
- gap: 10px 20px;
- list-style-type: disc;
- @media (max-width: 768px) {
- width: 90%;
- height: auto;
- justify-content: center;
- gap: 1px 10px;
- }
+ gap: ${(props) => (props.$isMobile ? "1px 10px" : "10px 20px")};
+ list-style-type: disc;
+ justify-content: ${(props) => (props.$isMobile ? "center" : "initial")};
`;
-export const Li = styled.li`
+export const Li = styled.li<{
+ $isMobile: boolean;
+ $isTiny?: boolean;
+}>`
height: 35px;
font-style: normal;
font-weight: 500;
- font-size: 24px;
- line-height: 35px;
+ font-size: ${(props) =>
+ props.$isMobile
+ ? props.$isTiny
+ ? "18px"
+ : "20px"
+ : "24px"};
+ line-height: ${(props) => (props.$isMobile ? "30px" : "35px")};
color: var(--FarmSystem_Black);
-
- list-style-type: disc;
- list-style-position: outside;
- margin-left: 40px;
- text-align: center;
- @media (max-width: 768px) {
- font-size: 20px;
- line-height: 30px;
- margin-left: 20px;
- }
-
- @media (max-width: 385px) {
- font-size: 18px;
- line-height: 30px;
- margin-left: 0px;
- list-style-type: none;
- list-style-position: none;
- }
+ list-style-type: ${(props) =>
+ props.$isMobile && props.$isTiny ? "none" : "disc"};
+ list-style-position: ${(props) =>
+ props.$isMobile && props.$isTiny ? "none" : "outside"};
+ margin-left: ${(props) =>
+ props.$isMobile
+ ? props.$isTiny
+ ? "0px"
+ : "20px"
+ : "40px"};
+ text-align: center;
`;
-export const GradientContainer = styled.div`
+export const GradientContainer = styled.div<{ $isMobile: boolean }>`
position: absolute;
top: 0;
height: 500px;
- display: flex;
+ // 배경 Gradient를 모바일에서도 보이게 하려면 이 부분 고쳐주시면 됩니다!
+ display: ${(props) => (props.$isMobile ? "none" : "flex")};
gap: 80px;
justify-content: center;
align-items: center;
-
- @media (max-width: 768px) {
- display: none;
- }
`;
-export const GradientLeft = styled.div`
- width: 560px;
- height: 400px;
+export const GradientLeft = styled.div<{ $isMobile: boolean }>`
+ width: ${(props) => (props.$isMobile ? "300px" : "560px")};
+ height: ${(props) => (props.$isMobile ? "250px" : "400px")};
+
background: linear-gradient(
270deg,
var(--FarmSystem_Orange) 50%,
@@ -176,16 +157,12 @@ export const GradientLeft = styled.div`
);
opacity: 0.5;
border-radius: 20px;
-
- @media (max-width: 768px) {
- width: 300px;
- height: 250px;
- }
`;
-export const GradientRight = styled.div`
- width: 560px;
- height: 400px;
+export const GradientRight = styled.div<{ $isMobile: boolean }>`
+ width: ${(props) => (props.$isMobile ? "300px" : "560px")};
+ height: ${(props) => (props.$isMobile ? "250px" : "400px")};
+
background: linear-gradient(
90deg,
var(--FarmSystem_Green02) 50%,
@@ -193,9 +170,4 @@ export const GradientRight = styled.div`
);
opacity: 0.5;
border-radius: 20px;
-
- @media (max-width: 768px) {
- width: 300px;
- height: 250px;
- }
`;
diff --git a/src/pages/Main/Union/ContentBox.tsx b/src/pages/Main/Union/ContentBox.tsx
index ae08686..46f801a 100644
--- a/src/pages/Main/Union/ContentBox.tsx
+++ b/src/pages/Main/Union/ContentBox.tsx
@@ -1,28 +1,43 @@
-import * as S from './ContentBox.styled';
+import * as S from "./ContentBox.styled";
+import useMediaQueries from "@/hooks/useMediaQueries";
export default function ContentBox() {
+ const { isTiny, isMobile } = useMediaQueries();
+
return (
-
-
-
-
+
+
+
+
-
+
-
- Union은
+
+
+ Union은
+
SW/AI 기초 역량을 다지기 위한 과정으로,
트랙 구분 없이 다섯 가지 트랙의 다양한 주제에 대한
SW 기본 역량을 다집니다.
각 트랙의 멘토가 제공하는 프로젝트와 스터디에
멘티로서 참여하게 됩니다.
- 한 학기 활동
-
- 월별 기술 블로그
- Farm System 아이디어톤 참가
- 스터디 정기 모임
- 트랙 멘토-멘티 프로그램
+
+ 한 학기 활동
+
+
+
+ 월별 기술 블로그
+
+
+ Farm System 아이디어톤 참가
+
+
+ 스터디 정기 모임
+
+
+ 트랙 멘토-멘티 프로그램
+
diff --git a/src/pages/Main/Union/Union.styled.ts b/src/pages/Main/Union/Union.styled.ts
index 39f55b3..bdd9369 100644
--- a/src/pages/Main/Union/Union.styled.ts
+++ b/src/pages/Main/Union/Union.styled.ts
@@ -1,81 +1,59 @@
import styled from "styled-components";
-export const Container = styled.section`
+export const Container = styled.section<{ $isMobile: boolean }>`
display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- height: 1500px;
- user-select: none;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
- @media (max-width: 768px) {
- padding: 5px; /* 모바일에서 여백 추가 */
- height: 1000px;
- }
+ height: ${(props) => (props.$isMobile ? "1000px" : "1500px")};
+ user-select: none;
+ padding: ${(props) => (props.$isMobile ? "5px" : "0")};
`;
-export const IntroduceText = styled.p`
- width: 500px;
- height: 86px;
+export const IntroduceText = styled.p<{ $isMobile: boolean }>`
+ width: ${(props) => (props.$isMobile ? "100%" : "500px")};
+ height: ${(props) => (props.$isMobile ? "auto" : "86px")};
- text-align: center;
+ text-align: center;
color: var(--FarmSystem_Black);
font-style: normal;
font-weight: 500;
- font-size: 36px;
- line-height: 43px;
-
- margin-bottom: 70px;
+ font-size: ${(props) => (props.$isMobile ? "24px" : "36px")};
+ line-height: ${(props) => (props.$isMobile ? "32px" : "43px")};
- @media (max-width: 768px) {
- width: 100%; /* 화면에 맞게 폭 확장 */
- font-size: 24px;
- line-height: 32px;
- margin-bottom: 50px;
- }
+ margin-bottom: ${(props) => (props.$isMobile ? "50px" : "70px")};
`;
-/*
- 이걸 그리드로 해결한 건 진짜 레전드 씽크빅이다...
- 진짜 이걸 어떻게 떠올렸지?????
-*/
-export const UnionTextContainer = styled.div`
+export const UnionTextContainer = styled.div<{ $isMobile: boolean }>`
display: grid;
- grid-template-columns: 1fr 1fr 1fr 1fr; /* 4분할 */
- justify-items: center; /* 그리드 셀 내에서 중앙 정렬 */
- align-items: top;
- width: 300px;
- margin-bottom: 50px;
+ grid-template-columns: ${(props) =>
+ props.$isMobile ? "1fr 2fr 1fr" : "1fr 1fr 1fr 1fr"};
+ justify-items: center;
+ align-items: start;
- @media (max-width: 768px) {
- margin-bottom: 30px;
- grid-template-columns: 1fr 2fr 1fr;
- width: 220px;
- }
+ width: ${(props) => (props.$isMobile ? "220px" : "300px")};
+ margin-bottom: ${(props) => (props.$isMobile ? "30px" : "50px")};
`;
-export const UnionText = styled.h2`
- grid-column: 2 / 4; /* 두 번째에서 세 번째 그리드 셀을 차지 */
+export const UnionText = styled.h2<{ $isMobile: boolean }>`
+ grid-column: 2 / 4;
text-align: center;
color: var(--FarmSystem_Orange);
- font-size: 48px;
+ font-size: ${(props) => (props.$isMobile ? "40px" : "48px")};
font-weight: 700;
-
- @media (max-width: 480px) {
- font-size: 40px;
- }
`;
-export const NewBadge = styled.div`
- grid-column: 4 / 5; /* 네 번째 그리드 셀에 배치 */
- width: 70px;
- height: 25px;
+export const NewBadge = styled.div<{ $isMobile: boolean }>`
+ grid-column: 4 / 5;
+ width: ${(props) => (props.$isMobile ? "60px" : "70px")};
+ height: ${(props) => (props.$isMobile ? "22px" : "25px")};
background: var(--FarmSystem_Green02);
border-radius: 10px;
font-style: normal;
font-weight: 500;
- font-size: 16px;
+ font-size: ${(props) => (props.$isMobile ? "14px" : "16px")};
line-height: 19px;
color: var(--FarmSystem_White);
@@ -83,12 +61,5 @@ export const NewBadge = styled.div`
align-items: center;
justify-content: center;
text-align: center;
-
margin-top: 10px;
-
- @media (max-width: 768px) {
- font-size: 14px;
- width: 60px;
- height: 22px;
- }
-`;
\ No newline at end of file
+`;
diff --git a/src/pages/Main/Union/Union.tsx b/src/pages/Main/Union/Union.tsx
index 82ded83..755109e 100644
--- a/src/pages/Main/Union/Union.tsx
+++ b/src/pages/Main/Union/Union.tsx
@@ -1,16 +1,19 @@
import ContentBox from "./ContentBox";
+import useMediaQueries from "@/hooks/useMediaQueries";
import * as S from './Union.styled';
export default function Union() {
+ const { isMobile } = useMediaQueries();
+
return (
-
-
+
+
신입생이라서
어떤 트랙을 선택할지 고민되나요?
-
- Union
- New
+
+ Union
+ New