Component lab.

Design system ↗

Real Rust components. Compare their native pixels, then follow the recipe and tokens.

9 stories480 native capturesRun the native lab ↗
Controls

Buttons

Shared action, choice and disabled recipes. Tab and pointer feedback come from the engine.

Native renderer capture

800 × 512 logical pixels

Buttons, default; native renderer capture

Choose a state to compare native pixels. The image itself does not accept desktop input.

Recipe, tokens and source

Rust recipe

theme.button_enabled("Apply changes", Message::Action("Apply"), lab.state != "disabled")
Theme::button_enabled ↗

Design tokens

  • component.button.radius
  • component.button.padding_inline
  • component.button.padding_block
  • font.control
  • opacity.muted

Capture provenance

Generated by the native Rust exporter.

Changing palette or state selects another Rust-rendered image. Density changes captured pixel detail; zoom only changes its viewing size. These captures do not establish compositor input, animation smoothness or performance.

IN CONTEXT / PRODUCTION REGRESSION REFERENCES

The pieces become a shell.

These existing visual-test baselines show production compositions built with the framework. They are separate from the lab stories and do not represent interactive lab or native system-service coverage.

LauncherRegression reference · 2×Launcher production visual-test fixture

Last selected application and a focused search field.

AudioRegression reference · 2×Audio production visual-test fixture

Output devices, volume and menu navigation.

BluetoothRegression reference · 2×Bluetooth production visual-test fixture

Device cards and application-owned menu composition.

PowerRegression reference · 2×Power production visual-test fixture

Brightness, profiles and session controls.

TrayRegression reference · 2×Tray production visual-test fixture

Application-provided menu content in the native shell.

How production visual checks work ↗
DEVELOP / THE SAME RUST STORIES

Inspect it here.
Feel it in Wayland.

The native lab runs as an independent layer-shell client. Its controls change local fixture state; it does not replace your desktop or call the shell’s audio, network or power services.

In a Wayland session with layer-shell and Vulkan
cargo run --manifest-path lucent/Cargo.toml --locked -p lucent-lab

Regenerate the browser captures through the same native renderer, then serve the Astro site. See the component lab guide for the export command, story structure and validation boundaries.