The current state of icon delivery for SLDS is in need of revitalization. Every release, the amount of icon assets grows, and there is heavy redundancy between icon sets, with the main differentiators being size and background treatment. Since we have so many source assets, we end up losing consistency with icon elements, as it is burdensome to maintain each icon when common elements change.
Furthermore, the usability of these icons is limited, as SLDS only vends one size for each raster asset. Core engineers often end up creating and uploading custom derivatives of SLDS's icons, detaching them from the design system and creating a maintenance burden.
The creation of an “Icons as a Service” solution, which would generate, customize, and deliver SLDS icons, would help resolve these pain points in a scalable, automatic, and on-demand way.
Broadly speaking, this is a simple service that will focus on building dynamic icons according to request parameters, aggressively caching them through a CDN, and serving them blazingly fast to requesters. This service will support delivery of a variety of image formats, including PNG, GIF, SVG, SVG sprite sheets, and possibly others.
The service responds to a set of dynamic request parameters to return a customized asset. Type presets can be used to apply default styling to icons, in line with current behavior.