Files
web-fusion/src/styles/index.css
2026-03-20 16:40:58 +08:00

151 lines
2.6 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
/* 自定义样式 */
:root {
--sidebar-width: 200px;
--color-bg-sidebar: #1e293b;
--color-accent: #38bdf8;
--color-text: #e2e8f0;
--color-text-muted: #94a3b8;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html,
body,
#root {
height: 100%;
width: 100%;
overflow: auto;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
background: linear-gradient(to bottom right, #f8fafc, #f1f5f9);
color: #1e293b;
}
/* 禁止选中(桌面应用体验) */
body {
user-select: none;
-webkit-user-select: none;
}
/* 滚动条样式 */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
}
::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.2);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.3);
}
/* 按钮基础样式 */
.btn {
@apply px-4 py-2 rounded-lg font-medium transition-all duration-200;
@apply focus:outline-none focus:ring-2 focus:ring-primary-400 focus:ring-offset-2 focus:ring-offset-slate-900;
}
.btn-primary {
@apply bg-gradient-to-r from-primary-500 to-primary-600 text-white;
@apply hover:from-primary-400 hover:to-primary-500;
@apply active:from-primary-600 active:to-primary-700;
}
.btn-secondary {
@apply bg-slate-700 text-slate-200;
@apply hover:bg-slate-600;
@apply active:bg-slate-800;
}
.btn-ghost {
@apply bg-transparent text-slate-300;
@apply hover:bg-slate-700/50;
}
/* 卡片样式 */
.card {
@apply bg-slate-800/50 backdrop-blur-sm rounded-xl border border-slate-700/50;
@apply shadow-lg shadow-black/20;
}
/* 动画 */
@keyframes pulse-glow {
0%,
100% {
box-shadow: 0 0 0 0 rgba(56, 189, 248, 0.4);
}
50% {
box-shadow: 0 0 20px 4px rgba(56, 189, 248, 0.2);
}
}
.animate-pulse-glow {
animation: pulse-glow 2s ease-in-out infinite;
}
/* 页面切换动画 */
@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);
}
}
.animate-fadeIn {
animation: fadeIn 0.3s ease-out forwards;
}
.animate-slideInLeft {
animation: slideInLeft 0.3s ease-out forwards;
}
/* 更新通知弹出动画 */
@keyframes slideUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-slideUp {
animation: slideUp 0.3s ease-out forwards;
}