/* ë²¤ë” aurora.cssê°€ 화면마다 다른 ì¡°ìƒ í´ëž˜ìФ(.order-confirm__btn-group .btn,
.cash-receipt__btn-wrap .btn 등)ì— height/border-radius/color를 ì´ë¯¸ ì •ì˜í•´ë‘” 경우가
ë§Žì•„(ëª…ì‹œë„ 0,2,0), ì „ì— ë‹¨ì¼ í´ëž˜ìФ(.btn--dark/.btn--caution, ëª…ì‹œë„ 0,1,0)로는
화면마다 우연히 ê·¸ ì¡°ìƒ í´ëž˜ìŠ¤ëª…ê³¼ ê²¹ì¹ ë•Œë§ˆë‹¤ ê³„ì† ë°€ë ¸ë‹¤(주문완료/ê²°ì œì‹¤íŒ¨/
현금ì˜ìˆ˜ì¦ 모달ì—서 ì‹¤ì œë¡œ ë°œìƒ, 매번 화면별로 ìž¬ì •ì˜í•´ì•¼ í–ˆìŒ) — ì´ ì»´í¬ë„ŒíЏ
ìžì‹ ì˜ í´ëž˜ìŠ¤ë¥¼ ë‘ ë²ˆ 걸어(.eoshin-btn.eoshin-btn) 명시ë„를 0,2,0으로 맞춰서
ì–´ë–¤ í™”ë©´ì˜ ì–´ë–¤ wrapper í´ëž˜ìФì—ì„œë„ ë” ì´ìƒ 안 깨지게 한다(로드 ìˆœì„œìƒ ì´
파ì¼ì´ ë²¤ë” CSS보다 í•ìƒ ë‚˜ì¤‘ì— ë¡œë“œë˜ë¯€ë¡œ ë™ë¥ ì´ë©´ ì´ íŒŒì¼ì´ ì´ê¸´ë‹¤) */
.eoshin-btn.eoshin-btn {
height: 52px;
border: 0;
border-radius: 8px;
font-family: Pretendard, sans-serif;
font-size: 16px;
}
.eoshin-btn.eoshin-btn--dark {
background-color: #f0f4fe;
color: #3c56d6;
font-weight: 500;
}
.eoshin-btn.eoshin-btn--caution {
background-color: #4a69ea;
color: #ffffff;
font-weight: 600;
}
.eoshin-btn.eoshin-btn:disabled {
background-color: #e6e6e6;
color: #ababab;
cursor: default;
}
/* OptionDropdown — 네ì´í‹°ë¸Œ <select> ëŒ€ì‹ ì“°ëŠ” 커스텀 드ë¡ë‹¤ìš´.
ì›ëž˜ ìƒí’ˆìƒì„¸ 구매 바텀시트(.purchase-sheet) 안ì—서만 스코프해 ì“°ë˜ ê±¸
ì´ë©”ì¼ ë„ë©”ì¸ ì„ íƒ ë“± 다른 ê³³ì—ì„œë„ ìž¬ì‚¬ìš©í•˜ë„ë¡ ì»´í¬ë„ŒíЏ ì†Œìœ CSS로 승격.
펼침 목ë¡ì€ 문서 íë¦„ì— ìžë¦¬ë¥¼ 차지하지 않ë„ë¡ íŠ¸ë¦¬ê±° 기준 ì ˆëŒ€ 위치로 ë„ìš°ê³
(ì˜ˆì „ì—” 목ë¡ì´ ì‹¤ì œ ë ˆì´ì•„웃 높ì´ë¥¼ 차지해 ì—´ 때마다 아래 콘í…ì¸ ê°€ ë°€ë ¤ ë‚´ë ¤ê°”ìŒ),
opacity/transform으로 ì—´ê³ ë‹«ížˆëŠ” íŠ¸ëžœì§€ì…˜ì„ ì¤€ë‹¤ */
.option-dropdown {
position: relative;
width: 100%;
margin-bottom: 12px;
}
.option-dropdown__trigger {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 40px;
padding: 0 12px;
background-color: #ffffff;
border: 1px solid #e6e6e6;
border-radius: 8px;
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 500;
text-align: left;
}
.option-dropdown.is-disabled .option-dropdown__trigger {
cursor: not-allowed;
opacity: 0.5;
}
/* 펼침 ìƒíƒœ — Figma Option/BottomSheet(6901:32152): 컨테ì´ë„ˆ ì „ì²´ê°€ 1px #202020
ë³´ë”로 ë°”ë€Œê³ , 목ë¡ì´ íŠ¸ë¦¬ê±°ì— ë¶™ì–´ 한 박스처럼 ì´ì–´ì§„다(트리거 하단 ë¼ìš´ë“œ ì œê±°,
목ë¡ì€ ìƒë‹¨ ë¼ìš´ë“œ ì œê±° + ìƒë‹¨ ë³´ë” ì—†ì´ íŠ¸ë¦¬ê±° ë³´ë”를 그대로 ì´ì–´ë°›ìŒ) */
.option-dropdown.is-open .option-dropdown__trigger {
border-color: #202020;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.option-dropdown.is-open .option-dropdown__list {
border-color: #202020;
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.option-dropdown__placeholder {
color: #9b9b9b;
}
.option-dropdown__value {
color: #404040;
}
.option-dropdown__chevron {
flex-shrink: 0;
transform: rotate(90deg);
transition: transform 0.2s;
}
.option-dropdown.is-open .option-dropdown__chevron {
transform: rotate(-90deg);
}
/* 트리거 바로 아래 ë– ìžˆëŠ” ëª©ë¡ â€” ê¸°ë³¸ê°’ì€ ì‚´ì§ ìœ„(-4px)·투명 ìƒíƒœë¡œ 숨겨ë‘ê³
is-openì¼ ë•Œë§Œ ì œìžë¦¬ë¡œ ë‚´ë ¤ì˜¤ë©° 나타나게 해서 여닫는 íŠ¸ëžœì§€ì…˜ì„ ë§Œë“ ë‹¤.
position:absoluteë¼ ë¬¸ì„œ í름(ë ˆì´ì•„웃 밀림)ì—는 ì˜í–¥ì„ 안 주지만, opacity/visibility만으로
숨기면 ì‹¤ì œ 박스 í¬ê¸°(240px)는 ê³„ì† ì°¨ì§€í•˜ê³ ìžˆì–´ì„œ — 바텀시트처럼 ë³¸ë¬¸ì´ ìŠ¤í¬ë¡¤ 가능한
컨테ì´ë„ˆ ì•ˆì— ìžˆìœ¼ë©´ ì´ ì•ˆ ë³´ì´ëŠ” 240px 박스까지 scrollHeightì— ìž¡í˜€ 바텀시트가 닫힌
ìƒíƒœì—ì„œë„ ì‹¤ì œë³´ë‹¤ í¬ê²Œ(ë˜ëŠ” 스í¬ë¡¤ 가능하게) 계산ë˜ëŠ” ë¬¸ì œê°€ 있었ìŒ.
닫혀 ìžˆì„ ë•Œ max-height:0 + overflow:hidden으로 박스 ìžì²´ë¥¼ ì ‘ì–´ì„œ ì–´ë–¤ ì¡°ìƒì˜
스í¬ë¡¤ ì˜ì—ì—ë„ ìž¡ížˆì§€ 않게 í•˜ê³ , 열릴 때만 ì‹¤ì œ 높ì´ë¡œ 펼ì³ì§€ë„ë¡ íŠ¸ëžœì§€ì…˜í•œë‹¤. */
.option-dropdown__list {
position: absolute;
top: 100%;
left: 0;
right: 0;
z-index: 10;
max-height: 0;
overflow: hidden;
background-color: #ffffff;
border: 1px solid #e6e6e6;
border-radius: 8px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
opacity: 0;
transform: translateY(-4px);
visibility: hidden;
pointer-events: none;
transition: max-height 0.2s ease, opacity 0.15s ease, transform 0.15s ease, visibility 0.2s;
scrollbar-width: none;
}
.option-dropdown__list::-webkit-scrollbar {
display: none;
}
.option-dropdown.is-open .option-dropdown__list {
max-height: 240px;
overflow-y: auto;
opacity: 1;
transform: translateY(0);
visibility: visible;
pointer-events: auto;
}
/* 바텀시트 안ì—서는 ì˜¤ë²„ë ˆì´ë¡œ ë„ìš°ì§€ ì•Šê³ ì‹¤ì œ ë ˆì´ì•„웃 ê³µê°„ì„ ì°¨ì§€í•˜ê²Œ 한다 —
펼ì³ì§€ëŠ” ë§Œí¼ ì‹œíŠ¸ ìžì²´ê°€ 늘어나며(하단 ê³ ì •ì´ë¼ 위쪽 가장ìžë¦¬ê°€ 위로 올ë¼ì˜¤ë©°) 펼ì³ì§„다.
페ì´ì§€ì— 그냥 ë†“ì˜€ì„ ë•Œ(ì˜¤ë²„ë ˆì´)와 달리, 바텀시트 스í¬ë¡¤ ì˜ì— 안ì—서는 ì´ë ‡ê²Œ ì‹¤ì œë¡œ
ìžë¦¬ë¥¼ 차지해야 트리거 아래 다른 내용과 겹치지 ì•Šê³ , 화면 아래로 ìž˜ë¦¬ì§€ë„ ì•ŠëŠ”ë‹¤. */
.option-dropdown--in-sheet .option-dropdown__list {
position: static;
top: auto;
left: auto;
right: auto;
box-shadow: none;
}
/* (펼침 목ë¡ì´ íŠ¸ë¦¬ê±°ì— ë¶™ëŠ” 한 박스 êµ¬ì¡°ë¼ in-sheetì—ì„œë„ ë³„ë„ ê°„ê²© ì—†ìŒ) */
.option-dropdown__item {
display: flex;
align-items: center;
justify-content: space-between;
height: 40px;
padding: 0 12px;
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 500;
color: #404040;
cursor: pointer;
}
.option-dropdown__item.is-disabled {
color: #ababab;
cursor: not-allowed;
}
.option-dropdown__item-note {
flex-shrink: 0;
margin-left: 12px;
font-family: Pretendard, sans-serif;
font-size: 12px;
font-weight: 400;
color: #9b9b9b;
}
/* í’ˆì ˆ ì˜µì…˜ì˜ ìž¬ìž…ê³ ì•Œë¦¼ 칩 — Figma NoticeButton(6901:32209) 실측: ë°°ê²½ #f0f4fe,
radius 4, ì•„ì´ì½˜-í…스트 gap 4px, í…스트 12px/400/#3c56d6 */
.option-dropdown__restock-chip {
display: flex;
flex-shrink: 0;
align-items: center;
gap: 4px;
margin-left: 12px;
padding: 4px 8px;
border: none;
border-radius: 4px;
background-color: #f0f4fe;
font-family: Pretendard, sans-serif;
font-size: 12px;
font-weight: 400;
color: #3c56d6;
cursor: pointer;
}