Skip to content

Commit 0bb1903

Browse files
authored
Refine desktop UI for a flatter, minimalist aesthetic (#88)
- Updated global CSS variables for a softer surface and border focus. - Added subtle borders to cleanly separate header, sidebar, and right panels. - Tightened sidebar session item padding and reduced hover prominence. - Redesigned chat input to a floating pill format with focus rings. - Refined message bubble borders, spacing, and typography margins.
1 parent 8f40794 commit 0bb1903

5 files changed

Lines changed: 12 additions & 12 deletions

File tree

packages/desktop/src/renderer/App.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ export default function App() {
319319
return (
320320
<div className="flex h-screen flex-col bg-xibe-bg text-xibe-text font-sans overflow-hidden">
321321
{/* Header */}
322-
<header className="flex h-12 items-center justify-between px-3 shrink-0 bg-xibe-bg z-10">
322+
<header className="flex h-12 items-center justify-between px-3 shrink-0 bg-xibe-bg z-10 border-b border-xibe-border-subtle">
323323
<div className="flex items-center gap-3">
324324
<button
325325
onClick={() => setLeftPanelOpen((v) => !v)}
@@ -370,7 +370,7 @@ export default function App() {
370370
<div className="flex flex-1 min-h-0 overflow-hidden relative">
371371
{/* Left panel: Chat history + settings shortcut */}
372372
<aside
373-
className="shrink-0 bg-xibe-bg flex flex-col overflow-hidden transition-[width] duration-200 ease-in-out"
373+
className="shrink-0 bg-xibe-bg flex flex-col overflow-hidden transition-[width] duration-200 ease-in-out border-r border-xibe-border-subtle"
374374
style={{ width: leftPanelOpen ? 240 : 0 }}
375375
>
376376
<div className="flex-1 min-h-0 overflow-y-auto p-3">
@@ -413,7 +413,7 @@ export default function App() {
413413

414414
{/* Right panel: Tabbed (Web + Folder) */}
415415
<div
416-
className="shrink-0 overflow-hidden transition-[width] duration-200 ease-in-out"
416+
className="shrink-0 overflow-hidden transition-[width] duration-200 ease-in-out border-l border-xibe-border-subtle"
417417
style={{ width: rightPanelOpen ? 320 : 0 }}
418418
>
419419
<TabbedRightPanel

packages/desktop/src/renderer/components/ChatHistory.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ const ChatHistory = memo(function ChatHistory({ activeSessionId, onSelectSession
9393
key={s.id}
9494
onClick={() => onSelectSession(s.id)}
9595
className={cn(
96-
"flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-left transition-all duration-200 group relative",
96+
"flex w-full items-center gap-2.5 rounded-lg px-2 py-1.5 text-left transition-all duration-200 group relative",
9797
activeSessionId === s.id
9898
? "text-xibe-text font-semibold before:absolute before:left-0 before:top-1/4 before:bottom-1/4 before:w-1 before:bg-xibe-text before:rounded-r"
99-
: "text-xibe-text-secondary hover:bg-xibe-surface-hover/50 hover:text-xibe-text"
99+
: "text-xibe-text-secondary hover:bg-xibe-surface-hover/30 hover:text-xibe-text"
100100
)}
101101
>
102102
<MessageSquare className={cn("h-3.5 w-3.5 shrink-0", activeSessionId === s.id ? "text-xibe-text" : "text-xibe-text-dim/40 group-hover:text-xibe-text-dim/70")} />

packages/desktop/src/renderer/components/ChatPanel.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ export default function ChatPanel({
153153
<button
154154
key={q.text}
155155
onClick={() => onSendMessage(q.text)}
156-
className="group flex items-center gap-3 rounded-lg bg-xibe-surface px-4 py-3 text-sm text-xibe-text-secondary hover:bg-xibe-surface-hover hover:text-xibe-text transition-colors"
156+
className="group flex items-center gap-3 rounded-xl border border-xibe-border-subtle bg-transparent px-4 py-3 text-sm text-xibe-text-secondary hover:bg-xibe-surface/50 hover:text-xibe-text transition-colors"
157157
>
158158
<div className="rounded-lg p-1.5 text-xibe-text-dim group-hover:text-xibe-text transition-colors">
159159
{q.icon}
@@ -203,7 +203,7 @@ export default function ChatPanel({
203203
)}
204204

205205
{/* Floating Pill input */}
206-
<div className="relative flex items-end rounded-lg bg-xibe-surface transition-colors duration-200">
206+
<div className="relative flex items-end rounded-2xl border border-xibe-border-subtle bg-xibe-bg focus-within:border-xibe-border-focus focus-within:ring-1 focus-within:ring-xibe-border-focus transition-all duration-200">
207207
<textarea
208208
ref={inputRef}
209209
value={input}

packages/desktop/src/renderer/components/MessageBubble.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const MessageBubble = memo(function MessageBubble({ role, content, isStreaming }
1515
if (isUser) {
1616
return (
1717
<div className="flex justify-end animate-fade-in w-full group">
18-
<div className="max-w-[85%] sm:max-w-[75%] rounded-2xl bg-[#27272a] px-4 py-3 text-[15px] leading-relaxed text-xibe-text whitespace-pre-wrap">
18+
<div className="max-w-[85%] sm:max-w-[75%] rounded-2xl bg-xibe-surface px-5 py-3.5 text-[15px] leading-relaxed text-xibe-text whitespace-pre-wrap border border-xibe-border-subtle">
1919
{content}
2020
</div>
2121
</div>
@@ -25,8 +25,8 @@ const MessageBubble = memo(function MessageBubble({ role, content, isStreaming }
2525
return (
2626
<div className="animate-fade-in flex flex-col w-full group">
2727
<div className="prose prose-invert max-w-none text-[15px] leading-relaxed text-xibe-text
28-
prose-p:my-3 prose-headings:my-4 prose-ul:my-3 prose-ol:my-3 prose-li:my-1
29-
prose-pre:my-4 prose-pre:bg-transparent prose-pre:p-0
28+
prose-p:my-2 prose-headings:my-3 prose-ul:my-2 prose-ol:my-2 prose-li:my-0.5
29+
prose-pre:my-3 prose-pre:bg-transparent prose-pre:p-0
3030
prose-blockquote:my-4 prose-blockquote:border-l-2 prose-blockquote:border-xibe-border prose-blockquote:pl-4 prose-blockquote:text-xibe-text-dim
3131
prose-a:text-xibe-text-secondary hover:prose-a:text-xibe-text prose-a:underline prose-a:underline-offset-2
3232
prose-strong:text-xibe-text prose-strong:font-semibold

packages/desktop/src/renderer/styles/global.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
--color-xibe-surface-raised: #27272a;
77
--color-xibe-surface-hover: #27272a;
88
--color-xibe-border: #27272a;
9-
--color-xibe-border-subtle: #18181b;
10-
--color-xibe-border-focus: #3f3f46;
9+
--color-xibe-border-subtle: #27272a;
10+
--color-xibe-border-focus: #52525b;
1111
--color-xibe-muted: #71717a;
1212
--color-xibe-text: #fafafa;
1313
--color-xibe-text-secondary: #a1a1aa;

0 commit comments

Comments
 (0)