SVGBOX

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich sage schon seit Jahren, dass ein ziemlich gutes Icon-System darin besteht, Icons mit Inline-<svg> dort einzufügen, wo man sie braucht. Das ist einfach zu machen, bietet volle Designkontrolle, hat (im Allgemeinen) eine gute Performance und bedeutet, dass man sich nicht mit Caching und Browserunterstützungs-Kram herumschlagen muss.

In diesem Sinne… die Verwendung von <img> ist für Icons auch keine schlechte Idee. Sie bietet nicht so viel Feineinstellungsmöglichkeiten für das Design (obwohl man sie immer noch mit filter einfärben kann) und ist wohl auch nicht *ganz* so schnell (da die Bilder separat vom Dokument geladen werden müssen), aber sie hat immer noch viele der gleichen Vorteile wie Inline-SVG-Icons.

Shubham Jain hat ein Projekt namens SVGBOX, das Icons als <img> anbietet und eine der Design-Einschränkungen durch einen URL-Parameter zur Farbänderung aufhebt.

Ein Instagram-Icon, aber in Rot? Geben Sie red ein

Wenn Sie viele Icons verwenden möchten, bietet der bereitgestellte Copy-and-Paste-Code eine "SVG-Sprite"-Version, bei der die URL so aussieht

<img src="//s.svgbox.net/social.svg?fill=805ad5#instagram">

Das erhöht das Downloadgewicht des Icons (da alle Icons dieses Sets heruntergeladen werden), ist aber möglicherweise effizienter, da es ein einzelner Download statt vieler ist. Es ist heutzutage schwer zu sagen, ob das effizienter ist oder nicht, mit HTTP/2 im Spiel.

Interessant ist der Teil #instagram am Ende der URL. Nur ein Hash-Link, oder? Nein! Raffinierter! Im SVG-Bereich kann das ein Fragment-Identifikator sein, was bedeutet, dass nur der Teil des SVG angezeigt wird, der dem entsprechenden <view>-Element entspricht. Das sieht man nicht jeden Tag.

Direkter Link →