maplestory/frontend/src/index.css

190 lines
4.7 KiB
CSS
Raw Normal View History

@import "tailwindcss";
@import "overlayscrollbars/overlayscrollbars.css";
@theme {
--font-sans: "Maplestory", "Noto Sans KR", system-ui, -apple-system, sans-serif;
--font-maple: "Maplestory", "Noto Sans KR", sans-serif;
}
/* 테마 토큰 - dark (default) */
:root {
color-scheme: dark;
--bg-from: #030712;
--bg-via: #030712;
--bg-to: #0f172a;
--scrollbar-thumb: rgba(255, 255, 255, 0.12);
--scrollbar-thumb-hover: rgba(255, 255, 255, 0.22);
--scrollbar-track: transparent;
--header-bg: rgba(3, 7, 18, 0.8);
--header-border: rgba(255, 255, 255, 0.05);
--text-strong: #ffffff;
--text-emphasis: #e5e7eb;
--text-muted: #9ca3af;
--text-dim: #6b7280;
--text-slash: rgba(255, 255, 255, 0.2);
--toggle-bg: rgba(17, 24, 39, 0.6);
--toggle-border: rgba(255, 255, 255, 0.1);
--toggle-thumb-from: #e5e7eb;
--toggle-thumb-to: #9ca3af;
--toggle-thumb-icon: #0f172a;
--card-bg-from: rgba(17, 24, 39, 0.8);
--card-bg-to: rgba(17, 24, 39, 0.4);
--card-border: rgba(255, 255, 255, 0.05);
--card-shadow: 0 4px 14px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);
--icon-box-from: #1f2937;
--icon-box-to: #111827;
--icon-box-border: rgba(255, 255, 255, 0.05);
--divider-line: rgba(255, 255, 255, 0.1);
--skeleton-bg: rgba(255, 255, 255, 0.02);
--empty-bg: rgba(17, 24, 39, 0.4);
--empty-border: rgba(255, 255, 255, 0.05);
--accent: #10b981;
--accent-hover-text: #6ee7b7;
--accent-glow: rgba(16, 185, 129, 0.1);
}
/* 테마 토큰 - light */
[data-theme="light"] {
color-scheme: light;
--bg-from: #ffffff;
--bg-via: #ffffff;
--bg-to: #ffffff;
--scrollbar-thumb: #a0a0a0;
--scrollbar-thumb-hover: #707070;
--scrollbar-track: transparent;
--header-bg: rgba(255, 255, 255, 0.8);
--header-border: rgba(0, 0, 0, 0.08);
--text-strong: #0f172a;
--text-emphasis: #1f2937;
--text-muted: #475569;
--text-dim: #64748b;
--text-slash: rgba(0, 0, 0, 0.2);
--toggle-bg: rgba(241, 245, 249, 0.9);
--toggle-border: rgba(0, 0, 0, 0.08);
--toggle-thumb-from: #fde68a;
--toggle-thumb-to: #f59e0b;
--toggle-thumb-icon: #78350f;
--card-bg-from: #ffffff;
--card-bg-to: #ffffff;
--card-border: rgba(0, 0, 0, 0.06);
--card-shadow: 0 2px 8px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.04);
--icon-box-from: #f3f4f6;
--icon-box-to: #e5e7eb;
--icon-box-border: rgba(0, 0, 0, 0.06);
--divider-line: rgba(0, 0, 0, 0.1);
--skeleton-bg: rgba(0, 0, 0, 0.05);
--empty-bg: rgba(249, 250, 251, 0.9);
--empty-border: rgba(0, 0, 0, 0.06);
--accent: #059669;
--accent-hover-text: #047857;
--accent-glow: rgba(16, 185, 129, 0.12);
}
html, body, #root {
min-height: 100%;
background-color: var(--bg-from);
background-image: linear-gradient(to bottom right, var(--bg-from), var(--bg-via), var(--bg-to));
background-attachment: fixed;
transition:
background-color 500ms cubic-bezier(0.4, 0, 0.2, 1),
background-image 500ms cubic-bezier(0.4, 0, 0.2, 1);
}
html {
overscroll-behavior-y: contain;
}
/* OverlayScrollbars body 오버레이 테마 */
.os-theme-maple.os-theme-dark {
--os-handle-bg: rgba(255, 255, 255, 0.25);
--os-handle-bg-hover: rgba(255, 255, 255, 0.4);
--os-handle-bg-active: rgba(255, 255, 255, 0.5);
--os-size: 12px;
--os-padding-perpendicular: 2px;
--os-padding-axis: 2px;
}
/* 라이트 테마에서는 어두운 handle */
[data-theme="light"] .os-theme-maple.os-theme-dark {
--os-handle-bg: #a0a0a0;
--os-handle-bg-hover: #707070;
--os-handle-bg-active: #505050;
}
html {
font-family: "Maplestory", "Noto Sans KR", system-ui, sans-serif;
}
body {
font-feature-settings: "ss01", "ss02";
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
button:not(:disabled),
[role="button"]:not(:disabled),
a {
cursor: pointer;
}
button:disabled {
cursor: not-allowed;
}
/* number input 화살표 숨기기 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
/* 툴팁 애니메이션 */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(2px); }
to { opacity: 1; transform: translateY(0); }
}
/* 커스텀 스크롤바 (테마별) */
* {
scrollbar-width: thin;
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
*::-webkit-scrollbar {
width: 10px;
height: 10px;
}
*::-webkit-scrollbar-track {
background: var(--scrollbar-track);
}
*::-webkit-scrollbar-thumb {
background: var(--scrollbar-thumb);
border-radius: 5px;
transition: background 0.2s;
}
*::-webkit-scrollbar-thumb:hover {
background: var(--scrollbar-thumb-hover);
}
*::-webkit-scrollbar-corner {
background: transparent;
}