文件
mashangyoujiu/Public/css/theme-business-blue.css

674 行
16 KiB
CSS
可执行文件

/**
* 深蓝色商务风格主题
* Business Blue Theme for MSS Admin System
* 版本: 1.0.0
*/
/* ==================== CSS变量定义 ==================== */
:root {
/* 主色调 */
--primary-color: #1e3a8a;
--primary-light: #3b82f6;
--primary-lighter: #60a5fa;
--primary-dark: #1e40af;
/* 辅助色彩 */
--secondary-color: #64748b;
--accent-color: #f97316;
--accent-light: #fb923c;
/* 状态颜色 */
--success-color: #059669;
--warning-color: #d97706;
--danger-color: #dc2626;
--info-color: #0ea5e9;
/* 中性色 */
--white: #ffffff;
--gray-50: #f8fafc;
--gray-100: #f1f5f9;
--gray-200: #e2e8f0;
--gray-300: #cbd5e1;
--gray-400: #94a3b8;
--gray-500: #64748b;
--gray-600: #475569;
--gray-700: #334155;
--gray-800: #1e293b;
--gray-900: #0f172a;
/* 字体 */
--font-family: "Microsoft YaHei", "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--font-size-xs: 12px;
--font-size-sm: 14px;
--font-size-base: 16px;
--font-size-lg: 18px;
--font-size-xl: 20px;
--font-size-2xl: 24px;
/* 间距 */
--spacing-xs: 4px;
--spacing-sm: 8px;
--spacing-md: 16px;
--spacing-lg: 24px;
--spacing-xl: 32px;
--spacing-2xl: 48px;
/* 圆角 */
--border-radius-sm: 4px;
--border-radius-md: 6px;
--border-radius-lg: 8px;
--border-radius-xl: 12px;
/* 阴影 */
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
/* 过渡动画 */
--transition-fast: 0.15s ease-in-out;
--transition-normal: 0.3s ease-in-out;
--transition-slow: 0.5s ease-in-out;
}
/* ==================== 全局基础样式 ==================== */
html, body {
font-family: var(--font-family);
font-size: var(--font-size-base);
line-height: 1.6;
color: var(--gray-700);
background-color: var(--gray-50);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* ==================== 布局容器 ==================== */
.layui-layout-admin {
background-color: var(--gray-50);
}
/* ==================== 顶部导航栏 ==================== */
.layui-layout-admin .layui-header {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
border-bottom: none;
box-shadow: var(--shadow-md);
height: 60px;
}
.layui-layout-admin .layui-logo {
background: var(--primary-color);
color: var(--white);
font-size: var(--font-size-lg);
font-weight: 600;
height: 60px;
line-height: 60px;
box-shadow: var(--shadow-md);
width: 240px;
}
.layui-layout-admin .layui-header .layui-nav-item,
.layui-layout-admin .layui-logo {
height: 60px;
line-height: 60px;
}
.layui-layout-admin .layui-header a,
.layui-layout-admin .layui-header a cite {
color: var(--white);
transition: var(--transition-fast);
}
.layui-layout-admin .layui-header a:hover {
color: var(--primary-lighter);
}
.layui-layout-admin .layui-header .layui-nav .layui-this:after,
.layui-layout-admin .layui-header .layui-nav-bar {
background-color: var(--accent-color);
height: 3px;
}
/* ==================== 侧边栏 ==================== */
.layui-layout-admin .layui-side {
width: 240px;
background-color: var(--white);
box-shadow: var(--shadow-lg);
border-right: 1px solid var(--gray-200);
}
.layui-side-menu {
background-color: var(--white);
}
.layui-side-menu .layui-nav {
background-color: var(--white);
margin-top: 60px;
width: 240px;
}
.layui-side-menu .layui-nav .layui-nav-item a {
color: var(--gray-600);
height: 48px;
line-height: 48px;
padding-left: 50px;
padding-right: 30px;
border-radius: 0;
transition: var(--transition-fast);
position: relative;
}
.layui-side-menu .layui-nav .layui-nav-item a:hover {
background: linear-gradient(90deg, var(--primary-lighter) 0%, transparent 100%);
color: var(--primary-color);
}
.layui-side-menu .layui-nav .layui-nav-item.layui-this > a,
.layui-side-menu .layui-nav .layui-nav-itemed > a {
background: linear-gradient(90deg, var(--primary-color) 0%, var(--primary-light) 100%);
color: var(--white);
}
.layui-side-menu .layui-nav .layui-nav-item a::before {
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
width: 4px;
height: 0;
background-color: var(--accent-color);
transition: var(--transition-fast);
}
.layui-side-menu .layui-nav .layui-nav-item.layui-this > a::before {
height: 100%;
}
.layui-side-menu .layui-nav .layui-nav-item .layui-icon {
font-size: 18px;
left: 18px;
margin-top: -21px;
}
/* 子菜单样式 */
.layui-side-menu .layui-nav .layui-nav-child {
background-color: var(--gray-50);
border-radius: var(--border-radius-md);
margin: 0 var(--spacing-sm);
}
.layui-side-menu .layui-nav .layui-nav-child a {
color: var(--gray-600);
padding-left: 70px;
height: 40px;
line-height: 40px;
}
.layui-side-menu .layui-nav .layui-nav-child a:hover {
background-color: var(--primary-lighter);
color: var(--white);
}
/* ==================== 主体内容区域 ==================== */
.layadmin-pagetabs,
.layui-layout-admin .layui-body,
.layui-layout-admin .layui-footer,
.layui-layout-admin .layui-layout-left {
left: 240px;
}
.layui-layout-admin .layui-body {
top: 100px;
padding: var(--spacing-lg);
background-color: var(--gray-50);
}
/* ==================== 页面标签栏 ==================== */
.layadmin-pagetabs {
background-color: var(--white);
border-bottom: 1px solid var(--gray-200);
height: 40px;
padding: 0 90px 0 50px;
box-shadow: var(--shadow-sm);
}
.layadmin-pagetabs .layui-tab-title li {
background-color: transparent;
color: var(--gray-600);
border-radius: var(--border-radius-md) var(--border-radius-md) 0 0;
margin-right: var(--spacing-xs);
padding-right: 40px;
border-right: none;
}
.layadmin-pagetabs .layui-tab-title li.layui-this {
background-color: var(--primary-color);
color: var(--white);
}
.layadmin-pagetabs .layui-tab-title li:hover {
background-color: var(--primary-lighter);
color: var(--white);
}
/* ==================== 卡片容器 ==================== */
.layui-card {
background-color: var(--white);
border-radius: var(--border-radius-lg);
box-shadow: var(--shadow-sm);
border: 1px solid var(--gray-200);
overflow: hidden;
transition: var(--transition-normal);
}
.layui-card:hover {
box-shadow: var(--shadow-md);
transform: translateY(-2px);
}
.layui-card-header {
background: linear-gradient(135deg, var(--gray-50) 0%, var(--white) 100%);
border-bottom: 1px solid var(--gray-200);
padding: var(--spacing-md) var(--spacing-lg);
font-weight: 600;
color: var(--gray-700);
font-size: var(--font-size-lg);
}
.layui-card-body {
padding: var(--spacing-lg);
}
/* ==================== 按钮系统 ==================== */
.layui-btn {
border-radius: var(--border-radius-md);
font-weight: 500;
transition: var(--transition-fast);
border: none;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--spacing-xs);
}
/* 主要按钮 */
.layui-btn-primary,
.layui-btn[type="primary"],
.el-button--primary {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
color: var(--white);
}
.layui-btn-primary:hover,
.layui-btn[type="primary"]:hover,
.el-button--primary:hover {
background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 100%);
transform: translateY(-1px);
box-shadow: var(--shadow-md);
}
/* 成功按钮 */
.layui-btn-normal {
background: linear-gradient(135deg, var(--success-color) 0%, #10b981 100%);
color: var(--white);
}
/* 警告按钮 */
.layui-btn-warm {
background: linear-gradient(135deg, var(--warning-color) 0%, #f59e0b 100%);
color: var(--white);
}
/* 危险按钮 */
.layui-btn-danger {
background: linear-gradient(135deg, var(--danger-color) 0%, #ef4444 100%);
color: var(--white);
}
/* 默认按钮 */
.layui-btn-default {
background-color: var(--white);
color: var(--gray-600);
border: 1px solid var(--gray-300);
}
.layui-btn-default:hover {
background-color: var(--gray-50);
border-color: var(--primary-color);
color: var(--primary-color);
}
/* ==================== 表格系统 ==================== */
.layui-table {
background-color: var(--white);
border-radius: var(--border-radius-lg);
box-shadow: var(--shadow-sm);
border: 1px solid var(--gray-200);
overflow: hidden;
}
.layui-table th {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
color: var(--white);
font-weight: 600;
text-align: center;
border: none;
padding: var(--spacing-md);
}
.layui-table td {
border-color: var(--gray-200);
padding: var(--spacing-md);
text-align: center;
transition: var(--transition-fast);
}
.layui-table tbody tr:hover {
background-color: var(--gray-50);
}
.layui-table tbody tr:nth-child(even) {
background-color: var(--gray-50);
}
/* 表格操作按钮 */
.layui-table .layui-btn-xs {
padding: var(--spacing-xs) var(--spacing-sm);
font-size: var(--font-size-xs);
border-radius: var(--border-radius-sm);
}
/* ==================== 表单系统 ==================== */
.layui-form-item {
margin-bottom: var(--spacing-lg);
}
.layui-form-label {
background-color: transparent;
color: var(--gray-700);
font-weight: 500;
padding: var(--spacing-sm) var(--spacing-md);
border-radius: var(--border-radius-md) 0 0 var(--border-radius-md);
}
.layui-input,
.layui-textarea,
.layui-select {
background-color: var(--white);
border: 1px solid var(--gray-300);
border-radius: var(--border-radius-md);
padding: var(--spacing-sm) var(--spacing-md);
transition: var(--transition-fast);
color: var(--gray-700);
}
.layui-input:focus,
.layui-textarea:focus,
.layui-select:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.1);
outline: none;
}
.layui-input:hover,
.layui-textarea:hover,
.layui-select:hover {
border-color: var(--primary-light);
}
/* ==================== 分页系统 ==================== */
.layui-laypage {
display: flex;
align-items: center;
gap: var(--spacing-xs);
padding: var(--spacing-lg) 0;
}
.layui-laypage a,
.layui-laypage span {
background-color: var(--white);
border: 1px solid var(--gray-300);
border-radius: var(--border-radius-md);
color: var(--gray-600);
padding: var(--spacing-sm) var(--spacing-md);
transition: var(--transition-fast);
text-decoration: none;
}
.layui-laypage a:hover {
background-color: var(--primary-lighter);
border-color: var(--primary-color);
color: var(--white);
}
.layui-laypage .layui-laypage-curr .layui-laypage-em {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
border-color: var(--primary-color);
color: var(--white);
}
/* ==================== 统计卡片 ==================== */
.layadmin-backlog-body {
background: linear-gradient(135deg, var(--white) 0%, var(--gray-50) 100%);
border: 1px solid var(--gray-200);
border-radius: var(--border-radius-lg);
padding: var(--spacing-lg);
transition: var(--transition-normal);
text-align: center;
}
.layadmin-backlog-body:hover {
background: linear-gradient(135deg, var(--primary-lighter) 0%, var(--primary-color) 100%);
color: var(--white);
transform: translateY(-4px);
box-shadow: var(--shadow-lg);
}
.layadmin-backlog-body h3 {
color: var(--gray-600);
font-size: var(--font-size-sm);
font-weight: 500;
margin-bottom: var(--spacing-sm);
}
.layadmin-backlog-body:hover h3 {
color: var(--white);
}
.layadmin-backlog-body p cite {
color: var(--primary-color);
font-size: var(--font-size-2xl);
font-weight: 700;
}
.layadmin-backlog-body:hover p cite {
color: var(--white);
}
/* ==================== 消息通知 ==================== */
.layui-badge {
background: linear-gradient(135deg, var(--accent-color) 0%, var(--accent-light) 100%);
border-radius: 50px;
font-size: var(--font-size-xs);
font-weight: 600;
}
/* ==================== 开关组件 ==================== */
.layui-form-switch {
background-color: var(--gray-300);
border-radius: 20px;
transition: var(--transition-fast);
}
.layui-form-onswitch {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
border-color: var(--primary-color);
}
/* ==================== 进度条 ==================== */
.layui-progress-bar {
background: linear-gradient(90deg, var(--primary-color) 0%, var(--primary-light) 100%);
border-radius: var(--border-radius-md);
}
/* ==================== 标签页 ==================== */
.layui-tab-title li {
background-color: var(--gray-100);
border-radius: var(--border-radius-md) var(--border-radius-md) 0 0;
margin-right: var(--spacing-xs);
transition: var(--transition-fast);
}
.layui-tab-title li.layui-this {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
color: var(--white);
}
.layui-tab-title li:hover {
background-color: var(--primary-lighter);
color: var(--white);
}
/* ==================== Element UI 组件适配 ==================== */
.el-table {
border-radius: var(--border-radius-lg);
box-shadow: var(--shadow-sm);
border: 1px solid var(--gray-200);
}
.el-table th {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
color: var(--white);
font-weight: 600;
}
.el-table .el-table__header-wrapper th {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
color: var(--white);
}
.el-pagination .btn-next,
.el-pagination .btn-prev {
background-color: var(--white);
border: 1px solid var(--gray-300);
color: var(--gray-600);
}
.el-pagination .btn-next:hover,
.el-pagination .btn-prev:hover {
color: var(--primary-color);
}
.el-pager li.active {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
color: var(--white);
}
/* ==================== 响应式适配 ==================== */
@media screen and (max-width: 992px) {
.layui-layout-admin .layui-side {
transform: translate3d(-240px, 0, 0);
}
.layadmin-pagetabs,
.layui-layout-admin .layui-body,
.layui-layout-admin .layui-footer,
.layui-layout-admin .layui-layout-left {
left: 0;
}
.layui-layout-admin .layui-logo {
width: 60px;
}
}
@media screen and (max-width: 768px) {
.layui-card-body {
padding: var(--spacing-md);
}
.layui-layout-admin .layui-body {
padding: var(--spacing-md);
}
.layui-form-label {
width: 100px;
}
.layui-input-block {
margin-left: 120px;
}
}
/* ==================== 动画效果 ==================== */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slideInRight {
from {
opacity: 0;
transform: translateX(30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
.animate-fade-in {
animation: fadeIn 0.5s ease-out;
}
.animate-slide-in-right {
animation: slideInRight 0.3s ease-out;
}
/* ==================== 滚动条美化 ==================== */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: var(--gray-100);
border-radius: var(--border-radius-md);
}
::-webkit-scrollbar-thumb {
background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
border-radius: var(--border-radius-md);
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 100%);
}
/* ==================== 工具类 ==================== */
.text-primary { color: var(--primary-color) !important; }
.text-secondary { color: var(--secondary-color) !important; }
.text-success { color: var(--success-color) !important; }
.text-warning { color: var(--warning-color) !important; }
.text-danger { color: var(--danger-color) !important; }
.text-white { color: var(--white) !important; }
.text-gray { color: var(--gray-600) !important; }
.bg-primary { background-color: var(--primary-color) !important; }
.bg-white { background-color: var(--white) !important; }
.bg-gray-50 { background-color: var(--gray-50) !important; }
.shadow-sm { box-shadow: var(--shadow-sm) !important; }
.shadow-md { box-shadow: var(--shadow-md) !important; }
.shadow-lg { box-shadow: var(--shadow-lg) !important; }
.rounded-sm { border-radius: var(--border-radius-sm) !important; }
.rounded-md { border-radius: var(--border-radius-md) !important; }
.rounded-lg { border-radius: var(--border-radius-lg) !important; }