167 lines
3.8 KiB
SCSS
167 lines
3.8 KiB
SCSS
@use "./variables.scss" as *;
|
|
|
|
:root {
|
|
--bg-deep: #{$bg-deep};
|
|
--bg-base: #{$bg-base};
|
|
--bg-elevated: #{$bg-elevated};
|
|
--bg-overlay: #{$bg-overlay};
|
|
--bg-hover: #{$bg-hover};
|
|
--bg-active: #{$bg-active};
|
|
|
|
--border-soft: #{$border-soft};
|
|
--border: #{$border};
|
|
--border-strong: #{$border-strong};
|
|
|
|
--primary: #{$primary};
|
|
--primary-hover: #{$primary-hover};
|
|
--primary-active: #{$primary-active};
|
|
--primary-bg: #{$primary-bg};
|
|
|
|
--cyan: #{$cyan};
|
|
--violet: #{$violet};
|
|
--success: #{$success};
|
|
--warning: #{$warning};
|
|
--danger: #{$danger};
|
|
|
|
--m-get: #{$m-get};
|
|
--m-post: #{$m-post};
|
|
--m-put: #{$m-put};
|
|
--m-delete: #{$m-delete};
|
|
--m-patch: #{$m-patch};
|
|
|
|
--text-primary: #{$text-primary};
|
|
--text-secondary: #{$text-secondary};
|
|
--text-tertiary: #{$text-tertiary};
|
|
--text-disabled: #{$text-disabled};
|
|
|
|
--font-xs: #{$font-xs};
|
|
--font-sm: #{$font-sm};
|
|
--font-base: #{$font-base};
|
|
--font-md: #{$font-md};
|
|
--font-lg: #{$font-lg};
|
|
|
|
--radius-sm: #{$radius-sm};
|
|
--radius: #{$radius};
|
|
--radius-lg: #{$radius-lg};
|
|
|
|
--shadow-glow: #{$shadow-glow};
|
|
--shadow-card: #{$shadow-card};
|
|
--shadow-elevate: #{$shadow-elevate};
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html, body, #app {
|
|
margin: 0;
|
|
padding: 0;
|
|
height: 100%;
|
|
background: $bg-deep;
|
|
color: $text-primary;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
|
|
'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
|
|
font-size: $font-base;
|
|
line-height: 1.5;
|
|
overflow: hidden;
|
|
}
|
|
|
|
// 全局滚动条
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
::-webkit-scrollbar-thumb {
|
|
background: $border;
|
|
border-radius: 4px;
|
|
&:hover { background: $border-strong; }
|
|
}
|
|
|
|
// 科技感背景:深蓝径向 + 网格线
|
|
body {
|
|
background:
|
|
radial-gradient(1200px 800px at 80% -10%, rgba(78,161,255,0.08), transparent 60%),
|
|
radial-gradient(900px 600px at -10% 110%, rgba(34,211,238,0.06), transparent 60%),
|
|
$bg-deep;
|
|
}
|
|
|
|
button, input, select, textarea {
|
|
font-family: inherit;
|
|
color: inherit;
|
|
}
|
|
|
|
a { color: $primary; text-decoration: none; }
|
|
|
|
input, textarea {
|
|
background: $bg-elevated;
|
|
border: 1px solid $border-soft;
|
|
border-radius: $radius-sm;
|
|
outline: none;
|
|
&:focus { border-color: $primary; box-shadow: 0 0 0 2px $primary-bg; }
|
|
}
|
|
|
|
// 通用按钮
|
|
.xs-btn {
|
|
display: inline-flex; align-items: center; gap: 6px;
|
|
padding: 5px 12px;
|
|
background: $bg-elevated;
|
|
border: 1px solid $border;
|
|
color: $text-primary;
|
|
border-radius: $radius;
|
|
cursor: pointer;
|
|
font-size: $font-base;
|
|
transition: all .18s ease;
|
|
&:hover { background: $bg-hover; border-color: $border-strong; }
|
|
&.primary {
|
|
background: $primary;
|
|
border-color: $primary;
|
|
color: #0a1428;
|
|
font-weight: 600;
|
|
&:hover { background: $primary-hover; border-color: $primary-hover; box-shadow: $shadow-glow; }
|
|
&:active { background: $primary-active; }
|
|
}
|
|
&.ghost { background: transparent; }
|
|
&.danger { color: $danger; border-color: rgba(248,113,113,.4); &:hover { background: rgba(248,113,113,.1); } }
|
|
&:disabled { opacity: .5; cursor: not-allowed; }
|
|
}
|
|
|
|
.xs-input {
|
|
width: 100%;
|
|
padding: 6px 10px;
|
|
}
|
|
|
|
.xs-divider {
|
|
height: 1px;
|
|
background: $border-soft;
|
|
margin: 8px 0;
|
|
}
|
|
|
|
// 科技感输入框 + tag 输入域
|
|
.tech-input {
|
|
background: rgba(15,28,54,.6);
|
|
border: 1px solid $border-soft;
|
|
border-radius: $radius;
|
|
padding: 6px 10px;
|
|
outline: none;
|
|
transition: all .2s ease;
|
|
&:focus {
|
|
border-color: $primary;
|
|
background: rgba(15,28,54,.9);
|
|
box-shadow: 0 0 0 3px rgba(78,161,255,.12);
|
|
}
|
|
}
|
|
|
|
// 通用卡片
|
|
.tech-card {
|
|
background: linear-gradient(180deg, rgba(15,28,54,.65), rgba(15,28,54,.35));
|
|
border: 1px solid $border-soft;
|
|
border-radius: $radius;
|
|
}
|
|
|
|
// 提示文字
|
|
.muted { color: $text-tertiary; }
|
|
.secondary { color: $text-secondary; }
|