Expand description
§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 viaarmas_basicicon(default) — SVG icon system viaarmas_iconaudio— Audio/DAW components viaarmas_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);Re-exports§
pub use armas_icon;
Modules§
- animation
- Animation utilities and easing functions Animation utilities for smooth, physics-based motion.
- color
- Color manipulation utilities Color utilities for advanced effects
- components
- UI components UI components
- ext
- Extension traits for egui types Extension traits for egui types
- fonts
- Font utilities Font utilities for loading common fonts with multiple weights
- icon
- Icon rendering Icon system for Armas
- layout
- Layout components Layout helpers
- prelude
- Prelude module - commonly used types and traits
- theme
- Theme system ARMAS Theme System (shadcn/ui style)
Structs§
- Accordion
- Accordion with collapsible sections
- Accordion
Response - Response from showing an accordion
- Alert
- Alert component for inline messages
- Alert
Response - Response from an alert
- Animation
- A generic animation that interpolates between two values over time
- Animation
Sequence - Animation sequence that runs animations one after another
- Aspect
Ratio - Maintain aspect ratio wrapper
- Avatar
- Avatar component for displaying user images or initials
- Badge
- Small status indicator badge styled like shadcn/ui
- Badge
Response - Response from a badge
- Bento
Grid - Bento grid layout component
- Breadcrumb
- Breadcrumb navigation component
- Breadcrumb
Response - Response from breadcrumbs
- Button
- Button component styled like shadcn/ui
- Button
Group - Button Group — groups buttons with connected borders.
- Button
Group Response - Response from a button group.
- Calendar
- A standalone calendar for date selection.
- Calendar
Response - Response from a calendar.
- Card
- Card component styled like shadcn/ui
- Card
Response - Response from showing a card
- Carousel
- Carousel — a scrollable content strip with snap-to-item behavior.
- Carousel
Response - Response from a carousel.
- Checkbox
- A checkbox component (shadcn/ui Checkbox)
- Checkbox
Response - Response from checkbox interaction
- Circular
Progress Bar - Circular progress indicator
- Color
Stop - Color stop for gradients (position 0.0-1.0, color) A color stop in a gradient, defining a color at a specific position
- Command
- Command palette component
- Command
Response - Response from command
- Content
Context - Context passed to custom content closures.
- Context
Menu - Context menu triggered by right-click on a region.
- Context
Menu Response - Context menu response
- Date
- A date value (year, month, day)
- Date
Picker DatePickercomponent styled like shadcn/ui- Date
Picker Response - Response from a date picker
- Dialog
- Dialog component styled like shadcn/ui Dialog
- Dialog
Response - Response from a dialog
- Drawer
- Drawer component (vaul-style bottom sheet)
- Drawer
Response - Response from showing a drawer
- Dropdown
Menu - Dropdown menu component (shadcn/ui Dropdown Menu)
- Dropdown
Menu Response - Response from showing a dropdown menu
- Font
Family Builder - Builder for composing multiple font families
- Font
Weight - Font weight variants
- Gradient
- Gradient builder for creating various gradient types
- Hover
Card - Hover Card — appears on hover over a trigger element.
- Hover
Card Response - Response from a hover card.
- Icon
Button - Icon Button component
- Input
- Text input field styled like shadcn/ui
- Input
Group - Input group — a text input with leading/trailing addons.
- Input
Group Response - Response from an input group.
- Kbd
- Keyboard shortcut display component
- Looping
Animation - Animation with loop support
- Menu
Builder - Builder for constructing menu contents
- Menubar
- Menubar — a horizontal menu bar composing
DropdownMenucomponents. - Menubar
Response - Response from a menubar.
- Neon
Palette - Neon color palette presets for aceternity-style effects
- Notification
Badge - Notification badge (typically shows a count)
- Number
Field - Number field with +/- stepper buttons
- Number
Field Response - Response from the number field
- Pagination
- Pagination component for navigating through pages
- Pagination
Response - Response from pagination
- Popover
- Popover component for floating panels anchored to elements
- Popover
Response - Response from showing a popover
- Progress
- Progress bar styled like shadcn/ui
- Radio
- Individual radio button
- Radio
Group - Radio group for single selection from multiple options
- Radio
Group Response - Response from radio group
- Radio
Response - Response from radio button interaction
- Range
Slider - Range slider with two thumbs for min/max selection
- Range
Slider Response - Response from a range slider
- Resizable
- Resizable panel group — panels separated by draggable handles.
- Resizable
Panel - Configuration for a single panel in a resizable group.
- Resizable
Response - Response from a resizable panel group.
- Search
Input - Search input with built-in search icon
- Select
- Searchable dropdown select component
- Select
Option - A selectable option in a dropdown
- Select
Response - Response from showing a Select component
- Separator
- Simple separator/divider component
- Sheet
- Sheet component
- Sheet
Response - Response from showing a sheet
- Sidebar
- Animated sidebar component styled to match shadcn/ui
- Sidebar
Response - Response from sidebar interaction
- Sidebar
State - Sidebar state that can be stored externally for controlled mode
- Skeleton
- Skeleton loader for placeholder content
- Slider
- Slider component
- Slider
Response - Response from a slider
- Spinner
- Rotating spinner with multiple bars
- Spring
Animation - Spring-based animation for smooth, physics-based motion
- Staggered
Animation - Staggered animation system for multiple items
- Switch
- Animated switch component (shadcn/ui Switch)
- Switch
Response - Response from switch interaction
- Table
Cells - Builder for table cells
- Table
Rows - Builder for table rows
- Tabs
- Tabs component for switching between content sections
- Tabs
Response - Response from the tabs component
- Textarea
- Multi-line text input field styled like shadcn/ui
- Theme
- Complete theme with colors and spacing
- ToastId
- Opaque handle returned when creating a toast, used to update or dismiss it.
- Toast
Manager - Toast notification manager
- Toggle
- A pressable button with on/off state (shadcn/ui Toggle)
- Toggle
Group - A group of pressable toggle buttons for selection (shadcn/ui Toggle Group)
- Toggle
Group Response - Response from toggle group interaction
- Toggle
Response - Response from toggle interaction
- Tooltip
- Tooltip component that shows contextual help on hover
- Tree
Item - A tree view item (file or folder)
- Tree
View - Hierarchical tree view component
- Tree
View Response - Response from the tree view
Enums§
- Alert
Variant - Alert variant
- Animation
State - Animation state
- Avatar
Shape - Avatar shape
- Avatar
Size - Avatar size presets
- Badge
Variant - Badge variant styles (shadcn/ui)
- Blend
Mode - Blend modes for color composition
- Button
Group Orientation - Button group orientation.
- Button
Size - Button size following shadcn/ui
- Button
Variant - Button style variant following shadcn/ui
- Card
Variant - Card variant (shadcn/ui style)
- Carousel
Orientation - Carousel orientation.
- Collapsible
Mode - Collapsible mode for the sidebar
- Content
Mode - How content should be sized within the aspect ratio container
- Dialog
Size - Dialog size presets (max-width based like shadcn)
- Drawer
Snap Point - Drawer snap points for partial open states
- Easing
Function - Easing function type
- Grid
Span - Grid item span configuration
- Input
State - Input validation state
- Input
Variant - Input field variant (for backwards compatibility)
- Loop
Mode - Loop mode for repeating animations
- Popover
Color - Popover color themes
- Popover
Position - Popover position relative to anchor
- Popover
Style - Popover visual style
- Radio
Size - Radio button size
- Resizable
Direction - Direction of the resizable panel group.
- Separator
Orientation - Separator orientation
- Sheet
Side - Side from which the sheet slides in
- Sheet
Size - Sheet size presets
- Sidebar
Variant - Sidebar visual variant
- Switch
Size - Switch size
- Toast
Position - Position for toast notifications
- Toast
Variant - Toast notification variant
- Toggle
Group Size - Toggle group item size
- Toggle
Group Type - Toggle group selection type
- Toggle
Group Variant - Toggle group visual variant
- Toggle
Size - Toggle size
- Toggle
Variant - Toggle visual variant
- Tooltip
Position - Tooltip position relative to the target
Traits§
- Armas
Context Ext - Extension trait for storing Armas theme in egui Context
- Painter
Ext - Extension trait for egui’s Painter with advanced effects
Functions§
- alert
- Simple helper to show an alert with just a message
- alert_
destructive - Show a destructive alert
- blend
- Blend two colors using different modes
- cell
- Add a text cell to the current row
- cell_ui
- Add a custom cell with custom content
- dialog_
footer - Helper to render a dialog footer (right-aligned buttons)
- header_
row - Add a header row to the table
- lerp_
color - Interpolate between two colors
- neon_
circle - Draw a glowing circle
- neon_
line - Draw a neon line with glow effect
- row
- Add a data row to the table
- saturate
- Saturate/desaturate a color
- table
- A table component following shadcn/ui design
- tooltip
- Helper function to show a simple tooltip on any UI element
- tooltip_
with - Show tooltip with custom configuration
- with_
alpha - Add alpha to a color