diff --git a/apps/web/src/app/styles/components/ais-list.css b/apps/web/src/app/styles/components/ais-list.css index 3897468..79dd881 100644 --- a/apps/web/src/app/styles/components/ais-list.css +++ b/apps/web/src/app/styles/components/ais-list.css @@ -5,13 +5,13 @@ padding: 6px 8px; border-radius: 6px; border: 1px solid var(--border); - background: rgba(30, 41, 59, 0.75); + background: var(--wing-card-alpha); color: var(--text); outline: none; } .ais-q::placeholder { - color: rgba(100, 116, 139, 0.9); + color: var(--wing-muted); } .ais-mode { @@ -55,8 +55,8 @@ } .ais-row:hover { - background: rgba(30, 41, 59, 0.6); - border-color: rgba(30, 58, 95, 0.8); + background: var(--wing-card-alpha); + border-color: var(--wing-border); } .ais-row.sel { @@ -118,8 +118,8 @@ .ais-badge.pn { color: var(--muted); - background: rgba(30, 41, 59, 0.55); - border-color: rgba(30, 58, 95, 0.9); + background: var(--wing-card-alpha); + border-color: var(--wing-border); font-weight: 700; } @@ -155,5 +155,5 @@ .ais-ts { font-size: 9px; - color: rgba(100, 116, 139, 0.9); + color: var(--wing-muted); } diff --git a/apps/web/src/app/styles/components/alarms.css b/apps/web/src/app/styles/components/alarms.css index 0b98003..2a94aa3 100644 --- a/apps/web/src/app/styles/components/alarms.css +++ b/apps/web/src/app/styles/components/alarms.css @@ -36,7 +36,7 @@ padding: 2px 8px; border-radius: 6px; border: 1px solid var(--border); - background: rgba(30, 41, 59, 0.55); + background: var(--wing-card-alpha); color: var(--text); font-size: 8px; font-weight: 700; @@ -58,7 +58,7 @@ padding: 6px; border-radius: 10px; border: 1px solid var(--border); - background: rgba(15, 23, 42, 0.98); + background: var(--wing-glass-dense); box-shadow: 0 16px 50px rgba(0, 0, 0, 0.55); } @@ -90,6 +90,6 @@ .alarm-filter__sep { height: 1px; - background: rgba(30, 58, 95, 0.85); + background: var(--wing-border); margin: 4px 0; } diff --git a/apps/web/src/app/styles/components/auth.css b/apps/web/src/app/styles/components/auth.css index 930b931..ef6b08e 100644 --- a/apps/web/src/app/styles/components/auth.css +++ b/apps/web/src/app/styles/components/auth.css @@ -5,7 +5,7 @@ display: flex; align-items: center; justify-content: center; - background: linear-gradient(135deg, #020617 0%, #0f172a 50%, #020617 100%); + background: linear-gradient(135deg, var(--wing-bg) 0%, var(--wing-surface) 50%, var(--wing-bg) 100%); } .auth-card { diff --git a/apps/web/src/app/styles/components/map-panels.css b/apps/web/src/app/styles/components/map-panels.css index a2824cd..77cad02 100644 --- a/apps/web/src/app/styles/components/map-panels.css +++ b/apps/web/src/app/styles/components/map-panels.css @@ -5,7 +5,7 @@ bottom: 44px; right: 12px; z-index: 800; - background: rgba(15, 23, 42, 0.92); + background: var(--wing-glass); backdrop-filter: blur(8px); border: 1px solid var(--border); border-radius: 8px; @@ -41,7 +41,7 @@ top: 12px; right: 12px; z-index: 800; - background: rgba(15, 23, 42, 0.95); + background: var(--wing-glass-dense); backdrop-filter: blur(8px); border: 1px solid var(--border); border-radius: 8px; @@ -54,7 +54,7 @@ justify-content: space-between; font-size: 10px; padding: 2px 0; - border-bottom: 1px solid rgba(255, 255, 255, 0.03); + border-bottom: 1px solid var(--wing-subtle); } .map-info .il { @@ -72,13 +72,13 @@ display: flex; align-items: center; justify-content: center; - background: rgba(2, 6, 23, 0.42); + background: var(--wing-overlay); pointer-events: auto; } .map-loader-overlay__panel { width: min(72vw, 320px); - background: rgba(15, 23, 42, 0.94); + background: var(--wing-glass-dense); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; @@ -185,7 +185,7 @@ .maplibregl-ctrl-group { border: 1px solid var(--border) !important; - background: rgba(15, 23, 42, 0.92) !important; + background: var(--wing-glass) !important; backdrop-filter: blur(8px); } @@ -197,14 +197,20 @@ border-top: 1px solid var(--border) !important; } -.maplibregl-ctrl-group button span { +:root .maplibregl-ctrl-group button span, +[data-theme='dark'] .maplibregl-ctrl-group button span { filter: invert(1); opacity: 0.9; } +[data-theme='light'] .maplibregl-ctrl-group button span { + filter: none; + opacity: 0.7; +} + .maplibregl-ctrl-attrib { font-size: 10px !important; - background: rgba(15, 23, 42, 0.75) !important; + background: var(--wing-glass) !important; color: var(--text) !important; border: 1px solid var(--border) !important; border-radius: 8px; diff --git a/apps/web/src/app/styles/components/map-settings.css b/apps/web/src/app/styles/components/map-settings.css index 23a8147..dc348f8 100644 --- a/apps/web/src/app/styles/components/map-settings.css +++ b/apps/web/src/app/styles/components/map-settings.css @@ -9,7 +9,7 @@ height: 29px; border-radius: 4px; border: 1px solid var(--border); - background: rgba(15, 23, 42, 0.92); + background: var(--wing-glass); backdrop-filter: blur(8px); color: var(--muted); cursor: pointer; @@ -37,7 +37,7 @@ top: 10px; left: 48px; z-index: 850; - background: rgba(15, 23, 42, 0.95); + background: var(--wing-glass-dense); backdrop-filter: blur(8px); border: 1px solid var(--border); border-radius: 8px; @@ -148,7 +148,7 @@ bottom: 44px; left: 10px; z-index: 800; - background: rgba(15, 23, 42, 0.92); + background: var(--wing-glass); backdrop-filter: blur(8px); border: 1px solid var(--border); border-radius: 8px; diff --git a/apps/web/src/app/styles/components/relations.css b/apps/web/src/app/styles/components/relations.css index 3cc2596..de42ac7 100644 --- a/apps/web/src/app/styles/components/relations.css +++ b/apps/web/src/app/styles/components/relations.css @@ -53,7 +53,7 @@ /* Fleet network */ .fleet-card { - background: rgba(30, 41, 59, 0.8); + background: var(--wing-card-alpha); border: 1px solid var(--border); border-radius: 6px; padding: 8px; diff --git a/apps/web/src/app/styles/components/weather-overlay.css b/apps/web/src/app/styles/components/weather-overlay.css index 3a3e5b7..74c528c 100644 --- a/apps/web/src/app/styles/components/weather-overlay.css +++ b/apps/web/src/app/styles/components/weather-overlay.css @@ -9,7 +9,7 @@ height: 29px; border-radius: 4px; border: 1px solid var(--border); - background: rgba(15, 23, 42, 0.92); + background: var(--wing-glass); backdrop-filter: blur(8px); color: var(--muted); cursor: pointer; @@ -73,7 +73,7 @@ } .wo-panel { - background: rgba(15, 23, 42, 0.95); + background: var(--wing-glass-dense); backdrop-filter: blur(8px); border: 1px solid var(--border); border-radius: 8px; @@ -123,7 +123,7 @@ padding: 6px 4px; border-radius: 6px; border: 1px solid var(--border); - background: rgba(255, 255, 255, 0.03); + background: var(--wing-subtle); color: var(--muted); cursor: pointer; transition: all 0.15s; @@ -329,7 +329,7 @@ /* ── Weather Legend ── */ .wo-legend { - background: rgba(15, 23, 42, 0.85); + background: var(--wing-glass); backdrop-filter: blur(8px); border: 1px solid var(--border); border-radius: 6px; diff --git a/apps/web/src/app/styles/components/weather.css b/apps/web/src/app/styles/components/weather.css index f957d7a..54d34f4 100644 --- a/apps/web/src/app/styles/components/weather.css +++ b/apps/web/src/app/styles/components/weather.css @@ -9,7 +9,7 @@ height: 29px; border-radius: 4px; border: 1px solid var(--border); - background: rgba(15, 23, 42, 0.92); + background: var(--wing-glass); backdrop-filter: blur(8px); color: var(--muted); cursor: pointer; @@ -37,7 +37,7 @@ top: 130px; left: 48px; z-index: 850; - background: rgba(15, 23, 42, 0.95); + background: var(--wing-glass-dense); backdrop-filter: blur(8px); border: 1px solid var(--border); border-radius: 8px; @@ -87,7 +87,7 @@ padding: 6px 8px; margin-bottom: 6px; border-radius: 0 4px 4px 0; - background: rgba(255, 255, 255, 0.03); + background: var(--wing-subtle); transition: background 0.15s; } diff --git a/packages/ui/src/theme/tokens.css b/packages/ui/src/theme/tokens.css index 40062e5..ccbe0e3 100644 --- a/packages/ui/src/theme/tokens.css +++ b/packages/ui/src/theme/tokens.css @@ -14,6 +14,10 @@ --wing-warning: #f59e0b; --wing-success: #22c55e; --wing-glass: rgba(15, 23, 42, 0.92); + --wing-glass-dense: rgba(15, 23, 42, 0.95); + --wing-overlay: rgba(2, 6, 23, 0.42); + --wing-card-alpha: rgba(30, 41, 59, 0.55); + --wing-subtle: rgba(255, 255, 255, 0.03); /* Legacy aliases (backward compatibility) */ --bg: var(--wing-bg); @@ -29,17 +33,21 @@ /* Light theme */ [data-theme='light'] { - --wing-bg: #f8fafc; + --wing-bg: #e2e8f0; --wing-surface: #ffffff; --wing-card: #f1f5f9; - --wing-border: #cbd5e1; - --wing-text: #1e293b; - --wing-muted: #94a3b8; + --wing-border: #94a3b8; + --wing-text: #0f172a; + --wing-muted: #64748b; --wing-accent: #2563eb; --wing-danger: #dc2626; --wing-warning: #d97706; --wing-success: #16a34a; --wing-glass: rgba(255, 255, 255, 0.92); + --wing-glass-dense: rgba(255, 255, 255, 0.95); + --wing-overlay: rgba(0, 0, 0, 0.25); + --wing-card-alpha: rgba(226, 232, 240, 0.6); + --wing-subtle: rgba(0, 0, 0, 0.03); --bg: var(--wing-bg); --panel: var(--wing-surface); @@ -68,8 +76,4 @@ --color-wing-glass: var(--wing-glass); --font-sans: 'Noto Sans KR', sans-serif; - - --text-2xs: 8px; - --text-xs: 9px; - --text-sm: 10px; }