diff --git a/src/AppRouter.js b/src/AppRouter.js index 4c52a07..1f8dbef 100644 --- a/src/AppRouter.js +++ b/src/AppRouter.js @@ -1,7 +1,16 @@ /* eslint-disable import/no-unresolved */ import React from 'react'; import { BrowserRouter, Route, Routes } from 'react-router-dom'; -import { Login, Main, Save, Vote, MyPage, SaveRecord } from 'pages'; +import { + Login, + Main, + Save, + Vote, + VoteComplete, + MyPage, + SaveRecord, + SaveComplete, +} from 'pages'; function AppRouter() { return ( @@ -14,7 +23,9 @@ function AppRouter() { {/* 추후 로그인 여부 확인 로직 필요 */} } /> + } /> } /> + } /> } /> } /> } /> diff --git a/src/pages/Save/SaveComplete/index.js b/src/pages/Save/SaveComplete/index.js new file mode 100644 index 0000000..88839fe --- /dev/null +++ b/src/pages/Save/SaveComplete/index.js @@ -0,0 +1,33 @@ +/* eslint-disable import/no-unresolved */ +import React from 'react'; +import { SaveBear, WhiteClose } from 'assets'; +import { + StyledRoot, + MainText, + ImgBox, + HomeButton, + Text, + ExitButton, + ButtonBox, +} from './style'; + +function SaveComplete() { + return ( + + + + + 날씨 기록이 저장되었어요 + + 저장하는 곰돌이 이미지 + + + 홈으로 돌아가기 + + + ); +} + +export default SaveComplete; diff --git a/src/pages/Save/SaveComplete/style.js b/src/pages/Save/SaveComplete/style.js new file mode 100644 index 0000000..d89f170 --- /dev/null +++ b/src/pages/Save/SaveComplete/style.js @@ -0,0 +1,103 @@ +/* eslint-disable import/no-unresolved */ +import styled from 'styled-components'; +import { applyMediaQuery } from 'styles/mediaQuery'; + +const StyledRoot = styled.div` + width: 100vw; + min-height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background: ${({ theme: { color } }) => color.greenDarker}; +`; + +const ButtonBox = styled.div` + ${applyMediaQuery('mobile')} { + button { + margin-bottom: 3rem; + margin-left: 37rem; + } + } +`; + +const ExitButton = styled.img` + ${applyMediaQuery('desktop')} { + display: none; + } + + ${applyMediaQuery('mobile')} { + width: 3rem; + height: 3rem; + } +`; + +const MainText = styled.p` + font-family: 'Cafe24Ssurround'; + font-size: ${({ theme: { font } }) => font.size.large}; + color: ${({ theme: { color } }) => color.white}; + /* margin-top: 7rem; */ + margin-bottom: 5rem; + + ${applyMediaQuery('mobile')} { + font-size: ${({ theme: { font } }) => font.size.semiLarge}; + margin-bottom: 4rem; + } +`; + +const ImgBox = styled.div` + display: flex; + align-items: center; + justify-content: center; + width: 40rem; + height: 40rem; + background-color: ${({ theme: { color } }) => color.white}; + border-radius: 0.6rem; + margin: 0rem; + + img { + width: 92%; + height: 92%; + } + + ${applyMediaQuery('mobile')} { + width: 40rem; + height: 40rem; + } +`; + +const HomeButton = styled.button` + width: 20rem; + height: 5rem; + margin-top: 5rem; + border-radius: 0.6rem; + background-color: ${({ theme: { color } }) => color.white}; + + ${applyMediaQuery('mobile')} { + margin-top: 3rem; + width: 40rem; + height: 5rem; + } +`; + +const Text = styled.p` + font-family: 'Cafe24Ssurround'; + font-size: ${({ theme: { font } }) => font.size.small}; + color: ${({ theme: { color } }) => color.greenDarker}; + + ${applyMediaQuery('mobile')} { + font-family: 'Noto'; + font-size: ${({ theme: { font } }) => font.size.small}; + font-weight: ${({ theme: { font } }) => font.weight.bold}; + } +`; + +export { + StyledRoot, + ButtonBox, + ExitButton, + MainText, + ImgBox, + HomeButton, + Text, +}; diff --git a/src/pages/Vote/VoteComplete/index.js b/src/pages/Vote/VoteComplete/index.js new file mode 100644 index 0000000..ed7c2f7 --- /dev/null +++ b/src/pages/Vote/VoteComplete/index.js @@ -0,0 +1,28 @@ +/* eslint-disable import/no-unresolved */ +import React from 'react'; +import { + StyledRoot, + MainText, + ContentBox, + Clothes, + Place, + HomeButton, + Text, +} from './style'; + +function VoteComplete() { + return ( + + 투표가 등록되었어요 + + 오늘 주경바막 + 조형예술관에서 허, 불허? + + + 홈으로 돌아가기 + + + ); +} + +export default VoteComplete; diff --git a/src/pages/Vote/VoteComplete/style.js b/src/pages/Vote/VoteComplete/style.js new file mode 100644 index 0000000..682236d --- /dev/null +++ b/src/pages/Vote/VoteComplete/style.js @@ -0,0 +1,86 @@ +/* eslint-disable import/no-unresolved */ +import styled from 'styled-components'; +import { applyMediaQuery } from 'styles/mediaQuery'; + +const StyledRoot = styled.div` + width: 100vw; + min-height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background: ${({ theme: { color } }) => color.greenDarker}; +`; + +const MainText = styled.p` + font-family: 'Cafe24Ssurround'; + font-size: ${({ theme: { font } }) => font.size.semiLarge}; + color: ${({ theme: { color } }) => color.white}; + margin-bottom: 10.2rem; +`; + +const ContentBox = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 56rem; + height: 20rem; + border-radius: 0.6rem; + background-color: ${({ theme: { color } }) => color.greenLighter}; + + ${applyMediaQuery('mobile')} { + width: 40rem; + height: 15rem; + } +`; + +const Clothes = styled.p` + font-family: 'Noto'; + font-size: ${({ theme: { font } }) => font.size.semiMedium}; + color: ${({ theme: { color } }) => color.greenDarker}; + margin-bottom: 2rem; + + ${applyMediaQuery('mobile')} { + font-size: ${({ theme: { font } }) => font.size.regular}; + margin-bottom: 1rem; + } +`; + +const Place = styled.p` + font-family: 'Noto'; + font-size: ${({ theme: { font } }) => font.size.semiMedium}; + color: ${({ theme: { color } }) => color.greenDarker}; + + ${applyMediaQuery('mobile')} { + font-size: ${({ theme: { font } }) => font.size.regular}; + } +`; + +const HomeButton = styled.button` + width: 20rem; + height: 5rem; + margin-top: 13.5rem; + border-radius: 0.6rem; + background-color: ${({ theme: { color } }) => color.white}; + + ${applyMediaQuery('mobile')} { + margin-top: 3rem; + width: 40rem; + height: 5rem; + } +`; + +const Text = styled.p` + font-family: 'Cafe24Ssurround'; + font-size: ${({ theme: { font } }) => font.size.small}; + color: ${({ theme: { color } }) => color.greenDarker}; + + ${applyMediaQuery('mobile')} { + font-family: 'Noto'; + font-size: ${({ theme: { font } }) => font.size.small}; + font-weight: ${({ theme: { font } }) => font.weight.bold}; + } +`; + +export { StyledRoot, MainText, ContentBox, Clothes, Place, HomeButton, Text }; diff --git a/src/pages/Vote/index.js b/src/pages/Vote/index.js index 9de99e3..06ba7a5 100644 --- a/src/pages/Vote/index.js +++ b/src/pages/Vote/index.js @@ -1,13 +1,74 @@ /* eslint-disable import/no-unresolved */ import React from 'react'; -import { RecSun } from 'assets'; -import { StyledRoot, Text } from './style'; +import { useNavigate } from 'react-router-dom'; +import { WhiteLeft } from 'assets'; +import { HeaderIcon, PublicButton } from 'components'; +import { + StyledRoot, + HeaderIconBox, + Text, + BackButton, + BackButtonBox, + SubText, + MainText, + ContentBox, + FormBox, + SubjectText, + Form, + ButtonBox, +} from './style'; function Vote() { + const navigate = useNavigate(); return ( - Vote - RecSunny + + + + + + + + 오늘 옷차림이 고민될 땐, + 벗들에게 물어봐! + + + + + 오늘 이 옷* + +
+ +
+
+ + 어디에서 +
+ +
+
+ 허, 불허? +
+ + +
); } diff --git a/src/pages/Vote/style.js b/src/pages/Vote/style.js index 8707014..e46418d 100644 --- a/src/pages/Vote/style.js +++ b/src/pages/Vote/style.js @@ -4,16 +4,150 @@ import { applyMediaQuery } from 'styles/mediaQuery'; const StyledRoot = styled.div` padding: 5rem; + width: 100vw; + min-height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background: linear-gradient( + to top, + ${({ theme: { color } }) => color.white} 70%, + ${({ theme: { color } }) => color.greenDarker} 30% + ); +`; + +const HeaderIconBox = styled.div` + width: 100%; + display: flex; + flex-direction: column; + align-items: flex-end; + ${applyMediaQuery('mobile')} { + display: none; + } +`; + +const BackButtonBox = styled.div` + .backbutton { + display: none; + } + + ${applyMediaQuery('mobile')} { + .backbutton { + display: flex; + position: absolute; + left: 10vw; + top: 10vw; + } + } +`; + +const BackButton = styled.img` + width: 3rem; + height: 3rem; `; const Text = styled.p` - color: ${({ theme: { color } }) => color.red}; + width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding-bottom: 9rem; + + ${applyMediaQuery('mobile')} { + top: 0; + padding-top: 11.7rem; + position: fixed; + } +`; + +const SubText = styled.p` font-family: 'Noto Sans'; - font-size: ${({ theme: { font } }) => font.size.large}; - font-weight: ${({ theme: { font } }) => font.weight.light}; + font-size: ${({ theme: { font } }) => font.size.semiSmall}; + color: ${({ theme: { color } }) => color.white}; + padding-bottom: 3rem; +`; + +const MainText = styled.p` + font-family: 'Cafe24Ssurround'; + font-size: ${({ theme: { font } }) => font.size.semiLarge}; + color: ${({ theme: { color } }) => color.white}; +`; + +const ContentBox = styled.div` + margin-top: 4rem; + margin-bottom: 3rem; + + ${applyMediaQuery('mobile')} { + margin-top: 20rem; + } +`; + +const FormBox = styled.div` + margin-bottom: 4rem; +`; + +const SubjectText = styled.p` + display: flex; + font-family: 'Cafe24Ssurround'; + font-size: ${({ theme: { font } }) => font.size.regular}; + color: ${({ theme: { color } }) => color.greenDarker}; + margin-bottom: 2.7rem; + + span { + display: none; + } + ${applyMediaQuery('mobile')} { - color: ${({ theme: { color } }) => color.greenDarkest}; + span { + display: block; + padding-left: 0.7rem; + font-family: 'Cafe24SsurroundAir'; + color: ${({ theme: { color } }) => color.red}; + } } `; -export { StyledRoot, Text }; +const Form = styled.form` + input { + width: 50rem; + height: 5rem; + outline: none; + border: none; + border-bottom: 2px solid ${({ theme: { color } }) => color.greenDarker}; + } + + input::placeholder { + font-family: 'Noto'; + font-weight: ${({ theme: font }) => font.light}; + color: ${({ theme: { color } }) => color.grey}; + } + + ${applyMediaQuery('mobile')} { + input { + width: 43rem; + } + } +`; + +const ButtonBox = styled.div` + display: flex; + justify-content: center; + margin-bottom: 3rem; +`; + +export { + StyledRoot, + HeaderIconBox, + Text, + BackButton, + BackButtonBox, + SubText, + MainText, + ContentBox, + FormBox, + SubjectText, + Form, + ButtonBox, +}; diff --git a/src/pages/index.js b/src/pages/index.js index c550721..d8fc252 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -2,5 +2,7 @@ export { default as Login } from './Login'; export { default as Main } from './Main'; export { default as MyPage } from './MyPage'; export { default as Save } from './Save'; +export { default as SaveComplete } from './Save/SaveComplete'; export { default as Vote } from './Vote'; +export { default as VoteComplete } from './Vote/VoteComplete'; export { default as SaveRecord } from './SaveRecord';