iced-plus
An opinionated companion toolkit for building ambitious desktop apps with iced. The goal is to make iced feel like a complete framework by pairing it with batteries that cover real-world desktop needs—cohesive styling primitives, scalable layouts, pre-built widgets, and consistent system integration.
Features
- Design Tokens: Tailwind/Chakra-inspired design tokens with preset light/dark themes
- Theme Bridge: Adapters that wire tokens into iced
Theme+ widgetStyleSheets - Layouts: Shells, split panes, stacks (HStack/VStack), overlay managers, and responsive rules
- Components: 30+ pre-built widgets including buttons, inputs, cards, modals, tabs, and more
- Platform Integration: Unified APIs for system tray, notifications, hotkeys, and window management
Installation
Add to your Cargo.toml:
[]
= "0.1"
Or pick individual crates:
[]
= "0.1" # Design tokens only
= "0.1" # Theme bridge
= "0.1" # Layout primitives
= "0.1" # UI components
= "0.1" # Desktop platform APIs
Quick Start
use *;
// Use design tokens for consistent styling
let theme = light;
// Build layouts with stacks
let content = new
.push
.push
.spacing;
Feature Status
| Feature | Status | Notes |
|---|---|---|
| Design Tokens | Stable | Full token system with light/dark presets |
| Theme Bridge | Stable | Adapts tokens to iced styling |
| Layouts | Stable | HStack, VStack, AppShell, Split, Responsive |
| Core Components | Stable | Button, Text, Input, Card, Badge, etc. |
| Audio Controls UI | Stable | UI controls only |
| Video Controls UI | Stable | Audio controls + fullscreen button |
| Audio/Video Player | Not Implemented | UI only - requires manual backend integration (see rodio example) |
| Audio/Video Recorder | Experimental | UI ready, needs platform mic/camera integration |
| WebView | Experimental | System browser works, embedded needs wry feature |
| System Tray | Stable | Cross-platform tray icon and menu |
| Notifications | Stable | Native OS notifications |
| Hotkeys | Stable | Global hotkey registration |
Note: Audio and video playback is not built-in. The library provides UI controls and state management, but actual media playback must be integrated manually using libraries like rodio for audio. See the kitchen sink example for reference implementations.
Crates
| Crate | Description |
|---|---|
iced_plus |
Umbrella crate that re-exports all sub-crates |
iced_plus_tokens |
Design tokens: colors, typography, spacing, elevation |
iced_plus_theme |
Theme bridge adapting tokens to iced styling |
iced_plus_layouts |
Layout primitives: stacks, shells, split panes |
iced_plus_components |
30+ pre-built UI components |
iced_plus_platform |
Desktop platform APIs: tray, notifications, hotkeys |
Documentation
- User Guide - Comprehensive documentation
- API Reference - Generated Rust docs
- Examples - Working code examples
Platform Support
| Platform | Status |
|---|---|
| Linux (X11) | Supported |
| Linux (Wayland) | Supported |
| macOS | Supported |
| Windows | Supported |
Examples
Run the kitchen sink demo to see all features:
# With optional features
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.