diff --git a/frontend/css/style.css b/frontend/css/style.css index b2c67f5..34b3b5c 100644 --- a/frontend/css/style.css +++ b/frontend/css/style.css @@ -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; } } \ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html index 288af39..003966a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -19,29 +19,18 @@
@@ -49,9 +38,7 @@