Icons
Component icons ship with Atlas under the atlas prefix; content icons come from Font Awesome through blade-fontawesome. How names work, how to replace an icon, and how to use Pro.
Atlas renders icons through blade-ui-kit/blade-icons and keeps two kinds apart. See Icon for the component and its props; this guide is about the system behind it.
Two kinds of icon
| Kind | What | Comes from | Prefix |
| --- | --- | --- | --- |
| Component icons | What Atlas components draw themselves: chevrons, check, close, error | Atlas | atlas |
| Content icons | What your project passes in: phone, envelope, social marks | Font Awesome, through blade-fontawesome | fas, far, fab (and the Pro prefixes) |
Atlas never claims a Font Awesome prefix, so the two sit side by side.
Component icons
These ship with Atlas and need nothing installed:
| Name | Used by |
| --- | --- |
| atlas-angle-down-regular-full | Button linking to an anchor (href="#…") |
| atlas-angle-left-regular-full | Text link with icon-position="left", swiper |
| atlas-angle-right-regular-full | Button, text link, swiper |
| atlas-arrow-up-right-from-square-regular-full | Button with target="_blank" |
| atlas-check-regular-full | Checkbox |
| atlas-circle-exclamation-light-full | Error |
| atlas-download-regular-full | Button with download |
| atlas-xmark-regular-full | Pill filter |
The name is atlas- plus the SVG filename; the suffix is the weight. Pass any
of them to a component that takes an icon, like any other name.
Replacing a component icon
Put an SVG of the same name in your project's resources/icons/atlas/. That
folder is searched before the icons Atlas ships, so
resources/icons/atlas/check-regular-full.svg
replaces the tick in every checkbox, and every name you do not replace still comes from Atlas.
The file can be a plain Font Awesome 7 download, unedited and under its own
name. Those "full" SVGs pad the glyph inside a 640 viewBox, and Atlas sizes
any icon with that viewBox to make up for it, so the glyph comes out at the
icon size. To change a component's icon in one place only, pass it an icon
instead.
Using a different folder
If your project keeps its icons elsewhere, point Atlas at that folder in
config/atlas.php (php artisan atlas:config publishes it), as an absolute
path:
'icons' => [
'path' => resource_path('images/icons/regular'),
],
On a multisite every site shares it.
Content icons with Font Awesome
Install blade-fontawesome. Atlas suggests it but does not require it:
composer require owenvoke/blade-fontawesome
Every free Font Awesome icon then works by name, in <x-atlas::icon> and in
every component that takes an icon — button, text link, list, pill filter,
contact list, social list:
<x-atlas::icon name="fas-house" /> <x-atlas::button icon="far-envelope">Mail us</x-atlas::button> <x-atlas::social-list :items="[['icon' => 'fab-linkedin', 'url' => '…']]" />
| Prefix | Set |
| --- | --- |
| fas | Solid |
| far | Regular |
| fab | Brands |
The names are Font Awesome's own; browse them on
fontawesome.com with the free filter
on. Free has every icon in solid but only some in regular, so fas-phone
exists and far-phone does not. The same names work in blade-icons' own
<x-icon name="…" /> and @svg('…'). A name that does not resolve throws
SvgNotFound.
Font Awesome Pro
blade-fontawesome registers the Pro sets — light (fal), thin (fat),
duotone (fad) and the sharp variants — once Pro is synced into the project:
npm install --save @fortawesome/fontawesome-pro php artisan blade-fontawesome:sync-icons --pro
That needs the Font Awesome npm token wherever the project installs or builds. Component icons are unaffected: they still come from Atlas.
Using another set
blade-icons sets are additive. Register your own in config/blade-icons.php
under any prefix that Atlas and Font Awesome do not use:
'sets' => [
'acme' => [
'path' => 'resources/svg',
'prefix' => 'acme',
],
],
Then <x-atlas::icon name="acme-logo" /> resolves from your set.