Expand description
Component library for iced-plus.
This crate provides pre-styled, type-safe widgets with ergonomic builder APIs.
§Design Principles
- Type-safety: Variants and sizes are encoded in the type signature using phantom types
- Zero-cost abstractions: All style resolution happens at compile time
- Ergonomic API: Builder pattern with method chaining
§Components
§Buttons & Inputs
Button- Type-safe buttons with variant and size encoded in typesTextInput- Enhanced text input with label and helper textCheckbox- Styled checkbox componentRadio,RadioGroup- Radio buttons for single selectionSwitch- Toggle switchesSlider,VerticalSlider- Range slidersSelect- Dropdown selection
§Layout & Display
Text,Heading- Typography componentsCard- Elevated content containerDivider- Visual separatorsAvatar- User/entity avatarsSkeleton- Loading placeholdersImage- Image display with loading states
§Feedback
Badge- Status indicators and countsAlert- Contextual feedback messagesProgress- Progress indicatorsToast- Toast notificationsTooltip- Hover tooltips
§Navigation & Overlays
§Media
AudioControls,VideoControls- Media player controlsMediaPlayerState- Playback state managementWebViewState,BrowserBar- WebView integration helpers
§Example
ⓘ
use iced_plus_components::button::Button;
// Type: Button<'_, Primary, Medium, Message>
let btn = Button::primary("Save")
.on_press(Message::Save);
// Type: Button<'_, Destructive, Small, Message>
let delete = Button::destructive("Delete")
.small()
.on_press(Message::Delete);Re-exports§
pub use alert::Alert;pub use alert::AlertType;pub use avatar::Avatar;pub use avatar::AvatarShape;pub use avatar::AvatarSize;pub use badge::Badge;pub use badge::BadgeVariant;pub use button::Button;pub use button::ButtonSize;pub use button::ButtonVariant;pub use button::Destructive;pub use button::Ghost;pub use button::Outline;pub use button::Primary;pub use button::Secondary;pub use button::ExtraSmall;pub use button::Large;pub use button::Medium;pub use button::Small;pub use card::Card;pub use card::Elevation;pub use checkbox::Checkbox;pub use color_picker::color_palette;pub use color_picker::color_picker_view;pub use color_picker::color_to_hex;pub use color_picker::hex_to_color;pub use color_picker::presets as color_presets;pub use color_picker::ColorSwatch;pub use color_picker::Hsl;pub use color_picker::HueSlider;pub use color_picker::SatLightPicker;pub use divider::Divider;pub use drawer::Drawer;pub use drawer::DrawerPosition;pub use icons::icon;pub use icons::icon_colored;pub use icons::Icon;pub use icons::IconName;pub use image::Image;pub use image::ImagePlaceholder;pub use image::ImageSource;pub use input::TextInput;pub use media::AudioControls;pub use media::AudioRecorder;pub use media::MediaPlayerState;pub use media::PlaybackState;pub use media::RecorderState;pub use media::RecordingState;pub use media::VideoControls;pub use media::VideoRecorder;pub use menu::Menu;pub use menu::MenuBar;pub use menu::MenuItem;pub use progress::Progress;pub use progress::ProgressVariant;pub use radio::Radio;pub use radio::RadioGroup;pub use scrollable::minimal_scrollable;pub use scrollable::position as scroll_position;pub use scrollable::styled_scrollable;pub use scrollable::themed_scrollable;pub use scrollable::AnchorSection;pub use scrollable::ScrollDirection;pub use scrollable::ScrollableBuilder;pub use scrollable::ScrollableConfig;pub use scrollable::SnapAlignment;pub use select::Select;pub use skeleton::Skeleton;pub use skeleton::SkeletonShape;pub use slider::Slider;pub use slider::VerticalSlider;pub use spinner::easing;pub use spinner::calculate_progress;pub use spinner::spinner_subscription;pub use spinner::spinner_subscription_with_duration;pub use spinner::CircularSpinner;pub use spinner::DotsSpinner;pub use spinner::LinearSpinner;pub use spinner::PulseSpinner;pub use spinner::SpinnerMessage;pub use spinner::DEFAULT_CYCLE_DURATION;pub use spinner::DEFAULT_FRAME_DURATION;pub use switch::Switch;pub use tabs::Tab;pub use tabs::TabWidth;pub use tabs::Tabs;pub use text::Heading;pub use text::HeadingLevel;pub use text::Text;pub use text::TextStyle;pub use textarea::SimpleTextArea;pub use textarea::TextArea;pub use textarea::TextAreaContent;pub use toast::toast_container;pub use toast::toast_view;pub use toast::toasts;pub use toast::Toast;pub use toast::ToastManager;pub use toast::ToastPosition;pub use toast::ToastVariant;pub use rich_text::FormattingState;pub use rich_text::RichTextAction;pub use rich_text::RichTextContent;pub use rich_text::RichTextEditor;pub use rich_text::formatting;pub use tooltip::Tooltip;pub use tooltip::TooltipPosition;pub use navbar::AppBar;pub use webview::BrowserBar;pub use webview::WebViewCommand;pub use webview::WebViewConfig;pub use webview::WebViewState;
Modules§
- alert
- Alert component for contextual feedback messages.
- avatar
- Avatar component for user/entity representation.
- badge
- Badge component for status indicators and counts.
- button
- Type-safe button with phantom type encoding for variants and sizes.
- card
- Card component for elevated content containers.
- checkbox
- Styled checkbox component.
- color_
picker - Color picker component.
- divider
- Divider component for visual separation.
- drawer
- Drawer/side panel component.
- icons
- Vector icon components.
- image
- Image component with loading states.
- input
- Input components.
- media
- Media player components (audio/video).
- menu
- Menu and context menu components.
- navbar
- Navigation bar and app bar components.
- progress
- Progress bar and indicators.
- radio
- Styled radio button component.
- rich_
text - Rich text editor component.
- scrollable
- Enhanced scrollable with snap points and anchor support.
- select
- Select/Dropdown component.
- skeleton
- Skeleton loader/placeholder component.
- slider
- Styled slider component.
- spinner
- Loading spinner components.
- switch
- Toggle switch component.
- tabs
- Tab navigation component.
- text
- Text and heading components.
- textarea
- Textarea component for multi-line text input.
- toast
- Toast notification component.
- tooltip
- Tooltip component.
- webview
- WebView component placeholder.