Skip to content

[Request] Optional online icon search (via Iconify API) for label editor #29

Description

@phanex

Problem

Right now, adding an icon to a label requires manually finding it online, downloading the file to disk, and then importing it into the editor. For a workflow that's otherwise fully in-browser (Web Bluetooth, no server), this manual round-trip breaks the flow.

Proposed solution

Add an optional "Icon search" panel in the web editor that queries a public icon API and lets the user drop a result straight onto the canvas, skipping the manual download/import step.

A good fit would be the public Iconify API (https://api.iconify.design), which is free, requires no API key, and aggregates 200,000+ SVG icons from 200+ open-source icon sets (Material Symbols, Tabler, Lucide, Phosphor, Feather, etc.), most under MIT/Apache-2.0/CC0. It exposes:

  • /search?query=... for text search
  • /{prefix}/{name}.svg to fetch the actual SVG

The SVG could be rendered to a canvas client-side and piped into the existing image import pipeline, so no changes are needed downstream (rasterization, dithering, printing stay identical).

Important constraint: graceful degradation

This should be a purely optional, additive layer:

  • If the API is unreachable (offline, rate-limited, etc.), the search panel should simply show an "unavailable offline" state (or be hidden) — everything else (manual image upload, existing labels, printing) must keep working exactly as it does today.
  • No local bundling of icon sets, no new required dependency for the core offline workflow — this is strictly an online convenience feature.

Happy to help test / provide feedback on any implementation approach. Thanks for the great project!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions