Skip to content

chore(frontend): replace mixed Unicode glyphs with one SVG icon set #751

Closed

Description

@cristim

Summary

Iconography is mixed: the sidebar uses inline Feather-style SVGs, everywhere else uses Unicode glyphs. The pause/play glyphs may render as color emoji on macOS.

Where

Reviewed commit b50ca38:

  • frontend/src/index.html:34-86 (SVG nav icons), :307 (⚙︎), :355+ (ⓘ)
  • frontend/src/plans.ts:754-758 (▶ ⏸ ⏵ ✎ ✕, icon-only with only title)
  • frontend/src/history.ts:940-964 (↻ ⚠ ×)
  • frontend/src/toast.ts:45-48 (✓ ⚠ ✕)
  • frontend/src/recommendations.ts:1870 (↕ ▲ ▼)

Failure scenario

Source-level finding. UNVERIFIED: ⏸/⏵ render as color emoji on macOS Safari/Chrome without the text variation selector; Plans rendered empty in the mock, so row-level visuals were not observed. The costly "Run now" action is a small blue ▶.

User impact

Many users: inconsistent icon style, glyphs that depend on platform fonts, and weak affordance for a money-triggering action.

Suggested fix

Add src/icons.ts exporting the same Feather/Lucide SVG strings, use them for row actions, toasts and sort arrows, and put an overflow menu (⋯) on rows with "Run now" as a labelled button. aria-label on icon buttons is tracked separately in #184.

Screenshots

None (source-level finding).

Severity

Medium: visual inconsistency with a possible emoji-rendering problem, no functional failure.

Related: #184 (missing labels and aria-names on icon-only row actions; this issue covers the icon set itself).

Reviewer ID: VIS-17 (vis M12)
Found by the 2026-10-08 review fleet.

Activity

  1. IAmJSD commented on Oct 24, 2026

    @IAmJSD
    Collaborator

    Claiming: working on this

  2. self-assigned this
    on Oct 24, 2026
  3. IAmJSD commented on Oct 26, 2026

    @IAmJSD
    Collaborator

    Closing as fixed on main. #1386 added frontend/src/icons.ts (Feather/Lucide SVG set) and replaced the glyphs in row actions, toasts, sort arrows, filters, tooltips and close buttons, with a source guard test. 'Run now' is now a labelled button, which addresses the weak-affordance concern instead of the suggested overflow menu. The glyphs left are inside text strings, labels and CSS ::before, where SVG cannot go.

    The fix PRs said Refs, so GitHub did not close this automatically. Checked against main on 2026-10-26 by IAmJSD's agent (IAmJSD is acting owner while the maintainers are away). Reopen if anything here is still wrong.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions