Skip to content
Skip design navigation
Etesie Alpha
Loading account
Icons · Learn

Icons

Material defines icon behavior and the Symbols axes, but it does not publish a system icon-token family. Etesie's set-agnostic layer keeps component recipes independent from the concrete icon library.

Current binding

Lucide, honestly

Lucide is bundled, tree-shakeable, and stroke-based. It can vary stroke width, but it has no Symbols FILL or grade axis. Material Symbols remains a documented alternative output binding until a real variable-font delivery pipeline makes it selectable. The full variable font is roughly 7.9 MB, so production delivery requires subsetting rather than shipping the whole file.

The four Material Symbols axes

AxisSymbolsLucide binding
FILLOutline (0) or filled (1)No variable fill axis
wghtStroke weight, 100–700Mapped to stroke width
GRADFine optical weight adjustmentNo grade axis
opszOptical size for the rendered scaleOne vector drawing scales directly

Surviving icon tokens

et— Etesie extension

--et-icon-stroke: 2 feeds component recipes. --et-icon-stroke-emphasized: 2.25 is derived for selected toggle icon buttons and deliberate emphasis, and --et-icon-size-xs: 1rem is consumed by compact component parts. Unused size, optical-stroke, target, and Lucide-grade aliases were removed.

Density stays at level 0

Material density changes eligible component dimensions and padding, not icon or text size; Symbols opsz follows rendered size. Component density changes the container around an icon, not the icon itself.

Customize Lucide stroke →