shadcn-iced
Menu

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.

src/main.rs
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_iced crate and update it like any dependency.
  • Copy and paste: cargo shadcn-iced add button dialog writes 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 /create page 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.