/** * 深蓝色商务风格主题 * 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; }