Skip to content

Consider self-hosted Phosphor SVGs for Card/Badge/nav icons (deferred, optional) #195

Description

@digitaldiina

Background

Split out of #153 (audit and apply Phosphor icons site-wide), which is closed in favor of this. Investigating #153 found that Mintlify's icons.library setting (docs.json) only supports fontawesome, lucide, or tabler — there is no "phosphor" option, confirmed against Mintlify's own docs. Every current icon field in docs.json/config/nav-*.json (113 usages) and every <Card>/<Badge>/<Icon> icon= usage in content (~1,700 usages, ~40-50 unique icon names) resolves against fontawesome today, with no per-icon override anywhere in the repo.

<Card>/<Badge>/<Icon> do accept a custom icon via a URL, local file path, or inline SVG in place of a library name, so a real Phosphor icon is technically achievable there. Nav-level tab/group icon fields are not documented as supporting a custom source — that part of the original scope may not be achievable on this platform at all.

Why deferred

Getting an actual Phosphor icon into these fields means deviating from Mintlify's native icon rendering — either self-hosting vendored SVGs (version-drift risk, no automated way to detect Phosphor changing an icon's design later) or pointing at Phosphor's CDN directly (an undocumented, unsupported, third-party runtime dependency on every page). Both are a performance/reliability trade against Mintlify's own icon handling, which isn't worth taking on before the live site has had time to stabilize post-launch.

Scope (if picked up)

  • Confirm (via mint dev) whether nav-level icon fields in docs.json/config/nav-*.json accept a custom URL/path at all, or are limited to the three named libraries.
  • Build the old-name → Phosphor-icon mapping table for the ~50-60 unique icon names in use (nav + content combined); flag any without a clean 1:1 match for design sign-off.
  • Decide self-hosted vs. CDN once revisited; if self-hosted, vendor SVGs under media/icons/phosphor/, pinned to a specific @phosphor-icons/core version noted alongside them.
  • Apply the mapping across docs.json/config/nav-*.json and all <Card>/<Badge>/<Icon> usages in content (scripted, not hand-edited — the same name repeats across many files).
  • Verify with markdownlint-cli2 + mint validate baseline diff, and a visual mint dev pass (light/dark) on a sample of nav tabs and landing-page cards.

Not blocking launch. Revisit once the live site's been stable for a while.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions