Allow extending AGOL/Portal Symbology with custom icon fonts

Idea created by johndye on May 1, 2018

    ArcGIS Online and Portal's built-in symbols are pretty basic and its not a reasonable for an organization to expect Esri to be able to meet their unique symbology needs down to the letter. But Esri could empower organizations to do this by supporting the use of custom icon fonts in Portal's symbology selector.


    Icon fonts are easy to put together using the help of a solution like Icon Font & SVG Icon Sets ❍ IcoMoon that allows you to import SVGs, load them into an Icon Font, including any custom colors if you like, then push those out to TTF, WOFF, WOFF2 and SVG Fonts.


    It would be a great improvement to be able to take these fonts and either install them on the Portal machine or host them elsewhere and configure then Portal to make these fonts available in Portal's built in symbology selector as custom symbology collections for use in Webmaps.


    If your custom symbology is comprised of PNGs, this is actually already possible. But, come on...PNGs? Icon fonts are:


    Flexible - The web is optimized for displaying text. With icon fonts, changing the color of your icons or applying other CSS effects is pretty simple, meaning Esri could do some pretty awesome stuff with icon fonts like changing colors, stacking different glyphs and even CSS animations that would work anywhere. Animations would be particularly cool because the only way to do that currently is with animated GIFs and that does not work everywhere at all.


    Scalable - Using icon fonts, changing the size of an icon is as simple as changing the font-size. All of the symbols could scale together in the font. If you need to change the size of specific symbols, CSS can handle that as well.


    Vector - Icon fonts are 100% vector. So they scale perfectly and appear crisp on any device at any resolution.


    Fast - They're fast! If you've ever looked at the network requests it takes to load a web map with a few layers symbolized by unique values, then you'll notice there's a ridiculous amount of requests to retrieve each unique symbol. That's dumb. Esri knows better than that. By having icons hosted in an icon font, you can load all of the icons you need in a single request. Even if you're using icons from multiple icon fonts, it's maybe 2 or 3 requests - one for each icon font needed. That's much better than say 40 requests to load each individual symbol! And icon fonts are meant for the web. They're small. We're talking kilobytes - so they load very fast which is great for mobile devices with constrained bandwidth. PNGs by contrast much larger on a per-symbol basis and if you're going with animated GIFs - man those can get out of hand really quickly.


    Accessible - When done right, icon fonts are completely accessible and compatible with screen readers. For those with disabilities that use font-switching browser extensions, all you need to do is add !important to the icon font-family and it won't switch. So text-based fonts that should be switched won't be declared as !important and those font-switchers will swap them out as the user expects. But icon fonts used in the map are declared as !important and thus won't be switched out.