385 lines
9.0 KiB
CSS
385 lines
9.0 KiB
CSS
/* 基础样式 */
|
|
:root {
|
|
--primary-color: #6666FF; /* 强调色 */
|
|
--primary-dark: #5553FF; /* 深色强调色 */
|
|
--primary-light: #AAA9FF; /* 浅色强调色 */
|
|
--primary-lighter: #B5D5FF; /* 很浅强调色 */
|
|
--text-primary: #404040; /* 主要文字颜色 */
|
|
--primary-gradient-start: #6647A9; /* 深色渐变起始色 */
|
|
--primary-gradient-end: #5553FF; /* 深色渐变结束色 */
|
|
--secondary-gradient-start: #AAA9FF; /* 浅色渐变起始色 */
|
|
--secondary-gradient-end: #B5D5FF; /* 浅色渐变结束色 */
|
|
--primary-bg: #f3f4f6; /* 主背景色 */
|
|
--white: #ffffff; /* 纯白色 */
|
|
--gray-50: #f9fafb; /* 极浅灰 */
|
|
--gray-100: #f3f4f6; /* 浅灰 */
|
|
--gray-200: #e5e7eb; /* 中浅灰 */
|
|
--gray-300: #d1d5db; /* 中灰 */
|
|
--gray-400: #9ca3af; /* 深灰 */
|
|
--gray-500: #6b7280; /* 更深灰 */
|
|
--gray-600: #4b5563; /* 深色文字 */
|
|
--gray-700: #404040; /* 主要文字颜色 */
|
|
--header-height: 60px;
|
|
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
--shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
|
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
}
|
|
|
|
|
|
body {
|
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
background-color: var(--gray-50);
|
|
color: var(--gray-700);
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* 登录页面样式 */
|
|
.login-body {
|
|
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.brand-text {
|
|
font-weight: 700;
|
|
font-size: 1.5rem;
|
|
color: var(--primary-color);
|
|
}
|
|
|
|
/* 顶部栏样式 */
|
|
.navbar {
|
|
height: var(--header-height);
|
|
z-index: 1030;
|
|
background-color: var(--white) !important;
|
|
border-bottom: 1px solid var(--gray-200);
|
|
box-shadow: var(--shadow-sm);
|
|
}
|
|
|
|
.navbar-brand .brand-text {
|
|
color: var(--primary-color) !important;
|
|
font-size: 1.4rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.navbar-brand:hover {
|
|
transform: scale(1.05);
|
|
transition: transform 0.2s ease;
|
|
}
|
|
|
|
/* 中央导航按钮样式 */
|
|
.nav-button-head {
|
|
color: var(--gray-600) !important;
|
|
background-color: var(--white);
|
|
border: none;
|
|
padding: 0.5rem 1.25rem !important; /* 减小内边距 */
|
|
border-radius: 0.375rem; /* 稍微减小圆角 */
|
|
font-weight: 600;
|
|
font-size: 1rem; /* 增加字体大小 */
|
|
text-decoration: none;
|
|
transition: all 0.3s ease;
|
|
display: flex;
|
|
align-items: center;
|
|
white-space: nowrap;
|
|
min-width: 110px; /* 稍微减小最小宽度 */
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.nav-button-head:hover {
|
|
background-color: var(--primary-color);
|
|
color: var(--white) !important;
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.nav-button-head.active {
|
|
background-color: var(--primary-color);
|
|
color: var(--white) !important;
|
|
box-shadow: var(--shadow);
|
|
border: 2px solid var(--primary-color); /* 激活状态才显示边框 */
|
|
}
|
|
|
|
.nav-button-head i {
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
/* 中央导航容器 - 防止换行 */
|
|
.navbar-nav.mx-auto {
|
|
flex-wrap: nowrap; /* 防止换行 */
|
|
gap: 1rem; /* 使用gap代替margin */
|
|
}
|
|
|
|
/* GitHub链接样式 */
|
|
.navbar .github-link {
|
|
color: var(--gray-600) !important;
|
|
text-decoration: none;
|
|
padding: 0.5rem;
|
|
border-radius: 0.375rem;
|
|
transition: all 0.2s ease;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.navbar .github-link:hover {
|
|
background-color: var(--gray-100);
|
|
color: var(--primary-color) !important;
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
/* 用户下拉菜单样式 */
|
|
.navbar .dropdown-toggle {
|
|
color: var(--gray-600) !important;
|
|
text-decoration: none;
|
|
padding: 0.5rem 1rem;
|
|
border-radius: 0.375rem;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.navbar .dropdown-toggle:hover {
|
|
background-color: var(--gray-100);
|
|
color: var(--primary-color) !important;
|
|
}
|
|
|
|
/* 主内容区域样式 */
|
|
.main-content {
|
|
margin-top: var(--header-height);
|
|
min-height: calc(100vh - var(--header-height));
|
|
background-color: var(--gray-50);
|
|
width: 100%;
|
|
}
|
|
|
|
/* 响应式设计 */
|
|
@media (max-width: 768px) {
|
|
.navbar-nav.mx-auto {
|
|
margin: 0.5rem 0 !important;
|
|
width: auto; /* 改为auto */
|
|
justify-content: center;
|
|
flex-wrap: nowrap; /* 确保不换行 */
|
|
gap: 0.5rem; /* 减小间距 */
|
|
}
|
|
|
|
.nav-button-head {
|
|
font-size: 0.95rem; /* 中等屏幕时的字体大小 */
|
|
padding: 0.4rem 1rem !important;
|
|
min-width: 95px;
|
|
}
|
|
|
|
.nav-button-head i {
|
|
font-size: 1.1rem;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 575px) {
|
|
.navbar-nav.mx-auto {
|
|
gap: 0.25rem; /* 更小间距 */
|
|
}
|
|
|
|
.nav-button-head {
|
|
font-size: 0.85rem; /* 小屏幕时的字体大小 */
|
|
padding: 0.35rem 0.75rem !important;
|
|
min-width: 75px;
|
|
}
|
|
|
|
.nav-button-head i {
|
|
font-size: 1rem;
|
|
}
|
|
}
|
|
|
|
|
|
/* 按钮样式 */
|
|
.btn-primary {
|
|
background-color: var(--primary-color);
|
|
border-color: var(--primary-color);
|
|
color: var(--white);
|
|
font-weight: 600;
|
|
padding: 0.625rem 1.5rem;
|
|
border-radius: 0.5rem;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
background-color: var(--primary-dark);
|
|
border-color: var(--primary-dark);
|
|
color: var(--white);
|
|
transform: translateY(-1px);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.btn-success {
|
|
background-color: var(--primary-light);
|
|
border-color: var(--primary-light);
|
|
color: var(--white);
|
|
font-weight: 600;
|
|
padding: 0.625rem 1.5rem;
|
|
border-radius: 0.5rem;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.btn-success:hover {
|
|
background-color: var(--primary-color);
|
|
border-color: var(--primary-color);
|
|
color: var(--white);
|
|
transform: translateY(-1px);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.btn-lg {
|
|
padding: 0.875rem 2rem;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
/* 表单样式 */
|
|
.form-control {
|
|
border: 1px solid var(--gray-300);
|
|
border-radius: 0.5rem;
|
|
padding: 0.75rem 1rem;
|
|
transition: all 0.2s ease;
|
|
background-color: var(--white);
|
|
}
|
|
|
|
.form-control:focus {
|
|
border-color: var(--primary-color);
|
|
box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
|
|
background-color: var(--white);
|
|
}
|
|
|
|
.form-control-lg {
|
|
padding: 1rem 1.25rem;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.form-label {
|
|
font-weight: 600;
|
|
color: var(--gray-700);
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
/* 警告框样式 */
|
|
.alert-danger {
|
|
background-color: #fef2f2;
|
|
border-color: #fecaca;
|
|
color: #dc2626;
|
|
border-radius: 0.5rem;
|
|
}
|
|
|
|
.alert-success {
|
|
background-color: var(--primary-lighter);
|
|
border-color: var(--primary-light);
|
|
color: var(--primary-dark);
|
|
border-radius: 0.5rem;
|
|
}
|
|
|
|
/* 导航下拉菜单样式 */
|
|
.dropdown-menu {
|
|
border: none;
|
|
box-shadow: var(--shadow-lg);
|
|
border-radius: 0.5rem;
|
|
padding: 0.5rem;
|
|
background-color: var(--white);
|
|
}
|
|
|
|
.dropdown-item {
|
|
border-radius: 0.375rem;
|
|
padding: 0.5rem 0.75rem;
|
|
color: var(--gray-700);
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.dropdown-item:hover {
|
|
background-color: var(--primary-lighter);
|
|
color: var(--primary-dark);
|
|
}
|
|
|
|
/* 文本样式 */
|
|
.text-primary {
|
|
color: var(--primary-color) !important;
|
|
}
|
|
|
|
.text-muted {
|
|
color: var(--gray-500) !important;
|
|
}
|
|
|
|
.lead {
|
|
color: var(--gray-600);
|
|
font-weight: 400;
|
|
}
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
color: var(--gray-700);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* 加载动画 */
|
|
.loading {
|
|
display: inline-block;
|
|
width: 24px;
|
|
height: 24px;
|
|
border: 3px solid var(--gray-200);
|
|
border-radius: 50%;
|
|
border-top-color: var(--primary-color);
|
|
animation: spin 1s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
/* 页面内容动画 */
|
|
.page-enter {
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
}
|
|
|
|
.page-enter-active {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
transition: opacity 0.3s ease, transform 0.3s ease;
|
|
}
|
|
|
|
/* 登录卡片特殊样式 */
|
|
.login-body .card {
|
|
background-color: var(--white);
|
|
border-radius: 1rem;
|
|
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.login-body .brand-text {
|
|
background: linear-gradient(135deg, var(--primary-color), var(--primary-light));
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
/* 焦点可见性 */
|
|
.btn:focus,
|
|
.form-control:focus,
|
|
.nav-link:focus {
|
|
outline: 2px solid var(--primary-color);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* 自定义工具提示样式 */
|
|
.tooltip-inner {
|
|
background-color: var(--gray-700);
|
|
color: var(--white);
|
|
border-radius: 0.375rem;
|
|
}
|
|
|
|
/* 移动端优化 */
|
|
@media (max-width: 575.98px) {
|
|
.card-body {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.btn {
|
|
width: 100%;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.main-content {
|
|
padding: 0.5rem;
|
|
}
|
|
}
|