Page MenuHomePhorge

Update embedded copy of Font Awesome 4.7.0
Open, Needs TriagePublic

Description

Phorge currently ships FontAwesome version 4.7.0 from 2016, located in https://we.phorge.it/source/phorge/browse/master/webroot/rsrc/externals/font/fontawesome/

Firefox console complains that "Glyph bbox was incorrect". This issue was fixed in https://github.com/FortAwesome/Font-Awesome/issues/19925 and requires at least version 6.5 of the Font Awesome available at https://github.com/FortAwesome/Font-Awesome under https://fontawesome.com/license/free

Screenshot From 2025-04-16 10-56-15.png (975×1 px, 343 KB)

Event Timeline

This might be a bad idea after looking up more docs:

Per https://docs.fontawesome.com/web/setup/upgrade/upgrade-from-v4 ,

all icons with an outlined style (their name usually ended with -o) are now part of the Regular style

but the "Regular" Icon Style is not available in the free version and is "Pro only".

Looking at https://we.phorge.it/uiexample/view/PHUIIconExample/ that affects a good number of icons used in Phorge.
We could switch them to the "Solid" Icon Style (no -o prefix) but that will make the UI feel heavier.

For the records, https://www.irigoyen.dev/blog/2021/02/17/stop-using-icon-fonts/ and https://cloudfour.com/thinks/seriously-dont-use-icon-fonts/ linked from the README of the deprecated fork https://forkaweso.me/ in general argue against using icon fonts given that SVG support is common nowadays.
Updating may also in the long run provide a path to move to SVG icons: https://docs.fontawesome.com/web/dig-deeper/webfont-vs-svg

but the "Regular" Icon Style is not available in the free version and is "Pro only".

I was wrong or misinterpreted. fa-regular-400 as part of the "Free" version exists at https://github.com/FortAwesome/Font-Awesome/tree/6.x/webfonts

I can reproduce with the embedded copy of FontAwesome. I cannot reproduce if I use Fork Awesome 1.2. Switching over as a stopgap is a potential solution, especially because it offers SVG support, which can pave the way for a native-SVG replacement.

The only drawback of using Fork Awesome is that the fa-pied-piper set of icons is no longer available. We use its -alt icon variant for the Daemons application ().

I also attempted to use FontAwesome 6, but never got it to work, even when using the v4 compatibility shim.

All these options make me want to just go with Sprites (See "Tokens" and "Authentication" in https://we.phorge.it/uiexample/view/PHUIIconExample/).

We already have the code for that, it's somewhat optimized for transport, and supports colors and multiple resolutions.

JS+SVG icons introduce a possible security risk (big chunk of JS code + SVG itself), and will require some adoption to work with Javelin.
Emoji aren't standardized enough to be used as icons.
FontAwesome doing the freemium thing makes me sad, and I'm worried about misinterpreting their license (e.g., I think the fa-regular is not part of free, but is available on the GH repo for paying customers.)

FontAwesome doing the freemium thing makes me sad, and I'm worried about misinterpreting their license (e.g., I think the fa-regular is not part of free, but is available on the GH repo for paying customers.)

I downloaded the free version from https://fontawesome.com/download ("Free For Web") for a test, which includes fa-regular. Looking at their icon search, it looks like part of fa-regular is paid.

FYI I pasted the list of the 341 different FA icons used by Phorge as of 2025-04-24 (excluding the list of all icons in PHUIIconView::getIcons()) in P50

There are also five concatenations across the codebase:

$icon_name = 'fa-'.$item['icon'];
'fa-'.$this->getFieldConfigValue('list.icon');
if (empty($icon_names['fa-'.$icon])) {
'fa-'.$icon, implode(' ', $classes));
$display_name = str_replace('fa-', '', $icon);