Skip to content

Commit c1ac3b1

Browse files
committed
Editor: dark mode button next to Stop, affects nav/sidebar/text
1 parent 37c35af commit c1ac3b1

1 file changed

Lines changed: 27 additions & 19 deletions

File tree

editor/index.html

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@
5959
<span class="pane-label">sketch.cpp</span>
6060
<span id="status"></span>
6161
<button class="btn-run" id="btn-run" onclick="runSketch()" tabindex="-1">&#9654; Run</button>
62-
<button id="btn-dark" onclick="toggleDark()" tabindex="-1" style="background:#111;color:#fff;border:none;padding:5px 12px;border-radius:4px;font-size:12px;cursor:pointer;">🌙 Dark</button>
6362
</div>
6463
<div id="code"></div>
6564
<div id="error-panel"></div>
@@ -68,6 +67,7 @@
6867
<div class="pane-bar">
6968
<span class="pane-label">Output</span>
7069
<button class="btn-stop" onclick="stopSketch()" tabindex="-1">&#9632; Stop</button>
70+
<button id="btn-dark" onclick="toggleDark()" tabindex="-1" style="background:#111;color:#fff;border:none;padding:5px 12px;border-radius:4px;font-size:12px;cursor:pointer;">🌙 Dark</button>
7171
</div>
7272
<div id="preview-area">
7373
<div id="preview-placeholder">Press Run or Ctrl+Enter</div>
@@ -260,26 +260,34 @@
260260
<script src="../assets/nav.js"></script>
261261
<script>
262262
let darkMode = false;
263+
function applyDark(on) {
264+
const btn = document.getElementById('btn-dark');
265+
const bg1 = '#1a1a2e', bg2 = '#16213e', border = '#0f3460', text = '#e0e0e0';
266+
document.querySelectorAll(
267+
'body, #site-nav, .sidebar, .pane-bar, .editor-pane, .preview-pane, #error-panel, a, span, p, h1, h2, h3, li'
268+
).forEach(el => {
269+
if (on) {
270+
el.style.color = text;
271+
if (el.tagName === 'BODY' || el.id === 'site-nav' || el.classList.contains('sidebar'))
272+
el.style.background = bg2;
273+
if (el.classList.contains('pane-bar'))
274+
el.style.background = bg2, el.style.borderColor = border;
275+
if (el.classList.contains('editor-pane') || el.classList.contains('preview-pane'))
276+
el.style.borderColor = border;
277+
} else {
278+
el.style.color = '';
279+
el.style.background = '';
280+
el.style.borderColor = '';
281+
}
282+
});
283+
document.body.style.background = on ? bg1 : '';
284+
editor.setOption('theme', on ? 'cppmode-dark' : 'cppmode');
285+
btn.textContent = on ? '☀️ Light' : '🌙 Dark';
286+
btn.style.background = on ? bg2 : '#111';
287+
}
263288
function toggleDark() {
264289
darkMode = !darkMode;
265-
const btn = document.getElementById('btn-dark');
266-
if (darkMode) {
267-
editor.setOption('theme', 'cppmode-dark');
268-
document.body.style.cssText = 'background:#1a1a2e;color:#e0e0e0';
269-
document.querySelectorAll('.pane-bar').forEach(el => { el.style.background='#16213e'; el.style.borderColor='#0f3460'; });
270-
document.querySelector('.editor-pane').style.borderColor = '#0f3460';
271-
document.querySelector('.preview-pane').style.borderColor = '#0f3460';
272-
btn.textContent = '☀️ Light';
273-
btn.style.background = '#0f3460';
274-
} else {
275-
editor.setOption('theme', 'cppmode');
276-
document.body.style.cssText = '';
277-
document.querySelectorAll('.pane-bar').forEach(el => { el.style.background=''; el.style.borderColor=''; });
278-
document.querySelector('.editor-pane').style.borderColor = '';
279-
document.querySelector('.preview-pane').style.borderColor = '';
280-
btn.textContent = '🌙 Dark';
281-
btn.style.background = '#111';
282-
}
290+
applyDark(darkMode);
283291
}
284292
</script>
285293
</body>

0 commit comments

Comments
 (0)