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:
+183
-5
@@ -2,8 +2,10 @@
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
/* Theme token sets — applied via html[data-theme="..."]. Default = gruvbox. */
|
||||
@layer base {
|
||||
:root {
|
||||
:root,
|
||||
[data-theme="gruvbox"] {
|
||||
--gb-bg-h: #1d2021;
|
||||
--gb-bg: #282828;
|
||||
--gb-bg-s: #3c3836;
|
||||
@@ -24,8 +26,7 @@
|
||||
--gb-border: #665c54;
|
||||
}
|
||||
|
||||
/* Light mode overrides */
|
||||
.light {
|
||||
[data-theme="gruvbox-light"] {
|
||||
--gb-bg-h: #f9f5d7;
|
||||
--gb-bg: #fbf1c7;
|
||||
--gb-bg-s: #ebdbb2;
|
||||
@@ -35,9 +36,187 @@
|
||||
--gb-fg-s: #3c3836;
|
||||
--gb-fg-t: #504945;
|
||||
--gb-fg-f: #7c6f64;
|
||||
--gb-red: #9d0006;
|
||||
--gb-green: #79740e;
|
||||
--gb-yellow: #b57614;
|
||||
--gb-blue: #076678;
|
||||
--gb-purple: #8f3f71;
|
||||
--gb-aqua: #427b58;
|
||||
--gb-orange: #af3a03;
|
||||
--gb-gray: #928374;
|
||||
--gb-border: #a89984;
|
||||
}
|
||||
|
||||
/* Atom / VS Code One Dark Pro */
|
||||
[data-theme="one-dark"] {
|
||||
--gb-bg-h: #1e2127;
|
||||
--gb-bg: #282c34;
|
||||
--gb-bg-s: #21252b;
|
||||
--gb-bg-t: #3e4451;
|
||||
--gb-bg-f: #2c313a;
|
||||
--gb-fg: #abb2bf;
|
||||
--gb-fg-s: #9da5b4;
|
||||
--gb-fg-t: #828997;
|
||||
--gb-fg-f: #5c6370;
|
||||
--gb-red: #e06c75;
|
||||
--gb-green: #98c379;
|
||||
--gb-yellow: #e5c07b;
|
||||
--gb-blue: #61afef;
|
||||
--gb-purple: #c678dd;
|
||||
--gb-aqua: #56b6c2;
|
||||
--gb-orange: #d19a66;
|
||||
--gb-gray: #5c6370;
|
||||
--gb-border: #3e4451;
|
||||
}
|
||||
|
||||
[data-theme="dracula"] {
|
||||
--gb-bg-h: #191a21;
|
||||
--gb-bg: #282a36;
|
||||
--gb-bg-s: #21222c;
|
||||
--gb-bg-t: #44475a;
|
||||
--gb-bg-f: #343746;
|
||||
--gb-fg: #f8f8f2;
|
||||
--gb-fg-s: #e2e2dc;
|
||||
--gb-fg-t: #cfcfc2;
|
||||
--gb-fg-f: #6272a4;
|
||||
--gb-red: #ff5555;
|
||||
--gb-green: #50fa7b;
|
||||
--gb-yellow: #f1fa8c;
|
||||
--gb-blue: #8be9fd;
|
||||
--gb-purple: #bd93f9;
|
||||
--gb-aqua: #8be9fd;
|
||||
--gb-orange: #ffb86c;
|
||||
--gb-gray: #6272a4;
|
||||
--gb-border: #44475a;
|
||||
}
|
||||
|
||||
[data-theme="nord"] {
|
||||
--gb-bg-h: #242933;
|
||||
--gb-bg: #2e3440;
|
||||
--gb-bg-s: #3b4252;
|
||||
--gb-bg-t: #434c5e;
|
||||
--gb-bg-f: #3b4252;
|
||||
--gb-fg: #d8dee9;
|
||||
--gb-fg-s: #e5e9f0;
|
||||
--gb-fg-t: #eceff4;
|
||||
--gb-fg-f: #4c566a;
|
||||
--gb-red: #bf616a;
|
||||
--gb-green: #a3be8c;
|
||||
--gb-yellow: #ebcb8b;
|
||||
--gb-blue: #81a1c1;
|
||||
--gb-purple: #b48ead;
|
||||
--gb-aqua: #88c0d0;
|
||||
--gb-orange: #d08770;
|
||||
--gb-gray: #616e88;
|
||||
--gb-border: #4c566a;
|
||||
}
|
||||
|
||||
[data-theme="tokyo-night"] {
|
||||
--gb-bg-h: #0f0f14;
|
||||
--gb-bg: #1a1b26;
|
||||
--gb-bg-s: #16161e;
|
||||
--gb-bg-t: #292e42;
|
||||
--gb-bg-f: #1f2335;
|
||||
--gb-fg: #c0caf5;
|
||||
--gb-fg-s: #a9b1d6;
|
||||
--gb-fg-t: #9aa5ce;
|
||||
--gb-fg-f: #565f89;
|
||||
--gb-red: #f7768e;
|
||||
--gb-green: #9ece6a;
|
||||
--gb-yellow: #e0af68;
|
||||
--gb-blue: #7aa2f7;
|
||||
--gb-purple: #bb9af7;
|
||||
--gb-aqua: #7dcfff;
|
||||
--gb-orange: #ff9e64;
|
||||
--gb-gray: #565f89;
|
||||
--gb-border: #292e42;
|
||||
}
|
||||
|
||||
[data-theme="catppuccin"] {
|
||||
--gb-bg-h: #11111b;
|
||||
--gb-bg: #1e1e2e;
|
||||
--gb-bg-s: #181825;
|
||||
--gb-bg-t: #313244;
|
||||
--gb-bg-f: #24273a;
|
||||
--gb-fg: #cdd6f4;
|
||||
--gb-fg-s: #bac2de;
|
||||
--gb-fg-t: #a6adc8;
|
||||
--gb-fg-f: #6c7086;
|
||||
--gb-red: #f38ba8;
|
||||
--gb-green: #a6e3a1;
|
||||
--gb-yellow: #f9e2af;
|
||||
--gb-blue: #89b4fa;
|
||||
--gb-purple: #cba6f7;
|
||||
--gb-aqua: #94e2d5;
|
||||
--gb-orange: #fab387;
|
||||
--gb-gray: #6c7086;
|
||||
--gb-border: #313244;
|
||||
}
|
||||
|
||||
[data-theme="solarized-dark"] {
|
||||
--gb-bg-h: #001f27;
|
||||
--gb-bg: #002b36;
|
||||
--gb-bg-s: #073642;
|
||||
--gb-bg-t: #094959;
|
||||
--gb-bg-f: #073642;
|
||||
--gb-fg: #839496;
|
||||
--gb-fg-s: #93a1a1;
|
||||
--gb-fg-t: #eee8d5;
|
||||
--gb-fg-f: #657b83;
|
||||
--gb-red: #dc322f;
|
||||
--gb-green: #859900;
|
||||
--gb-yellow: #b58900;
|
||||
--gb-blue: #268bd2;
|
||||
--gb-purple: #d33682;
|
||||
--gb-aqua: #2aa198;
|
||||
--gb-orange: #cb4b16;
|
||||
--gb-gray: #586e75;
|
||||
--gb-border: #586e75;
|
||||
}
|
||||
|
||||
[data-theme="monokai"] {
|
||||
--gb-bg-h: #1a1b16;
|
||||
--gb-bg: #272822;
|
||||
--gb-bg-s: #1e1f1c;
|
||||
--gb-bg-t: #3e3d32;
|
||||
--gb-bg-f: #2d2e27;
|
||||
--gb-fg: #f8f8f2;
|
||||
--gb-fg-s: #e6e6e0;
|
||||
--gb-fg-t: #cfcfc2;
|
||||
--gb-fg-f: #75715e;
|
||||
--gb-red: #f92672;
|
||||
--gb-green: #a6e22e;
|
||||
--gb-yellow: #e6db74;
|
||||
--gb-blue: #66d9ef;
|
||||
--gb-purple: #ae81ff;
|
||||
--gb-aqua: #a1efe4;
|
||||
--gb-orange: #fd971f;
|
||||
--gb-gray: #75715e;
|
||||
--gb-border: #49483e;
|
||||
}
|
||||
|
||||
/* VS Code / GitHub Dark default-ish */
|
||||
[data-theme="github-dark"] {
|
||||
--gb-bg-h: #010409;
|
||||
--gb-bg: #0d1117;
|
||||
--gb-bg-s: #161b22;
|
||||
--gb-bg-t: #30363d;
|
||||
--gb-bg-f: #21262d;
|
||||
--gb-fg: #e6edf3;
|
||||
--gb-fg-s: #c9d1d9;
|
||||
--gb-fg-t: #8b949e;
|
||||
--gb-fg-f: #6e7681;
|
||||
--gb-red: #f85149;
|
||||
--gb-green: #3fb950;
|
||||
--gb-yellow: #d29922;
|
||||
--gb-blue: #58a6ff;
|
||||
--gb-purple: #bc8cff;
|
||||
--gb-aqua: #39c5cf;
|
||||
--gb-orange: #db6d28;
|
||||
--gb-gray: #8b949e;
|
||||
--gb-border: #30363d;
|
||||
}
|
||||
|
||||
html, body, #root {
|
||||
@apply h-full w-full bg-gb-bg text-gb-fg font-mono;
|
||||
font-size: 14px;
|
||||
@@ -50,7 +229,6 @@
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* Thin themed scrollbar for chat area */
|
||||
*::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
@@ -98,7 +276,7 @@
|
||||
}
|
||||
|
||||
.terminal-mention {
|
||||
background-color: rgba(142, 192, 124, 0.12);
|
||||
background-color: color-mix(in srgb, var(--gb-aqua) 12%, transparent);
|
||||
color: var(--gb-aqua);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user