Skip to content

Menubar popover: Gemini provider chip vertically misaligned in header row #267

@ozymandiashh

Description

@ozymandiashh

Summary

In the macOS menubar popover (CodeBurnMenubar.app v0.9.7), the Gemini provider chip in the header row sits a couple of pixels lower than the Claude and Codex chips on the same row. The other chips share a common baseline; Gemini breaks the visual rhythm.

Environment

  • App: CodeBurnMenubar.app v0.9.7 (mac-v0.9.7, sha256 10414bab…85fa)
  • CLI: codeburn 0.9.7 (npm)
  • macOS: Apple Silicon, system language Romanian

Steps to reproduce

  1. Install mac-v0.9.7 (npx codeburn menubar or download zip from the release).
  2. Have at least three providers reporting non-zero spend (Claude, Codex, Gemini).
  3. Open the menubar popover and look at the header chip strip.

Expected

All provider chips share the same vertical baseline / centerline within the header row.

Actual

Gemini chip is offset downward by ~1-2 px relative to Claude and Codex.

Gemini chip misalignment

Root cause (after digging)

Measured the chips at runtime with a temporary GeometryReader:

Chip active size
All 84 × 22
Gemini 95 × 22
Codex 98.5 × 28
Claude 108.5 × 28

AgentTab reserves a 6pt quota-bar slot (3pt spacing + 3pt bar) under the label only for .claude and .codex so the strip doesn't jump 6pt the moment the user signs in. Every other provider (.all, .gemini, .cursor, .droid, .copilot, ...) skips that slot and is 6pt shorter.

The outer HStack in AgentTabStrip was using its default .center alignment, so labels in the shorter chips ended up roughly 3pt below the Claude/Codex labels. The 6pt height delta also becomes visually obvious the moment one chip flips to the orange brand-accent active state.

Fix

Submitted in #268: reserve the 6pt slot on every chip (opacity 0 where there's no live quota source) so all chips share the same height regardless of provider or active state, plus an outer HStack(alignment: .top, ...) as a defensive baseline guarantee.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions