이용약관 디자인 적용

This commit is contained in:
현성필
2025-12-05 14:44:30 +09:00
parent fc96e9838b
commit 7018b36213
11 changed files with 150 additions and 528 deletions
@@ -58,6 +58,11 @@
height: 112px;
transition: all 0.3s ease;
border-bottom: 1px solid #dddddd;
// Index page header with light blue background
&.index-header {
background-color: #E5F8FF;
}
}
.header-content {
+1
View File
@@ -58,6 +58,7 @@
@import 'pages/user-management';
@import 'pages/commission';
@import 'pages/terms-agreements';
@import 'pages/api-statistics';
// 6. Themes
@import 'themes/dark';
@@ -1,5 +1,5 @@
// -----------------------------------------------------------------------------
// Terms and Agreements Page - Modern Design
// Terms and Agreements Page - Modern Design (Figma: 3003-1988)
// 이용약관 및 개인정보처리방침 페이지
// -----------------------------------------------------------------------------
@@ -17,27 +17,31 @@
.terms-container {
max-width: $container-max-width;
margin: 0 auto;
position: relative;
padding: 20px;
}
// Page Header
// Page Header - Title Bar (Figma: 타이틀백바)
.terms-header {
margin-bottom: $spacing-3xl;
background: #f6f9fb;
border-radius: 12px;
padding: 20px 40px;
margin-bottom: $spacing-xl;
@media (max-width: $breakpoint-sm) {
margin-bottom: $spacing-2xl;
padding: $spacing-md $spacing-lg;
margin-bottom: $spacing-lg;
}
.page-title {
font-size: $font-size-3xl;
font-size: 28px;
font-weight: $font-weight-bold;
color: $text-dark;
margin-bottom: $spacing-md;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin: 0;
line-height: 1;
@media (max-width: $breakpoint-sm) {
font-size: $font-size-2xl;
font-size: $font-size-xl;
}
}
@@ -45,6 +49,7 @@
font-size: $font-size-base;
color: $text-gray;
line-height: $line-height-normal;
margin-top: $spacing-sm;
@media (max-width: $breakpoint-sm) {
font-size: $font-size-sm;
@@ -60,16 +65,16 @@
overflow: hidden;
}
// Tab Navigation
// Tab Navigation (Figma: 질문제목box)
.terms-tabs {
display: flex;
gap: 0;
background: $gray-bg;
padding: $spacing-xs;
border-bottom: 1px solid $border-gray;
background: transparent;
padding: 0;
border-bottom: none;
@media (max-width: $breakpoint-sm) {
padding: $spacing-xs;
padding: 0;
}
.tab-link {
@@ -78,184 +83,118 @@
align-items: center;
justify-content: center;
gap: $spacing-sm;
padding: $spacing-md $spacing-lg;
font-size: $font-size-base;
font-weight: $font-weight-semibold;
color: $text-gray;
padding: 18px $spacing-lg;
font-size: 22px;
font-weight: $font-weight-bold;
color: #8c959f;
text-decoration: none;
background: transparent;
border-radius: $border-radius-md;
background: #eceff4;
transition: $transition-base;
text-align: center;
position: relative;
border-radius: 12px 12px 0 0;
@media (max-width: $breakpoint-sm) {
padding: $spacing-sm $spacing-md;
font-size: $font-size-sm;
padding: $spacing-md $spacing-md;
font-size: $font-size-base;
gap: $spacing-xs;
}
i {
font-size: $font-size-md;
transition: $transition-base;
@media (max-width: $breakpoint-sm) {
font-size: $font-size-base;
}
display: none; // 아이콘 숨김 (Figma 디자인에 없음)
}
&:hover {
color: $primary-blue;
background: rgba($primary-blue, 0.05);
i {
transform: scale(1.1);
}
background: #e4e8ed;
}
&.active {
color: $white;
background: $primary-blue;
box-shadow: $shadow-sm;
background: #3ba4ed;
font-weight: $font-weight-bold;
i {
color: $white;
}
}
}
}
// Version Selector
// Version Selector (Figma: 검색창 986-2208)
.terms-selector {
padding: $spacing-lg $spacing-2xl;
background: $light-bg;
border-bottom: 1px solid $border-gray;
padding: $spacing-lg;
background: #F6F9FB;
border-bottom: none;
@media (max-width: $breakpoint-sm) {
padding: $spacing-md $spacing-lg;
padding: $spacing-md 0;
}
form {
max-width: 400px;
max-width: 340px;
}
.custom-select {
position: relative;
// Native select styling (Figma: 검색입력창)
.terms-select {
width: 340px;
height: 44px;
padding: 9px 22px 9px 20px;
background: $white;
border: 1px solid #dadada;
border-radius: 12px;
font-family: 'Noto Sans KR', sans-serif;
font-size: 14px;
font-weight: 400;
color: #212529;
cursor: pointer;
transition: $transition-base;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
// 드롭다운 화살표 아이콘 (색상: #515961)
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='5' viewBox='0 0 10 5'%3E%3Cpath fill='%23515961' d='M5 5L0 0h10z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 16px center;
background-size: 10px 5px;
.select-selected {
display: flex;
align-items: center;
gap: $spacing-sm;
padding: $spacing-md $spacing-lg;
background: $white;
border: 2px solid $border-gray;
border-radius: $border-radius-md;
font-size: $font-size-sm;
font-weight: $font-weight-medium;
color: $text-dark;
transition: $transition-base;
cursor: pointer;
@media (max-width: $breakpoint-sm) {
padding: $spacing-sm $spacing-md;
font-size: $font-size-xs;
}
i {
&:first-child {
color: $primary-blue;
}
&:last-child {
margin-left: auto;
font-size: $font-size-xs;
color: $text-gray;
transition: $transition-base;
}
}
span {
font-weight: $font-weight-semibold;
color: $primary-blue;
}
&:hover {
border-color: $primary-blue;
box-shadow: 0 0 0 3px rgba($primary-blue, 0.1);
}
&.select-arrow-active {
border-color: $primary-blue;
i:last-child {
transform: rotate(180deg);
}
}
@media (max-width: $breakpoint-sm) {
width: 100%;
height: 40px;
padding: $spacing-sm 36px $spacing-sm $spacing-md;
font-size: $font-size-xs;
}
.select-items {
position: absolute;
top: calc(100% + $spacing-xs);
left: 0;
right: 0;
background: $white;
border: 2px solid $primary-blue;
border-radius: $border-radius-md;
box-shadow: $shadow-lg;
max-height: 240px;
overflow-y: auto;
z-index: $z-index-dropdown;
list-style: none;
padding: $spacing-xs;
margin: 0;
&:hover {
border-color: $primary-blue;
}
&.select-hide {
display: none;
}
&:focus {
outline: none;
border-color: $primary-blue;
}
li {
padding: $spacing-sm $spacing-md;
font-size: $font-size-sm;
color: $text-dark;
border-radius: $border-radius-sm;
cursor: pointer;
transition: $transition-base;
@media (max-width: $breakpoint-sm) {
padding: $spacing-xs $spacing-sm;
font-size: $font-size-xs;
}
&:hover {
background: $light-bg;
color: $primary-blue;
}
&.selected {
background: $primary-blue;
color: $white;
font-weight: $font-weight-semibold;
}
}
option {
padding: $spacing-sm $spacing-md;
font-size: 14px;
color: #212529;
}
}
}
// Terms Content
// Terms Content (Figma: 컨텐츠 영역)
.terms-content {
padding: $spacing-3xl $spacing-2xl;
padding: 0 $spacing-xl;
min-height: 400px;
background-color: #F6F9FB;
@media (max-width: $breakpoint-sm) {
padding: $spacing-2xl $spacing-lg;
padding: $spacing-lg 0;
min-height: 300px;
}
.content-body {
font-size: $font-size-base;
font-size: 16px;
color: $text-dark;
line-height: $line-height-loose;
white-space: pre-wrap;
line-height: 1.8;
word-wrap: break-word;
@media (max-width: $breakpoint-sm) {
@@ -271,39 +210,44 @@
}
}
h1, h2, h3, h4, h5, h6 {
// 장 제목 (제1장 총칙)
h1, .chapter-title {
font-size: 20px;
font-weight: $font-weight-bold;
color: $text-dark;
margin-top: $spacing-xl;
margin-bottom: $spacing-md;
font-weight: $font-weight-semibold;
color: $text-dark;
line-height: $line-height-tight;
line-height: 1.4;
&:first-child {
margin-top: 0;
}
}
h1 {
font-size: $font-size-2xl;
font-weight: $font-weight-bold;
padding-bottom: $spacing-md;
border-bottom: 2px solid $border-gray;
@media (max-width: $breakpoint-sm) {
font-size: $font-size-xl;
font-size: 18px;
}
}
h2 {
font-size: $font-size-xl;
// 조 제목 (제1조 (목적))
h2, .article-title {
font-size: 18px;
font-weight: $font-weight-bold;
color: $text-dark;
margin-top: $spacing-lg;
margin-bottom: $spacing-sm;
line-height: 1.4;
@media (max-width: $breakpoint-sm) {
font-size: $font-size-lg;
font-size: 16px;
}
}
h3 {
font-size: $font-size-lg;
font-weight: $font-weight-semibold;
color: $text-dark;
margin-top: $spacing-md;
margin-bottom: $spacing-sm;
@media (max-width: $breakpoint-sm) {
font-size: $font-size-base;
@@ -332,24 +276,18 @@
ul, ol {
margin: $spacing-md 0;
padding-left: $spacing-2xl;
padding-left: 0;
list-style: none;
@media (max-width: $breakpoint-sm) {
padding-left: $spacing-lg;
padding-left: 0;
}
}
ul {
list-style-type: disc;
}
ol {
list-style-type: decimal;
}
li {
margin-bottom: $spacing-sm;
line-height: $line-height-normal;
margin-bottom: $spacing-xs;
line-height: 1.8;
padding-left: 0;
&:last-child {
margin-bottom: 0;