Skip to content

[Task] Collapse file-type icon sprite into category line-icons #580

@Astro-Han

Description

@Astro-Han

Goal

Replace the upstream vscode-icons multi-color real-brand-logo sprite (~1075 entries in packages/ui/src/components/file-icons/sprite.svg) with ~20–30 generic line-icons grouped by file category, so that file-type icons share the chrome icon DNA (line geometry, single currentColor, 1.5px @ 16 stroke equivalent) instead of staying a visually disjoint multi-color set.

Scope

In scope:

  • Define the category set (Code / Markup / Image / Document / Archive / Config / Script / Lock / Data / Binary / Font, ~10–12 buckets).
  • Draw ~20–30 line glyphs covering the buckets and the few exceptions that warrant a dedicated glyph (e.g. SVG, PDF, ZIP).
  • Replace the existing sprite consumption sites with the new category resolver (filename / extension → category → glyph).
  • Update packages/ui/src/components/icon.tsx and any file-icon callsites to use the chrome icon registry path.

Out of scope:

  • Redrawing 1075 logos one-for-one.
  • App icons under packages/ui/src/assets/icons/app/ (vendor-accurate brand logos, sanctioned exception to the one-icon-DNA rule per DESIGN.md → Iconography → App icons).
  • Multi-color treatments for any file type.

Relevant files or context

  • packages/ui/src/components/file-icons/sprite.svg (current ~1075-entry upstream sprite)
  • packages/ui/src/components/icon.tsx (chrome icon registry)
  • DESIGN.md → Iconography → File-type icons (drives the redesign rule)
  • DESIGN.md → Do's and Don'ts (one icon DNA across the app)

Verification

  • Visual sweep: all file-type icons in the right panel review tab, attachment chips, and any markdown file references render with the same stroke / color / weight as chrome icons.
  • Category resolver covers the long tail without falling back to a generic file glyph for common types (.ts, .tsx, .py, .go, .rs, .md, .json, .svg, .png, .pdf, .zip, .lock, etc.).
  • Build size: the new sprite is meaningfully smaller than the 1075-entry upstream one.
  • No callsite still imports the upstream multi-color sprite.

Execution mode

Agent should investigate and propose a plan first

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low prioritytaskMaintainer or agent execution taskuiDesign system and user interface

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions