Icons

Two complete icon packs — Lucide (1711 glyphs) and Bootstrap Icons (2078) — are compiled into the wcl binary. Nothing is downloaded, nothing is read from disk at build time, and you declare nothing to use them. This chapter covers the three places an icon may go, the iconset block that renames a pack and styles it, the rules that turn a name into a glyph, the shared sprite the build emits, and what each of the three output targets does with an icon. It ends with both packs in full, every glyph drawn beside its name.

Every file and command below was run before it was written down. Type them and compare.

§ 1One file, every way in

Save this as icons.wcl. It uses all three ways to place an icon and declares one custom set:

icons.wclwcl
# icons.wcl — every way to put an icon on a page.
import <wdoc.wcl>

iconset ui {
  pack  = "lucide"
  size  = "1.25em"
  color = "#88c0d0"
  icon_def "heart" { color = "#bf616a" }
}

site demo {
  title            = "Icon lab"
  default_template = :book
  toc { chapter "Icons" { page = lab } }
}

page lab {
  title = "Icon lab"

  h1 "Icon lab"

  p "Bare :heart:, prefixed :bootstrap.house:, and a time like 10:30 that stays prose."

  diagram {
    width = 240  height = 90
    icon "lucide.compass" { x = 20.0  y = 13.0  width = 64.0  height = 64.0 }
    process "Validate" {
      id = v  x = 110.0  y = 20.0  width = 110.0  height = 50.0
      icon = "lucide.shield-check"
    }
  }
}
text
$ wcl wdoc build icons.wcl --out site
wrote 1 page
$ ls site/_wdoc/icons.svg
site/_wdoc/icons.svg

The paragraph renders as prose with two glyphs in it, and the diagram draws a third and a fourth. Both are reproduced below — unstyled, because this book declares no ui set of its own:

Bare , prefixed , and a time like 10:30 that stays prose.

Validate

Four icons, three mechanisms. :heart: and :bootstrap.house: are the inline pattern — a :name: token inside any prose string. The compass is the icon block, a placeable shape inside a diagram. The shield on the Validate box is a badge: the icon field that every box-like shape carries. All four resolve through one registry, and all four end up in one file, site/_wdoc/icons.svg, holding exactly the four glyphs the build used.

Note the last clause of the paragraph too. 10:30 sits in prose that is scanned for icon tokens, and comes out untouched. Neither the pattern nor the lookup ever fails a build.

§ 2The two bundled packs

The packs are vendored into the repository and bundled by crates/wcl_wdoc/build.rs, which concatenates every *.svg in a pack directory into one blob and emits a name-sorted index into it. Looking an icon up is a binary search and a slice — there is no per-icon file and no runtime read.

PackUpstreamLicenceGlyphsPaints with
lucidegithub.com/lucide-icons/lucideISC1711stroke="currentColor" — outline style
bootstrapgithub.com/twbs/iconsMIT2078fill="currentColor" — solid style

An icon name is the file stem. house.svg is the icon house; alarm-clock-check.svg is alarm-clock-check. Names are lower-case, digits and hyphens only — which is what lets a set.name token be split on its dot without ambiguity. The two galleries at the end of this chapter list every name in both packs.

The two packs overlap in places and diverge in most. Both have house, heart, wrench and zoom-in; only Lucide has shield-check, only Bootstrap has windows. When both provide a name and you have not said which you mean, the resolution order decides.

§ 2.1Licensing

Both licences are permissive and both require the licence text to travel with the files. That obligation is already met inside this repository: each pack directory keeps its upstream LICENSE beside the SVGs, and the two files are vendored verbatim — only icons/*.svg and LICENSE are copied from upstream, nothing else.

You are redistributing the glyphs

A built site embeds the icons it uses into _wdoc/icons.svg, and a PDF embeds them into the document itself. That is redistribution, and the ISC and MIT terms follow the glyphs out of your build. Neither licence asks for attribution on the page — both ask that the licence text be included with the distributed copies. If you ship the output rather than the source, ship the two licence files with it. crates/wcl_wdoc/assets/icons/README.md records where each pack came from and how to update it.

§ 3Inline icons

Inside any prose string, :name: becomes an icon. The pattern is one of the built-in inline patterns, so it works everywhere the others do — a p, a text block's span, a li, a table cell, a callout body, a chart label. Text and formatting covers the pattern engine as a whole.

The token is deliberately narrow. It matches a colon, a character from az or 09, then any run of lower-case letters, digits, dots, hyphens and underscores, then a closing colon. Three consequences follow:

A token that matches but resolves to nothing is emitted as the literal text you wrote. That is the whole safety story for the pattern: prose that happens to look like an icon reference is left as prose.

Write this:

wcl
p "Bare :heart:, prefixed :bootstrap.house:, and :not-an-icon: falls through."

…and the build emits this (line-broken here to fit):

site/lab.htmltext
<p>Bare
  <svg class="wdoc-icon" style="width:1.25em;height:1.25em;color:#bf616a;">
    <use href="_wdoc/icons.svg#lucide-heart"/>
  </svg>,
  prefixed
  <svg class="wdoc-icon"><use href="_wdoc/icons.svg#bootstrap-house"/></svg>,
  and :not-an-icon: falls through.
</p>

Two things to read out of that. First, each icon is a <use> of the shared sprite rather than a copy of the glyph — the sprite explains why. Second, the styling on the heart came from the ui iconset and its icon_def, while bootstrap.house names a set that declares no defaults and so carries no inline style at all.

An inline icon carries no classes of its own

The :name: token has no syntax for a class or a size — there is nowhere to put one. Every class and every style on an inline icon comes from the iconset (or its icon_def) that resolved it. If you need one glyph styled differently from the rest of its set, give the set an icon_def for it, or declare a second set.

§ 4Iconsets

An iconset is a named reference to a bundled pack plus the default styling for icons drawn from it:

wcl
iconset ui {
  pack       = "lucide"                 # which bundled pack to read
  size       = "1.25em"                 # default inline size
  color      = "var(--wdoc-accent)"     # default foreground
  class      = ["ui-glyph"]             # added to every icon in the set

  icon_def "heart"  { color = "#bf616a" }
  icon_def "circle-x" { color = "#bf616a"  class = ["shout"] }
}

Its fields:

FieldTypeMeans
labelidentifierThe set's own name. It is what :ui.heart: and a diagram icon's set = ui refer to.
packutf8?The bundled pack to read glyphs from — "lucide" or "bootstrap". Defaults to the set's own name, which is why iconset lucide {} needs no pack.
sizeutf8?Default size for inline icons, as a CSS length: "1.25em", "20px". Ignored by diagram icons and badges.
colorutf8?Default foreground. Every glyph paints with currentColor, so this is the one knob that recolours both packs.
fillutf8?Explicit fill override, for the rare case where color is not enough.
backgroundutf8?Background behind the glyph. On an inline icon it is a CSS background; on a diagram icon it becomes a <rect> drawn under the glyph.
classlist<utf8>?Classes added to every icon from this set, on top of the built-in wdoc-icon. See Themes and styling.
icon_defchild blocksPer-icon overrides, below.

§ 4.1Per-icon overrides

An icon_def child names one icon in the set and overrides the set's defaults for it. It carries the same five styling fields — size, color, fill, background, class — and nothing else. Sizing and colour has the layering rule that decides what an override replaces.

wcl
iconset ui {
  pack  = "lucide"
  color = "#88c0d0"          # everything in `ui` is blue …
  class = ["ui-glyph"]

  icon_def "heart" {         # … except the heart
    color = "#bf616a"
    class = ["shout"]        # ends up with class="wdoc-icon ui-glyph shout"
  }
}

An iconset is a document-root declaration

The registry is built from the iconset blocks at the root of the document, not from the page an icon appears on. An iconset written inside a page is not a root block and will not be found. In a multi-file document every imported file's root blocks merge into one root, so a set declared in any imported file styles icons in every page of every site the document builds. That is the reach to keep in mind before you rename lucide.

§ 4.2How a name resolves

A name reaches a glyph through one registry, loaded once per build from those root iconset blocks. Four rules, in this order:

The library declares iconset lucide {} and iconset bootstrap {} unconditionally, which is why both packs work in a document that declares nothing. Because a set's pack defaults to its own name, those two declarations are the whole of their configuration.

Declaring a set with one of those names replaces it — a root set is found before a library one:

override.wclwcl
import <wdoc.wcl>

# `lucide` now means the bootstrap pack, everywhere in the document.
iconset lucide { pack = "bootstrap" }

site demo { title = "s"  default_template = :book
  toc { chapter "L" { page = lab } }
}

page lab {
  title = "L"
  h1 "L"
  callout "Careful" { class = ["warning"]  body = "text" }
  p "inline :lucide.triangle-alert: here"
}

Build that and the sprite holds one symbol, lucide-triangle-alert, while the paragraph renders the literal text :lucide.triangle-alert:. Both halves of that are worth understanding, because they are the one place the rules above are not the whole story.

The warning callout's default glyph is lucide.triangle-alert, and Bootstrap has no icon by that name, so the set lookup failed. One path has a second chance after that failure: an icon named through the Html::Icon value — the icon(name, class) constructor, and so a callout's default glyph and a sidebar_footer button — falls back to a compiled-in pack whose name matches the prefix. That is why the callout drew the real Lucide glyph.

Nothing else gets that fallback. The author's own inline token did not: rule 1 applied, the lookup failed, and the literal text was emitted. Nor does a diagram icon block, nor a shape badge — both resolve through the set list and stop there.

Renaming a built-in set moves the furniture

Callout glyphs (lucide.info, lucide.lightbulb, lucide.triangle-alert, lucide.circle-x, lucide.circle-check) and sidebar_footer button icons are named by the stdlib, not by you. Declaring your own iconset lucide re-points every one of them at whatever pack you gave it, and they change silently wherever the new pack happens to have a matching name. To restyle a pack without moving it, declare a set under a new name and use that name.

§ 5The placeable icon block

icon is also a shape. It extends SvgBlock, so it is a legal child of a diagram or a container, it is placed by x / y or by anchors, and an edge may attach to it exactly as to a rect. The diagram canvas covers placement and Connections and routing covers the edges.

wcl
diagram {
  width = 260  height = 100
  icon "lucide.database" { id = db  x = 20.0   y = 26.0  width = 48.0  height = 48.0 }
  icon "lucide.cloud"    { id = cl  x = 190.0  y = 26.0  width = 48.0  height = 48.0 }
  db -> cl
}

The name is the block's label, so icon "lucide.compass" { … } and icon { name = "lucide.compass" … } are the same block written two ways. Its fields:

FieldTypeDefaultMeans
labelidentifierThe icon name, optionally set.name.
setidentifier?Which declared iconset to read from. Beats a set. prefix on the name.
x / yf640.0Top-left placement in diagram units, when the layout is manual.
width / heightf6424.0Size in diagram units. This — not size — is what sizes a diagram icon.
scalef64?Extra multiplier on width and height. It scales from the top-left corner: x / y do not move.
colorutf8?set'sForeground, over the set's default.
fillutf8?set'sFill override.
backgroundutf8?set'sDrawn as a <rect> behind the glyph, filling the same box.
classlist<utf8>?set'sClasses, added to the set's.
ididentifier?The shape's id, so an edge can name it.
sizeutf8?Declared for symmetry with iconset. A diagram icon ignores it — see the warning below.
anchorsf64?anchor_left and its siblings place the icon against the parent's edges instead of by x / y.
connect_pointslist<AnchorSide>?Which sides an edge may attach to.

size does not size a diagram icon

size is a CSS length, and the SVG render path never writes one: a diagram icon's geometry is width × height, multiplied by scale. Setting size on the block, or on the iconset it draws from, changes nothing in the output. Both were tried. Use width / height in a diagram, and keep size for the inline path.

A set on the block and a set prefix on the name do different jobs, and the difference shows up in the styling. icon "lucide.compass" reads from the lucide set — the library one, with no defaults — so it inherits no colour even if you have a beautifully styled set of your own. icon "compass" { set = ui } reads from ui, and picks up its color, background and classes.

§ 6Icon badges on shapes

The third mechanism puts an icon on a shape rather than beside it. Every box-like shape — rect, circle, container, process, decision, terminator, and any custom SvgBlock shape that declares the same fields — carries four badge fields:

FieldTypeDefaultMeans
iconutf8?The icon name, optionally set.name. Absent ⇒ no badge.
icon_sizef64?min(w, h) * 0.4Badge size in diagram units.
icon_posIconPos?:leftWhere in the shape's box the badge sits.
icon_classlist<utf8>?Classes on the badge.

IconPos is a symbol set with seven members. Corner and edge placements are inset from the box by a tenth of its shorter side; :center is not inset.

SymbolPlaces the badge
:leftAgainst the left edge, vertically centred — the default.
:rightAgainst the right edge, vertically centred.
:centerIn the middle of the box. Every badge draws over the shape, so this one overlaps a centred label.
:top_leftTop-left corner.
:top_rightTop-right corner.
:bottom_leftBottom-left corner.
:bottom_rightBottom-right corner.

:left is the default for two reasons. The label-bearing flowchart shapes reserve a matching strip on their left, so the badge and the label sit side by side instead of on top of one another. And a corner badge pokes out of a rounded or oval outline. Compare the two:

ValidateValidate
wcl
process "Validate" {
  id = a  x = 10.0  y = 20.0  width = 180.0  height = 50.0
  icon = "lucide.shield-check"                      # :left, the default
}
process "Validate" {
  id = b  x = 230.0  y = 20.0  width = 180.0  height = 50.0
  icon = "lucide.shield-check"  icon_pos = :top_right
}

A badge takes no set field. Write the set into the name — icon = "ui.shield-check" — when you want a set other than the first one that answers.

Two shapes have no box to badge

line and label have no bounding box a badge could be anchored to, so they carry no badge even though they are shapes. Everything else resolves a box: circle, container and polygon from their own geometry, and every remaining kind from its rectangle.

§ 7Sizing and colour

Styling arrives in three layers, and each later layer wins field by field:

Scalar fields replace; class lists concatenate, so an icon ends up wearing wdoc-icon, then the set's classes, then the icon's own.

What each field actually does depends on where the icon is drawn, and the table is the comparison worth having in one place:

FieldInline :name:Diagram icon blockShape badge
sizeCSS width and heightIgnoredIgnored — use icon_size
colorCSS color, driving currentColorSame, on the <use>From the set only
fillCSS fillSameFrom the set only
backgroundCSS backgroundA <rect> behind the glyphFrom the set only
classFrom the set onlySet's + the block's classSet's + icon_class
geometry1em, i.e. the surrounding font sizewidth × height × scaleicon_size, default min(w, h) * 0.4

The default inline size is not a hard-coded number in the renderer: the library ships a base "svg.wdoc-icon" rule setting width: 1em; height: 1em, so an inline icon is as tall as the text around it and moves with it. An iconset's size overrides that rule with an inline style. The selector is deliberately svg.wdoc-icon — element and class — so it cannot touch a diagram icon, which is a <use> and not an <svg>.

currentColor is the whole colour story

Lucide draws with stroke="currentColor" and Bootstrap with fill="currentColor", and the sprite preserves those attributes. So one property — the CSS color of whatever contains the icon — recolours both packs, and an icon with no color of its own simply takes the colour of the text or the shape it sits in. That is why an icon in a themed callout is already the callout's colour, and why a class from Themes and styling restyles icons for free.

§ 8The shared sprite

No glyph is ever copied into a page. Each use emits a <use href="_wdoc/icons.svg#pack-name"/>, and after every page has rendered, the build writes one _wdoc/icons.svg holding a <symbol> for each icon that was actually used. A document that references four icons ships four symbols, out of the 3789 available.

The symbol is the pack's own SVG with its root tag rewritten. viewBox is kept; presentation attributes — fill, stroke, stroke-width, stroke-linecap — are kept, because they are what makes the glyph draw; width, height, xmlns, id, class, role, aria-hidden and focusable are dropped, because the <use> supplies the size and the rest is noise. The id is {pack}-{name}.

site/_wdoc/icons.svgtext
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
  <symbol id="lucide-heart" viewBox="0 0 24 24" fill="none"
          stroke="currentColor" stroke-width="2"
          stroke-linecap="round" stroke-linejoin="round">
    <path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 …" />
  </symbol>
</svg>

Three facts follow from the sprite being a separate file. A page with fifty repetitions of one icon carries fifty short <use> elements and one copy of the path data. The href is written relative, _wdoc/icons.svg, so it resolves both under the dev server and on a static host. And it is a fetch, which means the icons appear when the output is served rather than when a page file is opened directly from disk.

A malformed glyph is dropped, not fatal

If a pack SVG has no root <svg> tag and no usable viewBox (and no width/height pair to synthesise one from), the icon is left out of the sprite and the <use> referring to it renders nothing. Nothing about icons fails a build — not a missing name, not a malformed glyph, not an unknown set.

§ 8.1One registry, every surface

There is exactly one icon registry per build. The renderer threads it through as patterns.icons(), and every surface that can name an icon asks the same object: the inline pattern engine, the diagram shape renderer, the badge renderer, a callout's default glyph, a sidebar_footer button's icon, and the icon(name, class) constructor available to your own blocks. One consequence matters in practice — the sprite is complete because everything records its usage in the same place, so a glyph that only a callout asked for is still in the file.

§ 9Icons across the three output targets

Icons are one of the features where the three targets genuinely differ, so it is worth seeing all three at once. Output targets covers the targets themselves.

TargetInline :name:Diagram and badge iconsThe sprite
HTML<svg class="wdoc-icon"><use …/></svg>, sized 1em<use> inside the page's SVGWritten to _wdoc/icons.svg
PDFThe pack glyph embedded directly, one em tall, painted in the page's foreground colourThe <symbol>s are spliced into the embedded SVG's <defs> and the sprite href rewritten to a local #idNone — there is no file to fetch
MarkdownDegrades to the literal :name: textSurvives: the diagram is exported as an .svg file that references the spriteWritten to _wdoc/icons.svg

Two of those rows deserve a sentence each. In PDF there is no sprite file to fetch, so the glyph must travel inside the document. An inline icon is embedded as the raw pack glyph, so an iconset's size and color do not reach it: it is one em tall, and it is the page's text colour. In Markdown the inline pattern has nowhere to go, because GitHub-flavoured Markdown has no inline SVG. The token you wrote comes back out as text. Diagrams are unaffected either way, because a diagram was always going to be an image.

Build the file from the top of this chapter as Markdown and the difference is plain:

text
$ wcl wdoc markdown icons.wcl --out md
wrote 1 page
$ cat md/lab.md
# Icon lab

Bare :heart:, prefixed :bootstrap.house:, and a time like 10:30 that stays prose.

![diagram](_wdoc/lab-diagram-1.svg)

If an icon has to survive into Markdown, put it in a diagram, or use a text marker instead. Visibility is the other tool here — @except(backends = [:markdown]) on the block that carries the decorative icon, and a plain-text block in its place — but note that the axis is per block, and an inline :name: is not a block. A paragraph is the smallest thing you can hide.

§ 10Icons in your own blocks

A block you declare yourself lowers to the HTML vocabulary, and that vocabulary has an icon in it. The icon(name, class) constructor builds one:

wcl
@block("status")
type Status extends ContentBlock {
  @inline(0) label: utf8
  glyph: utf8?

  lower = fn(s: &Status) -> list<Html>
    [el("span", ["status"], [
      icon(s.glyph ?? "lucide.circle-check", ["status-glyph"]),
      inl(s.label),
    ])]
}

The name resolves through the same registry and by the same rules, and it records its usage, so a glyph only your block asks for is still in the sprite. icon() is also the constructor that carries the compiled-in pack fallback: a pack.name that no declared set covers still resolves, exactly as a callout's default glyph does. A name that even that cannot place emits nothing rather than failing. Writing your own blocks covers the lowering interface, and inl alongside icon in the el family.

The other route needs no lowering at all. Because Html::Inline and every prose string run through the inline pattern engine, a block that emits prose gets :name: support for nothing.

§ 11All Lucide icons

Every icon in the bundled Lucide pack (1711). Reference one inline as :lucide.<name>:, or as a shape badge / icon block with lucide.<name>.

a-arrow-down a-arrow-up a-large-small accessibility
activity air-vent airplay alarm-clock
alarm-clock-check alarm-clock-minus alarm-clock-off alarm-clock-plus
alarm-smoke album align-center-horizontal align-center-vertical
align-end-horizontal align-end-vertical align-horizontal-distribute-center align-horizontal-distribute-end
align-horizontal-distribute-start align-horizontal-justify-center align-horizontal-justify-end align-horizontal-justify-start
align-horizontal-space-around align-horizontal-space-between align-start-horizontal align-start-vertical
align-vertical-distribute-center align-vertical-distribute-end align-vertical-distribute-start align-vertical-justify-center
align-vertical-justify-end align-vertical-justify-start align-vertical-space-around align-vertical-space-between
ambulance ampersand ampersands amphora
anchor angry annoyed antenna
anvil aperture app-window app-window-mac
apple archive archive-restore archive-x
armchair arrow-big-down arrow-big-down-dash arrow-big-left
arrow-big-left-dash arrow-big-right arrow-big-right-dash arrow-big-up
arrow-big-up-dash arrow-down arrow-down-0-1 arrow-down-1-0
arrow-down-a-z arrow-down-from-line arrow-down-left arrow-down-narrow-wide
arrow-down-right arrow-down-to-dot arrow-down-to-line arrow-down-up
arrow-down-wide-narrow arrow-down-z-a arrow-left arrow-left-from-line
arrow-left-right arrow-left-to-line arrow-right arrow-right-from-line
arrow-right-left arrow-right-to-line arrow-up arrow-up-0-1
arrow-up-1-0 arrow-up-a-z arrow-up-down arrow-up-from-dot
arrow-up-from-line arrow-up-left arrow-up-narrow-wide arrow-up-right
arrow-up-to-line arrow-up-wide-narrow arrow-up-z-a arrows-up-from-line
asterisk astroid at-sign atom
audio-lines audio-waveform award axe
axis-3d baby backpack badge
badge-alert badge-cent badge-check badge-dollar-sign
badge-euro badge-indian-rupee badge-info badge-japanese-yen
badge-minus badge-percent badge-plus badge-pound-sterling
badge-question-mark badge-russian-ruble badge-swiss-franc badge-turkish-lira
badge-x baggage-claim balloon ban
banana bandage banknote banknote-arrow-down
banknote-arrow-up banknote-x barcode barrel
baseline bath battery battery-charging
battery-full battery-low battery-medium battery-plus
battery-warning beaker bean bean-off
bed bed-double bed-single beef
beef-off beer beer-off bell
bell-check bell-dot bell-electric bell-minus
bell-off bell-plus bell-ring between-horizontal-end
between-horizontal-start between-vertical-end between-vertical-start biceps-flexed
bike binary binoculars biohazard
bird birdhouse bitcoin blend
blender blinds blocks bluetooth
bluetooth-connected bluetooth-off bluetooth-searching bold
bolt bomb bone book
book-a book-alert book-audio book-check
book-copy book-dashed book-down book-headphones
book-heart book-image book-key book-lock
book-marked book-minus book-open book-open-check
book-open-text book-plus book-search book-text
book-type book-up book-up-2 book-user
book-x bookmark bookmark-check bookmark-minus
bookmark-off bookmark-plus bookmark-x boom-box
bot bot-message-square bot-off bottle-wine
bow-arrow box boxes braces
brackets brain brain-circuit brain-cog
brick-wall brick-wall-fire brick-wall-shield briefcase
briefcase-business briefcase-conveyor-belt briefcase-medical bring-to-front
broccoli brush brush-cleaning bubbles
bug bug-off bug-play building
building-2 bus bus-front cable
cable-car cake cake-slice calculator
calendar calendar-1 calendar-arrow-down calendar-arrow-up
calendar-check calendar-check-2 calendar-clock calendar-cog
calendar-days calendar-fold calendar-heart calendar-minus
calendar-minus-2 calendar-off calendar-plus calendar-plus-2
calendar-range calendar-search calendar-sync calendar-x
calendar-x-2 calendars camera camera-off
candy candy-cane candy-off cannabis
cannabis-off captions captions-off car
car-front car-taxi-front caravan card-sim
carrot case-lower case-sensitive case-upper
cassette-tape cast castle cat
cctv cctv-off chart-area chart-bar
chart-bar-big chart-bar-decreasing chart-bar-increasing chart-bar-stacked
chart-candlestick chart-column chart-column-big chart-column-decreasing
chart-column-increasing chart-column-stacked chart-gantt chart-line
chart-network chart-no-axes-column chart-no-axes-column-decreasing chart-no-axes-column-increasing
chart-no-axes-combined chart-no-axes-gantt chart-pie chart-scatter
chart-spline check check-check check-line
chef-hat cherry chess-bishop chess-king
chess-knight chess-pawn chess-queen chess-rook
chevron-down chevron-first chevron-last chevron-left
chevron-right chevron-up chevrons-down chevrons-down-up
chevrons-left chevrons-left-right chevrons-left-right-ellipsis chevrons-right
chevrons-right-left chevrons-up chevrons-up-down church
cigarette cigarette-off circle circle-alert
circle-arrow-down circle-arrow-left circle-arrow-out-down-left circle-arrow-out-down-right
circle-arrow-out-up-left circle-arrow-out-up-right circle-arrow-right circle-arrow-up
circle-check circle-check-big circle-chevron-down circle-chevron-left
circle-chevron-right circle-chevron-up circle-dashed circle-divide
circle-dollar-sign circle-dot circle-dot-dashed circle-ellipsis
circle-equal circle-fading-arrow-up circle-fading-plus circle-gauge
circle-minus circle-off circle-parking circle-parking-off
circle-pause circle-percent circle-pile circle-play
circle-plus circle-pound-sterling circle-power circle-question-mark
circle-slash circle-slash-2 circle-small circle-star
circle-stop circle-user circle-user-round circle-x
circuit-board citrus clapperboard clipboard
clipboard-check clipboard-clock clipboard-copy clipboard-list
clipboard-minus clipboard-paste clipboard-pen clipboard-pen-line
clipboard-plus clipboard-type clipboard-x clock
clock-1 clock-10 clock-11 clock-12
clock-2 clock-3 clock-4 clock-5
clock-6 clock-7 clock-8 clock-9
clock-alert clock-arrow-down clock-arrow-up clock-check
clock-fading clock-plus closed-caption cloud
cloud-alert cloud-backup cloud-check cloud-cog
cloud-download cloud-drizzle cloud-fog cloud-hail
cloud-lightning cloud-moon cloud-moon-rain cloud-off
cloud-rain cloud-rain-wind cloud-snow cloud-sun
cloud-sun-rain cloud-sync cloud-upload cloudy
clover club code code-xml
coffee cog coins columns-2
columns-3 columns-3-cog columns-4 combine
command compass component computer
concierge-bell cone construction contact
contact-round container contrast cookie
cooking-pot copy copy-check copy-minus
copy-plus copy-slash copy-x copyleft
copyright corner-down-left corner-down-right corner-left-down
corner-left-up corner-right-down corner-right-up corner-up-left
corner-up-right cpu creative-commons credit-card
croissant crop cross crosshair
crown cuboid cup-soda currency
cylinder dam database database-backup
database-search database-zap decimals-arrow-left decimals-arrow-right
delete dessert diameter diamond
diamond-minus diamond-percent diamond-plus dice-1
dice-2 dice-3 dice-4 dice-5
dice-6 dices diff disc
disc-2 disc-3 disc-album divide
dna dna-off dock dog
dollar-sign donut door-closed door-closed-locked
door-open dot download drafting-compass
drama drill drone droplet
droplet-off droplets drum drumstick
dumbbell ear ear-off earth
earth-lock eclipse egg egg-fried
egg-off ellipse ellipsis ellipsis-vertical
equal equal-approximately equal-not eraser
ethernet-port euro ev-charger expand
external-link eye eye-closed eye-off
factory fan fast-forward feather
fence ferris-wheel file file-archive
file-axis-3d file-badge file-box file-braces
file-braces-corner file-chart-column file-chart-column-increasing file-chart-line
file-chart-pie file-check file-check-corner file-clock
file-code file-code-corner file-cog file-diff
file-digit file-down file-exclamation-point file-headphone
file-heart file-image file-input file-key
file-lock file-minus file-minus-corner file-music
file-output file-pen file-pen-line file-play
file-plus file-plus-corner file-question-mark file-scan
file-search file-search-corner file-signal file-sliders
file-spreadsheet file-stack file-symlink file-terminal
file-text file-type file-type-corner file-up
file-user file-video-camera file-volume file-x
file-x-corner files film fingerprint-pattern
fire-extinguisher fish fish-off fish-symbol
fishing-hook fishing-rod flag flag-off
flag-triangle-left flag-triangle-right flame flame-kindling
flashlight flashlight-off flask-conical flask-conical-off
flask-round flip-horizontal-2 flip-vertical-2 flower
flower-2 focus fold-horizontal fold-vertical
folder folder-archive folder-bookmark folder-check
folder-clock folder-closed folder-code folder-cog
folder-dot folder-down folder-git folder-git-2
folder-heart folder-input folder-kanban folder-key
folder-lock folder-minus folder-open folder-open-dot
folder-output folder-pen folder-plus folder-root
folder-search folder-search-2 folder-symlink folder-sync
folder-tree folder-up folder-x folders
footprints forklift form forward
frame frown fuel fullscreen
funnel funnel-plus funnel-x gallery-horizontal
gallery-horizontal-end gallery-thumbnails gallery-vertical gallery-vertical-end
gamepad gamepad-2 gamepad-directional gauge
gavel gem georgian-lari ghost
gift git-branch git-branch-minus git-branch-plus
git-commit-horizontal git-commit-vertical git-compare git-compare-arrows
git-fork git-graph git-merge git-merge-conflict
git-pull-request git-pull-request-arrow git-pull-request-closed git-pull-request-create
git-pull-request-create-arrow git-pull-request-draft glass-water glasses
globe globe-lock globe-off globe-x
goal gpu graduation-cap grape
grid-2x2 grid-2x2-check grid-2x2-plus grid-2x2-x
grid-3x2 grid-3x3 grip grip-horizontal
grip-vertical group guitar ham
hamburger hammer hand hand-coins
hand-fist hand-grab hand-heart hand-helping
hand-metal hand-platter handbag handshake
hard-drive hard-drive-download hard-drive-upload hard-hat
hash hat-glasses haze hd
hdmi-port heading heading-1 heading-2
heading-3 heading-4 heading-5 heading-6
headphone-off headphones headset heart
heart-crack heart-handshake heart-minus heart-off
heart-plus heart-pulse heart-x heater
helicopter hexagon highlighter history
hop hop-off hospital hotel
hourglass house house-heart house-plug
house-plus house-wifi ice-cream-bowl ice-cream-cone
id-card id-card-lanyard image image-down
image-minus image-off image-play image-plus
image-up image-upscale images import
inbox indian-rupee infinity info
inspection-panel italic iteration-ccw iteration-cw
japanese-yen joystick kanban kayak
key key-round key-square keyboard
keyboard-music keyboard-off lamp lamp-ceiling
lamp-desk lamp-floor lamp-wall-down lamp-wall-up
land-plot landmark languages laptop
laptop-minimal laptop-minimal-check lasso lasso-select
laugh layers layers-2 layers-minus
layers-plus layout-dashboard layout-grid layout-list
layout-panel-left layout-panel-top layout-template leaf
leafy-green lectern lens-concave lens-convex
library library-big life-buoy ligature
lightbulb lightbulb-off line-dot-right-horizontal line-squiggle
line-style link link-2 link-2-off
list list-check list-checks list-chevrons-down-up
list-chevrons-up-down list-collapse list-end list-filter
list-filter-plus list-indent-decrease list-indent-increase list-minus
list-music list-ordered list-plus list-restart
list-start list-todo list-tree list-video
list-x loader loader-circle loader-pinwheel
locate locate-fixed locate-off lock
lock-keyhole lock-keyhole-open lock-open log-in
log-out logs lollipop luggage
magnet mail mail-check mail-minus
mail-open mail-plus mail-question-mark mail-search
mail-warning mail-x mailbox mails
map map-minus map-pin map-pin-check
map-pin-check-inside map-pin-house map-pin-minus map-pin-minus-inside
map-pin-off map-pin-pen map-pin-plus map-pin-plus-inside
map-pin-search map-pin-x map-pin-x-inside map-pinned
map-plus mars mars-stroke martini
maximize maximize-2 medal megaphone
megaphone-off meh memory-stick menu
merge message-circle message-circle-check message-circle-code
message-circle-dashed message-circle-heart message-circle-more message-circle-off
message-circle-plus message-circle-question-mark message-circle-reply message-circle-warning
message-circle-x message-square message-square-check message-square-code
message-square-dashed message-square-diff message-square-dot message-square-heart
message-square-lock message-square-more message-square-off message-square-plus
message-square-quote message-square-reply message-square-share message-square-text
message-square-warning message-square-x messages-square metronome
mic mic-off mic-vocal microchip
microscope microwave milestone milk
milk-off minimize minimize-2 minus
mirror-rectangular mirror-round monitor monitor-check
monitor-cloud monitor-cog monitor-dot monitor-down
monitor-off monitor-pause monitor-play monitor-smartphone
monitor-speaker monitor-stop monitor-up monitor-x
moon moon-star motorbike mountain
mountain-snow mouse mouse-left mouse-off
mouse-pointer mouse-pointer-2 mouse-pointer-2-off mouse-pointer-ban
mouse-pointer-click mouse-right move move-3d
move-diagonal move-diagonal-2 move-down move-down-left
move-down-right move-horizontal move-left move-right
move-up move-up-left move-up-right move-vertical
music music-2 music-3 music-4
navigation navigation-2 navigation-2-off navigation-off
network newspaper nfc non-binary
notebook notebook-pen notebook-tabs notebook-text
notepad-text notepad-text-dashed nut nut-off
octagon octagon-alert octagon-minus octagon-pause
octagon-x omega option orbit
origami package package-2 package-check
package-minus package-open package-plus package-search
package-x paint-bucket paint-roller paintbrush
paintbrush-vertical palette panda panel-bottom
panel-bottom-close panel-bottom-dashed panel-bottom-open panel-left
panel-left-close panel-left-dashed panel-left-open panel-left-right-dashed
panel-right panel-right-close panel-right-dashed panel-right-open
panel-top panel-top-bottom-dashed panel-top-close panel-top-dashed
panel-top-open panels-left-bottom panels-right-bottom panels-top-left
paperclip parentheses parking-meter party-popper
pause paw-print pc-case pen
pen-line pen-off pen-tool pencil
pencil-line pencil-off pencil-ruler pentagon
percent person-standing philippine-peso phone
phone-call phone-forwarded phone-incoming phone-missed
phone-off phone-outgoing pi piano
pickaxe picture-in-picture picture-in-picture-2 piggy-bank
pilcrow pilcrow-left pilcrow-right pill
pill-bottle pin pin-off pipette
pizza plane plane-landing plane-takeoff
play plug plug-2 plug-zap
plus pocket-knife podcast pointer
pointer-off popcorn popsicle pound-sterling
power power-off presentation printer
printer-check printer-x projector proportions
puzzle pyramid qr-code quote
rabbit radar radiation radical
radio radio-off radio-receiver radio-tower
radius rainbow rat ratio
receipt receipt-cent receipt-euro receipt-indian-rupee
receipt-japanese-yen receipt-pound-sterling receipt-russian-ruble receipt-swiss-franc
receipt-text receipt-turkish-lira rectangle-circle rectangle-ellipsis
rectangle-goggles rectangle-horizontal rectangle-vertical recycle
redo redo-2 redo-dot refresh-ccw
refresh-ccw-dot refresh-cw refresh-cw-off refrigerator
regex remove-formatting repeat repeat-1
repeat-2 repeat-off replace replace-all
reply reply-all rewind ribbon
road rocket rocking-chair roller-coaster
rose rotate-3d rotate-ccw rotate-ccw-key
rotate-ccw-square rotate-cw rotate-cw-square route
route-off router rows-2 rows-3
rows-4 rss ruler ruler-dimension-line
russian-ruble sailboat salad sandwich
satellite satellite-dish saudi-riyal save
save-all save-off scale scale-3d
scaling scan scan-barcode scan-eye
scan-face scan-heart scan-line scan-qr-code
scan-search scan-text school scissors
scissors-line-dashed scooter screen-share screen-share-off
scroll scroll-text search search-alert
search-check search-code search-slash search-x
section send send-horizontal send-to-back
separator-horizontal separator-vertical server server-cog
server-crash server-off settings settings-2
shapes share share-2 sheet
shell shelving-unit shield shield-alert
shield-ban shield-check shield-cog shield-cog-corner
shield-ellipsis shield-half shield-minus shield-off
shield-plus shield-question-mark shield-user shield-x
ship ship-wheel shirt shopping-bag
shopping-basket shopping-cart shovel shower-head
shredder shrimp shrink shrub
shuffle sigma signal signal-high
signal-low signal-medium signal-zero signature
signpost signpost-big siren skip-back
skip-forward skull slash slice
sliders-horizontal sliders-vertical smartphone smartphone-charging
smartphone-nfc smile smile-plus snail
snowflake soap-dispenser-droplet sofa solar-panel
soup space spade sparkle
sparkles speaker speech spell-check
spell-check-2 spline spline-pointer split
spool sport-shoe spotlight spray-can
sprout square square-activity square-arrow-down
square-arrow-down-left square-arrow-down-right square-arrow-left square-arrow-out-down-left
square-arrow-out-down-right square-arrow-out-up-left square-arrow-out-up-right square-arrow-right
square-arrow-right-enter square-arrow-right-exit square-arrow-up square-arrow-up-left
square-arrow-up-right square-asterisk square-bottom-dashed-scissors square-centerline-dashed-horizontal
square-centerline-dashed-vertical square-chart-gantt square-check square-check-big
square-chevron-down square-chevron-left square-chevron-right square-chevron-up
square-code square-dashed square-dashed-bottom square-dashed-bottom-code
square-dashed-kanban square-dashed-mouse-pointer square-dashed-text square-dashed-top-solid
square-divide square-dot square-equal square-function
square-kanban square-library square-m square-menu
square-minus square-mouse-pointer square-parking square-parking-off
square-pause square-pen square-percent square-pi
square-pilcrow square-play square-plus square-power
square-radical square-round-corner square-scissors square-sigma
square-slash square-split-horizontal square-split-vertical square-square
square-stack square-star square-stop square-terminal
square-user square-user-round square-x squares-exclude
squares-intersect squares-subtract squares-unite squircle
squircle-dashed squirrel stamp star
star-half star-off step-back step-forward
stethoscope sticker sticky-note sticky-note-check
sticky-note-minus sticky-note-off sticky-note-plus sticky-note-x
sticky-notes stone store stretch-horizontal
stretch-vertical strikethrough subscript sun
sun-dim sun-medium sun-moon sun-snow
sunrise sunset superscript swatch-book
swiss-franc switch-camera sword swords
syringe table table-2 table-cells-merge
table-cells-split table-columns-split table-of-contents table-properties
table-rows-split tablet tablet-smartphone tablets
tag tags tally-1 tally-2
tally-3 tally-4 tally-5 tangent
target telescope tent tent-tree
terminal test-tube test-tube-diagonal test-tubes
text-align-center text-align-end text-align-justify text-align-start
text-cursor text-cursor-input text-initial text-quote
text-search text-wrap theater thermometer
thermometer-snowflake thermometer-sun thumbs-down thumbs-up
ticket ticket-check ticket-minus ticket-percent
ticket-plus ticket-slash ticket-x tickets
tickets-plane timeline timer timer-off
timer-reset toggle-left toggle-right toilet
tool-case toolbox tornado torus
touchpad touchpad-off towel-rack tower-control
toy-brick tractor traffic-cone train-front
train-front-tunnel train-track tram-front transgender
trash trash-2 tree-deciduous tree-palm
tree-pine trees trending-down trending-up
trending-up-down triangle triangle-alert triangle-dashed
triangle-right trophy truck truck-electric
turkish-lira turntable turtle tv
tv-minimal tv-minimal-play type type-outline
umbrella umbrella-off underline undo
undo-2 undo-dot unfold-horizontal unfold-vertical
ungroup university unlink unlink-2
unplug upload usb user
user-check user-cog user-key user-lock
user-minus user-pen user-plus user-round
user-round-check user-round-cog user-round-key user-round-minus
user-round-pen user-round-plus user-round-search user-round-x
user-search user-star user-x users
users-round utensils utensils-crossed utility-pole
van variable vault vector-square
vegan venetian-mask venus venus-and-mars
vibrate vibrate-off video video-off
videotape view voicemail volleyball
volume volume-1 volume-2 volume-off
volume-x vote wallet wallet-cards
wallet-minimal wallpaper wand wand-sparkles
warehouse washing-machine watch waves-arrow-down
waves-arrow-up waves-horizontal waves-ladder waves-vertical
waypoints webcam webhook webhook-off
weight weight-tilde wheat wheat-off
whole-word wifi wifi-cog wifi-high
wifi-low wifi-off wifi-pen wifi-sync
wifi-zero wind wind-arrow-down wine
wine-off workflow worm wrench
x x-line-top zap zap-off
zodiac-aquarius zodiac-aries zodiac-cancer zodiac-capricorn
zodiac-gemini zodiac-leo zodiac-libra zodiac-ophiuchus
zodiac-pisces zodiac-sagittarius zodiac-scorpio zodiac-taurus
zodiac-virgo zoom-in zoom-out

§ 12All Bootstrap icons

Every icon in the bundled Bootstrap Icons pack (2078). Reference one inline as :bootstrap.<name>:, or as a shape badge / icon block with bootstrap.<name>.

0-circle 0-circle-fill 0-square 0-square-fill
1-circle 1-circle-fill 1-square 1-square-fill
123 2-circle 2-circle-fill 2-square
2-square-fill 3-circle 3-circle-fill 3-square
3-square-fill 4-circle 4-circle-fill 4-square
4-square-fill 5-circle 5-circle-fill 5-square
5-square-fill 6-circle 6-circle-fill 6-square
6-square-fill 7-circle 7-circle-fill 7-square
7-square-fill 8-circle 8-circle-fill 8-square
8-square-fill 9-circle 9-circle-fill 9-square
9-square-fill activity airplane airplane-engines
airplane-engines-fill airplane-fill alarm alarm-fill
alexa align-bottom align-center align-end
align-middle align-start align-top alipay
alphabet alphabet-uppercase alt amazon
amd android android2 anthropic
app app-indicator apple apple-music
archive archive-fill arrow-90deg-down arrow-90deg-left
arrow-90deg-right arrow-90deg-up arrow-bar-down arrow-bar-left
arrow-bar-right arrow-bar-up arrow-clockwise arrow-counterclockwise
arrow-down arrow-down-circle arrow-down-circle-fill arrow-down-left
arrow-down-left-circle arrow-down-left-circle-fill arrow-down-left-square arrow-down-left-square-fill
arrow-down-right arrow-down-right-circle arrow-down-right-circle-fill arrow-down-right-square
arrow-down-right-square-fill arrow-down-short arrow-down-square arrow-down-square-fill
arrow-down-up arrow-left arrow-left-circle arrow-left-circle-fill
arrow-left-right arrow-left-short arrow-left-square arrow-left-square-fill
arrow-repeat arrow-return-left arrow-return-right arrow-right
arrow-right-circle arrow-right-circle-fill arrow-right-short arrow-right-square
arrow-right-square-fill arrow-through-heart arrow-through-heart-fill arrow-up
arrow-up-circle arrow-up-circle-fill arrow-up-left arrow-up-left-circle
arrow-up-left-circle-fill arrow-up-left-square arrow-up-left-square-fill arrow-up-right
arrow-up-right-circle arrow-up-right-circle-fill arrow-up-right-square arrow-up-right-square-fill
arrow-up-short arrow-up-square arrow-up-square-fill arrows
arrows-angle-contract arrows-angle-expand arrows-collapse arrows-collapse-vertical
arrows-expand arrows-expand-vertical arrows-fullscreen arrows-move
arrows-vertical aspect-ratio aspect-ratio-fill asterisk
at award award-fill back
backpack backpack-fill backpack2 backpack2-fill
backpack3 backpack3-fill backpack4 backpack4-fill
backspace backspace-fill backspace-reverse backspace-reverse-fill
badge-3d badge-3d-fill badge-4k badge-4k-fill
badge-8k badge-8k-fill badge-ad badge-ad-fill
badge-ar badge-ar-fill badge-cc badge-cc-fill
badge-hd badge-hd-fill badge-sd badge-sd-fill
badge-tm badge-tm-fill badge-vo badge-vo-fill
badge-vr badge-vr-fill badge-wc badge-wc-fill
bag bag-check bag-check-fill bag-dash
bag-dash-fill bag-fill bag-heart bag-heart-fill
bag-plus bag-plus-fill bag-x bag-x-fill
balloon balloon-fill balloon-heart balloon-heart-fill
ban ban-fill bandaid bandaid-fill
bank bank2 bar-chart bar-chart-fill
bar-chart-line bar-chart-line-fill bar-chart-steps basket
basket-fill basket2 basket2-fill basket3
basket3-fill battery battery-charging battery-full
battery-half battery-low beaker beaker-fill
behance bell bell-fill bell-slash
bell-slash-fill bezier bezier2 bicycle
bing binoculars binoculars-fill blockquote-left
blockquote-right bluesky bluetooth body-text
book book-fill book-half bookmark
bookmark-check bookmark-check-fill bookmark-dash bookmark-dash-fill
bookmark-fill bookmark-heart bookmark-heart-fill bookmark-plus
bookmark-plus-fill bookmark-star bookmark-star-fill bookmark-x
bookmark-x-fill bookmarks bookmarks-fill bookshelf
boombox boombox-fill bootstrap bootstrap-fill
bootstrap-reboot border border-all border-bottom
border-center border-inner border-left border-middle
border-outer border-right border-style border-top
border-width bounding-box bounding-box-circles box
box-arrow-down box-arrow-down-left box-arrow-down-right box-arrow-in-down
box-arrow-in-down-left box-arrow-in-down-right box-arrow-in-left box-arrow-in-right
box-arrow-in-up box-arrow-in-up-left box-arrow-in-up-right box-arrow-left
box-arrow-right box-arrow-up box-arrow-up-left box-arrow-up-right
box-fill box-seam box-seam-fill box2
box2-fill box2-heart box2-heart-fill boxes
braces braces-asterisk bricks briefcase
briefcase-fill brightness-alt-high brightness-alt-high-fill brightness-alt-low
brightness-alt-low-fill brightness-high brightness-high-fill brightness-low
brightness-low-fill brilliance broadcast broadcast-pin
browser-chrome browser-edge browser-firefox browser-safari
brush brush-fill bucket bucket-fill
bug bug-fill building building-add
building-check building-dash building-down building-exclamation
building-fill building-fill-add building-fill-check building-fill-dash
building-fill-down building-fill-exclamation building-fill-gear building-fill-lock
building-fill-slash building-fill-up building-fill-x building-gear
building-lock building-slash building-up building-x
buildings buildings-fill bullseye bus-front
bus-front-fill c-circle c-circle-fill c-square
c-square-fill cake cake-fill cake2
cake2-fill calculator calculator-fill calendar
calendar-check calendar-check-fill calendar-date calendar-date-fill
calendar-day calendar-day-fill calendar-event calendar-event-fill
calendar-fill calendar-heart calendar-heart-fill calendar-minus
calendar-minus-fill calendar-month calendar-month-fill calendar-plus
calendar-plus-fill calendar-range calendar-range-fill calendar-week
calendar-week-fill calendar-x calendar-x-fill calendar2
calendar2-check calendar2-check-fill calendar2-date calendar2-date-fill
calendar2-day calendar2-day-fill calendar2-event calendar2-event-fill
calendar2-fill calendar2-heart calendar2-heart-fill calendar2-minus
calendar2-minus-fill calendar2-month calendar2-month-fill calendar2-plus
calendar2-plus-fill calendar2-range calendar2-range-fill calendar2-week
calendar2-week-fill calendar2-x calendar2-x-fill calendar3
calendar3-event calendar3-event-fill calendar3-fill calendar3-range
calendar3-range-fill calendar3-week calendar3-week-fill calendar4
calendar4-event calendar4-range calendar4-week camera
camera-fill camera-reels camera-reels-fill camera-video
camera-video-fill camera-video-off camera-video-off-fill camera2
capslock capslock-fill capsule capsule-pill
car-front car-front-fill card-checklist card-heading
card-image card-list card-text caret-down
caret-down-fill caret-down-square caret-down-square-fill caret-left
caret-left-fill caret-left-square caret-left-square-fill caret-right
caret-right-fill caret-right-square caret-right-square-fill caret-up
caret-up-fill caret-up-square caret-up-square-fill cart
cart-check cart-check-fill cart-dash cart-dash-fill
cart-fill cart-plus cart-plus-fill cart-x
cart-x-fill cart2 cart3 cart4
cash cash-coin cash-stack cassette
cassette-fill cast cc-circle cc-circle-fill
cc-square cc-square-fill chat chat-dots
chat-dots-fill chat-fill chat-heart chat-heart-fill
chat-left chat-left-dots chat-left-dots-fill chat-left-fill
chat-left-heart chat-left-heart-fill chat-left-quote chat-left-quote-fill
chat-left-text chat-left-text-fill chat-quote chat-quote-fill
chat-right chat-right-dots chat-right-dots-fill chat-right-fill
chat-right-heart chat-right-heart-fill chat-right-quote chat-right-quote-fill
chat-right-text chat-right-text-fill chat-square chat-square-dots
chat-square-dots-fill chat-square-fill chat-square-heart chat-square-heart-fill
chat-square-quote chat-square-quote-fill chat-square-text chat-square-text-fill
chat-text chat-text-fill check check-all
check-circle check-circle-fill check-lg check-square
check-square-fill check2 check2-all check2-circle
check2-square chevron-bar-contract chevron-bar-down chevron-bar-expand
chevron-bar-left chevron-bar-right chevron-bar-up chevron-compact-down
chevron-compact-left chevron-compact-right chevron-compact-up chevron-contract
chevron-double-down chevron-double-left chevron-double-right chevron-double-up
chevron-down chevron-expand chevron-left chevron-right
chevron-up circle circle-fill circle-half
circle-square claude clipboard clipboard-check
clipboard-check-fill clipboard-data clipboard-data-fill clipboard-fill
clipboard-heart clipboard-heart-fill clipboard-minus clipboard-minus-fill
clipboard-plus clipboard-plus-fill clipboard-pulse clipboard-x
clipboard-x-fill clipboard2 clipboard2-check clipboard2-check-fill
clipboard2-data clipboard2-data-fill clipboard2-fill clipboard2-heart
clipboard2-heart-fill clipboard2-minus clipboard2-minus-fill clipboard2-plus
clipboard2-plus-fill clipboard2-pulse clipboard2-pulse-fill clipboard2-x
clipboard2-x-fill clock clock-fill clock-history
cloud cloud-arrow-down cloud-arrow-down-fill cloud-arrow-up
cloud-arrow-up-fill cloud-check cloud-check-fill cloud-download
cloud-download-fill cloud-drizzle cloud-drizzle-fill cloud-fill
cloud-fog cloud-fog-fill cloud-fog2 cloud-fog2-fill
cloud-hail cloud-hail-fill cloud-haze cloud-haze-fill
cloud-haze2 cloud-haze2-fill cloud-lightning cloud-lightning-fill
cloud-lightning-rain cloud-lightning-rain-fill cloud-minus cloud-minus-fill
cloud-moon cloud-moon-fill cloud-plus cloud-plus-fill
cloud-rain cloud-rain-fill cloud-rain-heavy cloud-rain-heavy-fill
cloud-slash cloud-slash-fill cloud-sleet cloud-sleet-fill
cloud-snow cloud-snow-fill cloud-sun cloud-sun-fill
cloud-upload cloud-upload-fill clouds clouds-fill
cloudy cloudy-fill code code-slash
code-square coin collection collection-fill
collection-play collection-play-fill columns columns-gap
command compass compass-fill cone
cone-striped controller cookie copy
cpu cpu-fill credit-card credit-card-2-back
credit-card-2-back-fill credit-card-2-front credit-card-2-front-fill credit-card-fill
crop crosshair crosshair2 css
cup cup-fill cup-hot cup-hot-fill
cup-straw currency-bitcoin currency-dollar currency-euro
currency-exchange currency-pound currency-rupee currency-yen
cursor cursor-fill cursor-text dash
dash-circle dash-circle-dotted dash-circle-fill dash-lg
dash-square dash-square-dotted dash-square-fill database
database-add database-check database-dash database-down
database-exclamation database-fill database-fill-add database-fill-check
database-fill-dash database-fill-down database-fill-exclamation database-fill-gear
database-fill-lock database-fill-slash database-fill-up database-fill-x
database-gear database-lock database-slash database-up
database-x device-hdd device-hdd-fill device-ssd
device-ssd-fill diagram-2 diagram-2-fill diagram-3
diagram-3-fill diamond diamond-fill diamond-half
dice-1 dice-1-fill dice-2 dice-2-fill
dice-3 dice-3-fill dice-4 dice-4-fill
dice-5 dice-5-fill dice-6 dice-6-fill
disc disc-fill discord display
display-fill displayport displayport-fill distribute-horizontal
distribute-vertical door-closed door-closed-fill door-open
door-open-fill dot download dpad
dpad-fill dribbble dropbox droplet
droplet-fill droplet-half duffle duffle-fill
ear ear-fill earbuds easel
easel-fill easel2 easel2-fill easel3
easel3-fill egg egg-fill egg-fried
eject eject-fill emoji-angry emoji-angry-fill
emoji-astonished emoji-astonished-fill emoji-dizzy emoji-dizzy-fill
emoji-expressionless emoji-expressionless-fill emoji-frown emoji-frown-fill
emoji-grimace emoji-grimace-fill emoji-grin emoji-grin-fill
emoji-heart-eyes emoji-heart-eyes-fill emoji-kiss emoji-kiss-fill
emoji-laughing emoji-laughing-fill emoji-neutral emoji-neutral-fill
emoji-smile emoji-smile-fill emoji-smile-upside-down emoji-smile-upside-down-fill
emoji-sunglasses emoji-sunglasses-fill emoji-surprise emoji-surprise-fill
emoji-tear emoji-tear-fill emoji-wink emoji-wink-fill
envelope envelope-arrow-down envelope-arrow-down-fill envelope-arrow-up
envelope-arrow-up-fill envelope-at envelope-at-fill envelope-check
envelope-check-fill envelope-dash envelope-dash-fill envelope-exclamation
envelope-exclamation-fill envelope-fill envelope-heart envelope-heart-fill
envelope-open envelope-open-fill envelope-open-heart envelope-open-heart-fill
envelope-paper envelope-paper-fill envelope-paper-heart envelope-paper-heart-fill
envelope-plus envelope-plus-fill envelope-slash envelope-slash-fill
envelope-x envelope-x-fill eraser eraser-fill
escape ethernet ev-front ev-front-fill
ev-station ev-station-fill exclamation exclamation-circle
exclamation-circle-fill exclamation-diamond exclamation-diamond-fill exclamation-lg
exclamation-octagon exclamation-octagon-fill exclamation-square exclamation-square-fill
exclamation-triangle exclamation-triangle-fill exclude explicit
explicit-fill exposure eye eye-fill
eye-slash eye-slash-fill eyedropper eyeglasses
facebook fan fast-forward fast-forward-btn
fast-forward-btn-fill fast-forward-circle fast-forward-circle-fill fast-forward-fill
feather feather2 file file-arrow-down
file-arrow-down-fill file-arrow-up file-arrow-up-fill file-bar-graph
file-bar-graph-fill file-binary file-binary-fill file-break
file-break-fill file-check file-check-fill file-code
file-code-fill file-diff file-diff-fill file-earmark
file-earmark-arrow-down file-earmark-arrow-down-fill file-earmark-arrow-up file-earmark-arrow-up-fill
file-earmark-bar-graph file-earmark-bar-graph-fill file-earmark-binary file-earmark-binary-fill
file-earmark-break file-earmark-break-fill file-earmark-check file-earmark-check-fill
file-earmark-code file-earmark-code-fill file-earmark-diff file-earmark-diff-fill
file-earmark-easel file-earmark-easel-fill file-earmark-excel file-earmark-excel-fill
file-earmark-fill file-earmark-font file-earmark-font-fill file-earmark-image
file-earmark-image-fill file-earmark-lock file-earmark-lock-fill file-earmark-lock2
file-earmark-lock2-fill file-earmark-medical file-earmark-medical-fill file-earmark-minus
file-earmark-minus-fill file-earmark-music file-earmark-music-fill file-earmark-pdf
file-earmark-pdf-fill file-earmark-person file-earmark-person-fill file-earmark-play
file-earmark-play-fill file-earmark-plus file-earmark-plus-fill file-earmark-post
file-earmark-post-fill file-earmark-ppt file-earmark-ppt-fill file-earmark-richtext
file-earmark-richtext-fill file-earmark-ruled file-earmark-ruled-fill file-earmark-slides
file-earmark-slides-fill file-earmark-spreadsheet file-earmark-spreadsheet-fill file-earmark-text
file-earmark-text-fill file-earmark-word file-earmark-word-fill file-earmark-x
file-earmark-x-fill file-earmark-zip file-earmark-zip-fill file-easel
file-easel-fill file-excel file-excel-fill file-fill
file-font file-font-fill file-image file-image-fill
file-lock file-lock-fill file-lock2 file-lock2-fill
file-medical file-medical-fill file-minus file-minus-fill
file-music file-music-fill file-pdf file-pdf-fill
file-person file-person-fill file-play file-play-fill
file-plus file-plus-fill file-post file-post-fill
file-ppt file-ppt-fill file-richtext file-richtext-fill
file-ruled file-ruled-fill file-slides file-slides-fill
file-spreadsheet file-spreadsheet-fill file-text file-text-fill
file-word file-word-fill file-x file-x-fill
file-zip file-zip-fill files files-alt
filetype-aac filetype-ai filetype-bmp filetype-cs
filetype-css filetype-csv filetype-doc filetype-docx
filetype-exe filetype-gif filetype-heic filetype-html
filetype-java filetype-jpg filetype-js filetype-json
filetype-jsx filetype-key filetype-m4p filetype-md
filetype-mdx filetype-mov filetype-mp3 filetype-mp4
filetype-otf filetype-pdf filetype-php filetype-png
filetype-ppt filetype-pptx filetype-psd filetype-py
filetype-raw filetype-rb filetype-sass filetype-scss
filetype-sh filetype-sql filetype-svg filetype-tiff
filetype-tsx filetype-ttf filetype-txt filetype-wav
filetype-woff filetype-xls filetype-xlsx filetype-xml
filetype-yml film filter filter-circle
filter-circle-fill filter-left filter-right filter-square
filter-square-fill fingerprint fire flag
flag-fill flask flask-fill flask-florence
flask-florence-fill floppy floppy-fill floppy2
floppy2-fill flower1 flower2 flower3
folder folder-check folder-fill folder-minus
folder-plus folder-symlink folder-symlink-fill folder-x
folder2 folder2-open fonts fork-knife
forward forward-fill front fuel-pump
fuel-pump-diesel fuel-pump-diesel-fill fuel-pump-fill fullscreen
fullscreen-exit funnel funnel-fill gear
gear-fill gear-wide gear-wide-connected gem
gender-ambiguous gender-female gender-male gender-neuter
gender-trans geo geo-alt geo-alt-fill
geo-fill gift gift-fill git
github gitlab globe globe-americas
globe-americas-fill globe-asia-australia globe-asia-australia-fill globe-central-south-asia
globe-central-south-asia-fill globe-europe-africa globe-europe-africa-fill globe2
google google-play gpu-card graph-down
graph-down-arrow graph-up graph-up-arrow grid
grid-1x2 grid-1x2-fill grid-3x2 grid-3x2-gap
grid-3x2-gap-fill grid-3x3 grid-3x3-gap grid-3x3-gap-fill
grid-fill grip-horizontal grip-vertical h-circle
h-circle-fill h-square h-square-fill hammer
hand-index hand-index-fill hand-index-thumb hand-index-thumb-fill
hand-thumbs-down hand-thumbs-down-fill hand-thumbs-up hand-thumbs-up-fill
handbag handbag-fill hash hdd
hdd-fill hdd-network hdd-network-fill hdd-rack
hdd-rack-fill hdd-stack hdd-stack-fill hdmi
hdmi-fill headphones headset headset-vr
heart heart-arrow heart-fill heart-half
heart-pulse heart-pulse-fill heartbreak heartbreak-fill
hearts heptagon heptagon-fill heptagon-half
hexagon hexagon-fill hexagon-half highlighter
highlights hospital hospital-fill hourglass
hourglass-bottom hourglass-split hourglass-top house
house-add house-add-fill house-check house-check-fill
house-dash house-dash-fill house-door house-door-fill
house-down house-down-fill house-exclamation house-exclamation-fill
house-fill house-gear house-gear-fill house-heart
house-heart-fill house-lock house-lock-fill house-slash
house-slash-fill house-up house-up-fill house-x
house-x-fill houses houses-fill hr
hurricane hypnotize image image-alt
image-fill images inbox inbox-fill
inboxes inboxes-fill incognito indent
infinity info info-circle info-circle-fill
info-lg info-square info-square-fill input-cursor
input-cursor-text instagram intersect javascript
journal journal-album journal-arrow-down journal-arrow-up
journal-bookmark journal-bookmark-fill journal-check journal-code
journal-medical journal-minus journal-plus journal-richtext
journal-text journal-x journals joystick
justify justify-left justify-right kanban
kanban-fill key key-fill keyboard
keyboard-fill ladder lamp lamp-fill
laptop laptop-fill layer-backward layer-forward
layers layers-fill layers-half layout-sidebar
layout-sidebar-inset layout-sidebar-inset-reverse layout-sidebar-reverse layout-split
layout-text-sidebar layout-text-sidebar-reverse layout-text-window layout-text-window-reverse
layout-three-columns layout-wtf leaf leaf-fill
life-preserver lightbulb lightbulb-fill lightbulb-off
lightbulb-off-fill lightning lightning-charge lightning-charge-fill
lightning-fill line link link-45deg
linkedin list list-check list-columns
list-columns-reverse list-nested list-ol list-stars
list-task list-ul lock lock-fill
luggage luggage-fill lungs lungs-fill
magic magnet magnet-fill mailbox
mailbox-flag mailbox2 mailbox2-flag map
map-fill markdown markdown-fill marker-tip
mask mastodon measuring-cup measuring-cup-fill
medium megaphone megaphone-fill memory
menu-app menu-app-fill menu-button menu-button-fill
menu-button-wide menu-button-wide-fill menu-down menu-up
messenger meta mic mic-fill
mic-mute mic-mute-fill microsoft microsoft-teams
minecart minecart-loaded modem modem-fill
moisture moon moon-fill moon-stars
moon-stars-fill mortarboard mortarboard-fill motherboard
motherboard-fill mouse mouse-fill mouse2
mouse2-fill mouse3 mouse3-fill music-note
music-note-beamed music-note-list music-player music-player-fill
newspaper nintendo-switch node-minus node-minus-fill
node-plus node-plus-fill noise-reduction nut
nut-fill nvidia nvme nvme-fill
octagon octagon-fill octagon-half openai
opencollective optical-audio optical-audio-fill option
outlet p-circle p-circle-fill p-square
p-square-fill paint-bucket palette palette-fill
palette2 paperclip paragraph pass
pass-fill passport passport-fill patch-check
patch-check-fill patch-exclamation patch-exclamation-fill patch-minus
patch-minus-fill patch-plus patch-plus-fill patch-question
patch-question-fill pause pause-btn pause-btn-fill
pause-circle pause-circle-fill pause-fill paypal
pc pc-display pc-display-horizontal pc-horizontal
pci-card pci-card-network pci-card-sound peace
peace-fill pen pen-fill pencil
pencil-fill pencil-square pentagon pentagon-fill
pentagon-half people people-fill percent
perplexity person person-add person-arms-up
person-badge person-badge-fill person-bounding-box person-check
person-check-fill person-circle person-dash person-dash-fill
person-down person-exclamation person-fill person-fill-add
person-fill-check person-fill-dash person-fill-down person-fill-exclamation
person-fill-gear person-fill-lock person-fill-slash person-fill-up
person-fill-x person-gear person-heart person-hearts
person-lines-fill person-lock person-plus person-plus-fill
person-raised-hand person-rolodex person-slash person-square
person-standing person-standing-dress person-up person-vcard
person-vcard-fill person-video person-video2 person-video3
person-walking person-wheelchair person-workspace person-x
person-x-fill phone phone-fill phone-flip
phone-landscape phone-landscape-fill phone-vibrate phone-vibrate-fill
pie-chart pie-chart-fill piggy-bank piggy-bank-fill
pin pin-angle pin-angle-fill pin-fill
pin-map pin-map-fill pinterest pip
pip-fill play play-btn play-btn-fill
play-circle play-circle-fill play-fill playstation
plug plug-fill plugin plus
plus-circle plus-circle-dotted plus-circle-fill plus-lg
plus-slash-minus plus-square plus-square-dotted plus-square-fill
postage postage-fill postage-heart postage-heart-fill
postcard postcard-fill postcard-heart postcard-heart-fill
power prescription prescription2 printer
printer-fill projector projector-fill puzzle
puzzle-fill qr-code qr-code-scan question
question-circle question-circle-fill question-diamond question-diamond-fill
question-lg question-octagon question-octagon-fill question-square
question-square-fill quora quote r-circle
r-circle-fill r-square r-square-fill radar
radioactive rainbow receipt receipt-cutoff
reception-0 reception-1 reception-2 reception-3
reception-4 record record-btn record-btn-fill
record-circle record-circle-fill record-fill record2
record2-fill recycle reddit regex
repeat repeat-1 reply reply-all
reply-all-fill reply-fill rewind rewind-btn
rewind-btn-fill rewind-circle rewind-circle-fill rewind-fill
robot rocket rocket-fill rocket-takeoff
rocket-takeoff-fill router router-fill rss
rss-fill rulers safe safe-fill
safe2 safe2-fill save save-fill
save2 save2-fill scissors scooter
screwdriver sd-card sd-card-fill search
search-heart search-heart-fill segmented-nav send
send-arrow-down send-arrow-down-fill send-arrow-up send-arrow-up-fill
send-check send-check-fill send-dash send-dash-fill
send-exclamation send-exclamation-fill send-fill send-plus
send-plus-fill send-slash send-slash-fill send-x
send-x-fill server shadows share
share-fill shield shield-check shield-exclamation
shield-fill shield-fill-check shield-fill-exclamation shield-fill-minus
shield-fill-plus shield-fill-x shield-lock shield-lock-fill
shield-minus shield-plus shield-shaded shield-slash
shield-slash-fill shield-x shift shift-fill
shop shop-window shuffle sign-dead-end
sign-dead-end-fill sign-do-not-enter sign-do-not-enter-fill sign-intersection
sign-intersection-fill sign-intersection-side sign-intersection-side-fill sign-intersection-t
sign-intersection-t-fill sign-intersection-y sign-intersection-y-fill sign-merge-left
sign-merge-left-fill sign-merge-right sign-merge-right-fill sign-no-left-turn
sign-no-left-turn-fill sign-no-parking sign-no-parking-fill sign-no-right-turn
sign-no-right-turn-fill sign-railroad sign-railroad-fill sign-stop
sign-stop-fill sign-stop-lights sign-stop-lights-fill sign-turn-left
sign-turn-left-fill sign-turn-right sign-turn-right-fill sign-turn-slight-left
sign-turn-slight-left-fill sign-turn-slight-right sign-turn-slight-right-fill sign-yield
sign-yield-fill signal signpost signpost-2
signpost-2-fill signpost-fill signpost-split signpost-split-fill
sim sim-fill sim-slash sim-slash-fill
sina-weibo skip-backward skip-backward-btn skip-backward-btn-fill
skip-backward-circle skip-backward-circle-fill skip-backward-fill skip-end
skip-end-btn skip-end-btn-fill skip-end-circle skip-end-circle-fill
skip-end-fill skip-forward skip-forward-btn skip-forward-btn-fill
skip-forward-circle skip-forward-circle-fill skip-forward-fill skip-start
skip-start-btn skip-start-btn-fill skip-start-circle skip-start-circle-fill
skip-start-fill skype slack slash
slash-circle slash-circle-fill slash-lg slash-square
slash-square-fill sliders sliders2 sliders2-vertical
smartwatch snapchat snow snow2
snow3 sort-alpha-down sort-alpha-down-alt sort-alpha-up
sort-alpha-up-alt sort-down sort-down-alt sort-numeric-down
sort-numeric-down-alt sort-numeric-up sort-numeric-up-alt sort-up
sort-up-alt soundwave sourceforge speaker
speaker-fill speedometer speedometer2 spellcheck
spotify square square-fill square-half
stack stack-overflow star star-fill
star-half stars steam stickies
stickies-fill sticky sticky-fill stop
stop-btn stop-btn-fill stop-circle stop-circle-fill
stop-fill stoplights stoplights-fill stopwatch
stopwatch-fill strava stripe subscript
substack subtract suit-club suit-club-fill
suit-diamond suit-diamond-fill suit-heart suit-heart-fill
suit-spade suit-spade-fill suitcase suitcase-fill
suitcase-lg suitcase-lg-fill suitcase2 suitcase2-fill
sun sun-fill sunglasses sunrise
sunrise-fill sunset sunset-fill superscript
symmetry-horizontal symmetry-vertical table tablet
tablet-fill tablet-landscape tablet-landscape-fill tag
tag-fill tags tags-fill taxi-front
taxi-front-fill telegram telephone telephone-fill
telephone-forward telephone-forward-fill telephone-inbound telephone-inbound-fill
telephone-minus telephone-minus-fill telephone-outbound telephone-outbound-fill
telephone-plus telephone-plus-fill telephone-x telephone-x-fill
tencent-qq terminal terminal-dash terminal-fill
terminal-plus terminal-split terminal-x text-center
text-indent-left text-indent-right text-left text-paragraph
text-right text-wrap textarea textarea-resize
textarea-t thermometer thermometer-half thermometer-high
thermometer-low thermometer-snow thermometer-sun threads
threads-fill three-dots three-dots-vertical thunderbolt
thunderbolt-fill ticket ticket-detailed ticket-detailed-fill
ticket-fill ticket-perforated ticket-perforated-fill tiktok
toggle-off toggle-on toggle2-off toggle2-on
toggles toggles2 tools tornado
train-freight-front train-freight-front-fill train-front train-front-fill
train-lightrail-front train-lightrail-front-fill translate transparency
trash trash-fill trash2 trash2-fill
trash3 trash3-fill tree tree-fill
trello triangle triangle-fill triangle-half
trophy trophy-fill tropical-storm truck
truck-flatbed truck-front truck-front-fill tsunami
tux tv tv-fill twitch
twitter twitter-x type type-bold
type-h1 type-h2 type-h3 type-h4
type-h5 type-h6 type-italic type-strikethrough
type-underline typescript ubuntu ui-checks
ui-checks-grid ui-radios ui-radios-grid umbrella
umbrella-fill unindent union unity
universal-access universal-access-circle unlock unlock-fill
unlock2 unlock2-fill upc upc-scan
upload usb usb-c usb-c-fill
usb-drive usb-drive-fill usb-fill usb-micro
usb-micro-fill usb-mini usb-mini-fill usb-plug
usb-plug-fill usb-symbol valentine valentine2
vector-pen view-list view-stacked vignette
vimeo vinyl vinyl-fill virus
virus2 voicemail volume-down volume-down-fill
volume-mute volume-mute-fill volume-off volume-off-fill
volume-up volume-up-fill vr wallet
wallet-fill wallet2 watch water
webcam webcam-fill wechat whatsapp
wifi wifi-1 wifi-2 wifi-off
wikipedia wind window window-dash
window-desktop window-dock window-fullscreen window-plus
window-sidebar window-split window-stack window-x
windows wordpress wrench wrench-adjustable
wrench-adjustable-circle wrench-adjustable-circle-fill x x-circle
x-circle-fill x-diamond x-diamond-fill x-lg
x-octagon x-octagon-fill x-square x-square-fill
xbox yelp yin-yang youtube
zoom-in zoom-out

§ 13Where to go next