feat: add command palette (Ctrl+K / Cmd+K)

Fuzzy-searchable command palette accessible from anywhere via Ctrl+K
(Windows/Linux) or Cmd+K (macOS). Supports keyboard navigation with
arrow keys, Enter to select, and Escape to close.

Available commands:
- Switch between sessions and projects
- Create new sessions and scratchpads
- Pin, archive, and duplicate the current session
- Open settings, project settings, and app data folder
- Toggle terminal
- Switch theme (dark/light/system)
- Add new projects

Implementation:
- New CommandPalette component with glass surface and glow border
- Palette entry/exit CSS animations
- Capture-phase Escape handler to prevent leaking to other overlays
- Commands built dynamically from workspace state
- Results grouped by category with fuzzy scoring

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-29 17:30:47 +02:00
co-authored by Copilot
parent be3f8d4cb3
commit 395965c639
3 changed files with 528 additions and 1 deletions
+21
View File
@@ -521,6 +521,27 @@ body {
animation: ambient-pulse 6s ease-in-out infinite;
}
/* ── Command palette ──────────────────────────────────────────── */
@keyframes palette-enter {
from {
opacity: 0;
transform: translateY(-8px) scale(0.98);
}
}
.palette-enter {
animation: palette-enter 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes palette-backdrop-enter {
from { opacity: 0; }
}
.palette-backdrop-enter {
animation: palette-backdrop-enter 0.15s ease-out;
}
/* ── Markdown prose styles ───────────────────────────────────── */
.markdown-content {