Skip to content

Redraw menu bar icon to match the new Fluent brand#18

Closed
inhaq wants to merge 1 commit into
mainfrom
fix/menu-bar-brand-icon
Closed

Redraw menu bar icon to match the new Fluent brand#18
inhaq wants to merge 1 commit into
mainfrom
fix/menu-bar-brand-icon

Conversation

@inhaq

@inhaq inhaq commented Jun 26, 2026

Copy link
Copy Markdown
Owner

This pull request was created by @kiro-agent on behalf of @inhaq 👻

Comment with /kiro fix to address specific feedback or /kiro all to address everything.
Learn about Kiro Web


Problem

Updating the app icon images (AppIcon-Source.png / AppIcon.icns) did not change the menu bar icon, because the menu bar status item was never derived from the app icon. In Sources/App.swift, the idle glyph was either the SF Symbol waveform (release build) or a hand-drawn rounded-square-with-bars (StampedMenuBarIcon, dev build).

Fix

Replace StampedMenuBarIcon with FluentMenuBarIcon: a monochrome template glyph that mirrors the new brand — a speech-bubble ring with a flowing waveform inside.

  • Used for the idle state in both release and dev builds, so the menu bar now reflects the new identity.
  • The dev build gets a small marker dot so it stays distinguishable from a release build running side by side.
  • Recording / transcribing keep their record.circle / ellipsis.circle status icons.

Why a template (monochrome) glyph, not the colorful icon

Menu bar items should be simple monochrome template images so macOS can tint them for light and dark menu bars. The full-color 3D app icon (with its white rounded background) would look wrong in the menu bar, especially in dark mode. AppIcon.icns remains the dock/Finder icon.

Tested

  • swiftc -parse Sources/App.swift passes. A full build needs the macOS SDK (not available in this Linux sandbox), so please run make run CODESIGN_IDENTITY=- and confirm the menu bar glyph looks right at 1x/2x in both light and dark menu bars. The bezier coordinates (ring radius, waveform peaks, tail) are easy to nudge if you want the silhouette tweaked.

Summary by CodeRabbit

  • New Features

    • Updated the menu bar icon to better reflect app status, with distinct visuals for enabled, recording, and transcribing states.
    • Introduced a refreshed default app icon for the menu bar, with a subtle visual marker in development builds.
  • Bug Fixes

    • Replaced the previous menu bar icon rendering approach with a more consistent, streamlined version.

The menu bar status item was never derived from AppIcon. The idle glyph was
the SF Symbol "waveform" (release) or a hand-drawn rounded-square-with-bars
(dev), so updating AppIcon-Source.png / AppIcon.icns had no effect on it.

Replace StampedMenuBarIcon with FluentMenuBarIcon: a monochrome template glyph
that mirrors the new app icon (a speech-bubble ring with a flowing waveform).
It is used for the idle state in both release and dev builds, with a small
marker dot distinguishing the dev build. Recording/transcribing keep their
record.circle / ellipsis.circle status icons.

Drawn as a template image so macOS tints it for light/dark menu bars; a
full-color icon is not appropriate for a menu bar item.
@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 466a5f2b-702e-4fb2-89ab-bf3bbd9715d9

📥 Commits

Reviewing files that changed from the base of the PR and between 57fc005 and a2831d4.

📒 Files selected for processing (1)
  • Sources/App.swift

📝 Walkthrough

Walkthrough

Menu bar icon rendering now branches directly on app state for enabled, recording, transcribing, or idle states. The idle icon comes from a new FluentMenuBarIcon image generator, and the previous stamped icon implementation was removed.

Changes

Menu bar icon rendering

Layer / File(s) Summary
State-based icon selection and custom idle image
Sources/App.swift
MenuBarLabel now picks a checkmark, recording symbol, transcribing symbol, or a templated FluentMenuBarIcon image from app state; the idle icon generator now draws the menu-bar glyph with NSBezierPath and an optional dev dot.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

A bunny hops by, ears held high,
Three little icons wink in the sky.
Ring, wave, and dot in a tidy row,
For quiet menus and swift hello.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: redrawing the menu bar icon to match the Fluent brand.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/menu-bar-brand-icon

Comment @coderabbitai help to get the list of available commands.

@inhaq inhaq closed this Jun 26, 2026
@inhaq
inhaq deleted the fix/menu-bar-brand-icon branch June 26, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant