Skip to main content
Login
Sign up

Icon

The built-in icon tag — drop a Font Awesome glyph or an SVG/image file inline in prose or a heading. It inherits the surrounding text's size and color, with optional color, size, scale, margin, and padding overrides.

A built-in inline tag for dropping an icon inside text — a sentence, a list item, or a heading. Unlike the icon: front matter (which decorates a page or a nav entry), {% icon %} goes anywhere in your Markdown and inherits the surrounding text’s size and color, so it always matches its context. It renders as plain inline HTML — no JavaScript.

Usage

The first argument is the icon — a Font Awesome class value, a bare icon name, or a path to an SVG/image file. Quote it:

Launch it {% icon "fa-solid fa-rocket" %} when you're ready, then star it {% icon "fa-solid fa-star" %} on GitHub {% icon "fab fa-github" %}.

renders, live:

Launch it when you’re ready, then star it on GitHub .

A bare name is shorthand — it expands to the solid style (rocketfa-solid fa-rocket):

{% icon "rocket" %} {% icon "heart" %} {% icon "bell" %} {% icon "gear" %}

It sizes to the text

Because the icon is 1em, it grows with whatever it sits in — including headings:

Ship faster

Built for teams

### Ship faster {% icon "fa-solid fa-rocket" %}
#### Built for teams {% icon "fa-solid fa-users" %}

SVG and image files

Point the spec at a file ending in .svg, .png, .webp, … and the icon renders as an inline <img> boxed to the text size:

Open the {% icon "/icons/folder.svg" %} folder to continue.

Open the folder to continue.

Image files keep their own colors — the color override below applies to Font Awesome glyphs only.

Color, size, and scale

color tints a Font Awesome glyph; scale multiplies the text size; size sets an explicit CSS length:

{% icon "fa-solid fa-circle-check" color="green" %} done, {% icon "fa-solid fa-triangle-exclamation" color="#e8590c" %} careful, {% icon "fa-solid fa-star" scale=1.5 %} bigger, {% icon "fa-solid fa-star" size="2rem" %} biggest.

done, careful, bigger, biggest.

Margin and padding

Sometimes a particular glyph sits a hair high or low for your text, or you want a little space around an icon. margin and padding take 1–4 numbers in the usual CSS shorthand order (top right bottom left) and render as pixels. A negative margin shifts the icon — up, down, left, or right:

Nudge it {% icon "fa-solid fa-star" margin="-2 0 0 0" %} up, or space it {% icon "fa-solid fa-star" padding="0 8" %} out.

Nudge it up, or space it out.

The shorthand follows CSS: one number sets all four sides, two are vertical then horizontal, three are top / horizontal / bottom, and four are top / right / bottom / left. Values are plain numbers in pixels — margin=2, margin="0 4", margin="0 4 -2 0".

One wrinkle for image icons: a Font Awesome glyph grows to fit its padding, but an image (<img>) icon sits in a fixed 1em box, so padding insets the image within that box rather than adding space around it. Use margin when you want outer space around an image icon — margin always adds outer space, for both icon kinds.

Accessibility

label exists for one reason: screen-reader accessibility. Icons are decorative by default (aria-hidden), so assistive tech skips them and the surrounding text carries the meaning. But when an icon stands alone and is the meaning — a lone GitHub glyph used as a link, say — a screen-reader user would hear nothing. Give it an accessible name with label (it sets aria-label, or alt for an image icon) so the icon is announced:

{% icon "fab fa-github" label="View on GitHub" %}

Options

Param Effect
(first arg) The icon: a Font Awesome class (fa-solid fa-rocket, fab fa-github), a bare name (rocketfa-solid fa-rocket), or a path to an image file (/icons/folder.svg). Must be quoted.
color Tints a Font Awesome glyph (any CSS color). Image files keep their own colors.
scale Multiply the text size — scale=1.5 is 1.5× the surrounding text.
size An explicit CSS length (size="20px", size="1.5rem"); a bare number is read as em. Wins over scale.
margin 1–4 numbers (pixels), CSS shorthand order (top right bottom left). Negatives shift the icon — e.g. margin="-2 0 0 0" nudges it up.
padding 1–4 numbers (pixels), CSS shorthand order. Opens space around a Font Awesome glyph; on an image icon (fixed 1em box) it insets the image instead — use margin for outer space there. E.g. padding="0 8".
label Accessible name for a meaningful standalone icon — sets aria-label (or alt for images) so a screen reader announces it. Omit it for decorative icons, which are the default and hidden from assistive tech.

Font Awesome glyphs need the Font Awesome stylesheet — set theme.fontawesome: true in aardvark.config.yaml (this site does). A bare fa-rocket (an icon class with no style class like fa-solid) won’t render — use the full fa-solid fa-rocket or the bare rocket shorthand. SVG and image-file icons need no setup. Keep {% icon %} on the same line as adjacent text: an icon alone on its own line is treated as a block, not an inline glyph.

Last modified

Was this page helpful?