전역 토스트 알림 추가 및 UI/로직 개선:
eapim-portal CI / build (push) Has been cancelled
eapim-portal Test / test (push) Has been cancelled

- 전역 토스트 알림용 JS 및 SCSS 추가 (djbToast)
- 신규 토스트 연동 레이아웃(js 포함) 및 스타일 확장 대응
- 클라이언트 신청/수정 화면 개선, IP 등록 검증 로직 추가
This commit is contained in:
Rinjae
2026-07-29 15:32:05 +09:00
parent 929980c089
commit c02a5ff047
31 changed files with 675 additions and 93 deletions
+165 -2
View File
@@ -6950,6 +6950,79 @@ select.form-control {
color: #c3dfea;
}
.djb-toast-container {
position: fixed;
top: 24px;
left: 50%;
transform: translateX(-50%);
z-index: 12000;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
pointer-events: none;
}
@media (max-width: 768px) {
.djb-toast-container {
top: 12px;
left: 12px;
right: 12px;
transform: none;
align-items: stretch;
}
}
.djb-toast {
pointer-events: auto;
min-width: 260px;
max-width: 380px;
padding: 14px 18px;
border-radius: 10px;
background: #f4f7fc;
color: #1f2328;
font-size: 14px;
line-height: 1.5;
border: 1px solid #e3e8f0;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
cursor: pointer;
opacity: 0;
transform: translateY(-12px);
transition: opacity 0.22s ease, transform 0.22s ease;
}
.djb-toast.is-show {
opacity: 1;
transform: translateY(0);
}
.djb-toast {
border-left: 4px solid #0049B4;
}
.djb-toast--info {
border-left-color: #0049B4;
}
.djb-toast--success {
border-left-color: #1f883d;
}
.djb-toast--warn {
border-left-color: #bf8700;
}
.djb-toast--error {
border-left-color: #cf222e;
}
@media (max-width: 768px) {
.djb-toast {
max-width: none;
}
}
@media (min-width: 769px) {
.djb-toast {
min-width: 338px;
max-width: 494px;
padding: 18px 24px;
font-size: 18px;
border-radius: 13px;
}
}
.pagination {
display: flex;
align-items: center;
@@ -11297,9 +11370,9 @@ body.index-page-body {
margin: 8px 0 0;
padding: 24px;
background: #FFFFFF;
border: 1px solid #E2E8F0;
border: none;
border-radius: 12px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
box-shadow: none;
}
.testbed-app-panel .testbed-app-panel__head {
display: flex;
@@ -11404,6 +11477,22 @@ body.index-page-body {
}
}
/* "기본 정보" 헤더: 좌측 제목 + 우측 "API 사용 신청" 버튼 */
.api-basic-info-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
/* 하단 중앙 "API 사용 신청" 버튼 */
.api-apply-footer {
display: flex;
justify-content: center;
margin-top: 32px;
}
.api-overview-card {
background: transparent;
border-radius: 0;
@@ -16412,6 +16501,38 @@ input[type=checkbox]:checked + .custom-checkbox {
border-color: #2a69de;
background: #f0f7ff;
}
.step1-wrap .s1-upload-box--compact,
.step2-wrap .s1-upload-box--compact,
.step3-wrap .s1-upload-box--compact {
min-height: 96px;
}
.step1-wrap .s1-upload-box--compact .s1-upload-inner,
.step2-wrap .s1-upload-box--compact .s1-upload-inner,
.step3-wrap .s1-upload-box--compact .s1-upload-inner {
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
gap: 6px 14px;
padding: 12px 16px;
}
.step1-wrap .s1-upload-box--compact .s1-upload-inner > img,
.step2-wrap .s1-upload-box--compact .s1-upload-inner > img,
.step3-wrap .s1-upload-box--compact .s1-upload-inner > img {
width: 28px;
height: 28px;
}
.step1-wrap .s1-upload-box--compact .s1-upload-title,
.step2-wrap .s1-upload-box--compact .s1-upload-title,
.step3-wrap .s1-upload-box--compact .s1-upload-title {
font-size: 13px;
}
.step1-wrap .s1-upload-box--compact .s1-btn-upload,
.step2-wrap .s1-upload-box--compact .s1-btn-upload,
.step3-wrap .s1-upload-box--compact .s1-btn-upload {
height: 34px;
padding: 0 16px;
font-size: 13px;
}
.step1-wrap .s1-upload-inner,
.step2-wrap .s1-upload-inner,
.step3-wrap .s1-upload-inner {
@@ -23924,6 +24045,42 @@ input[type=checkbox]:checked + .custom-checkbox {
justify-content: center;
margin-top: 20px;
}
.signup-guide-v2 .signup-roles-tbd {
margin-top: 40px;
}
.signup-guide-v2 .signup-roles-tbd__title {
font-size: 20px;
font-weight: 700;
color: #140064;
margin: 0 0 16px;
}
.signup-guide-v2 .signup-roles-tbd__placeholder {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
padding: 48px 24px;
background: #f8f9fa;
border: 1px dashed #e3e8f0;
border-radius: 12px;
text-align: center;
}
.signup-guide-v2 .signup-roles-tbd__badge {
display: inline-block;
padding: 4px 12px;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.04em;
color: #0049B4;
background: #eff9fe;
border-radius: 20px;
}
.signup-guide-v2 .signup-roles-tbd__desc {
margin: 0;
font-size: 15px;
color: #6e7781;
}
@media (max-width: 1024px) {
.service-hero {
@@ -24765,6 +24922,12 @@ input[type=checkbox]:checked + .custom-checkbox {
color: #4a5568;
}
.statistics-notice-example {
flex-basis: 100%; /* flex-wrap 컨테이너에서 두 번째 줄로 강제 */
color: #6b7280;
font-size: 12px;
}
.statistics-notice-latest {
color: #0049B4;
font-weight: 600;