258 lines
5.7 KiB
SCSS
258 lines
5.7 KiB
SCSS
// 蓝白亮色主题 (Light Theme)
|
|
:root,
|
|
.theme-light {
|
|
--primary-color: #2B7CE9;
|
|
--primary-dark: #1E5F99;
|
|
--primary-light: #5A9EF0;
|
|
--primary-gradient: linear-gradient(135deg, #2B7CE9 0%, #5A9EF0 100%);
|
|
--background: #F8FAFC;
|
|
--background-light: #FFFFFF;
|
|
--surface: #fff;
|
|
--surface-hover: #F8FAFC;
|
|
--border: #E2E8F0;
|
|
--border-light: #F1F5F9;
|
|
--accent: #3498db;
|
|
--text-color: #1A202C;
|
|
--text-secondary: #718096;
|
|
--text-muted: #A0AEC0;
|
|
--title-color: #1A202C;
|
|
--subtitle-color: #718096;
|
|
--icon-color: #2B7CE9;
|
|
--gray: #E2E8F0;
|
|
--gray-dark: #A0AEC0;
|
|
--gray-light: #F7FAFC;
|
|
--gray-lighter: #F8FAFC;
|
|
--shadow: 0 1rpx 3rpx rgba(0, 0, 0, 0.08);
|
|
--shadow-md: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
|
|
--shadow-lg: 0 8rpx 24rpx rgba(0, 0, 0, 0.15);
|
|
|
|
/* 功能色 */
|
|
--blue: #3182CE;
|
|
--blue-light: #63B3ED;
|
|
--red: #E53E3E;
|
|
--red-light: #FC8181;
|
|
--green: #38A169;
|
|
--green-light: #68D391;
|
|
--yellow: #D69E2E;
|
|
--yellow-light: #F6E05E;
|
|
--purple: #805AD5;
|
|
--purple-light: #B794F6;
|
|
--orange: #DD6B20;
|
|
--orange-light: #FBD38D;
|
|
--pink: #D53F8C;
|
|
--pink-light: #F687B3;
|
|
--cyan: #319795;
|
|
--cyan-light: #4FD1C7;
|
|
|
|
/* 状态色 */
|
|
--success: #38A169;
|
|
--success-light: #C6F6D5;
|
|
--warning: #D69E2E;
|
|
--warning-light: #FEFCBF;
|
|
--error: #E53E3E;
|
|
--error-light: #FED7D7;
|
|
--info: #3182CE;
|
|
--info-light: #BEE3F8;
|
|
|
|
/* 组件色 */
|
|
--white: #fff;
|
|
--black: #000;
|
|
--badge-bg: #E53E3E;
|
|
--badge-text: #fff;
|
|
--tab-active: #2B7CE9;
|
|
--tab-inactive: #A0AEC0;
|
|
--button-primary: #2B7CE9;
|
|
--button-primary-hover: #1E5F99;
|
|
--button-secondary: #E2E8F0;
|
|
--button-secondary-hover: #CBD5E0;
|
|
|
|
/* 渐变 */
|
|
--gradient-primary: linear-gradient(135deg, #2B7CE9 0%, #5A9EF0 100%);
|
|
--gradient-success: linear-gradient(135deg, #38A169 0%, #68D391 100%);
|
|
--gradient-warning: linear-gradient(135deg, #D69E2E 0%, #F6E05E 100%);
|
|
--gradient-error: linear-gradient(135deg, #E53E3E 0%, #FC8181 100%);
|
|
--gradient-surface: linear-gradient(180deg, #FFFFFF 0%, #F8FAFC 100%);
|
|
}
|
|
|
|
// 黑暗主题 (Dark Theme)
|
|
.theme-dark {
|
|
--primary-color: #2B7CE9;
|
|
--primary-dark: #113358;
|
|
--background: #171B26;
|
|
--surface: #23273A;
|
|
--border: #283044;
|
|
--accent: #317CD9;
|
|
--text-color: #ececec;
|
|
--text-secondary: #8D93A4;
|
|
--title-color: #fff;
|
|
--subtitle-color: #8D93A4;
|
|
--icon-color: #5DA6FF;
|
|
--gray: #232b3a;
|
|
--shadow: 0 1rpx 3rpx rgba(0, 0, 0, 0.35);
|
|
|
|
/* 功能色 */
|
|
--blue: #4FC3F7;
|
|
--red: #FF648A;
|
|
--green: #44D7B6;
|
|
--yellow: #FFD76F;
|
|
--gray-light: #202537;
|
|
--white: #23273A;
|
|
--badge-bg: #FF648A;
|
|
--badge-text: #fff;
|
|
--tab-active: #5DA6FF;
|
|
--tab-inactive: #5f6a86;
|
|
}
|
|
|
|
:root{
|
|
--fa-width:1.25em;
|
|
}
|
|
|
|
.fas{
|
|
width: 1.25em !important;
|
|
}
|
|
|
|
.top_bar{
|
|
height: 176rpx !important;
|
|
width: 100%;
|
|
}
|
|
|
|
.underline{
|
|
border-bottom: 1rpx solid #efefef;
|
|
}
|
|
/* 统一的顶部导航样式 */
|
|
.unified-header {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 9999;
|
|
background: var(--gradient-primary);
|
|
box-shadow: var(--shadow-lg);
|
|
height: calc(var(--status-bar-height) + 88rpx);
|
|
}
|
|
|
|
.unified-header .header-content {
|
|
padding: 20rpx 30rpx;
|
|
padding-top: calc(var(--status-bar-height) + 20rpx);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
height: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.unified-header .header-title {
|
|
flex: 1;
|
|
text-align: center;
|
|
color: var(--white);
|
|
font-size: 32rpx;
|
|
font-weight: 600;
|
|
margin: 0 20rpx;
|
|
}
|
|
|
|
.unified-header .header-left,
|
|
.unified-header .header-right {
|
|
display: flex;
|
|
align-items: center;
|
|
min-width: 80rpx;
|
|
}
|
|
|
|
.unified-header .header-right {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.unified-header .header-icon {
|
|
color: var(--white);
|
|
font-size: 36rpx;
|
|
padding: 10rpx;
|
|
// border-radius: 50%;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.unified-header .header-icon:active {
|
|
background: rgba(255, 255, 255, 0.2);
|
|
transform: scale(0.95);
|
|
}
|
|
|
|
.unified-header .badge {
|
|
position: absolute;
|
|
top: 5rpx !important;
|
|
right: 30rpx !important;
|
|
background-color: var(--error);
|
|
color: var(--white);
|
|
font-size: .3rem !important;
|
|
padding: 6rpx 9rpx !important;
|
|
// padding: 10rpx !important;
|
|
border-radius: 50%;
|
|
// min-width: 24rpx;
|
|
text-align: center;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
/* 支持安全区域的设备 */
|
|
@supports (padding: max(0px)) {
|
|
.unified-header {
|
|
height: calc(var(--status-bar-height) + 88rpx + env(safe-area-inset-top));
|
|
}
|
|
|
|
.unified-header .header-content {
|
|
padding-top: calc(var(--status-bar-height) + 20rpx + env(safe-area-inset-top));
|
|
}
|
|
}
|
|
|
|
/* 页面容器适配 */
|
|
.page-container {
|
|
padding-top: calc(var(--status-bar-height) + 88rpx);
|
|
min-height: 100vh;
|
|
background: var(--background);
|
|
}
|
|
|
|
/* 安全区域适配 */
|
|
@supports (padding: max(0px)) {
|
|
.page-container {
|
|
padding-top: calc(var(--status-bar-height) + 88rpx + env(safe-area-inset-top));
|
|
}
|
|
}
|
|
|
|
/* 统一的内容区域样式 */
|
|
.unified-content {
|
|
padding: 30rpx;
|
|
padding-bottom: calc(120rpx + env(safe-area-inset-bottom));
|
|
min-height: calc(100vh - 120rpx);
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* 顶部导航栏 */
|
|
.items-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
height: calc(var(--status-bar-height, 0rpx) + 88rpx);
|
|
background-color: var(--surface);
|
|
border-bottom: 1rpx solid var(--border);
|
|
padding: 0 20rpx;
|
|
box-sizing: border-box;
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
/* 浏览器环境下的固定定位 */
|
|
.attendance-container .chat-header:not(.top_bar .chat-header) {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 9999;
|
|
height: calc(var(--status-bar-height) + 88rpx);
|
|
padding-top: var(--status-bar-height);
|
|
}
|
|
|
|
/* 移动设备下的导航栏样式 */
|
|
.top_bar .chat-header {
|
|
background: transparent;
|
|
border-bottom: none;
|
|
box-shadow: none;
|
|
width: 100%;
|
|
height: 88rpx;
|
|
padding: 0 20rpx;
|
|
box-sizing: border-box;
|
|
} |