Data display

Icons

Use crisp vector icons that inherit the surrounding theme.

Open ↗
Icons interaction recorded with the Blinc headless renderer
Hybrid · dark · native recording · 2×

Usage and properties

Use crisp vector icons that inherit the surrounding theme. Apply CSS after the component layer to restyle the documented parts.

Use the installation guide to add blinc_cn and its component stylesheet. Create the fixture bindings once, and return the demo from your UI builder. Values marked Bound accept Signal/Computed sources where the API supports them; structural options configure the component at construction.

PropertyTypeUpdate modelThis example
pathicon pathConstructionLucide icons from blinc_icons
sizeIconSizeConstructionLarge

Keyboard and interaction

Informational content; no activation or Tab stop is required.

Customizing it

Add application CSS after the default component layer. These selectors are the restyling surface for this component:

  • .cn-icon
  • .demo-icons

Theme and component variables: --primary, --text-primary, --text-secondary, --surface, --border, --radius-default, --duration-fast, --ease-state.

Built-in themes

The Live theme control installs Blinc's own theme bundles, including their colours, focus rings, corner shapes and motion tokens.

pub fn theme_bundle_for(name: &str) -> blinc_theme::ThemeBundle {
    match name {
        "restrained" => blinc_theme::RestrainedTheme::bundle(),
        "expressive" => blinc_theme::ExpressiveTheme::bundle(),
        _ => blinc_theme::HybridTheme::bundle(),
    }
    .with_css(blinc_cn::cn_styles::CN_STYLES)
}

Download the default widget and component stylesheets. Sample assets and licenses are available in the asset guide.

Documentation

From the canonical component guide.

Enable the cn and icons features on your blinc dependency for these examples.

cn::icon renders Lucide paths from blinc_icons and inherits its surrounding text colour.

use blinc::cn as cn;
use blinc::icons::icons;
use blinc::layout::prelude::*;

let icons = div().class("toolbar-icons")
    .child(cn::icon(icons::SEARCH).size(cn::IconSize::Large))
    .child(cn::icon(icons::SETTINGS).size(cn::IconSize::Large));

Size is a construction option; use size_px for a custom dimension. Use a button with a label or tooltip when the icon performs an action. Decorative icons are not independent keyboard stops.

Style .cn-icon or an application class on its parent. Keep colours in CSS so icons follow theme and scheme changes:

.toolbar-icons { color: var(--primary); gap: var(--space-4); }

Platforms and version

The component API is available in Blinc 0.6.0. The Live example runs in a dedicated worker and requires a compatible GPU surface. Preview and Code remain available when Live cannot start. The canvas has a descriptive label; a full screen-reader DOM mirror is not provided. The gallery integration is based on revision e2e55c24e078.

Recordings and live demos use the default Hybrid theme with bundled Noto Sans. The recording uses a 560 × 320 logical viewport at twice that resolution. Live follows its container and actual display density. Source base revision · Exact build source · Artifact versions and checksums · Font license.