Skip to content

feat(ui): migrate icons to e2b shadcn registry#392

Merged
huv1k merged 2 commits into
mainfrom
huv1k/update-shadcn-button
Jun 11, 2026
Merged

feat(ui): migrate icons to e2b shadcn registry#392
huv1k merged 2 commits into
mainfrom
huv1k/update-shadcn-button

Conversation

@huv1k

@huv1k huv1k commented Jun 11, 2026

Copy link
Copy Markdown
Member

Summary

Makes the e2b Figma-backed shadcn registry (https://ui.e2b.dev/icons) the source of truth for icons. Replaces the hand-maintained src/ui/primitives/icons.tsx (121 inline SVGs) with the generated src/ui/primitives/icons/ directory (barrel + base Icon + per-icon files) and rewrites all ~100 call sites to the new names.

What changed

  • ➕ Installed the registry into src/ui/primitives/icons/ (barrel index.ts, base icon.tsx, individual *-icon.tsx).
  • 🗑️ Deleted the old src/ui/primitives/icons.tsx.
  • ✏️ Rewrote every importing file to the new icon names (imports + JSX usages).
  • 📦 Kept a tiny icons-legacy.tsx for the one icon with no upstream equivalent.

Renamed icons

Old name New name Why
CheckIcon CheckmarkIcon renamed upstream
TrashIcon RemoveIcon renamed upstream
LogoutIcon LogOutIcon renamed upstream
SortAscIcon SortUpIcon name gap
SortDescIcon SortDownIcon name gap
EyeIcon EyeOpenIcon name gap
EyeOffIcon EyeClosedIcon name gap
SelectIcon UpDownIcon name gap (double up/down chevron)
SystemIcon LaptopIcon name gap (monitor/laptop)
SuccessIcon CheckCircleIcon name gap (check-in-circle)

ChevronLeftIcon / ChevronRightIcon keep their names but the glyphs were redrawn upstream.

Orphan icons (no exact upstream name)

Old name Resolution Where
DashboardIcon GridIcon (registry) not-found page
FolderUpIcon FolderUploadIcon (registry) sandbox filesystem ".." row
TerminalCustomIcon TerminalIcon (registry) sandbox terminal panel
InvoiceIcon kept in icons-legacy.tsx billing → invoices

⚠️ Behavior note

The registry's base Icon defaults to 24px (the old set hard-applied 16px). Icons inside buttons/sidebar are explicitly sized and unaffected, but a bare <Icon /> with no size class now renders larger — worth a visual pass.

Verification

tsc --noEmit0 errors · biome clean · merged latest main (one icon-import conflict resolved).

Install the e2b icon registry (https://ui.e2b.dev/icons) as the
Figma-backed source of truth, replacing the hand-maintained
src/ui/primitives/icons.tsx with the generated src/ui/primitives/icons/
directory (barrel + base Icon + per-icon files).

- Rewrite all call sites to the new icon names (CheckIcon->CheckmarkIcon,
  TrashIcon->RemoveIcon, EyeIcon/EyeOffIcon->EyeOpenIcon/EyeClosedIcon,
  SortAsc/DescIcon->SortUp/DownIcon, LogoutIcon->LogOutIcon,
  SelectIcon->UpDownIcon, SystemIcon->LaptopIcon, SuccessIcon->CheckCircleIcon).
- Map the orphan icons to upstream glyphs (DashboardIcon->GridIcon,
  FolderUpIcon->FolderUploadIcon, TerminalCustomIcon->TerminalIcon);
  InvoiceIcon has no upstream equivalent and stays in icons-legacy.tsx.
@vercel

vercel Bot commented Jun 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
web Ready Ready Preview, Comment Jun 11, 2026 10:22am

Request Review

…utton

# Conflicts:
#	src/features/dashboard/templates/builds/table-cells.tsx
@huv1k huv1k merged commit 9b2737d into main Jun 11, 2026
13 checks passed
@huv1k huv1k deleted the huv1k/update-shadcn-button branch June 11, 2026 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants