사용자 화면 · 회원가입/로그인
LOG-002 · 2026. 03. 19
| 1 | 약관동의 바텀시트 |
|
Design Output
위 스토리보드 기획을 CHAART OS 디자인 토큰으로 변환한 결과물. 실제 구현 시 참조할 최종 디자인.
차트로 시작하기.
나를 위한 단 하나의 차트.
지금 바로 로그인하고 시작해 보세요.
서비스 이용약관 내용이 표시됩니다.
개인정보 처리방침 내용이 표시됩니다.
마케팅 수신 동의 내용이 표시됩니다.
Update History
1. 화면 구조 개요
2. 레이어 구조 + 치수
| # | 영역 | 높이/위치 | 세부 치수 |
|---|---|---|---|
| 1 | 배경 (LOG-001 화면) | 전체 화면 852px | LOG-001 히어로 카피 + 소셜 버튼이 그대로 보임. pointer-events: none |
| 2 | 딤 오버레이 | inset:0 전체 화면, z-index:5 | rgba(26,26,26,0.45) — 상태바 포함 전체 딤. opacity transition 400ms cubic-bezier(0.4,0,0.2,1) |
| 3 | 바텀시트 컨테이너 | bottom:0, 콘텐츠 기준 가변, z-index:6 | 배경: --bg #FAFAF8. 직각 R=0. transform: translateY(100%→0) |
| 4 | 핸들 바 | padding-top: 12px, 중앙 정렬 | 36x4px, rgba(26,26,26,0.12) |
| 5 | 헤더 ("약관 전체 동의" + X) | padding: 16px 24px | flex, space-between. 하단 border: 1px solid rgba(26,26,26,0.07) |
| 6 | 전체 동의 체크박스 | 헤더 좌측 | 22x22px, border: 1.5px solid --charcoal #1A1A1A. 직각 R=0. 체크 아이콘: stroke-linecap="square", stroke-linejoin="miter" |
| 7 | "약관 전체 동의" 텍스트 | 체크박스 우측 gap: 12px | --sans Pretendard / 16px / 700 / --charcoal / letter-spacing:var(--ls-tight) |
| 8 | 닫기(X) 아이콘 | 헤더 우측 | 22x22px SVG, stroke: --text-muted #888888, stroke-width:1.5, linecap="square", linejoin="miter". hover 시 stroke→--charcoal |
| 9 | 약관 항목 영역 | padding: 8px 24px 0 | 4개 항목 세로 스택 |
| 10 | 개별 약관 체크박스 | 각 항목 좌측 | 18x18px, border: 1.5px solid rgba(26,26,26,0.25). 직각 R=0. 체크 시 border→--charcoal |
| 11 | 약관 항목 텍스트 | 체크박스 우측 gap: 12px | --sans Pretendard / 14px / 400 / --charcoal / letter-spacing:var(--ls-normal). (필수)/(선택) 라벨: --text-muted #888888 / 12px |
| 12 | "내용보기" 링크 | 항목 우측 끝 | --mono TASA Orbiter / 12px / --text-muted #888888 / letter-spacing:var(--ls-wide) / uppercase. hover 시 color→--charcoal |
| 13 | 약관 항목 패딩 | 각 항목 padding: 10px 0 10px 10px | 항목 간 세로 간격은 padding 기반 (10px top + 10px bottom) |
| 14 | "가입하기" CTA 버튼 | padding: 20px 24px 24px | 높이 50px, full-width, 직각 R=0. 폰트: --sans Pretendard / 15px / 600 / letter-spacing:var(--ls-normal) / center |
3. 핵심 인터랙션 — 체크박스 연동 로직
4. 상태 변화 — CTA 버튼
rgba(26,26,26,0.12), color: rgba(26,26,26,0.3), cursor: defaultlinear-gradient(135deg, #961E23 0%, #B22A30 50%, #961E23 100%), color: #fff, cursor: pointercubic-bezier(0.4,0,0.2,1)5. 네비게이션 플로우
6. 에러/예외 처리
7. 모션 스펙
| 요소 | Duration | Easing | Property |
|---|---|---|---|
| 바텀시트 등장 | 500ms | cubic-bezier(0.32, 0.72, 0, 1) | transform: translateY(100%) → translateY(0) |
| 바텀시트 닫힘 | 500ms | cubic-bezier(0.32, 0.72, 0, 1) | transform: translateY(0) → translateY(100%) |
| 딤 오버레이 등장 | 400ms | cubic-bezier(0.4, 0, 0.2, 1) | opacity: 0 → 1 |
| 딤 오버레이 퇴장 | 400ms | cubic-bezier(0.4, 0, 0.2, 1) | opacity: 1 → 0 |
| 체크박스 토글 | 200ms | ease | check icon opacity + border-color |
| CTA 상태 전환 | 400ms | cubic-bezier(0.4, 0, 0.2, 1) | background + color 동시 전환 |
| 약관 상세 push-in | 400ms | cubic-bezier(0.32, 0.72, 0, 1) | transform: translateX(100%) → translateX(0) |
| 약관 상세 push-out | 400ms | cubic-bezier(0.32, 0.72, 0, 1) | transform: translateX(0) → translateX(100%) |
8. 여백·간격 요약
| 위치 | 값 | 비고 |
|---|---|---|
| 바텀시트 좌우 패딩 | 24px | 내부 콘텐츠 마진 |
| 핸들 바 상단 padding | 12px | 핸들 바 위 여백 |
| 헤더 padding | 16px 24px | "약관 전체 동의" + X 버튼 영역 |
| 체크박스 ↔ 텍스트 gap | 12px | 전체 동의/개별 항목 모두 동일 |
| 약관 항목 padding | 10px 0 10px 10px | 각 항목별 세로 간격 |
| 약관 리스트 wrapper padding | 8px 24px 0 | 헤더 구분선 아래 약관 항목 시작 |
| CTA 버튼 영역 padding | 20px 24px 24px | 약관 리스트 아래 → CTA → 하단 |
| CTA 버튼 높이 | 50px | 터치 타겟 44px 이상 충족 |
| 약관 상세 패널 navbar padding | 54px 24px 12px | 뒤로가기 chevron + 타이틀 |
| 약관 상세 패널 본문 padding | 16px 24px 34px | 스크롤 가능 영역, -webkit-overflow-scrolling: touch |
9. 적용 디자인 토큰
--bg → #FAFAF8, 직각 border-radius: 0--charcoal 45% → rgba(26,26,26,0.45)--charcoal 12% → 36x4px, rgba(26,26,26,0.12)--sans / 16px / 700 → Pretendard Variable, Bold, ls: -0.02em--charcoal 1.5px border → 직각 (R=0), check: stroke-linecap="square"--charcoal 25% → 직각 (R=0), 미체크 상태--sans / 14px / 400 → Pretendard, ls: -0.005em--text-muted / 12px → #888888, 항목 텍스트 뒤 인라인--mono / 12px / --text-muted → TASA Orbiter, ls: 0.04em, uppercase--text-muted → stroke-linecap="square", stroke-linejoin="miter"--charcoal 7% → rgba(26,26,26,0.07), 1px solid--red-brand gradient / 50px height → 직각, 15px font, 600 weight, 135deg gradient--bg #FAFAF8, z-index:20. Navbar: chevron-left 20x20px + 타이틀 --sans 17px/700/--charcoal/ls:-0.02em. 본문: --sans 13px/--text-secondary/line-height:1.8. Home Indicator: 120x5px --charcoal R=5px--sans 12px/500 / padding 10px 20px / R=0--charcoal #1A1A1A / text #fff / 동일 위치/사이즈/타이밍Interactive Case Demo — 각 케이스 버튼 클릭 시 위 폰 목업에서 시뮬레이션됩니다