diff --git a/extension/background.js b/extension/background.js index c2f595d..12b9723 100644 --- a/extension/background.js +++ b/extension/background.js @@ -790,13 +790,13 @@ function updateBadgeStatus() { if (status === 'reconnecting') { chrome.action.setBadgeText({ text: '...' }); - chrome.action.setBadgeBackgroundColor({ color: '#f59e0b' }); + chrome.action.setBadgeBackgroundColor({ color: '#c96736' }); } else if (status === 'connecting') { chrome.action.setBadgeText({ text: '...' }); - chrome.action.setBadgeBackgroundColor({ color: '#fbbf24' }); + chrome.action.setBadgeBackgroundColor({ color: '#de7949' }); } else if (status === 'connected' && currentRoom && currentTabId) { chrome.action.setBadgeText({ text: 'ON' }); - chrome.action.setBadgeBackgroundColor({ color: '#22c55e' }); + chrome.action.setBadgeBackgroundColor({ color: '#56ae6c' }); } else { chrome.action.setBadgeText({ text: '' }); } diff --git a/extension/content.js b/extension/content.js index d148a64..d00bf2f 100644 --- a/extension/content.js +++ b/extension/content.js @@ -424,12 +424,12 @@ const host = hcmEl('div', 'all:initial'); const root = host.attachShadow({ mode: 'open' }); - const wrap = hcmEl('div', 'position:fixed;z-index:2147483647;left:50%;bottom:32px;transform:translateX(-50%);background:#1f2937;color:#f9fafb;font:14px/1.4 system-ui,sans-serif;padding:16px 18px;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.45);max-width:360px;border:1px solid #374151'); + const wrap = hcmEl('div', 'position:fixed;z-index:2147483647;left:50%;bottom:32px;transform:translateX(-50%);background:#212a17;color:#f4f2ea;font:14px/1.4 system-ui,sans-serif;padding:16px 18px;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.45);max-width:360px;border:1px solid #2f3625'); wrap.setAttribute('role', 'dialog'); const title = hcmEl('div', 'font-weight:600;margin-bottom:6px', hcmStrings.title); - const body = hcmEl('div', 'margin-bottom:12px;color:#d1d5db', hcmStrings.body); + const body = hcmEl('div', 'margin-bottom:12px;color:#bcb7a9', hcmStrings.body); const btnRow = hcmEl('div', 'display:flex;gap:8px;justify-content:flex-end'); - const soloBtn = hcmEl('button', 'background:#374151;color:#f9fafb;border:0;padding:8px 12px;border-radius:8px;cursor:pointer', hcmStrings.solo); + const soloBtn = hcmEl('button', 'background:#2f3625;color:#f4f2ea;border:0;padding:8px 12px;border-radius:8px;cursor:pointer', hcmStrings.solo); const stayBtn = hcmEl('button', 'background:#56ae6c;color:#0a1a0d;border:0;padding:8px 12px;border-radius:8px;cursor:pointer;font-weight:600', hcmStrings.stay); btnRow.append(soloBtn, stayBtn); wrap.append(title, body, btnRow); @@ -494,7 +494,7 @@ } const host = hcmEl('div', 'all:initial'); const root = host.attachShadow({ mode: 'open' }); - const b = hcmEl('div', 'position:fixed;z-index:2147483646;right:16px;bottom:16px;background:#b45309;color:#fff;font:13px/1.3 system-ui,sans-serif;padding:8px 12px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.4);cursor:pointer;display:flex;align-items:center;gap:8px'); + const b = hcmEl('div', 'position:fixed;z-index:2147483646;right:16px;bottom:16px;background:#c96736;color:#fff;font:13px/1.3 system-ui,sans-serif;padding:8px 12px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.4);cursor:pointer;display:flex;align-items:center;gap:8px'); b.append(hcmEl('span', null, '● ' + hcmStrings.badge), hcmEl('span', 'text-decoration:underline', hcmStrings.resync)); b.addEventListener('click', hcmExitDesync); root.appendChild(b); diff --git a/extension/popup.html b/extension/popup.html index f7cad49..f7f6224 100644 --- a/extension/popup.html +++ b/extension/popup.html @@ -36,7 +36,7 @@ --success: var(--accent-green); --error: var(--danger); --radius: 12px; - --star: #fbbf24; + --star: oklch(0.68 0.14 45); } body { @@ -289,7 +289,7 @@ .toast-success { background: var(--success); color: var(--text-on-green); } .toast-error { background: var(--error); color: white; } .toast-info { background: var(--accent); color: var(--text-on-green); } - .toast-warning { background: #f59e0b; color: white; } + .toast-warning { background: var(--accent-terracotta); color: white; } @keyframes toastSlideIn { from { opacity: 0; transform: translateY(-20px); } diff --git a/extension/popup.js b/extension/popup.js index 6b628bb..330cd1b 100644 --- a/extension/popup.js +++ b/extension/popup.js @@ -725,7 +725,7 @@ function updatePeerList(peers) { // Host Control Mode: show "Solo" badge for peers watching on their own. if (typeof p === 'object' && p.desynced) { const solo = document.createElement('span'); - solo.style.cssText = 'font-size:10px; color:#fff; background:#b45309; padding:2px 6px; border-radius:6px; font-weight:600;'; + solo.style.cssText = 'font-size:10px; color:#fff; background:#c96736; padding:2px 6px; border-radius:6px; font-weight:600;'; const soloText = getMessage('BADGE_DESYNCED') || 'Solo'; solo.textContent = soloText; solo.title = getMessage('TOOLTIP_PEER_DESYNCED') || soloText; @@ -1014,14 +1014,14 @@ function applyConnectionStatus(status) { elements.connDot.className = 'status-dot ' + (connected ? 'status-online' : ((connecting || reconnecting) ? 'status-online' : 'status-offline')); if (reconnecting) { - elements.connDot.style.background = '#f59e0b'; - elements.connDot.style.boxShadow = '0 0 8px #f59e0b'; + elements.connDot.style.background = '#c96736'; + elements.connDot.style.boxShadow = '0 0 8px #c96736'; } else if (connecting) { - elements.connDot.style.background = '#fbbf24'; - elements.connDot.style.boxShadow = '0 0 8px #fbbf24'; + elements.connDot.style.background = '#de7949'; + elements.connDot.style.boxShadow = '0 0 8px #de7949'; } else if (idle) { // Neutral grey — ready, not failed. - elements.connDot.style.background = '#9ca3af'; + elements.connDot.style.background = '#bcb7a9'; elements.connDot.style.boxShadow = 'none'; } else if (!connected) { elements.connDot.style.background = '#b94642'; @@ -1073,7 +1073,7 @@ function updatePingDisplay(pingMs) { if (pingMs < 50) { elements.connPing.style.color = '#56ae6c'; } else if (pingMs < 150) { - elements.connPing.style.color = '#f59e0b'; + elements.connPing.style.color = '#c96736'; } else { elements.connPing.style.color = '#b94642'; } @@ -2286,7 +2286,7 @@ function refreshDebugInfo() { } const hint = document.createElement('div'); - hint.style.cssText = 'margin-top: 12px; padding: 8px; background: rgba(251,191,36,0.1); border-left: 3px solid #fbbf24; border-radius: 4px; font-size: 10px; color: var(--text-muted);'; + hint.style.cssText = 'margin-top: 12px; padding: 8px; background: rgba(222,121,73,0.12); border-left: 3px solid #de7949; border-radius: 4px; font-size: 10px; color: var(--text-muted);'; hint.textContent = 'Is a video currently playing? The extension only detects