Provider icons all sat as an 18-20px glyph inside the same 32px bordered
box, so icons that carry their own solid background (88API, Qiniu,
CherryIN, ...) showed up as a small square inside a square.
- A new ProviderIconBox replaces the box duplicated across the provider
card, the name field's icon button and the two preset selector lists.
Icons marked `shape: "tile"` in metadata fill the whole box, clipped
to its radius, with an inset ring drawn above the image so white
tiles keep an edge on white cards. Transparent logos keep the bordered
box and grow from 18px (forms) / 20px (card) to a shared 22px, which
matches the visual weight of the tiles without crowding the border.
- 28 icons are marked as tiles: solid squares, rounded tiles, circles
and white-background images. UCloud and SSSAiCode gain metadata
entries for this, which also makes them searchable in the icon picker.
- Icons with wide transparent margins are cropped to their content:
a6api, byteplus, nekocode, etok, sudocode-us, claudeapi and
teamorouter as lossless square crops (kept pixels identical), and
crazyrouter, aigocode, yi and zenmux through a tighter viewBox (paths
untouched). The Pi mark keeps its padding: it is the official README
mark and its viewBox is pinned by a test.
- Xiaomi MiMo switches from a one-line wordmark, which shrank to a thin
line at icon size and turned black-on-dark in dark mode, to the
official favicon style: the two-line lobe-icons wordmark in white on a
black tile.
- FennoAI's webp had a fake transparency checkerboard baked in. It is
replaced by a 256px PNG with real transparency, cropped to the fox.