feat(ui): Discord-style roles/channel perms + IDE themes

Split-pane role editor with tri-state channel overrides (roles/members).
CSS-var themes (Gruvbox default + 9 IDE palettes) in top bar and settings.
This commit is contained in:
2026-07-15 21:46:07 -04:00
parent 11b1089126
commit 4da08d91bc
10 changed files with 1230 additions and 556 deletions
+29 -2
View File
@@ -1,13 +1,40 @@
<!doctype html>
<html lang="en">
<html lang="en" data-theme="gruvbox">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<script>
// Apply saved theme before paint (migrates legacy light/dark).
(function () {
try {
var t = localStorage.getItem('dumpster-theme');
if (t === 'light') t = 'gruvbox-light';
else if (t === 'dark' || !t) t = 'gruvbox';
var ok = {
gruvbox: 1,
'gruvbox-light': 1,
'one-dark': 1,
dracula: 1,
nord: 1,
'tokyo-night': 1,
catppuccin: 1,
'solarized-dark': 1,
monokai: 1,
'github-dark': 1,
};
if (!ok[t]) t = 'gruvbox';
document.documentElement.setAttribute('data-theme', t);
document.documentElement.classList.add(t === 'gruvbox-light' ? 'light' : 'dark');
} catch (e) {
document.documentElement.setAttribute('data-theme', 'gruvbox');
}
})();
</script>
<!-- PWA Meta Tags -->
<meta name="theme-color" content="#282828" media="(prefers-color-scheme: dark)" />
<meta name="theme-color" content="#282828" />
<meta name="color-scheme" content="dark" />
<meta name="color-scheme" content="dark light" />
<meta name="description" content="A chaotic, self-hosted Discord-like platform" />
<!-- Apple -->