diff --git a/src/app/page.tsx b/src/app/page.tsx
index baf8d97..9b942aa 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,129 +1,16 @@
'use client';
-import Link from 'next/link';
-import EmailIcon from '/public/icons/email.svg';
-import FacebookIcon from '/public/icons/facebook.svg';
-import InstagramIcon from '/public/icons/instagram.svg';
-import CustomLogo from '@/components/root/CustomLogo';
-import ImageWrapper from '@/components/root/ImageWrapper';
-import styles from './page.module.css';
-import MainCard from '@/components/root/MainCard';
-import MiniCard from '@/components/root/MiniCard';
+import Layout from '@/components/landing/layout';
+import HeroSection from '@/components/landing/Section/HeroSection';
+import PrimarySection from '@/components/landing/Section/PrimarySection';
+import SecondarySection from '@/components/landing/Section/SecondarySection';
export default function Home() {
return (
-
-
-
-
-
-
-
- 로그인
-
-
- 회원가입
-
-
-
-
-
-
-
-
- 생산성을 높이는 다양한 설정 ⚡
-
-
-
-
-
-
-
-
-
- ©codeit - 2023
-
- Privacy Policy
- FAQ
-
-
-
-
+
+
+
+
+
);
}
diff --git a/src/app/reset.css b/src/app/reset.css
index 8cabce7..f2868b9 100644
--- a/src/app/reset.css
+++ b/src/app/reset.css
@@ -12,7 +12,6 @@ body {
body {
font-family: var(--font-pretendard), sans-serif;
- height: 100vh;
}
ul,
diff --git a/src/components/root/CustomLogo.tsx b/src/components/CustomLogo.tsx
similarity index 100%
rename from src/components/root/CustomLogo.tsx
rename to src/components/CustomLogo.tsx
diff --git a/src/components/root/ImageWrapper.module.css b/src/components/ImageWrapper.module.css
similarity index 100%
rename from src/components/root/ImageWrapper.module.css
rename to src/components/ImageWrapper.module.css
diff --git a/src/components/root/ImageWrapper.tsx b/src/components/ImageWrapper.tsx
similarity index 100%
rename from src/components/root/ImageWrapper.tsx
rename to src/components/ImageWrapper.tsx
index f63c67f..3a56154 100644
--- a/src/components/root/ImageWrapper.tsx
+++ b/src/components/ImageWrapper.tsx
@@ -1,5 +1,5 @@
-import styles from './ImageWrapper.module.css';
import Image from 'next/image';
+import styles from './ImageWrapper.module.css';
interface Props {
src: string;
diff --git a/src/components/landing/Footer/Footer.module.css b/src/components/landing/Footer/Footer.module.css
new file mode 100644
index 0000000..b6ab1d8
--- /dev/null
+++ b/src/components/landing/Footer/Footer.module.css
@@ -0,0 +1,31 @@
+.footer {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 40px 140px;
+ font-size: 16px;
+ font-weight: 400;
+ color: var(--gray-400);
+}
+
+.legalLinks {
+ display: flex;
+ gap: 32px;
+}
+
+.socialLinks {
+ display: flex;
+ align-items: center;
+ gap: 14px;
+}
+
+.socialLink:first-child {
+ width: 20px;
+ height: 20px;
+}
+
+.socialLink {
+ width: 22px;
+ height: 22px;
+ fill: white;
+}
diff --git a/src/components/landing/Footer/Footer.tsx b/src/components/landing/Footer/Footer.tsx
new file mode 100644
index 0000000..eeb9675
--- /dev/null
+++ b/src/components/landing/Footer/Footer.tsx
@@ -0,0 +1,46 @@
+import Link from 'next/link';
+import EmailIcon from '/public/icons/email.svg';
+import FacebookIcon from '/public/icons/facebook.svg';
+import InstagramIcon from '/public/icons/instagram.svg';
+import styles from './Footer.module.css';
+
+export default function Footer() {
+ return (
+
+ ©codeit - 2023
+
+ Privacy Policy
+ FAQ
+
+
+
+ );
+}
diff --git a/src/components/landing/Header/Header.module.css b/src/components/landing/Header/Header.module.css
new file mode 100644
index 0000000..b38409f
--- /dev/null
+++ b/src/components/landing/Header/Header.module.css
@@ -0,0 +1,28 @@
+.header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ position: fixed;
+ left: 0;
+ top: 0;
+ z-index: 999;
+ width: 100%;
+ height: 70px;
+ padding: 15px 80px;
+ background-color: inherit;
+}
+
+.logo {
+ fill: white;
+}
+
+.nav {
+ display: flex;
+ gap: 36px;
+}
+
+.navLink {
+ font-size: 16px;
+ font-weight: 400;
+ line-height: 26px;
+}
diff --git a/src/components/landing/Header/Header.tsx b/src/components/landing/Header/Header.tsx
new file mode 100644
index 0000000..dfc4b04
--- /dev/null
+++ b/src/components/landing/Header/Header.tsx
@@ -0,0 +1,21 @@
+import Link from 'next/link';
+import CustomLogo from '@/components/CustomLogo';
+import styles from './Header.module.css';
+
+export default function Header() {
+ return (
+
+
+
+
+
+
+ 로그인
+
+
+ 회원가입
+
+
+
+ );
+}
diff --git a/src/components/landing/Section/HeroSection.module.css b/src/components/landing/Section/HeroSection.module.css
new file mode 100644
index 0000000..a224afb
--- /dev/null
+++ b/src/components/landing/Section/HeroSection.module.css
@@ -0,0 +1,48 @@
+.section {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ max-width: 1200px;
+ margin-bottom: 180px;
+}
+
+.homeTitleWrapper {
+ display: flex;
+ align-items: center;
+ margin-bottom: 110px;
+ margin-top: 40px;
+ gap: 28px;
+}
+
+.homeImg {
+ width: 722px;
+ height: 423px;
+}
+
+.homeTitle {
+ font-size: 76px;
+ font-weight: 700;
+ color: white;
+ line-height: 100px;
+ letter-spacing: 2px;
+}
+
+.homeBrand {
+ font-family: var(--font-montserrat);
+ font-size: 90px;
+ font-weight: 700;
+ color: var(--violet);
+ line-height: 65px;
+ letter-spacing: 1px;
+}
+
+.homeLoginBtn {
+ display: inline-flex;
+ flex-shrink: 0;
+ align-items: center;
+ height: 54px;
+ padding: 9px 101px;
+ border-radius: 8px;
+ background: var(--violet);
+}
diff --git a/src/components/landing/Section/HeroSection.tsx b/src/components/landing/Section/HeroSection.tsx
new file mode 100644
index 0000000..1d6953a
--- /dev/null
+++ b/src/components/landing/Section/HeroSection.tsx
@@ -0,0 +1,23 @@
+import ImageWrapper from '../../ImageWrapper';
+import Link from 'next/link';
+import styles from './HeroSection.module.css';
+
+export default function HeroSection() {
+ return (
+
+ );
+}
diff --git a/src/components/root/MainCard.module.css b/src/components/landing/Section/MainCard.module.css
similarity index 97%
rename from src/components/root/MainCard.module.css
rename to src/components/landing/Section/MainCard.module.css
index 59d4c9d..f31ab82 100644
--- a/src/components/root/MainCard.module.css
+++ b/src/components/landing/Section/MainCard.module.css
@@ -1,6 +1,5 @@
.card {
display: flex;
- flex-shrink: 0;
align-items: flex-end;
justify-content: flex-end;
width: 100%;
diff --git a/src/components/root/MainCard.tsx b/src/components/landing/Section/MainCard.tsx
similarity index 92%
rename from src/components/root/MainCard.tsx
rename to src/components/landing/Section/MainCard.tsx
index 521910d..e1dd001 100644
--- a/src/components/root/MainCard.tsx
+++ b/src/components/landing/Section/MainCard.tsx
@@ -1,4 +1,4 @@
-import ImageWrapper from '@/components/root/ImageWrapper';
+import ImageWrapper from '@/components/ImageWrapper';
import styles from './MainCard.module.css';
interface Props {
diff --git a/src/components/root/MiniCard.module.css b/src/components/landing/Section/MiniCard.module.css
similarity index 100%
rename from src/components/root/MiniCard.module.css
rename to src/components/landing/Section/MiniCard.module.css
diff --git a/src/components/root/MiniCard.tsx b/src/components/landing/Section/MiniCard.tsx
similarity index 90%
rename from src/components/root/MiniCard.tsx
rename to src/components/landing/Section/MiniCard.tsx
index 3250671..026d141 100644
--- a/src/components/root/MiniCard.tsx
+++ b/src/components/landing/Section/MiniCard.tsx
@@ -1,4 +1,4 @@
-import ImageWrapper from '@/components/root/ImageWrapper';
+import ImageWrapper from '@/components/ImageWrapper';
import styles from './MiniCard.module.css';
interface Props {
diff --git a/src/components/landing/Section/PrimarySection.module.css b/src/components/landing/Section/PrimarySection.module.css
new file mode 100644
index 0000000..05921b8
--- /dev/null
+++ b/src/components/landing/Section/PrimarySection.module.css
@@ -0,0 +1,9 @@
+.cardLg1 {
+ width: 594px;
+ height: 498px;
+}
+
+.cardLg2 {
+ width: 436px;
+ height: 502px;
+}
diff --git a/src/components/landing/Section/PrimarySection.tsx b/src/components/landing/Section/PrimarySection.tsx
new file mode 100644
index 0000000..945bf29
--- /dev/null
+++ b/src/components/landing/Section/PrimarySection.tsx
@@ -0,0 +1,24 @@
+import MainCard from '@/components/landing/Section/MainCard';
+import styles from './PrimarySection.module.css';
+
+export default function PrimarySection() {
+ return (
+
+ );
+}
diff --git a/src/components/landing/Section/SecondarySection.module.css b/src/components/landing/Section/SecondarySection.module.css
new file mode 100644
index 0000000..fea4461
--- /dev/null
+++ b/src/components/landing/Section/SecondarySection.module.css
@@ -0,0 +1,30 @@
+.title {
+ margin-bottom: 36px;
+ font-size: 28px;
+ font-weight: 700;
+}
+
+.cards {
+ display: flex;
+ gap: 33px;
+}
+
+.cardSm1,
+.cardSm2,
+.cardSm3 {
+ width: 300px;
+}
+
+.cardSm1 {
+ height: 124px;
+}
+
+.cardSm2 {
+ width: 300px;
+ height: 231px;
+}
+
+.cardSm3 {
+ width: 300px;
+ height: 195px;
+}
diff --git a/src/components/landing/Section/SecondarySection.tsx b/src/components/landing/Section/SecondarySection.tsx
new file mode 100644
index 0000000..87b95f5
--- /dev/null
+++ b/src/components/landing/Section/SecondarySection.tsx
@@ -0,0 +1,33 @@
+import MiniCard from '@/components/landing/Section/MiniCard';
+import styles from './SecondarySection.module.css';
+
+export default function SecondarySection() {
+ return (
+
+ 생산성을 높이는 다양한 설정 ⚡
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/landing/layout.module.css b/src/components/landing/layout.module.css
new file mode 100644
index 0000000..5018643
--- /dev/null
+++ b/src/components/landing/layout.module.css
@@ -0,0 +1,12 @@
+.page {
+ height: 100%;
+ background-color: black;
+ color: white;
+}
+
+.main {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding-top: 164px;
+}
diff --git a/src/components/landing/layout.tsx b/src/components/landing/layout.tsx
new file mode 100644
index 0000000..340178c
--- /dev/null
+++ b/src/components/landing/layout.tsx
@@ -0,0 +1,14 @@
+import { ReactNode } from 'react';
+import Header from './Header/Header';
+import Footer from './Footer/Footer';
+import styles from './layout.module.css';
+
+export default function Layout({ children }: { children: ReactNode }) {
+ return (
+
+
+ {children}
+
+
+ );
+}