diff --git a/frontend/src/assets/styles/relay.css b/frontend/src/assets/styles/relay.css index 18605c6..7ddc9a7 100644 --- a/frontend/src/assets/styles/relay.css +++ b/frontend/src/assets/styles/relay.css @@ -569,6 +569,90 @@ body { color: var(--text-3); } +/* ============================================================ + * 폼 필드 (폼 모달 공통 — BaseModal 본문 등에서 사용) + * ============================================================ */ +.form-field { + display: flex; + flex-direction: column; + gap: 0.5rem; +} +.form-label { + font-size: 0.781rem; + font-weight: 600; + color: var(--text-2); +} +.form-row { + display: flex; + gap: 0.75rem; +} +.form-row .form-field { + flex: 1; + min-width: 0; +} +.form-input { + width: 100%; + height: 2.5rem; + padding: 0 0.75rem; + border: 1px solid var(--border-strong); + border-radius: var(--radius); + font-family: inherit; + font-size: 0.844rem; + color: var(--text); + background: #fff; +} +.form-input::placeholder { + color: var(--text-3); +} +.form-input:focus { + outline: none; + border-color: var(--accent); + box-shadow: 0 0 0 3px var(--accent-weak); +} +.form-textarea { + height: auto; + min-height: 5.75rem; + padding: 0.625rem 0.75rem; + line-height: 1.5; + resize: vertical; +} +/* 네이티브 select 래퍼 + 셰브론 */ +.form-select-wrap { + position: relative; +} +.form-select { + -webkit-appearance: none; + appearance: none; + width: 100%; + height: 2.5rem; + padding: 0 2.125rem 0 0.75rem; + border: 1px solid var(--border-strong); + border-radius: var(--radius); + font-family: inherit; + font-size: 0.844rem; + color: var(--text); + background: #fff; + cursor: pointer; +} +.form-select:focus { + outline: none; + border-color: var(--accent); + box-shadow: 0 0 0 3px var(--accent-weak); +} +.form-select-chev { + position: absolute; + right: 0.625rem; + top: 50%; + transform: translateY(-50%); + display: grid; + color: var(--text-3); + pointer-events: none; +} +.form-select-chev svg { + width: 0.9375rem; + height: 0.9375rem; +} + /* ============================================================ * 더보기 버튼 (목록 페이지네이션 공통) * ============================================================ */ @@ -593,3 +677,17 @@ body { opacity: 0.6; cursor: default; } + +/* ============================================================ + * 빈/상태 메시지 박스 (목록 로딩·빈 상태 공통) + * ============================================================ */ +.empty-state { + background: var(--panel); + border: 1px solid var(--border); + border-radius: 0.625rem; + box-shadow: var(--shadow-sm); + padding: 2.5rem 1.25rem; + text-align: center; + font-size: 0.844rem; + color: var(--text-3); +} diff --git a/frontend/src/components/DropdownSelect.vue b/frontend/src/components/DropdownSelect.vue index 06eead0..ad8f6a5 100644 --- a/frontend/src/components/DropdownSelect.vue +++ b/frontend/src/components/DropdownSelect.vue @@ -1,7 +1,8 @@