fix(emcn): normalize the folder icon family to the house geometry - #6262
Conversation
Folder and FolderOpen toggle in place in the sidebar folder rows, but carried incompatible geometry: Folder was a fill-based outline in a tight 14.5x13 box at stroke 0.3, while FolderOpen is the house-standard stroke outline in -1 -2 24 24 at stroke 1.55. A square size-[16px] therefore scaled the closed folder to ~16x14.3px where the open one renders ~11.3x10px, so expanding a folder visibly shrank its icon. Redraw Folder as FolderOpen's own body outline closed along the bottom-right, so the pair shares a silhouette, a box and a stroke weight by construction.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview The closed folder moves from a small filled outline ( Documentation in the component explains the pairing intent for future icon work. Reviewed by Cursor Bugbot for commit 86532fe. Configure here. |
Greptile SummaryThis PR redraws the closed Folder icon to match FolderOpen when toggled in place.
Confidence Score: 5/5The PR appears safe to merge, with the Folder geometry consistently aligned to FolderOpen and existing call-site sizing preserved. The changed SVG uses the same viewport, dimensions, stroke defaults, and body silhouette as FolderOpen, while current callers constrain sizing and do not depend on the former fill or stroke attributes.
|
| Filename | Overview |
|---|---|
| packages/emcn/src/icons/folder.tsx | Replaces the closed folder’s mismatched filled geometry with a stroked outline matching FolderOpen; no actionable issue was identified. |
Reviews (1): Last reviewed commit: "fix(emcn): match Folder icon geometry to..." | Re-trigger Greptile
FolderandFolderCodeboth carried a fill-based construction in a tight viewBox with a hairline stroke, whileFolderOpenwas the house-standard stroke outline. Measured atsize-[14px]:pencil)folder-openfolder(before)folder-code(before)Both now measure 10.1px / 0.90px.
Why it was visible
FoldervsFolderOpentoggle in place in the sidebar folder rows — expanding a folder visibly shrank its icon.FolderCoderenders in Chat'sTOOL_ICONSmap forglob/mv/mkdir, directly beside standard-geometrySearch,File, andDatabase.Neither appeared before the lucide migration — lucide shipped all three as matched 24-boxes.
Fix
Folderis redrawn asFolderOpen's own body outline closed along the bottom-right;FolderCodereuses that body path byte-identically and insets code brackets centred on the body (x 9.125, y 11.25). The family now shares one silhouette and one weight by construction.Call-site safety
Changing a viewBox is never a one-file change. All 19
<Folder>and 4<FolderCode>sites audited:Folder) — all insideDropdownMenuItemorSettingsResourceRow, which force-size via[&_svg]:size-[14px], absorbing the intrinsic change.FolderCodeconsumers (agent-group,FeaturePlatformPanel,agent-code-graphic) all pass an explicit squaresize-*.Checks
biomeclean ·type-check --force23/23 (0 cached)Deliberately not changed
connections(21.5px / 0.22px) is the same class, but it is a filled glyph for Integrations — correcting its size is mechanical, converting it to a stroke outline changes its character. Wants its own design call.zoom-in/zoom-out/undo/redomeasure 0.99px stroke vs the 0.90px standard — within tolerance, not worth churning.playis deliberately filled;PlayOutlineis its stroke counterpart and is whatTOOL_ICONSalready uses.Unrelated finding (not addressed here)
TOOL_ICONS(message-content/utils.ts) has 73 keys mixing agent names with tool names, but its sole consumergetAgentIcon(agentName)is only ever called with sub-agent names. The tool-name subset appears dead. Worth a separate look — either the map should be pruned, or per-tool icons were meant to render somewhere and don't.