fix: settings modal dismiss — add close button, fix backdrop click

This commit is contained in:
Brian Krabach
2026-03-30 03:27:47 -07:00
parent 6f598524a9
commit 424a4f5377
4 changed files with 56 additions and 1 deletions
+1
View File
@@ -1444,6 +1444,7 @@ function bindStaticEventListeners() {
// Settings dialog bindings
on($('settings-btn'), 'click', openSettings);
on($('settings-btn-expanded'), 'click', openSettings);
on($('settings-close-btn'), 'click', closeSettings);
on($('settings-backdrop'), 'click', closeSettings);
const settingsDialog = $('settings-dialog');
if (settingsDialog) settingsDialog.addEventListener('cancel', closeSettings);
+4
View File
@@ -78,6 +78,10 @@
<!-- ── Settings ─────────────────────────────────────────────────────────────────────── -->
<div id="settings-backdrop" class="settings-backdrop hidden"></div>
<dialog id="settings-dialog" class="settings-dialog">
<div class="settings-dialog-header">
<h2 class="settings-dialog-title">Settings</h2>
<button id="settings-close-btn" class="settings-close-btn" aria-label="Close settings">&times;</button>
</div>
<div class="settings-layout">
<nav class="settings-tabs">
<button class="settings-tab settings-tab--active" data-tab="display">Display</button>
+37 -1
View File
@@ -934,15 +934,51 @@ body {
padding: 0;
overflow: hidden;
margin: 0;
display: flex;
flex-direction: column;
}
.settings-dialog::backdrop {
background: transparent;
pointer-events: none; /* let clicks fall through to #settings-backdrop */
}
.settings-dialog-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 16px;
border-bottom: 1px solid var(--border);
flex-shrink: 0;
}
.settings-dialog-title {
margin: 0;
font-size: 14px;
font-weight: 600;
color: var(--text);
}
.settings-close-btn {
background: none;
border: none;
color: var(--text-muted);
font-size: 20px;
cursor: pointer;
padding: 2px 6px;
border-radius: 4px;
line-height: 1;
}
.settings-close-btn:hover {
color: var(--text);
background: var(--bg-surface);
}
.settings-layout {
display: flex;
height: 100%;
flex: 1;
min-height: 0;
}
.settings-tabs {