Home/Icons

Icons

ArchCSS bundles 1000+ Lucide SVG icons and Font Awesome locally - no CDN required. Control size, stroke, color, and alignment with utility classes.

Lucide Icons

Lucide icons are rendered as inline SVGs. Add an <i> element with a data-lucide attribute and call lucide.createIcons() to render them.

Preview

<i data-lucide="home"></i>
<i data-lucide="settings"></i>
<i data-lucide="user"></i>
<i data-lucide="search"></i>

<!-- Initialize icons -->
<script src="dist/webfonts/lucide/js/lucide.min.js"></script>
<script>lucide.createIcons();</script>

Icon sizing

Control icon size with named scale classes or pixel-based classes. All sizing works through the --lucide-size CSS custom property.

Preview

xs sm md lg xl 2xl
<i data-lucide="star" class="icon-xs"></i>
<i data-lucide="star" class="icon-sm"></i>
<i data-lucide="star" class="icon-md"></i>
<i data-lucide="star" class="icon-lg"></i>
<i data-lucide="star" class="icon-xl"></i>
<i data-lucide="star" class="icon-2xl"></i>

Named scale

ClassSizeMultiplier
.icon-xs0.75rem0.5×
.icon-sm1.125rem0.75×
.icon-md1.5rem1× (base)
.icon-lg2.25rem1.5×
.icon-xl3rem
.icon-2xl3.75rem2.5×

Pixel scale

Use .icon-{px} for exact pixel sizing. Available values: 12, 14, 16, 18, 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 80, 96.

<i data-lucide="heart" class="icon-16"></i>  <!-- 16px -->
<i data-lucide="heart" class="icon-32"></i>  <!-- 32px -->
<i data-lucide="heart" class="icon-64"></i>  <!-- 64px -->

Stroke width

Control the stroke thickness of Lucide icons with .icon-stroke-{weight}.

Preview

thin light normal bold heavy
ClassStroke width
.icon-stroke-thin1
.icon-stroke-light1.5
.icon-stroke-normal2
.icon-stroke-bold2.5
.icon-stroke-heavy3

Icon colors

Icons inherit currentColor by default. Override with .icon-{color} using any theme color token, or use .icon-inherit to explicitly inherit.

Preview

<i data-lucide="heart" class="icon-primary icon-lg"></i>
<i data-lucide="check-circle" class="icon-success icon-lg"></i>
<i data-lucide="alert-triangle" class="icon-danger icon-lg"></i>

<!-- Inherit from parent text color -->
<span class="text-purple">
  <i data-lucide="star" class="icon-inherit"></i>
</span>

Alignment

Align icons vertically within text using alignment helpers.

ClassProperty
.icon-topvertical-align: top
.icon-middlevertical-align: middle
.icon-bottomvertical-align: bottom
<p>
  <i data-lucide="mail" class="icon-middle"></i>
  Inbox messages
</p>

Responsive sizing

All named icon sizes support responsive prefixes. Use {breakpoint}:icon-{size} to change icon size at different viewports.

<!-- Small on mobile, large on desktop -->
<i data-lucide="home" class="icon-sm lg:icon-lg"></i>

Font Awesome

ArchCSS bundles Font Awesome locally. Use the standard Font Awesome class syntax - no CDN link required.

Preview

<i class="fa fa-home"></i>
<i class="fa fa-user"></i>
<i class="fa fa-cog"></i>

Configuration

Icon features are controlled by the flags and tokens baked into the compiled build.

VariableDefaultDescription
$enable_lucidetrueEnable Lucide icon utilities and base CSS
$enable_fontawesometrueLoad bundled Font Awesome CSS
$icon-size1.5remBase icon size used for the named scale
Local bundles. Both Lucide and Font Awesome are shipped with the ArchCSS package - no external CDN requests are made. Building from SCSS source to toggle these flags yourself is coming in a future release.