398 duotone glyphs on a 24px grid, painted with the ember-to-amber gradient: a soft back layer and a crisp 2px front stroke.
The set
Every icon the WorldStreet apps use today (an audit of 11 apps), plus the domain icons each product needs: money and trading, shop, learning, live and media, calls and social. 64 aliases let old names keep working. Click any icon to copy its JSX.
398 shown
Brands 19
Money & trading 35
Shop 24
Learning 32
Media & live 38
Calls & people 23
Social & messages 35
Files & data 23
Text & layout 36
Status & security 30
Arrows & navigation 38
Devices & system 40
Arcade & fun 20
General 5
Migrating an app
Moving off Lucide, Hugeicons, Phosphor or Iconify is a rename, not a redesign.
Write the old name in kebab-case and drop library suffixes: ArrowUpRight01Icon becomes arrow-up-right, Trash2 becomes trash-2, and ph:wallet-duotone becomes wallet.
Most names work as they are, either as a glyph or an alias (x, loader, credit-card, log-out, circle-check, trash-2). If one doesn't, search above by meaning, and see integrations/icon-map.json.
Inside buttons, nav and lists use tone="current" so the icon takes the text colour. Keep gradient for standalone accents.
Crypto tokens (BTC, ETH, USDT…) are brand marks with their own colours. Keep them as token images, not glyphs.
If an icon is genuinely missing, add it to the design system (Lucide name or a hand-drawn glyph) and re-sync. Never mix a second icon library back in.
Tones
Gradient for accents, current to match surrounding text (buttons, nav), white on brand tiles.