add preset header

This commit is contained in:
wjqserver 2025-06-22 17:56:35 +08:00
parent 47b6f4903f
commit cc429c44f9
5 changed files with 268 additions and 79 deletions

View file

@ -37,6 +37,8 @@ body {
transition: background-color var(--transition-speed), color var(--transition-speed);
}
.hidden { display: none !important; }
/* --- 登录页 --- */
.login-page-body {
display: flex;
align-items: center;
@ -65,7 +67,7 @@ body {
margin-bottom: 8px;
}
.login-header p { color: var(--text-color-secondary); }
#login-form .form-group {
#login-form .form-group, #init-form .form-group {
text-align: left;
margin-bottom: 20px;
}
@ -76,6 +78,8 @@ body {
padding-left: 24px;
padding-right: 24px;
}
/* --- 通知系统 --- */
.toast-container {
position: fixed;
top: 20px;
@ -109,6 +113,7 @@ body {
.toast.success .toast-icon { color: var(--success-color); }
.toast.error .toast-icon { color: var(--danger-color); }
.toast.info .toast-icon { color: var(--primary-color); }
#dialog-container {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
z-index: 1000; display: flex; align-items: center; justify-content: center;
@ -132,6 +137,66 @@ body {
.dialog-message { margin: 16px 0 24px; font-size: 1rem; color: var(--text-color-secondary); }
.dialog-actions { display: flex; justify-content: center; gap: 12px; }
.dialog-actions .btn { width: auto; }
#modal-container {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
z-index: 1500; display: flex; align-items: center; justify-content: center;
background-color: rgba(0,0,0,0.4);
opacity: 0; visibility: hidden;
transition: opacity 0.2s ease, visibility 0.2s;
}
#modal-container.active {
opacity: 1; visibility: visible;
}
#modal-container .modal-box {
background-color: var(--surface-color);
border-radius: var(--border-radius-large);
width: 90%; max-width: 500px;
text-align: left;
box-shadow: 0 10px 25px rgba(0,0,0,0.1);
transform: scale(0.95) translateY(-10px);
transition: transform 0.25s ease;
}
#modal-container.active .modal-box {
transform: scale(1) translateY(0);
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px 24px;
border-bottom: 1px solid var(--border-color);
}
.modal-header h3 {
margin: 0;
font-size: 1.2rem;
}
.modal-content {
padding: 24px;
max-height: 60vh;
overflow-y: auto;
}
ul.preset-list {
list-style: none;
padding: 0;
margin: 0;
}
ul.preset-list li {
padding: 12px 16px;
border-radius: var(--border-radius-small);
cursor: pointer;
transition: background-color 0.2s ease;
}
ul.preset-list li:hover {
background-color: var(--bg-color);
}
ul.preset-list li p {
font-size: 0.85rem;
color: var(--text-color-secondary);
margin-top: 4px;
}
/* --- 主应用布局 --- */
.app-container { display: flex; height: 100vh; }
.main-content { flex-grow: 1; padding: 24px 32px; overflow-y: auto; }
#view-container { position: relative; }
@ -285,6 +350,18 @@ input:checked + .slider:before { transform: translateX(20px); }
width: auto;
}
.btn-icon:hover { background-color: var(--bg-color); color: var(--text-color); }
.btn-link {
background: none;
border: none;
color: var(--primary-color);
cursor: pointer;
font-weight: 600;
padding: 4px 8px;
width: auto;
}
.btn-link:hover {
text-decoration: underline;
}
.main-header .btn-primary { width: auto; }
.form-actions .btn { width: auto; }
.config-list-container { display: flex; flex-direction: column; gap: 12px; }
@ -315,6 +392,15 @@ fieldset { border: none; padding: 0; margin: 0 0 24px 0; }
padding: 16px;
margin-top: 20px;
}
.sub-legend-group {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
}
.sub-legend-group .sub-legend {
margin-bottom: 0;
}
.sub-legend {
font-weight: 500;
color: var(--text-color-secondary);
@ -398,6 +484,7 @@ fieldset { border: none; padding: 0; margin: 0 0 24px 0; }
.sidebar.is-open { transform: translateX(0); }
#menu-toggle-btn { display: inline-flex; }
.main-header .btn-text { display: none; }
.sidebar-nav span, .sidebar-footer span { display: inline; }
.sidebar-nav span, .logout-section span { display: inline; }
.caddy-control-panel .btn span { display: inline; }
.main-content { padding: 16px; }
}