251 lines
7.6 KiB
SCSS
251 lines
7.6 KiB
SCSS
/* 定义全局变量 */
|
|
:root {
|
|
|
|
/* ========== 颜色系统 ========== */
|
|
/* 主色调 */
|
|
--color-primary: #3b82f6;
|
|
--color-primary-light: #60a5fa;
|
|
--color-primary-lighter: #93c5fd;
|
|
--color-primary-dark: #2563eb;
|
|
--color-primary-darker: #1d4ed8;
|
|
|
|
/* 辅助色 */
|
|
--color-success: #10b981;
|
|
--color-warning: #f59e0b;
|
|
--color-danger: #ef4444;
|
|
--color-info: #6b7280;
|
|
|
|
/* 中性色 */
|
|
--color-white: #ffffff;
|
|
--color-black: #000000;
|
|
--color-gray-50: #f9fafb;
|
|
--color-gray-100: #f3f4f6;
|
|
--color-gray-200: #e5e7eb;
|
|
--color-gray-300: #d1d5db;
|
|
--color-gray-400: #9ca3af;
|
|
--color-gray-500: #6b7280;
|
|
--color-gray-600: #4b5563;
|
|
--color-gray-700: #374151;
|
|
--color-gray-800: #1f2937;
|
|
--color-gray-900: #111827;
|
|
|
|
/* ========== 头部区域 ========== */
|
|
--header-container-default-height: 60px;
|
|
--header-background-color: #ffffff;
|
|
--header-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
|
|
--header-text-color: #191919;
|
|
--header-icon-color: #666666;
|
|
--header-border: 1px solid var(--color-gray-300);
|
|
|
|
/* ========== 侧边栏区域 ========== */
|
|
--sidebar-background-color: #f3f4f6;
|
|
--sidebar-default-width: 240px;
|
|
--sidebar-collapsed-width: 64px;
|
|
--sidebar-active-bg-color: #e5e7eb;
|
|
--sidebar-active-text-color: #111827;
|
|
--sidebar-hover-bg-color: #e5e7eb;
|
|
--sidebar-text-color: #374151;
|
|
--sidebar-icon-color: #6b7280;
|
|
--sidebar-border-color: rgba(0, 0, 0, 0.08);
|
|
|
|
/* ========== 主要内容区域 ========== */
|
|
--content-background-color: #ffffff;
|
|
--content-padding: 20px;
|
|
--content-max-width: 1200px;
|
|
|
|
/* ========== 聊天区域 ========== */
|
|
--chat-container-bg: #ffffff;
|
|
--chat-sender-bg: #ffffff;
|
|
--chat-sender-border: 1px solid #e5e7eb;
|
|
--chat-bubble-user-bg: #3b82f6;
|
|
--chat-bubble-user-text: #ffffff;
|
|
--chat-bubble-ai-bg: #f3f4f6;
|
|
--chat-bubble-ai-text: #374151;
|
|
--chat-typing-indicator-color: #9ca3af;
|
|
|
|
/* ========== 登录弹框 ========== */
|
|
--login-dialog-width: 738px;
|
|
--login-dialog-height: 416px;
|
|
--login-dialog-padding: 0px;
|
|
--login-dialog-section-padding: 0px;
|
|
--login-dialog-border-radius: 24px;
|
|
--login-dialog-mode-toggle-color: #409eff;
|
|
--login-dialog-logo-background: #ffffff;
|
|
--login-dialog-logo-text-color: #191919;
|
|
--login-dialog-form-bg: #ffffff;
|
|
--login-dialog-form-padding: 40px;
|
|
--login-dialog-input-border: 1px solid #e5e7eb;
|
|
--login-dialog-input-focus-border: 1px solid #3b82f6;
|
|
|
|
|
|
/* 文字颜色 */
|
|
--text-color-primary: #111827;
|
|
--text-color-secondary: #374151;
|
|
--text-color-tertiary: #6b7280;
|
|
--text-color-placeholder: #9ca3af;
|
|
--text-color-disabled: #d1d5db;
|
|
--text-color-inverse: #ffffff;
|
|
|
|
/* 背景颜色 */
|
|
--bg-color-primary: #ffffff;
|
|
--bg-color-secondary: #f9fafb;
|
|
--bg-color-tertiary: #f3f4f6;
|
|
--bg-color-overlay: rgba(0, 0, 0, 0.5);
|
|
--bg-color-mask: rgba(0, 0, 0, 0.45);
|
|
|
|
/* ========== 间距系统 ========== */
|
|
--spacing-xs: 4px;
|
|
--spacing-sm: 8px;
|
|
--spacing-md: 12px;
|
|
--spacing-lg: 16px;
|
|
--spacing-xl: 20px;
|
|
--spacing-2xl: 24px;
|
|
--spacing-3xl: 32px;
|
|
--spacing-4xl: 40px;
|
|
--spacing-5xl: 48px;
|
|
--spacing-6xl: 64px;
|
|
|
|
/* ========== 边框 ========== */
|
|
--border-radius-none: 0px;
|
|
--border-radius-sm: 4px;
|
|
--border-radius-md: 8px;
|
|
--border-radius-lg: 12px;
|
|
--border-radius-xl: 16px;
|
|
--border-radius-2xl: 24px;
|
|
--border-radius-full: 9999px;
|
|
|
|
--border-width-thin: 1px;
|
|
--border-width-thick: 2px;
|
|
|
|
--border-color-light: #e5e7eb;
|
|
--border-color-default: #d1d5db;
|
|
--border-color-dark: #9ca3af;
|
|
|
|
/* ========== 阴影系统 ========== */
|
|
--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);
|
|
--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
|
|
--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
|
|
|
|
/* ========== 字体系统 ========== */
|
|
--font-family-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
--font-family-mono: 'SF Mono', Monaco, 'Cascadia Mono', 'Segoe UI Mono', 'Roboto Mono', monospace;
|
|
|
|
--font-size-xs: 12px;
|
|
--font-size-sm: 14px;
|
|
--font-size-base: 16px;
|
|
--font-size-lg: 18px;
|
|
--font-size-xl: 20px;
|
|
--font-size-2xl: 24px;
|
|
--font-size-3xl: 30px;
|
|
--font-size-4xl: 36px;
|
|
--font-size-5xl: 48px;
|
|
|
|
--font-weight-light: 300;
|
|
--font-weight-normal: 400;
|
|
--font-weight-medium: 500;
|
|
--font-weight-semibold: 600;
|
|
--font-weight-bold: 700;
|
|
|
|
--line-height-tight: 1.25;
|
|
--line-height-normal: 1.5;
|
|
--line-height-relaxed: 1.75;
|
|
--line-height-loose: 2;
|
|
|
|
/* ========== 动效 ========== */
|
|
--transition-fast: 150ms;
|
|
--transition-normal: 250ms;
|
|
--transition-slow: 350ms;
|
|
--transition-very-slow: 500ms;
|
|
|
|
--transition-timing-linear: cubic-bezier(0, 0, 1, 1);
|
|
--transition-timing-ease: cubic-bezier(0.4, 0, 0.2, 1);
|
|
--transition-timing-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
--transition-timing-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
--transition-timing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
|
|
/* ========== Z-index 层级 ========== */
|
|
--z-index-dropdown: 1000;
|
|
--z-index-sticky: 1020;
|
|
--z-index-fixed: 1030;
|
|
--z-index-modal-backdrop: 1040;
|
|
--z-index-modal: 1050;
|
|
--z-index-popover: 1060;
|
|
--z-index-tooltip: 1070;
|
|
--z-index-toast: 1080;
|
|
--z-index-max: 9999;
|
|
|
|
/* ========== 其他 ========== */
|
|
--container-max-width: 1200px;
|
|
--container-padding: 16px;
|
|
|
|
--input-height: 40px;
|
|
--input-padding: 12px;
|
|
--button-height: 40px;
|
|
--button-padding: 12px 24px;
|
|
|
|
/* ========== 覆盖 element-plus 样式 ========== */
|
|
--el-border-radius-base: 12px !important;
|
|
--el-messagebox-border-radius: 16px !important;
|
|
--el-color-primary: var(--color-primary) !important;
|
|
--el-color-success: var(--color-success) !important;
|
|
--el-color-warning: var(--color-warning) !important;
|
|
--el-color-danger: var(--color-danger) !important;
|
|
--el-color-info: var(--color-info) !important;
|
|
--el-font-size-base: var(--font-size-base) !important;
|
|
--el-font-family: var(--font-family-sans) !important;
|
|
|
|
/* Element Plus 组件特定变量 */
|
|
--el-menu-item-height: 48px;
|
|
--el-menu-bg-color: var(--sidebar-background-color);
|
|
--el-menu-text-color: var(--text-color-secondary);
|
|
--el-menu-active-color: var(--color-primary);
|
|
--el-menu-hover-bg-color: var(--color-gray-100);
|
|
|
|
/* 表单相关 */
|
|
--el-form-label-font-size: var(--font-size-sm);
|
|
--el-input-height: var(--input-height);
|
|
--el-input-border-color: var(--border-color-light);
|
|
--el-input-hover-border-color: var(--color-primary-light);
|
|
--el-input-focus-border-color: var(--color-primary);
|
|
|
|
/* 按钮相关 */
|
|
--el-button-border-radius-base: var(--border-radius-md);
|
|
--el-button-hover-bg-color: var(--color-primary-dark);
|
|
--el-button-active-bg-color: var(--color-primary-darker);
|
|
}
|
|
|
|
/* ========== 暗色模式变量 ========== */
|
|
[data-theme="dark"] {
|
|
--sidebar-background-color: #1f2937;
|
|
--header-background-color: #111827;
|
|
--content-background-color: #111827;
|
|
--chat-container-bg: #111827;
|
|
--chat-sender-bg: #1f2937;
|
|
--chat-bubble-ai-bg: #374151;
|
|
|
|
--text-color-primary: #f9fafb;
|
|
--text-color-secondary: #e5e7eb;
|
|
--text-color-tertiary: #9ca3af;
|
|
|
|
--bg-color-primary: #111827;
|
|
--bg-color-secondary: #1f2937;
|
|
--bg-color-tertiary: #374151;
|
|
|
|
--border-color-light: #374151;
|
|
--border-color-default: #4b5563;
|
|
--border-color-dark: #6b7280;
|
|
}
|
|
|
|
/* ========== 响应式断点 ========== */
|
|
@media (max-width: 768px) {
|
|
:root {
|
|
--content-padding: 12px;
|
|
--container-padding: 12px;
|
|
--sidebar-default-width: 100%;
|
|
--sidebar-collapsed-width: 0px;
|
|
}
|
|
}
|