-
Notifications
You must be signed in to change notification settings - Fork 7
[김혜성] Payment 미션 Step1 (공사중) #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
hyesung99
wants to merge
13
commits into
hyesung-main
Choose a base branch
from
hyesung
base: hyesung-main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
6027357
feat : responsive utils
hyesung99 bff1623
feat : breakpoint css-variable로 관리
hyesung99 6fe07b1
feat : Flex primitive 컴포넌트 추가
hyesung99 2e3d17d
feat : debounce 작성
hyesung99 dec1c77
feat : useResponsive custom hook
hyesung99 a6b5a2f
feat : Flex 공통 컴포넌트 추가
hyesung99 5fb5cbf
feat : Responsive utils
hyesung99 cc26d83
feat : Portal 추가
hyesung99 58841c5
feat : useClickOutside
hyesung99 79514ec
feat : useKeybind
hyesung99 3c9556f
feat : Modal 컴포넌트 추가
hyesung99 5bd4e66
feat : useFunnel
hyesung99 032ec58
refactor : useFunnel 제네릭 수정
hyesung99 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,317 +1,14 @@ | ||
| import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; | ||
| import Test from "./pages/Test"; | ||
|
|
||
| function App() { | ||
| return ( | ||
| <> | ||
| <h1>React Clean Code Payments CSS example</h1> | ||
| <h2>1️⃣ 카드 추가</h2> | ||
| <div className="root"> | ||
| <div className="app"> | ||
| <h3 className="page-title"> | ||
| 카드 추가 | ||
| </h3> | ||
| <div className="card-box"> | ||
| <div className="empty-card"> | ||
| <div className="card-top"></div> | ||
| <div className="card-middle"> | ||
| <div className="small-card__chip"></div> | ||
| </div> | ||
| <div className="card-bottom"> | ||
| <div className="card-bottom__info"> | ||
| <span className="card-text">NAME</span> | ||
| <span className="card-text">MM / YY</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 번호</span> | ||
| <div className="input-box"> | ||
| <input className="input-basic" type="text"/> | ||
| <input className="input-basic" type="text"/> | ||
| <input className="input-basic" type="password"/> | ||
| <input className="input-basic" type="password"/> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">만료일</span> | ||
| <div className="input-box w-50"> | ||
| <input className="input-basic" type="text" placeholder="MM"/> | ||
| <input className="input-basic" type="text" placeholder="YY"/> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 소유자 이름(선택)</span> | ||
| <input | ||
| type="text" | ||
| className="input-basic" | ||
| placeholder="카드에 표시된 이름과 동일하게 입력하세요." | ||
| /> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">보안코드(CVC/CVV)</span> | ||
| <input className="input-basic w-25" type="password"/> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 비밀번호</span> | ||
| <input className="input-basic w-15" type="password"/> | ||
| <input className="input-basic w-15" type="password"/> | ||
| <input className="input-basic w-15" type="password"/> | ||
| <input className="input-basic w-15" type="password"/> | ||
| </div> | ||
| <div className="button-box"> | ||
| <span className="button-text">다음</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
|
|
||
| <h2>2️⃣ 카드 추가 - 카드사 선택</h2> | ||
| <div className="root"> | ||
| <div className="app"> | ||
| <h3 className="page-title"> | ||
| 카드 추가 | ||
| </h3> | ||
| <div className="card-box"> | ||
| <div className="small-card"> | ||
| <div className="card-top"> | ||
| <span className="card-text">클린카드</span> | ||
| </div> | ||
| <div className="card-middle"> | ||
| <div className="small-card__chip"></div> | ||
| </div> | ||
| <div className="card-bottom"> | ||
| <div className="card-bottom__number"> | ||
| <span className="card-text">1111 - 2222 - oooo - oooo</span> | ||
| </div> | ||
| <div className="card-bottom__info"> | ||
| <span className="card-text">NAME</span> | ||
| <span className="card-text">MM / YY</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 번호</span> | ||
| <div className="input-box"> | ||
| <input className="input-basic" type="text" value="1111"/> | ||
| <input className="input-basic" type="text" value="2222"/> | ||
| <input className="input-basic" type="password" value="1111"/> | ||
| <input className="input-basic" type="password" value="1111"/> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">만료일</span> | ||
| <div className="input-box w-50"> | ||
| <input className="input-basic" type="text" placeholder="MM"/> | ||
| <input className="input-basic" type="text" placeholder="YY"/> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 소유자 이름(선택)</span> | ||
| <input | ||
| type="text" | ||
| className="input-basic" | ||
| placeholder="카드에 표시된 이름과 동일하게 입력하세요." | ||
| /> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">보안코드(CVC/CVV)</span> | ||
| <input className="input-basic w-25" type="password"/> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 비밀번호</span> | ||
| <input className="input-basic w-15" type="password"/> | ||
| <input className="input-basic w-15" type="password"/> | ||
| <input className="input-basic w-15" type="password"/> | ||
| <input className="input-basic w-15" type="password"/> | ||
| </div> | ||
| <div className="button-box"> | ||
| <span className="button-text">다음</span> | ||
| </div> | ||
| </div> | ||
| <div className="modal-dimmed"> | ||
| <div className="modal"> | ||
| <div className="flex-center"> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| </div> | ||
| <div className="flex-center"> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| <div className="modal-item-container"> | ||
| <div className="modal-item-dot"></div> | ||
| <span className="modal-item-name">클린 카드</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
|
|
||
| <h2>3️⃣ 카드 추가 - 입력 완료</h2> | ||
| <div className="root"> | ||
| <div className="app"> | ||
| <h3 className="page-title"> | ||
| 카드 추가 | ||
| </h3> | ||
| <div className="card-box"> | ||
| <div className="small-card"> | ||
| <div className="card-top"> | ||
| <span className="card-text">클린카드</span> | ||
| </div> | ||
| <div className="card-middle"> | ||
| <div className="small-card__chip"></div> | ||
| </div> | ||
| <div className="card-bottom"> | ||
| <div className="card-bottom__number"> | ||
| <span className="card-text">1111 - 2222 - oooo - oooo</span> | ||
| </div> | ||
| <div className="card-bottom__info"> | ||
| <span className="card-text">프롱이</span> | ||
| <span className="card-text">12 / 23</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 번호</span> | ||
| <div className="input-box"> | ||
| <input className="input-basic" type="text" value="1111"/> | ||
| <input className="input-basic" type="text" value="2222"/> | ||
| <input className="input-basic" type="password" value="1111"/> | ||
| <input className="input-basic" type="password" value="1111"/> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">만료일</span> | ||
| <div className="input-box w-50"> | ||
| <input | ||
| className="input-basic" | ||
| type="text" | ||
| placeholder="MM" | ||
| value="12" | ||
| /> | ||
| <input | ||
| className="input-basic" | ||
| type="text" | ||
| placeholder="YY" | ||
| value="23" | ||
| /> | ||
| </div> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 소유자 이름(선택)</span> | ||
| <input type="text" className="input-basic" value="프롱이"/> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">보안코드(CVC/CVV)</span> | ||
| <input className="input-basic w-25" type="password" value="111"/> | ||
| </div> | ||
| <div className="input-container"> | ||
| <span className="input-title">카드 비밀번호</span> | ||
| <input className="input-basic w-15" type="password" value="1"/> | ||
| <input className="input-basic w-15" type="password" value="1"/> | ||
| <input className="input-basic w-15" type="password" value="1"/> | ||
| <input className="input-basic w-15" type="password" value="1"/> | ||
| </div> | ||
| <div className="button-box"> | ||
| <span className="button-text">다음</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
|
|
||
| <h2>4️⃣ 카드 추가 완료</h2> | ||
| <div className="root"> | ||
| <div className="app flex-column-center"> | ||
| <div className="flex-center"> | ||
| <h2 className="page-title mb-10">카드등록이 완료되었습니다.</h2> | ||
| </div> | ||
| <div className="card-box"> | ||
| <div className="big-card"> | ||
| <div className="card-top"> | ||
| <span className="card-text__big">클린카드</span> | ||
| </div> | ||
| <div className="card-middle"> | ||
| <div className="big-card__chip"></div> | ||
| </div> | ||
| <div className="card-bottom"> | ||
| <div className="card-bottom__number"> | ||
| <span className="card-text__big">1111 - 2222 - oooo - oooo</span> | ||
| </div> | ||
| <div className="card-bottom__info"> | ||
| <span className="card-text__big">프롱이</span> | ||
| <span className="card-text__big">12 / 23</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <div className="input-container flex-center w-100"> | ||
| <input | ||
| className="input-underline w-75" | ||
| type="text" | ||
| placeholder="카드의 별칭을 입력해주세요." | ||
| /> | ||
| </div> | ||
| <div className="button-box mt-50"> | ||
| <span className="button-text">다음</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
|
|
||
| <h2>5️⃣ 카드 목록</h2> | ||
| <div className="root"> | ||
| <div className="app flex-column-center"> | ||
| <div className="flex-center"> | ||
| <h2 className="page-title mb-10">보유 카드</h2> | ||
| </div> | ||
| <div className="card-box"> | ||
| <div className="small-card"> | ||
| <div className="card-top"> | ||
| <span className="card-text">클린카드</span> | ||
| </div> | ||
| <div className="card-middle"> | ||
| <div className="small-card__chip"></div> | ||
| </div> | ||
| <div className="card-bottom"> | ||
| <div className="card-bottom__number"> | ||
| <span className="card-text">1111 - 2222 - oooo - oooo</span> | ||
| </div> | ||
| <div className="card-bottom__info"> | ||
| <span className="card-text">프롱이</span> | ||
| <span className="card-text">12 / 23</span> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| <span className="card-nickname">법인카드</span> | ||
| <div className="card-box"> | ||
| <div className="empty-card">+</div> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </> | ||
| ) | ||
| <Router> | ||
| <Routes> | ||
| <Route path="/" element={<Test />} /> | ||
| </Routes> | ||
| </Router> | ||
| ); | ||
| } | ||
|
|
||
| export default App | ||
| export default App; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| import { style } from "@vanilla-extract/css"; | ||
| import { createResponsiveStyle } from "../../utils/responsive"; | ||
| import { FlexProps } from "./Flex"; | ||
|
|
||
| export const flexBase = style({ | ||
| display: "flex", | ||
| }); | ||
|
|
||
| export const createFlexStyle = ({ | ||
| direction, | ||
| justify, | ||
| align, | ||
| wrap, | ||
| gap, | ||
| }: FlexProps) => { | ||
| return style([ | ||
| flexBase, | ||
| createResponsiveStyle("flexDirection", direction || "row"), | ||
| createResponsiveStyle("justifyContent", justify || "flex-start"), | ||
| createResponsiveStyle("alignItems", align || "stretch"), | ||
| createResponsiveStyle("flexWrap", wrap || "nowrap"), | ||
| createResponsiveStyle("gap", gap || 0), | ||
| ]); | ||
| }; |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사용하지 않는 파일입니다...!