diff --git a/frontend/index.html b/frontend/index.html index a6c1bbc..03c440a 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -6,7 +6,7 @@ - + RemoteTerm for MeshCore diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 6389498..6487d2f 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -925,12 +925,14 @@ export function App() { const settingsSidebarContent = (
-
-

Settings

+
+

+ Settings +

{(showSortToggle || unreadCount > 0) && (
{showSortToggle && ( )} {unreadCount > 0 && ( - + {unreadCount} )} @@ -482,31 +482,33 @@ export function Sidebar({ return (
{/* Header */} -
-

Conversations

+
+

+ Conversations +

{/* Search */} -
+
setSearchQuery(e.target.value)} - className="h-8 text-sm pr-8" + className="h-7 text-[13px] pr-8 bg-background/50" /> {searchQuery && ( )} -

RemoteTerm

+

RemoteTerm

-
+
- + {connected ? 'Connected' : 'Disconnected'}
{config && (
- {config.name || 'Unnamed'} + {config.name || 'Unnamed'} { navigator.clipboard.writeText(config.public_key); toast.success('Public key copied!'); @@ -82,19 +88,16 @@ export function StatusBar({ )}
); diff --git a/frontend/src/index.css b/frontend/src/index.css index bc71a7f..0c75738 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -4,26 +4,30 @@ @layer base { :root { - --background: 0 0% 10%; - --foreground: 0 0% 88%; - --card: 0 0% 14%; - --card-foreground: 0 0% 88%; - --popover: 0 0% 14%; - --popover-foreground: 0 0% 88%; - --primary: 122 39% 49%; + --background: 224 14% 8%; + --foreground: 213 15% 90%; + --card: 224 13% 11%; + --card-foreground: 213 15% 90%; + --popover: 224 13% 12%; + --popover-foreground: 213 15% 90%; + --primary: 152 60% 38%; --primary-foreground: 0 0% 100%; - --secondary: 0 0% 20%; - --secondary-foreground: 0 0% 88%; - --muted: 0 0% 20%; - --muted-foreground: 0 0% 64%; - --accent: 0 0% 20%; - --accent-foreground: 0 0% 88%; - --destructive: 0 62% 50%; + --secondary: 224 12% 17%; + --secondary-foreground: 213 12% 85%; + --muted: 224 12% 15%; + --muted-foreground: 218 10% 60%; + --accent: 224 11% 19%; + --accent-foreground: 213 15% 90%; + --destructive: 0 72% 51%; --destructive-foreground: 0 0% 100%; - --border: 0 0% 20%; - --input: 0 0% 20%; - --ring: 122 39% 49%; + --border: 224 11% 17%; + --input: 224 11% 17%; + --ring: 152 60% 38%; --radius: 0.5rem; + + /* Semantic colors for specific contexts */ + --msg-outgoing: 152 30% 14%; + --msg-incoming: 224 12% 15%; } } @@ -33,11 +37,40 @@ } body { @apply bg-background text-foreground; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + font-family: + system-ui, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + sans-serif; font-size: 14px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } } +/* Custom scrollbar β€” thin, unobtrusive, matches palette */ +::-webkit-scrollbar { + width: 6px; + height: 6px; +} +::-webkit-scrollbar-track { + background: transparent; +} +::-webkit-scrollbar-thumb { + background: hsl(224 11% 22%); + border-radius: 3px; +} +::-webkit-scrollbar-thumb:hover { + background: hsl(224 11% 28%); +} + +/* Firefox scrollbar */ +* { + scrollbar-width: thin; + scrollbar-color: hsl(224 11% 22%) transparent; +} + /* Constrain CodeMirror editor width */ .cm-editor { max-width: 100% !important; diff --git a/frontend/src/styles.css b/frontend/src/styles.css index dbd3f7a..d2dd546 100644 --- a/frontend/src/styles.css +++ b/frontend/src/styles.css @@ -32,7 +32,12 @@ body, } body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + font-family: + system-ui, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + sans-serif; /* Prevent overscroll/bounce on mobile */ overscroll-behavior: none; padding: var(--safe-area-top) var(--safe-area-right) var(--safe-area-bottom-capped) diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index fa318b9..afccb05 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -41,6 +41,8 @@ export default { DEFAULT: "hsl(var(--card))", foreground: "hsl(var(--card-foreground))", }, + "msg-outgoing": "hsl(var(--msg-outgoing))", + "msg-incoming": "hsl(var(--msg-incoming))", }, borderRadius: { lg: "var(--radius)",