모바일 - 사용자 목록 디자인 적용

This commit is contained in:
현성필
2025-12-12 14:21:48 +09:00
parent 655317c7b8
commit fc543a581d
4 changed files with 476 additions and 5 deletions
+204 -2
View File
@@ -4440,6 +4440,11 @@ select.form-control {
margin: 0;
border-radius: 0;
}
@media (max-width: 768px) {
.modal-dialog {
padding: 0;
}
}
.modal-header {
padding: 30px 50px 20px;
@@ -4505,11 +4510,14 @@ select.form-control {
@media (max-width: 768px) {
.modal-footer {
padding: 16px 24px 24px;
flex-direction: column;
flex-direction: row;
gap: 10px;
}
.modal-footer .btn,
.modal-footer .btn-modal-cancel,
.modal-footer .btn-modal-confirm {
width: 100%;
flex: 1;
min-width: 0;
height: 46px;
font-size: 15px;
}
@@ -15541,6 +15549,200 @@ input[type=checkbox]:checked + .custom-checkbox {
margin-top: 40px;
}
@media (max-width: 768px) {
.user-management-container {
display: flex;
flex-direction: column;
gap: 24px;
padding: 24px 16px;
margin-bottom: 0;
}
.user-management-container .table-controls {
display: contents;
}
.user-management-container .table-controls .total-count {
order: 1;
text-align: left;
font-size: 16px;
color: #000000;
padding-bottom: 6px;
border-bottom: 1.5px solid #212529;
}
.user-management-container .table-controls .total-count strong {
color: #0049b4;
font-weight: 700;
font-size: 16px;
}
.user-management-container .table-controls .search-box {
order: 4;
width: 100%;
}
.user-management-container .table-controls .search-box .btn {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 44px;
}
.user-management-container .list-table {
order: 2;
background: #FFFFFF;
border-radius: 12px;
overflow: hidden;
}
.user-management-container .list-table .list-table-header {
display: flex;
align-items: center;
height: 40px;
padding: 0 8px;
background: #3BA4ED;
border-radius: 8px 8px 0 0;
}
.user-management-container .list-table .list-table-header .header-cell {
font-size: 14px;
font-weight: 700;
color: #FFFFFF;
padding: 0 4px;
justify-content: center;
}
.user-management-container .list-table .list-table-header .header-cell:nth-child(1) {
width: 26px !important;
min-width: 26px;
flex: none;
}
.user-management-container .list-table .list-table-header .header-cell:nth-child(2) {
width: 60px !important;
min-width: 60px;
flex: none;
}
.user-management-container .list-table .list-table-header .header-cell:nth-child(3) {
flex: 1 !important;
min-width: 100px;
}
.user-management-container .list-table .list-table-header .header-cell:nth-child(4) {
width: 39px !important;
min-width: 39px;
flex: none;
}
.user-management-container .list-table .list-table-header .header-cell:nth-child(5) {
width: 61px !important;
min-width: 61px;
flex: none;
}
.user-management-container .list-table .list-table-header .header-cell:nth-child(6) {
display: none;
}
.user-management-container .list-table .list-table-body {
display: flex;
flex-direction: column;
}
.user-management-container .list-table .list-table-row {
display: flex;
flex-direction: row;
align-items: center;
height: 40px;
padding: 0 8px;
gap: 0;
}
.user-management-container .list-table .list-table-row:nth-child(even) {
background-color: #EDF5FD;
}
.user-management-container .list-table .list-table-row:nth-child(odd) {
background-color: #FFFFFF;
}
.user-management-container .list-table .list-table-row:hover {
background-color: rgba(0, 73, 180, 0.08);
}
.user-management-container .list-table .list-table-row .row-cell {
font-size: 13px;
font-weight: 400;
color: #212529;
padding: 0 4px;
justify-content: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.user-management-container .list-table .list-table-row .row-cell::before {
display: none;
}
.user-management-container .list-table .list-table-row .row-cell:nth-child(1) {
width: 26px !important;
min-width: 26px;
flex: none;
}
.user-management-container .list-table .list-table-row .row-cell:nth-child(2) {
width: 60px !important;
min-width: 60px;
flex: none;
}
.user-management-container .list-table .list-table-row .row-cell:nth-child(2) a {
color: #212529;
text-decoration: none;
font-size: 13px;
}
.user-management-container .list-table .list-table-row .row-cell:nth-child(3) {
flex: 1 !important;
min-width: 100px;
justify-content: flex-start;
}
.user-management-container .list-table .list-table-row .row-cell:nth-child(4) {
width: 39px !important;
min-width: 39px;
flex: none;
}
.user-management-container .list-table .list-table-row .row-cell:nth-child(5) {
width: 61px !important;
min-width: 61px;
flex: none;
}
.user-management-container .list-table .list-table-row .row-cell:nth-child(6), .user-management-container .list-table .list-table-row .row-cell.row-actions {
display: none;
}
.user-management-container .list-table .list-table-row .row-actions {
display: none;
}
.user-management-container .user-empty-state {
padding: 48px 16px;
}
.user-management-container .user-empty-state .empty-icon {
font-size: 60px;
}
.user-management-container .user-empty-state h3 {
font-size: 20px;
}
.user-management-container .user-empty-state p {
font-size: 14px;
}
.user-management-container .pagination {
order: 3;
gap: 13px;
padding: 24px 0;
}
.user-management-container .pagination .pagination-btn {
width: 20px;
height: 20px;
}
.user-management-container .pagination .pagination-btn i, .user-management-container .pagination .pagination-btn svg {
font-size: 14px;
width: 14px;
height: 14px;
}
.user-management-container .pagination .pagination-numbers {
gap: 13px;
}
.user-management-container .pagination .pagination-number {
min-width: 10px;
height: 21px;
font-size: 15px;
color: #5f666c;
font-weight: 400;
}
.user-management-container .pagination .pagination-number.active {
font-weight: 700;
color: #212529;
}
}
.commission-container {
max-width: 1400px;
margin: 0 auto;
File diff suppressed because one or more lines are too long
@@ -151,6 +151,10 @@
margin: 0;
border-radius: 0;
}
@media (max-width: $breakpoint-sm) {
padding: 0;
}
}
// Modal header with gradient background
@@ -226,11 +230,14 @@
@media (max-width: $breakpoint-sm) {
padding: 16px 24px 24px;
flex-direction: column;
flex-direction: row;
gap: 10px;
.btn,
.btn-modal-cancel,
.btn-modal-confirm {
width: 100%;
flex: 1;
min-width: 0;
height: 46px;
font-size: 15px;
}
@@ -383,3 +383,265 @@
justify-content: center;
margin-top: $spacing-2xl;
}
// -----------------------------------------------------------------------------
// User Management Mobile Styles - Figma Design (node 1161-10519)
// 사용자 관리 모바일 디자인
// -----------------------------------------------------------------------------
@media (max-width: $breakpoint-sm) {
.user-management-container {
display: flex;
flex-direction: column;
gap: $spacing-lg;
padding: $spacing-lg $spacing-md;
margin-bottom: 0;
// Table Controls - 모바일 레이아웃 (display: contents로 자식들이 container flex에 참여)
.table-controls {
display: contents;
.total-count {
order: 1;
text-align: left;
font-size: 16px;
color: $black;
padding-bottom: 6px;
border-bottom: 1.5px solid #212529;
strong {
color: #0049b4;
font-weight: $font-weight-bold;
font-size: 16px;
}
}
// 이용자 추가 버튼 - 테이블 아래로 이동
.search-box {
order: 4;
width: 100%;
.btn {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 44px;
}
}
}
// List Table - 모바일 디자인 (코너 라운드 적용)
.list-table {
order: 2;
background: $white;
border-radius: $border-radius-lg;
overflow: hidden;
// Header - 모바일에서 표시 (Figma: 40px 높이, #3BA4ED 배경)
.list-table-header {
display: flex;
align-items: center;
height: 40px;
padding: 0 8px;
background: #3BA4ED;
border-radius: $border-radius-md $border-radius-md 0 0;
.header-cell {
font-size: 14px;
font-weight: $font-weight-bold;
color: $white;
padding: 0 4px;
justify-content: center;
// NO 컬럼 - 26px
&:nth-child(1) {
width: 26px !important;
min-width: 26px;
flex: none;
}
// 성명 컬럼 - 60px
&:nth-child(2) {
width: 60px !important;
min-width: 60px;
flex: none;
}
// 이메일 아이디 컬럼 - flex 1
&:nth-child(3) {
flex: 1 !important;
min-width: 100px;
}
// 권한 컬럼 - 39px
&:nth-child(4) {
width: 39px !important;
min-width: 39px;
flex: none;
}
// 계정상태 컬럼 - 61px
&:nth-child(5) {
width: 61px !important;
min-width: 61px;
flex: none;
}
// 설정 컬럼 - 모바일에서 숨김
&:nth-child(6) {
display: none;
}
}
}
// Body
.list-table-body {
display: flex;
flex-direction: column;
}
// Row - 모바일 디자인 (Figma: 40px 높이)
.list-table-row {
display: flex;
flex-direction: row;
align-items: center;
height: 40px;
padding: 0 8px;
gap: 0;
// 짝수/홀수 배경색
&:nth-child(even) {
background-color: #EDF5FD;
}
&:nth-child(odd) {
background-color: $white;
}
&:hover {
background-color: rgba($primary-blue, 0.08);
}
.row-cell {
font-size: 13px;
font-weight: $font-weight-regular;
color: #212529;
padding: 0 4px;
justify-content: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
// data-label 숨김
&::before {
display: none;
}
// NO 컬럼 - 26px
&:nth-child(1) {
width: 26px !important;
min-width: 26px;
flex: none;
}
// 성명 컬럼 - 60px
&:nth-child(2) {
width: 60px !important;
min-width: 60px;
flex: none;
a {
color: #212529;
text-decoration: none;
font-size: 13px;
}
}
// 이메일 아이디 컬럼 - flex 1
&:nth-child(3) {
flex: 1 !important;
min-width: 100px;
justify-content: flex-start;
}
// 권한 컬럼 - 39px
&:nth-child(4) {
width: 39px !important;
min-width: 39px;
flex: none;
}
// 계정상태 컬럼 - 61px
&:nth-child(5) {
width: 61px !important;
min-width: 61px;
flex: none;
}
// 설정 컬럼 (row-actions) - 모바일에서 숨김
&:nth-child(6),
&.row-actions {
display: none;
}
}
// row-actions 클래스 직접 숨김
.row-actions {
display: none;
}
}
}
// Empty State - 모바일 조정
.user-empty-state {
padding: $spacing-3xl $spacing-md;
.empty-icon {
font-size: 60px;
}
h3 {
font-size: $font-size-lg;
}
p {
font-size: $font-size-sm;
}
}
// Pagination - 모바일 디자인 (테이블 다음, 버튼 이전)
.pagination {
order: 3;
gap: 13px;
padding: $spacing-lg 0;
.pagination-btn {
width: 20px;
height: 20px;
i, svg {
font-size: 14px;
width: 14px;
height: 14px;
}
}
.pagination-numbers {
gap: 13px;
}
.pagination-number {
min-width: 10px;
height: 21px;
font-size: 15px;
color: #5f666c;
font-weight: $font-weight-regular;
&.active {
font-weight: $font-weight-bold;
color: #212529;
}
}
}
}
}