.. include:: /Includes.rst.txt .. _feature-brand-logos: ========================= Feature: Brand logos ========================= Description =========== Fifteen platform logos of the **brands** style of Font Awesome Free ship next to the solid set, below :file:`Resources/Public/Icons/FontAwesome/Brands/`. They are rendered by the same ViewHelper, with the new :html:`set` argument: .. code-block:: html :html:`set` takes ``solid`` - the default, and every icon the theme drew before this - or ``brands``. Any other value raises :php:`\InvalidArgumentException` code ``1789218004`` rather than falling back to the default: :html:`set="brand"` would otherwise look for a platform logo among the solid icons and report the *name* as the thing that is missing. An allowlist, not a style ------------------------- The brands style is 609 files. The fifteen that ship are named one by one in the root :file:`package.json`: .. code-block:: json "fontAwesomeBrands": [ "bluesky", "discord", "facebook", "github", "gitlab", "instagram", "linkedin", "mastodon", "pinterest", "threads", "tiktok", "whatsapp", "x-twitter", "xing", "youtube" ] The same :bash:`runTests.sh -s buildIcons` that copies the solid set copies these, byte for byte, and the same :bash:`-s checkIconsBuild` compares them - against the allowlist applied to the pinned package, so it fails on an edited file, a missing file, an extra file **and** on a name added to or dropped from the list without a rebuild. Trademarks ---------- A brand logo is a trademark of its owner. Font Awesome's licence asks that it is used *only to represent the company, product or service to which it refers*, and that is the reason the set is an allowlist rather than a copy of the style: a logo that is reachable from one field on one content element can hardly be used as decoration. :file:`ATTRIBUTION.txt` beside the files repeats the restriction, because that is the copy which travels into the composer dist archive and the TER artifact. Impact ====== Integrators get a second, deliberately small icon set. A site package that needs another platform adds its name to :typoscript:`fontAwesomeBrands`, runs :bash:`-s buildIcons` and commits the file - the same path the version pin takes. Nothing about the solid set changes: the default of :html:`set` is ``solid``, every existing template keeps rendering exactly what it rendered, and the icon picker in the backend is still the solid catalogue. The styleguide section :guilabel:`Icons` gained a table of the brand logos under the table of the icons the theme uses.