Skip to content

ui: Modernize popover panel — larger layout, resource monitoring, hover effects - #10

Merged
jatinkrmalik merged 5 commits into
mainfrom
feat/larger-popover-panel
Mar 5, 2026
Merged

ui: Modernize popover panel — larger layout, resource monitoring, hover effects#10
jatinkrmalik merged 5 commits into
mainfrom
feat/larger-popover-panel

Conversation

@jatinkrmalik

@jatinkrmalik jatinkrmalik commented Mar 5, 2026

Copy link
Copy Markdown
Member

Summary

A comprehensive UX overhaul of the menu bar popover panel for a more modern, polished feel on high-resolution displays.

image

Changes

Panel Sizing & Typography

  • Panel width: 320 → 380px, padding: 16 → 20px
  • Font sizes bumped one level across all elements for Retina clarity
  • More breathing room between sections

Layout Improvements

  • Status dot moved next to "Ready" text (was floating in the far right corner)
  • Action buttons (Settings, Quit) are now full-width clickable areas with contentShape(Rectangle())
  • Removed divider between action rows for cleaner look

Resource Monitoring

  • CPU usage badge with cpu icon — shows current process CPU %
  • RAM usage badge with memorychip icon — shows current resident memory
  • ProcessMonitor class polls every 5 seconds (lightweight, non-blocking)

Hover Effects

  • Action buttons highlight on hover with rounded background (native macOS menu feel)
  • Resource badges show a detail popover on hover:
    • CPU: exact %, thread count, core count
    • RAM: exact MB, peak memory, total system RAM
  • Smooth 0.15s ease-in/out animation on hover

Before → After

Element Before After
Panel width 320px 380px
App name .headline .title3 semibold
Status text .subheadline .body medium
Status dot Far right corner Next to status text
Resource info None CPU% + RAM with hover popovers
Action buttons Small click target, no hover Full-width, hover highlight
Audio level bar 4pt 6pt

Technical Details

  • ProcessMonitor: ObservableObject with @StateObject lifecycle, uses mach_task_basic_info for memory and task_threads + thread_basic_info for CPU
  • MenuRowButtonStyle: Custom ButtonStyle with onHover for native-feeling hover highlights
  • ResourceBadge: Reusable component with icon, value display, and hover popover

Increases the menu bar popover size and font hierarchy for better
readability on Retina and high-resolution displays.

Changes:
- Panel width: 320 → 380
- Padding: 16 → 20
- Header: title2 → title icon, headline → title3 name, caption → subheadline model
- Status: subheadline → body (medium weight), caption2 → caption hint
- Transcription: caption → subheadline label, callout → body text
- Stats: caption2 → caption
- Permissions: caption → subheadline/callout
- Actions: callout → body, vertical padding 2 → 4
- Status dot: 8×8 → 10×10
- Audio level bar: 4pt → 6pt
- Transcription card: padding 8 → 10, corner radius 6 → 8
- Section spacing increased throughout for breathing room
Fixes based on annotated screenshot feedback:
- Move status dot next to 'VocaMac' title instead of far right
- Show app RAM consumption in the empty top-right area
- Full-width clickable area on Settings/Quit buttons (contentShape)
- Hover highlight effect on action rows (MenuRowButtonStyle)
- Remove divider between action rows for cleaner look
- Proper alignment with negative horizontal padding offset
- Add ProcessMonitor class that polls CPU and memory every 5 seconds
- Show CPU usage with cpu icon and RAM with memorychip icon in header
- Hover tooltips show detailed info:
  - CPU: exact percentage + thread count
  - RAM: exact MB + peak memory usage
- Monospaced digits for clean number alignment
- Replaces inline memory calculation with proper observable polling
Replace basic .help() tooltips with interactive ResourceBadge views:
- Subtle background highlight on hover
- Popover shows detailed breakdown:
  - CPU: exact %, thread count, core count
  - RAM: resident MB, peak MB, total system RAM
- Smooth hover animation (0.15s ease in/out)
- Clean layout with icon, divider, and labeled rows
@jatinkrmalik jatinkrmalik changed the title ui: Enlarge popover panel and typography for high-res displays ui: Modernize popover panel — larger layout, resource monitoring, hover effects Mar 5, 2026
@jatinkrmalik
jatinkrmalik merged commit 8dc43b4 into main Mar 5, 2026
1 check passed
@jatinkrmalik
jatinkrmalik deleted the feat/larger-popover-panel branch August 22, 2026 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant