Home/Foundations/Iconography

Iconography

Hand-rolled Lucide-style strokes. 1.6 px stroke, 24-unit grid, currentColor only. We never use coloured icons — colour comes from the surrounding tile.

91 icons 1.6 px stroke currentColor

Usage

Drop an icon anywhere a data-icon hook is present. The helper script renders SVG inline, inheriting color from its parent.

Buttons with leading icons.btn + <span data-icon="…">

Sizes

Six canonical sizes. Smaller is better — icons exist to label, not to draw attention.

12 px
14 px · inline
16 px · default
18 px
22 px
28 px · feature

Color

Icons inherit currentColor. Colour comes from the tile or the parent text; never from the SVG itself.

All icons

91 icons grouped by purpose. Click any name to copy.

Brand

corelith
asterisk
sparkles

Navigation & chrome

menu
sidebar
back
forward
search
more
morev
arrow
chright
chleft
chevron
chup
home
external
refresh

Actions

plus
minus
x
check
edit
download
upload
print
filter
sort
add

Status & info

info
bell
star
heart
flag
target
shield
eye
eyeoff
lock

Content

chat
code
folder
folderx
list
grid
layers
book
chart
pie
calendar
clock
pin
inbox
tree
branch
terminal

Commerce

receipt
card
coin
wallet
bag
cart
qr
barcode
badge_
tag

Domain

gem
dashboard
building
car
camera
warehouse
recycle
truck
scale
gauge

Devices

phone
tablet
desktop
pc
chrome
wifi
battery
signal
mic
play
pause
zap
plug
extension
customize

Modes

cowork
routine
box
user

Do & don't

Do

Pair an icon with a label whenever possible. Icon-only buttons need an aria-label.

Don't

Use emoji in product UI. They render differently per OS and break the visual rhythm.

Do

Keep stroke width consistent at 1.6 px. Don't fill icons — the system is line-art only.

Don't

Use colour inside an SVG path. Colour is set by the parent.

Code

<!-- Default 16 px -->
<span data-icon="settings"></span>

<!-- Larger size -->
<span data-icon="chart" data-icon-size="22"></span>

<!-- Set color via parent -->
<div style="color: var(--brand)">
  <span data-icon="plus"></span>
</div>