@use '../styles/variables' as vars; @import '../styles/reset.scss'; @import '../styles/typography.scss'; @import '../styles/animations.scss'; // CSS 变量(用于运行时主题切换) :root { // 主色调 --color-primary: #{vars.$primary-color}; --color-primary-light: #{vars.$primary-light}; --color-primary-dark: #{vars.$primary-dark}; // 辅助色 --color-success: #{vars.$success-color}; --color-warning: #{vars.$warning-color}; --color-error: #{vars.$error-color}; --color-info: #{vars.$info-color}; // 中性色 --color-text-primary: #{vars.$text-primary}; --color-text-secondary: #{vars.$text-secondary}; --color-text-disabled: #{vars.$text-disabled}; --color-border: #{vars.$border-color}; --color-background: #{vars.$background-color}; --color-card: #{vars.$card-background}; --color-sidebar: #{vars.$sidebar-background}; // 语义色 --color-increase: #{vars.$increase-color}; --color-decrease: #{vars.$decrease-color}; // 字体 --font-family-base: #{vars.$font-family-base}; --font-family-number: #{vars.$font-family-number}; // 布局尺寸 --sidebar-width: #{vars.$sidebar-width}; --sidebar-collapsed-width: #{vars.$sidebar-collapsed-width}; --header-height: #{vars.$header-height}; --page-padding: #{vars.$page-padding}; } // 基础样式 * { box-sizing: border-box; } html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { font-family: var(--font-family-base); font-size: vars.$font-size-base; line-height: vars.$line-height-base; color: var(--color-text-primary); background-color: var(--color-background); } // 自定义滚动条 ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background-color: vars.$border-color; border-radius: 4px; &:hover { background-color: vars.$text-secondary; } } // 选中文本颜色 ::selection { background-color: rgba(vars.$primary-color, 0.2); color: vars.$text-primary; } // 焦点样式 :focus-visible { outline: 2px solid vars.$primary-color; outline-offset: 2px; } // 链接样式 a { color: vars.$primary-color; text-decoration: none; &:hover { text-decoration: underline; } }