#ui-component #ui #egui #material-design #egui-ui

armas

A theme-aware component library for egui, inspired by shadcn/ui

4 releases

0.2.0 Feb 23, 2026
0.1.2 Jan 27, 2026
0.1.1 Jan 27, 2026
0.1.0 Jan 27, 2026

#1476 in GUI


Used in armas-animated

MIT/Apache

390KB
6K SLoC

Armas Logo

Armas

Crates.io Docs.rs License: MIT CI Deploy

Live Demo: https://pohsuanlai.github.io/Armas/

A theme-aware component library for egui, inspired by shadcn/ui.

Armas provides styled, ready-to-use components so you can build polished egui interfaces without manually configuring drawing commands and style APIs.

Usage

use armas::prelude::*;

// Initialize the theme
ctx.set_armas_theme(Theme::dark());

// Use components in your update loop
Button::new("Deploy Project")
    .variant(ButtonVariant::Default)
    .show(ui);

Running the Showcase

# Native
cargo run -p armas-web

# Web (WASM) — requires trunk (cargo install trunk)
cd crates/armas-web && trunk serve

Crates

Crate Description
armas Umbrella crate with feature-gated re-exports
armas-basic Core components and theme system
armas-audio Audio/DAW-specific components
armas-icon SVG icon system

Acknowledgements

Visual design and API patterns inspired by:

License

Licensed under the MIT license.


lib.rs:

Armas

A theme-aware component library for egui, inspired by shadcn/ui.

This is the umbrella crate that re-exports the Armas sub-crates with feature gates.

Features

  • basic (default) — Core UI components via armas_basic
  • icon (default) — SVG icon system via armas_icon
  • audio — Audio/DAW components via armas_audio

Quick Start

use armas::prelude::*;

// Set the theme once at startup
// ctx.set_armas_theme(Theme::dark());

// Then use components in your UI code
// Button::new("Click me").variant(ButtonVariant::Default).show(ui);

Dependencies

~0–1.1MB
~20K SLoC