Introduction
Beautifully designed components for iced, ported from shadcn/ui. Use them as a library, or copy them into your project and make them your own.
shadcn-iced brings the components of shadcn/uito iced, the cross-platform GUI library for Rust. It follows the current default style of shadcn/ui (Base UI with the Nova style), down to its spacing, colors, radii and animations.
use shadcn_iced::prelude::*;
fn view(_state: &()) -> iced::Element<'_, Message> {
card()
.title("Create project")
.description("Deploy your new project in one-click.")
.footer(button("Deploy").on_press(Message::Save))
.width(350)
.into()
}How it works
Like shadcn/ui, shadcn-iced is the code of its components first. You choose how to use it:
- As a library: depend on the
shadcn_icedcrate and update it like any dependency. - Copy and paste:
cargo shadcn-iced add button dialogwrites the source of the components tosrc/ui/, where you can change anything.
Both share shadcn_iced_core: the theme, the fonts and icons, and the headless primitives (anchored overlays, modal layers, listboxes, disclosures) that Base UI provides to shadcn/ui.
What is included
- 65 components, the whole registry of shadcn/ui.
- Every theme of the
/createpage of shadcn/ui: 7 base colors, 17 themes, chart colors, radii and menu styles, in light and dark mode. See Theming. - Geist, Geist Mono and Inter, and all 2,179 Lucide icons, bundled.
- The animations of tw-animate-css for overlays, sheets, accordions and toasts.
Live previews
The previews of this site are not screenshots. Each one runs the example from thegallerywith iced compiled to WebAssembly, drawn with WebGPU (or a software renderer when your browser lacks it). The Code tab shows the source that builds it. Use the Theme menu in the header to see them in any theme.