인증키 요청 조회, 인증키 상세 조회 디자인 반영
This commit is contained in:
@@ -3,17 +3,16 @@
|
||||
// ====================================
|
||||
// API Key Detail Pages Styles
|
||||
// For appRequestDetail.html and credentialDetail.html
|
||||
// Uses common styles from components/_apikey-common.scss
|
||||
// ====================================
|
||||
|
||||
// Container Styles
|
||||
// Container Styles - extends common
|
||||
.apikey-detail-container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: $spacing-4xl;
|
||||
padding-top: 0;
|
||||
@extend .apikey-container;
|
||||
padding: $spacing-2xl $spacing-lg;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
padding: $spacing-md;
|
||||
padding: $spacing-lg $spacing-md;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,12 +39,9 @@
|
||||
margin-bottom: $spacing-4xl;
|
||||
}
|
||||
|
||||
// Status Badge - extends common with light style
|
||||
.status-badge {
|
||||
display: inline-block;
|
||||
padding: $spacing-sm $spacing-lg;
|
||||
border-radius: $border-radius-full;
|
||||
font-weight: $font-weight-semibold;
|
||||
font-size: $font-size-sm;
|
||||
@extend .apikey-status-badge;
|
||||
|
||||
&.badge-pending {
|
||||
background-color: #FFF3CD;
|
||||
@@ -63,17 +59,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Detail Section
|
||||
// Detail Section - extends common
|
||||
.detail-section {
|
||||
background: $white;
|
||||
border-radius: $border-radius-lg;
|
||||
padding: $spacing-4xl;
|
||||
margin-bottom: $spacing-lg;
|
||||
box-shadow: $shadow-md;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
padding: $spacing-xl;
|
||||
}
|
||||
@extend .apikey-detail-section;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
@@ -82,28 +70,15 @@
|
||||
color: $text-dark;
|
||||
margin-bottom: $spacing-lg;
|
||||
padding-bottom: $spacing-md;
|
||||
//border-bottom: 2px solid $border-gray;
|
||||
}
|
||||
|
||||
// Detail Grid
|
||||
// Detail Grid - extends common
|
||||
.detail-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: $spacing-lg;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
@extend .apikey-detail-grid;
|
||||
}
|
||||
|
||||
.detail-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacing-sm;
|
||||
|
||||
&.full-width {
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
@extend .apikey-detail-item;
|
||||
}
|
||||
|
||||
.detail-label {
|
||||
@@ -118,106 +93,46 @@
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
// App Icon
|
||||
// App Icon - extends common
|
||||
.app-icon-display {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
@extend .apikey-icon-display;
|
||||
}
|
||||
|
||||
.app-icon-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: $border-radius-lg;
|
||||
border: 2px solid $border-gray;
|
||||
@extend .apikey-icon-image;
|
||||
}
|
||||
|
||||
.app-icon-placeholder {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: $gray-bg;
|
||||
border-radius: $border-radius-lg;
|
||||
border: 2px dashed $text-light;
|
||||
font-size: 48px;
|
||||
@extend .apikey-icon-placeholder;
|
||||
}
|
||||
|
||||
// IP List
|
||||
// IP List - extends common
|
||||
.ip-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: $spacing-sm;
|
||||
@extend .apikey-ip-list;
|
||||
}
|
||||
|
||||
.ip-tag {
|
||||
display: inline-block;
|
||||
padding: $spacing-xs $spacing-md;
|
||||
background-color: $light-bg;
|
||||
color: $secondary-blue;
|
||||
border-radius: $border-radius-sm;
|
||||
font-size: $font-size-sm;
|
||||
font-family: $font-family-mono;
|
||||
@extend .apikey-ip-tag;
|
||||
}
|
||||
|
||||
// Credential Code
|
||||
// Credential Code - extends common
|
||||
.credential-code {
|
||||
display: inline-block;
|
||||
padding: $spacing-sm $spacing-md;
|
||||
background-color: $gray-bg;
|
||||
border: 1px solid $border-gray;
|
||||
border-radius: $border-radius-sm;
|
||||
font-family: $font-family-mono;
|
||||
font-size: $font-size-sm;
|
||||
color: $secondary-blue;
|
||||
@extend .apikey-credential-code;
|
||||
}
|
||||
|
||||
// Secret Box
|
||||
// Secret Box - extends common
|
||||
.secret-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacing-md;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
@extend .apikey-secret-box;
|
||||
}
|
||||
|
||||
// Note: .btn-copy styles now in components/_buttons.scss
|
||||
// Keeping this for page-specific override if needed
|
||||
// Copy Button - extends common
|
||||
.btn-copy {
|
||||
svg {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
align-self: stretch;
|
||||
justify-content: center;
|
||||
}
|
||||
@extend .apikey-btn-copy;
|
||||
}
|
||||
|
||||
// Status Indicator
|
||||
// Status Indicator - extends common
|
||||
.status-indicator {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: $spacing-sm;
|
||||
padding: $spacing-xs $spacing-md;
|
||||
border-radius: $border-radius-xl;
|
||||
font-size: $font-size-sm;
|
||||
font-weight: $font-weight-semibold;
|
||||
|
||||
&.status-active {
|
||||
background-color: #D4EDDA;
|
||||
color: #155724;
|
||||
}
|
||||
|
||||
&.status-inactive {
|
||||
background-color: #F8D7DA;
|
||||
color: #721C24;
|
||||
}
|
||||
@extend .apikey-status-indicator;
|
||||
}
|
||||
|
||||
.status-dot {
|
||||
@@ -227,31 +142,20 @@
|
||||
background-color: currentColor;
|
||||
}
|
||||
|
||||
// API Detail List
|
||||
// API Detail List - extends common
|
||||
.api-detail-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacing-sm;
|
||||
@extend .apikey-api-list;
|
||||
}
|
||||
|
||||
.api-list-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacing-md;
|
||||
padding: $spacing-md $spacing-lg;
|
||||
background: $white;
|
||||
border: 1px solid $border-gray;
|
||||
border-radius: $border-radius-md;
|
||||
transition: all 0.2s;
|
||||
@extend .apikey-api-item;
|
||||
|
||||
&:hover {
|
||||
border-color: $primary-blue;
|
||||
box-shadow: $shadow-sm;
|
||||
}
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
padding: $spacing-md;
|
||||
gap: $spacing-sm;
|
||||
.api-name {
|
||||
flex: 1;
|
||||
font-size: $font-size-base;
|
||||
font-weight: $font-weight-medium;
|
||||
color: $text-dark;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,14 +195,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.api-list-item .api-name {
|
||||
flex: 1;
|
||||
font-size: $font-size-base;
|
||||
font-weight: $font-weight-medium;
|
||||
color: $text-dark;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.api-status {
|
||||
padding: $spacing-xs $spacing-md;
|
||||
border-radius: $border-radius-lg;
|
||||
@@ -350,36 +246,16 @@
|
||||
font-weight: $font-weight-semibold;
|
||||
}
|
||||
|
||||
// Empty State
|
||||
// Empty State - extends common
|
||||
.empty-state {
|
||||
@extend .apikey-empty-state;
|
||||
grid-column: 1 / -1;
|
||||
text-align: center;
|
||||
padding: 48px $spacing-lg;
|
||||
|
||||
.empty-icon {
|
||||
font-size: 64px;
|
||||
margin-bottom: $spacing-md;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: $font-size-base;
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
|
||||
// Action Buttons
|
||||
// Action Buttons - extends common
|
||||
.detail-actions {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: $spacing-md;
|
||||
flex-wrap: wrap;
|
||||
margin-top: $spacing-4xl;
|
||||
padding-top: $spacing-4xl;
|
||||
border-top: 1px solid $border-gray;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
flex-direction: column;
|
||||
}
|
||||
@extend .apikey-form-actions;
|
||||
}
|
||||
|
||||
// Note: Button styles now in components/_buttons.scss
|
||||
@@ -391,3 +267,353 @@
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
// ====================================
|
||||
// App Info Card (Figma Design)
|
||||
// For credentialDetail.html and appRequestDetail.html
|
||||
// ====================================
|
||||
|
||||
.app-info-card {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: $spacing-xl;
|
||||
padding: 0;
|
||||
padding-top: 27px;
|
||||
margin-bottom: $spacing-4xl;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
padding: $spacing-lg 0;
|
||||
gap: $spacing-lg;
|
||||
}
|
||||
}
|
||||
|
||||
.app-info-icon {
|
||||
flex-shrink: 0;
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
border-radius: $border-radius-xl;
|
||||
overflow: hidden;
|
||||
background: $gray-bg;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 87px;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
.app-icon-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.app-icon-placeholder {
|
||||
color: $text-light;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.app-info-content {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacing-md;
|
||||
}
|
||||
|
||||
.app-status-badge {
|
||||
display: inline-block;
|
||||
padding: $spacing-xs $spacing-lg;
|
||||
border-radius: $border-radius-full;
|
||||
font-size: $font-size-sm;
|
||||
font-weight: $font-weight-semibold;
|
||||
width: fit-content;
|
||||
|
||||
&.status-approved {
|
||||
background-color: #0049b4;
|
||||
color: $white;
|
||||
}
|
||||
|
||||
&.status-pending {
|
||||
background-color: #FFF3CD;
|
||||
color: #856404;
|
||||
}
|
||||
|
||||
&.status-inactive {
|
||||
background-color: $border-gray;
|
||||
color: $text-gray;
|
||||
}
|
||||
|
||||
&.status-rejected {
|
||||
background-color: #F8D7DA;
|
||||
color: #721C24;
|
||||
}
|
||||
}
|
||||
|
||||
.app-info-name {
|
||||
font-size: 24px;
|
||||
font-weight: $font-weight-bold;
|
||||
color: $text-dark;
|
||||
margin: 0;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.app-info-description {
|
||||
font-size: 18px;
|
||||
color: #515151;
|
||||
margin: 0;
|
||||
line-height: 1.5;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
}
|
||||
|
||||
// ====================================
|
||||
// API Key Info Section
|
||||
// For credential details display
|
||||
// Figma Design: node 985-1365
|
||||
// ====================================
|
||||
|
||||
.apikey-info-section {
|
||||
background: #F6F9FB;
|
||||
border-radius: $border-radius-lg;
|
||||
padding: $spacing-3xl $spacing-2xl;
|
||||
margin-bottom: $spacing-2xl;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
padding: $spacing-lg;
|
||||
}
|
||||
}
|
||||
|
||||
.info-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacing-xl;
|
||||
margin-bottom: $spacing-xl;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: $spacing-sm;
|
||||
}
|
||||
}
|
||||
|
||||
.info-row-vertical {
|
||||
align-items: flex-start;
|
||||
|
||||
.info-value {
|
||||
width: 100%;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.info-label {
|
||||
flex-shrink: 0;
|
||||
width: 140px;
|
||||
font-size: 20px;
|
||||
font-weight: $font-weight-bold;
|
||||
color: #212529;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
width: 100%;
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
}
|
||||
|
||||
.info-value {
|
||||
flex: 1;
|
||||
font-size: $font-size-base;
|
||||
color: $text-dark;
|
||||
word-break: break-word;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
// Info Value Box Styles (Figma)
|
||||
.info-value-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 60px;
|
||||
padding: 0 $spacing-lg;
|
||||
background: #DDDDDD;
|
||||
border-radius: $border-radius-lg;
|
||||
font-size: 20px;
|
||||
color: #515151;
|
||||
text-align: center;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
height: 50px;
|
||||
font-size: $font-size-base;
|
||||
padding: 0 $spacing-md;
|
||||
}
|
||||
|
||||
&.with-copy {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Client ID Row with Copy Button
|
||||
.info-row-with-action {
|
||||
.info-value {
|
||||
display: flex;
|
||||
gap: $spacing-md;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-copy-action {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: $spacing-xs;
|
||||
height: 60px;
|
||||
width: 158px;
|
||||
padding: 0 $spacing-lg;
|
||||
background: #A4D6EA;
|
||||
border: none;
|
||||
border-radius: $border-radius-lg;
|
||||
font-size: 20px;
|
||||
font-weight: $font-weight-bold;
|
||||
color: $white;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
transition: background 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background: darken(#A4D6EA, 10%);
|
||||
}
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
height: 50px;
|
||||
font-size: $font-size-base;
|
||||
padding: 0 $spacing-md;
|
||||
}
|
||||
}
|
||||
|
||||
// Client Secret View Button
|
||||
.btn-view-secret {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: $spacing-sm;
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
background: #3BA4ED;
|
||||
border: none;
|
||||
border-radius: $border-radius-lg;
|
||||
font-size: 20px;
|
||||
font-weight: $font-weight-bold;
|
||||
color: $white;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background: darken(#3BA4ED, 10%);
|
||||
}
|
||||
|
||||
svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
max-width: 100%;
|
||||
height: 50px;
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
}
|
||||
|
||||
// API List Box (White background)
|
||||
.api-list-box {
|
||||
width: 100%;
|
||||
background: $white;
|
||||
border: 1px solid #DADADA;
|
||||
border-radius: $border-radius-lg;
|
||||
padding: $spacing-lg;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
max-width: 100%;
|
||||
padding: $spacing-md;
|
||||
}
|
||||
}
|
||||
|
||||
// API List Item (Figma style)
|
||||
.api-list-item-figma {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: $spacing-md 0;
|
||||
border-bottom: 1px solid #DADADA;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.api-item-name {
|
||||
font-size: 18px;
|
||||
color: #000;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
}
|
||||
|
||||
.api-item-status {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 100px;
|
||||
height: 30px;
|
||||
padding: 0 $spacing-lg;
|
||||
background: #ECEFF4;
|
||||
border-radius: $border-radius-full;
|
||||
font-size: $font-size-base;
|
||||
color: #515151;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
min-width: 80px;
|
||||
font-size: $font-size-sm;
|
||||
padding: 0 $spacing-md;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ====================================
|
||||
// Form Actions Center
|
||||
// ====================================
|
||||
|
||||
.form-actions-center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: $spacing-md;
|
||||
margin-top: $spacing-2xl;
|
||||
|
||||
@media (max-width: $breakpoint-sm) {
|
||||
flex-direction: column;
|
||||
|
||||
.btn {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user