@@ -115,36 +115,36 @@ export function Sidebar() {
115115 </ div >
116116
117117 < div class = "sidebar-footer" >
118- < div class = "sidebar-actions-grid " >
119- < button class = "sidebar-action " onClick = { ( ) => appStore . openVirtualTab ( "__mcp__" ) } title = "MCP Servers" >
120- < svg width = "12 " height = "12 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
118+ < div class = "sidebar-dock " >
119+ < button class = "dock-btn " onClick = { ( ) => appStore . openVirtualTab ( "__mcp__" ) } title = "MCP Servers" >
120+ < svg width = "14 " height = "14 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
121121 < rect x = "2" y = "2" width = "20" height = "8" rx = "2" /> < rect x = "2" y = "14" width = "20" height = "8" rx = "2" /> < circle cx = "6" cy = "6" r = "1" fill = "currentColor" /> < circle cx = "6" cy = "18" r = "1" fill = "currentColor" />
122122 </ svg >
123- MCP
123+ < span > MCP</ span >
124124 </ button >
125- < button class = "sidebar-action " onClick = { ( ) => appStore . openVirtualTab ( "__themes__" ) } title = "Themes" >
126- < svg width = "12 " height = "12 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
125+ < button class = "dock-btn " onClick = { ( ) => appStore . openVirtualTab ( "__themes__" ) } title = "Themes" >
126+ < svg width = "14 " height = "14 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
127127 < circle cx = "13.5" cy = "6.5" r = "2.5" /> < circle cx = "17.5" cy = "10.5" r = "2.5" /> < circle cx = "8.5" cy = "7.5" r = "2.5" /> < circle cx = "6.5" cy = "12.5" r = "2.5" /> < path d = "M12 22C6.5 22 2 17.5 2 12S6.5 2 12 2s10 4.5 10 10-1.5 4-3 4h-1.7c-.8 0-1.3.8-.9 1.5.6 1.1 1 2.2 1 3.5 0 1.5-.5 2-1.4 2z" />
128128 </ svg >
129- Themes
129+ < span > Themes</ span >
130130 </ button >
131- < button class = "sidebar-action " onClick = { ( ) => appStore . openVirtualTab ( "__search__" ) } title = "Search (Cmd+Shift+F)" >
132- < svg width = "12 " height = "12 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2.5" stroke-linecap = "round" stroke-linejoin = "round" >
131+ < button class = "dock-btn " onClick = { ( ) => appStore . openVirtualTab ( "__search__" ) } title = "Search (Cmd+Shift+F)" >
132+ < svg width = "14 " height = "14 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2.5" stroke-linecap = "round" stroke-linejoin = "round" >
133133 < circle cx = "11" cy = "11" r = "8" /> < line x1 = "21" y1 = "21" x2 = "16.65" y2 = "16.65" />
134134 </ svg >
135- Search
135+ < span > Search</ span >
136136 </ button >
137- < button class = "sidebar-action " onClick = { ( ) => appStore . openVirtualTab ( "__skills__" ) } title = "Skills & Plugins" >
138- < svg width = "12 " height = "12 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
137+ < button class = "dock-btn " onClick = { ( ) => appStore . openVirtualTab ( "__skills__" ) } title = "Skills & Plugins" >
138+ < svg width = "14 " height = "14 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
139139 < path d = "M14.7 6.3a1 1 0 000 1.4l1.6 1.6a1 1 0 001.4 0l3.77-3.77a6 6 0 01-7.94 7.94l-6.91 6.91a2.12 2.12 0 01-3-3l6.91-6.91a6 6 0 017.94-7.94l-3.76 3.76z" />
140140 </ svg >
141- Skills
141+ < span > Skills</ span >
142142 </ button >
143- < button class = "sidebar-action " onClick = { ( ) => setStore ( "usageDashboardOpen" , true ) } title = "Usage (Cmd+Shift+U)" >
144- < svg width = "12 " height = "12 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2.5" stroke-linecap = "round" >
143+ < button class = "dock-btn " onClick = { ( ) => setStore ( "usageDashboardOpen" , true ) } title = "Usage (Cmd+Shift+U)" >
144+ < svg width = "14 " height = "14 " viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2.5" stroke-linecap = "round" >
145145 < line x1 = "18" y1 = "20" x2 = "18" y2 = "10" /> < line x1 = "12" y1 = "20" x2 = "12" y2 = "4" /> < line x1 = "6" y1 = "20" x2 = "6" y2 = "14" />
146146 </ svg >
147- Usage
147+ < span > Usage</ span >
148148 </ button >
149149 </ div >
150150 < button class = "new-thread-btn" onClick = { ( ) => newThread ( ) } >
@@ -261,6 +261,38 @@ export function Sidebar() {
261261 background: rgba(107, 124, 255, 0.08);
262262 color: var(--text);
263263 }
264+ .sidebar-dock {
265+ display: flex;
266+ justify-content: space-between;
267+ padding: 4px 2px;
268+ background: var(--bg-muted);
269+ border-radius: var(--radius-md);
270+ }
271+ .dock-btn {
272+ display: flex;
273+ flex-direction: column;
274+ align-items: center;
275+ gap: 2px;
276+ padding: 6px 4px;
277+ border-radius: var(--radius-sm);
278+ color: var(--text-tertiary);
279+ font-size: 9px;
280+ font-weight: 500;
281+ letter-spacing: 0.01em;
282+ flex: 1;
283+ transition: all 0.12s;
284+ }
285+ .dock-btn:hover {
286+ color: var(--text-secondary);
287+ background: var(--bg-accent);
288+ }
289+ .dock-btn svg {
290+ flex-shrink: 0;
291+ transition: color 0.12s;
292+ }
293+ .dock-btn:hover svg {
294+ color: var(--primary);
295+ }
264296 .sidebar-actions-grid {
265297 display: grid;
266298 grid-template-columns: 1fr 1fr;
0 commit comments