/* 现代化后台管理系统主题样式 */ /* ========== 色彩规范 ========== */ :root { /* 主色调 */ --primary-color: #1890ff; --primary-light: #40a9ff; --primary-dark: #096dd9; /* 辅助色 */ --success-color: #52c41a; --warning-color: #faad14; --error-color: #ff4d4f; --info-color: #1890ff; /* 中性色 */ --text-primary: #262626; --text-secondary: #595959; --text-disabled: #bfbfbf; --text-white: #ffffff; /* 背景色 */ --bg-primary: #ffffff; --bg-secondary: #fafafa; --bg-tertiary: #f5f5f5; --bg-dark: #001529; --bg-sidebar: #001529; --bg-header: #ffffff; /* 边框色 */ --border-color: #d9d9d9; --border-light: #f0f0f0; --border-dark: #434343; /* 阴影 */ --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04); /* 圆角 */ --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 12px; /* 间距 */ --spacing-xs: 4px; --spacing-sm: 8px; --spacing-md: 16px; --spacing-lg: 24px; --spacing-xl: 32px; --spacing-xxl: 48px; } /* ========== 全局样式重置 ========== */ * { box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 1.5715; color: var(--text-primary); background-color: var(--bg-secondary); margin: 0; padding: 0; } /* ========== 卡片样式 ========== */ .modern-card { background: var(--bg-primary); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); border: 1px solid var(--border-light); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .modern-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); } /* ========== 按钮样式增强 ========== */ .modern-btn { border-radius: var(--radius-md); font-weight: 500; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: var(--spacing-sm); } .modern-btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); } .modern-btn-primary { background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%); color: var(--text-white); } .modern-btn-primary:hover { background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 100%); } .modern-btn-success { background: linear-gradient(135deg, var(--success-color) 0%, #73d13d 100%); color: var(--text-white); } .modern-btn-warning { background: linear-gradient(135deg, var(--warning-color) 0%, #ffc53d 100%); color: var(--text-white); } .modern-btn-danger { background: linear-gradient(135deg, var(--error-color) 0%, #ff7875 100%); color: var(--text-white); } /* ========== 表单样式增强 ========== */ .modern-form-item { margin-bottom: var(--spacing-lg); } .modern-input { border-radius: var(--radius-md); border: 1px solid var(--border-color); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); padding: var(--spacing-sm) var(--spacing-md); } .modern-input:focus { border-color: var(--primary-color); box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); outline: none; } /* ========== 表格样式增强 ========== */ .modern-table { background: var(--bg-primary); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); } .modern-table .el-table__header { background: var(--bg-tertiary); } .modern-table .el-table__header th { background: var(--bg-tertiary); color: var(--text-primary); font-weight: 600; border-bottom: 2px solid var(--border-light); } .modern-table .el-table__row:hover { background: rgba(24, 144, 255, 0.04); } /* ========== 导航样式增强 ========== */ .modern-sidebar { background: var(--bg-sidebar); box-shadow: var(--shadow-lg); } .modern-sidebar .el-menu { background: transparent; border: none; } .modern-sidebar .el-menu-item { color: rgba(255, 255, 255, 0.65); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border-radius: var(--radius-md); margin: var(--spacing-xs) var(--spacing-md); width: calc(100% - 32px); } .modern-sidebar .el-menu-item:hover { color: var(--text-white); background: rgba(255, 255, 255, 0.1); transform: translateX(4px); } .modern-sidebar .el-menu-item.is-active { color: var(--text-white); background: var(--primary-color); box-shadow: var(--shadow-md); } .modern-header { background: var(--bg-header); box-shadow: var(--shadow-sm); border-bottom: 1px solid var(--border-light); } /* ========== 动画效果 ========== */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } } @keyframes fadeInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } .fade-in-up { animation: fadeInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .fade-in-left { animation: fadeInLeft 0.6s cubic-bezier(0.4, 0, 0.2, 1); } .fade-in-right { animation: fadeInRight 0.6s cubic-bezier(0.4, 0, 0.2, 1); } /* ========== 工具类 ========== */ .text-center { text-align: center; } .text-left { text-align: left; } .text-right { text-align: right; } .flex { display: flex; } .flex-center { display: flex; align-items: center; justify-content: center; } .flex-between { display: flex; align-items: center; justify-content: space-between; } .flex-column { display: flex; flex-direction: column; } .mt-sm { margin-top: var(--spacing-sm); } .mt-md { margin-top: var(--spacing-md); } .mt-lg { margin-top: var(--spacing-lg); } .mt-xl { margin-top: var(--spacing-xl); } .mb-sm { margin-bottom: var(--spacing-sm); } .mb-md { margin-bottom: var(--spacing-md); } .mb-lg { margin-bottom: var(--spacing-lg); } .mb-xl { margin-bottom: var(--spacing-xl); } .p-sm { padding: var(--spacing-sm); } .p-md { padding: var(--spacing-md); } .p-lg { padding: var(--spacing-lg); } .p-xl { padding: var(--spacing-xl); } /* ========== 响应式设计 ========== */ @media (max-width: 768px) { :root { --spacing-md: 12px; --spacing-lg: 16px; --spacing-xl: 24px; } .modern-card { margin: var(--spacing-md); border-radius: var(--radius-md); } } /* ========== 滚动条样式 ========== */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: var(--bg-tertiary); border-radius: var(--radius-sm); } ::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: var(--radius-sm); } ::-webkit-scrollbar-thumb:hover { background: var(--text-disabled); }