This page ships a Markdown twin for AI tools.

ComponentsIcon

displaytexulinot agent-emittableapp

Icon

icon

A glyph by name or Lucide component; allowing icon allows every icon set.

One token contract, every theme. Display components take color, radius, density and state styling from the --tx-* token contract — the same variables the theme strip below overrides — so a theme swap re-colors them without per-component fixes.

Live examples

Search glyph

Search glyph

Loading demo…

Muted chevron

Muted chevron

In your theme

This page renders in the site theme, enterprise-neutral. Every one of the 210 library themes re-colors every component through the --tx-* contract. The three below carry real token values from the library, rendered at build — no island, no extra requests.

  • Violet

    light mode · AA contrast

    • background
    • surface
    • primary
    • accent
    • border
    Open Theme Studio
  • Monochrome

    light mode · AA contrast

    • background
    • surface
    • primary
    • accent
    • border
    Open Theme Studio
  • Accessible Dark Contrast

    dark mode · AAA contrast

    • background
    • surface
    • primary
    • accent
    • border
    Open Theme Studio

Props

Public props for Icon
NameKindRequiredDefaultDescription
iconstringno—Built-in name, registered name, or a Lucide component
sizeenum (xs, sm, md, lg)no"md"—
toneenum (default, primary, success, warning, destructive, info, neutral)no"default"—
labelstringno—Accessible name; omit for decorative
classstringno——

Keyboard

Keyboard behavior for Icon
KeyAction
aWith a label it is an image; without a label it is decorative (aria-hidden).

Accessibility

  • With a label it is an image; without a label it is decorative (aria-hidden).
  • Unknown names render nothing.

Evidence for icon

Latest committed gates for icon (as of 2026-10-23). Static snapshot — not live CI.

Behavior

n/ano behavior scenario

No dedicated behavior scenario for this catalog id (a styled or display surface, covered by its unit and axe tests).

Size (gzip)

texuli/icon · budget 12.0 KiB

Budget from texuli.budgets.json; re-measure with `pnpm size --filter <entry>`.

Axe

documented

  • tests/e2e/site-component-pages.spec.ts
  • docs/quality (a11y-*)

Site component pages axe gate; package-level a11y docs under docs/quality when present.

Browsers

  • chromium
  • webkit
  • mobile

Playwright projects: Desktop Chrome, Desktop Safari, Pixel 7. Firefox is a known gap on this host.

When to use

Use when

  • A decorative or labelled glyph next to a control or a list row

Don’t use when

Prefer another component

  • A pressable control (use icon-button)
  • Navigation chrome (use nav-icon)