diff --git a/public/svg/3dicons.svg b/public/svg/3dicons.svg
new file mode 100644
index 00000000..5a46f30c
--- /dev/null
+++ b/public/svg/3dicons.svg
@@ -0,0 +1,9 @@
+
diff --git a/src/assets/svg/3Dicons.tsx b/src/assets/svg/3Dicons.tsx
new file mode 100644
index 00000000..514f4090
--- /dev/null
+++ b/src/assets/svg/3Dicons.tsx
@@ -0,0 +1,24 @@
+import type { SVGProps } from 'react';
+const Svg3Dicons = (props: SVGProps) => (
+
+);
+export default Svg3Dicons;
diff --git a/src/assets/svg/index.ts b/src/assets/svg/index.ts
index 42c38beb..d2259af8 100644
--- a/src/assets/svg/index.ts
+++ b/src/assets/svg/index.ts
@@ -1,3 +1,4 @@
+export { default as Svg3Dicons } from './3Dicons';
export { default as Favicon } from './Favicon';
export { default as IcAdd } from './IcAdd';
export { default as IcAlertCircle } from './IcAlertCircle';
diff --git a/src/components/.keep b/src/components/.keep
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/components/tournament/intro/TournamentContainer.tsx b/src/components/tournament/intro/TournamentContainer.tsx
new file mode 100644
index 00000000..b9fed45b
--- /dev/null
+++ b/src/components/tournament/intro/TournamentContainer.tsx
@@ -0,0 +1,23 @@
+import TournamentStartText from './tournamentStartText/TournamentStartText';
+import TournamentItemCount from './tournamentItemCount/TournamentItemCount';
+import styled from 'styled-components';
+import { Svg3Dicons } from '../../../assets/svg';
+
+export default function TournamentConatainer() {
+ return (
+ <>
+
+
+
+
+
+ {/* 공통버튼 btn_cta_fill 들어갈 예정*/}
+ >
+ );
+}
+
+const TournamentImg = styled.div`
+ width: 20rem;
+ height: 20rem;
+ margin: 0 auto;
+`;
diff --git a/src/components/tournament/intro/tournamentItemCount/TournamentItemCount.style.ts b/src/components/tournament/intro/tournamentItemCount/TournamentItemCount.style.ts
new file mode 100644
index 00000000..177c2ca5
--- /dev/null
+++ b/src/components/tournament/intro/tournamentItemCount/TournamentItemCount.style.ts
@@ -0,0 +1,10 @@
+import styled from 'styled-components';
+
+export const TournamentItemCountWrapper = styled.article`
+ margin-bottom: 5.5rem;
+`;
+
+export const TotalItems = styled.p`
+ ${({ theme }) => theme.fonts.body_09};
+ color: ${({ theme }) => theme.colors.G_09};
+`;
diff --git a/src/components/tournament/intro/tournamentItemCount/TournamentItemCount.tsx b/src/components/tournament/intro/tournamentItemCount/TournamentItemCount.tsx
new file mode 100644
index 00000000..716aaa31
--- /dev/null
+++ b/src/components/tournament/intro/tournamentItemCount/TournamentItemCount.tsx
@@ -0,0 +1,10 @@
+import * as S from './TournamentItemCount.style';
+
+export default function TournamentItemCount() {
+ const count = 16;
+ return (
+
+ 총 등록된 선물 {count}개
+
+ );
+}
diff --git a/src/components/tournament/intro/tournamentStartButton/TournamentStartButton.tsx b/src/components/tournament/intro/tournamentStartButton/TournamentStartButton.tsx
new file mode 100644
index 00000000..8c5c3710
--- /dev/null
+++ b/src/components/tournament/intro/tournamentStartButton/TournamentStartButton.tsx
@@ -0,0 +1,7 @@
+export default function TournamentStartButton() {
+ return (
+
+
+
+ );
+}
diff --git a/src/components/tournament/intro/tournamentStartText/TournamentStartText.style.ts b/src/components/tournament/intro/tournamentStartText/TournamentStartText.style.ts
new file mode 100644
index 00000000..f7427702
--- /dev/null
+++ b/src/components/tournament/intro/tournamentStartText/TournamentStartText.style.ts
@@ -0,0 +1,22 @@
+import styled from 'styled-components';
+
+export const TournamentStartTextWrapper = styled.article`
+ display: flex;
+ flex-direction: column;
+ gap: 0.4rem;
+ margin-bottom: 2rem;
+
+ text-align: left;
+`;
+
+export const Title = styled.p`
+ ${({ theme }) => theme.fonts.Title};
+`;
+
+export const SubTitle = styled.p`
+ ${({ theme }) => theme.fonts.body_07};
+`;
+
+export const UserName = styled.span`
+ color: ${({ theme }) => theme.colors.P_06};
+`;
diff --git a/src/components/tournament/intro/tournamentStartText/TournamentStartText.tsx b/src/components/tournament/intro/tournamentStartText/TournamentStartText.tsx
new file mode 100644
index 00000000..9e0efaa6
--- /dev/null
+++ b/src/components/tournament/intro/tournamentStartText/TournamentStartText.tsx
@@ -0,0 +1,17 @@
+import { useRecoilValue } from 'recoil';
+import { userNameState } from '../../../../recoil/atoms';
+import * as S from './TournamentStartText.style';
+
+export default function TournamentStartText() {
+ const userName = useRecoilValue(userNameState);
+
+ return (
+
+ 선물 등록이 마감되어
+
+ {userName}님을 위한
+ 선물 토너먼트를 시작합니다
+
+
+ );
+}
diff --git a/src/pages/TournamentPage.tsx b/src/pages/TournamentPage.tsx
new file mode 100644
index 00000000..6205f0a4
--- /dev/null
+++ b/src/pages/TournamentPage.tsx
@@ -0,0 +1,16 @@
+import styled from 'styled-components';
+import TournamentConatainer from '../components/tournament/intro/TournamentContainer';
+
+const TournamentPage = () => {
+ return (
+
+
+
+ );
+};
+
+export default TournamentPage;
+
+const TournamentPageWrapper = styled.section`
+ margin: 0 2rem;
+`;
diff --git a/src/recoil/atoms.ts b/src/recoil/atoms.ts
index fc1ef11e..f214f740 100644
--- a/src/recoil/atoms.ts
+++ b/src/recoil/atoms.ts
@@ -1,8 +1,6 @@
-//이런 식으로 작성
+import { atom } from 'recoil';
-//import { atom } from "recoil";
-
-// export const SweetState = atom({
-// key: "sweet",
-// default: {},
-// });
+export const userNameState = atom({
+ key: '',
+ default: '시동훈',
+});
diff --git a/src/router/Router.tsx b/src/router/Router.tsx
index 63feca2d..2f7e3723 100644
--- a/src/router/Router.tsx
+++ b/src/router/Router.tsx
@@ -5,6 +5,7 @@ import Layout from '../layouts/Layout';
import GiftHomeDetailFriends from '../pages/GiftHomeDetail/GiftHomeDetailFriends';
import GiftHomeDetail2030 from '../pages/GiftHomeDetail/GiftHomeDetail2030';
import OnBoardingPage from '../pages/OnBoardingPage';
+import TournamentPage from '../pages/TournamentPage';
const router = createBrowserRouter([
{
@@ -33,6 +34,10 @@ const router = createBrowserRouter([
path: '/onboarding',
element: ,
},
+ {
+ path: '/tournament',
+ element: ,
+ },
],
},
]);