aws / aws/graph-explorer

Replace custom UI chrome icons with lucide-react equivalents

Open
#1,987 0 comments 0 reactions 0 assignees View on GitHub
internal tech debt
Dominant language
TypeScript
Stars
481
Forks
108
Avg merge
8d 9h
Merged PRs (30d)
7

Description

## Task

The app ships a large set of hand-drawn SVG icons in `src/components/icons/` for general UI chrome (add, check, chevrons, database, delete, edit, error, filter, grid, info, loader, reset, save, search, send, sync, upload, etc.). `lucide-react` is already a dependency and is used in ~30 places, so these custom icons are redundant with maintained, consistent lucide equivalents.

Replace the general-purpose custom icons with their lucide equivalents, delete unused icons, and keep only the icons that have no lucide match or are domain/brand specific.

### Scope

- Replace general-purpose custom icons with lucide equivalents (import `*Icon` names directly from `lucide-react` at call sites; no wrapper layer).
- Delete unused custom icons.
- Keep: the product logo, `GraphIcon`/`EdgeIcon` domain glyphs, the edge arrow-head/line-style pickers, and the comparison-operator icons (no lucide match).
- Slim the `components/icons` barrel to the kept icons.

### Related

- Distinct from #1774 (the node-styling **icon picker library** for user data) — this is about the app's own UI chrome icons.
- Sibling to the geometry-derived icon dedups (#1985, #1986).

### Notes

Implemented on branch `lucide-icons`.

> [!IMPORTANT]
> Internal only — this issue is maintained by the core team and is not accepting external contributions.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the custom icons in src/components/icons/ and searching their call sites, then compare them with the existing lucide-react usages. Done means general UI icons use direct lucide-react imports, unused icons are removed, and the icons barrel retains only the listed logo, domain, picker, and comparison icons. The issue notes this work is already implemented on the lucide-icons branch and is internal-only.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
frontend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.