dashboard/frontend/src/index.css
2025-12-16 08:16:27 +09:00

167 lines
3.3 KiB
CSS

@tailwind base;
@tailwind components;
@tailwind utilities;
body {
@apply bg-bgBody text-slate-100;
font-family: "Pretendard", sans-serif;
overflow-x: hidden;
}
/* 배경에 미묘한 그라디언트 패턴 추가 */
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(
ellipse 80% 50% at 50% -20%,
rgba(120, 119, 198, 0.15),
transparent
),
radial-gradient(
ellipse 60% 40% at 100% 100%,
rgba(56, 189, 248, 0.08),
transparent
);
pointer-events: none;
z-index: -1;
}
/* 글래스모피즘 카드 기본 스타일 */
.glass-card {
@apply bg-white/[0.03] backdrop-blur-xl border border-white/[0.08] rounded-2xl;
box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2),
inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
}
/* 호버 시 글래스 효과 강화 */
.glass-card-hover {
@apply transition-all duration-300;
}
.glass-card-hover:hover {
@apply bg-white/[0.06] border-white/[0.15];
box-shadow: 0 8px 32px -4px rgba(0, 0, 0, 0.3),
0 0 0 1px rgba(255, 255, 255, 0.1), inset 0 1px 0 0 rgba(255, 255, 255, 0.1);
transform: translateY(-2px);
}
/* 상태 표시등 펄스 애니메이션 */
@keyframes pulse-glow {
0%,
100% {
opacity: 1;
box-shadow: 0 0 0 0 currentColor;
}
50% {
opacity: 0.8;
box-shadow: 0 0 12px 4px currentColor;
}
}
.status-pulse {
animation: pulse-glow 2s ease-in-out infinite;
}
/* 그라디언트 텍스트 */
.gradient-text {
@apply bg-gradient-to-r from-blue-400 via-violet-400 to-purple-400 bg-clip-text text-transparent;
}
/* 아이콘 그라디언트 효과 */
.icon-gradient {
@apply text-transparent bg-clip-text bg-gradient-to-br from-slate-400 to-slate-500;
}
/* 카드 내부 빛나는 효과 */
.inner-glow {
position: relative;
}
.inner-glow::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.1),
transparent
);
}
/* 부드러운 스크롤바 */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
@apply bg-transparent;
}
::-webkit-scrollbar-thumb {
@apply bg-white/10 rounded-full;
transition: background 0.2s;
}
::-webkit-scrollbar-thumb:hover {
@apply bg-white/20;
}
/* 차트 영역 글래스 효과 */
.chart-container {
@apply bg-white/[0.02] backdrop-blur-sm border border-white/[0.06] rounded-2xl;
box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.03);
}
/* 네온 글로우 효과 (온라인 상태용) */
.glow-green {
box-shadow: 0 0 10px rgba(16, 185, 129, 0.5), 0 0 20px rgba(16, 185, 129, 0.3);
}
.glow-red {
box-shadow: 0 0 10px rgba(244, 63, 94, 0.5), 0 0 20px rgba(244, 63, 94, 0.3);
}
/* 부드러운 페이드인 애니메이션 */
@keyframes fade-in-up {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-fade-in-up {
animation: fade-in-up 0.4s ease-out;
}
/* 시머 효과 (로딩용) */
@keyframes shimmer {
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}
.shimmer {
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.05),
transparent
);
background-size: 200% 100%;
animation: shimmer 2s infinite;
}