| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- @import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
- * {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- }
- html, body {
- width: 100%;
- height: 100%;
- overflow: hidden;
- }
- body {
- font-family: var(--font-family);
- background: var(--bg-primary);
- color: var(--text-primary);
- line-height: 1.6;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- }
- #app {
- width: 100%;
- height: 100%;
- }
- /* ===== 自定义滚动条 ===== */
- ::-webkit-scrollbar {
- width: 6px;
- height: 6px;
- }
- ::-webkit-scrollbar-track {
- background: transparent;
- }
- ::-webkit-scrollbar-thumb {
- background: rgba(56, 189, 248, 0.2);
- border-radius: 3px;
- }
- ::-webkit-scrollbar-thumb:hover {
- background: rgba(56, 189, 248, 0.35);
- }
- /* ===== 选择高亮 ===== */
- ::selection {
- background: rgba(37, 99, 235, 0.4);
- color: var(--text-primary);
- }
- /* ===== 毛玻璃通用类 ===== */
- .glass {
- background: var(--bg-card);
- backdrop-filter: blur(16px);
- -webkit-backdrop-filter: blur(16px);
- border: 1px solid var(--border-color);
- }
- /* ===== 渐变发光边框 ===== */
- .glow-border {
- position: relative;
- }
- .glow-border::before {
- content: '';
- position: absolute;
- inset: 0;
- border-radius: inherit;
- padding: 1px;
- background: var(--gradient-card-border);
- -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
- -webkit-mask-composite: xor;
- mask-composite: exclude;
- pointer-events: none;
- }
- /* ===== 渐变文字 ===== */
- .gradient-text {
- background: var(--gradient-accent);
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- background-clip: text;
- }
- /* ===== 动画 ===== */
- @keyframes fadeIn {
- from { opacity: 0; transform: translateY(10px); }
- to { opacity: 1; transform: translateY(0); }
- }
- @keyframes slideInLeft {
- from { opacity: 0; transform: translateX(-20px); }
- to { opacity: 1; transform: translateX(0); }
- }
- @keyframes glow {
- 0%, 100% { box-shadow: 0 0 5px rgba(37, 99, 235, 0.2); }
- 50% { box-shadow: 0 0 20px rgba(37, 99, 235, 0.4); }
- }
- @keyframes shimmer {
- 0% { background-position: -200% 0; }
- 100% { background-position: 200% 0; }
- }
- .fade-in {
- animation: fadeIn var(--transition-normal) ease forwards;
- }
- /* ===== Naive UI 深色主题覆盖 ===== */
- .n-button--primary-type {
- background: var(--gradient-accent) !important;
- border: none !important;
- }
- .n-card {
- background: var(--bg-card) !important;
- border-color: var(--border-color) !important;
- }
- .n-modal {
- background: var(--bg-secondary) !important;
- border: 1px solid var(--border-color) !important;
- }
- .n-input {
- background: var(--bg-tertiary) !important;
- border-color: var(--border-color) !important;
- color: var(--text-primary) !important;
- }
- .n-input:focus-within {
- border-color: var(--color-primary) !important;
- box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2) !important;
- }
- .n-dialog {
- background: var(--bg-secondary) !important;
- border: 1px solid var(--border-color) !important;
- }
- .n-dialog__title {
- color: var(--text-primary) !important;
- }
- .n-dialog__content {
- color: var(--text-secondary) !important;
- }
- /* ===== 对话框按钮统一风格 ===== */
- /* 主操作(确认/保存):蓝色渐变,与页面主按钮一致 */
- .n-dialog .n-button--primary-type {
- background: var(--gradient-accent) !important;
- border: none !important;
- color: #fff !important;
- }
- .n-dialog .n-button--primary-type:hover {
- filter: brightness(1.1);
- }
- /* 取消/次要操作:暗色透明背景,与深色主题融合 */
- .n-dialog .n-button--default-type {
- background: rgba(56, 189, 248, 0.06) !important;
- border: 1px solid var(--border-color) !important;
- color: var(--text-secondary) !important;
- }
- .n-dialog .n-button--default-type:hover {
- background: rgba(56, 189, 248, 0.12) !important;
- border-color: var(--border-color-hover) !important;
- color: var(--text-primary) !important;
- }
- /* 危险操作(删除/丢弃):红色调 */
- .n-dialog .n-button--error-type {
- background: linear-gradient(135deg, #EF4444 0%, #DC2626 100%) !important;
- border: none !important;
- color: #fff !important;
- }
- .n-dialog .n-button--error-type:hover {
- filter: brightness(1.1);
- }
- /* 防止意外出现橙黄色 warning 按钮:强制降级为 default 样式 */
- .n-dialog .n-button--warning-type {
- background: rgba(56, 189, 248, 0.06) !important;
- border: 1px solid var(--border-color) !important;
- color: var(--text-secondary) !important;
- }
- .n-dialog .n-button--warning-type:hover {
- background: rgba(56, 189, 248, 0.12) !important;
- color: var(--text-primary) !important;
- }
|