HaloStack Docs
Open App
Packages

Icons

Single source of truth for app icons, the web manifest, and the social-share card.

@halostack/icons is the single source of truth for the app's icons — favicons, the touch icon, and the PWA icons — along with the web manifest (site.webmanifest) and the social-share card (og-image.png). It's a dependency-free package: nothing but the canonical assets under src/assets/, exposed through the ./assets/* export. Apps don't commit their own copies of these files; instead they sync from here. The sync script that copies a chosen subset into a consumer's directory (for example, an app's public/) lives in @halostack/scripts at tools/scripts/src/commands/sync-icons.ts, and it resolves the assets through that same ./assets/* export.

Structure

  • src/assets/ — the canonical icon files (favicon.ico, favicon.svg, and so on).

Importing / using

The assets are reachable through the exports map at @halostack/icons/assets/*, which works both for bundlers and for the @halostack/scripts sync script. A consumer wires the sync into its package lifecycle hooks so the icons land in place automatically on install, dev, and build:

The script's --assets flag (use src=dst to rename a file) overrides the default set; omit it to sync the full default set. A consumer should gitignore the synced copies — they're derived artifacts, and @halostack/icons remains the source of truth.

Conventions

To add or update an icon, edit the files under src/assets/ — never the synced copies in a consumer. Keep the package dependency-free; the canonical default asset list lives alongside the sync script in @halostack/scripts. And when you add a new top-level export folder, give it a matching exports entry.