Skip to main content

Crate iced_plus_components

Crate iced_plus_components 

Source
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

§Layout & Display

§Feedback

  • Badge - Status indicators and counts
  • Alert - Contextual feedback messages
  • Progress - Progress indicators
  • Toast - Toast notifications
  • Tooltip - Hover tooltips

§Media

§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 navbar::NavItem;
pub use navbar::SideNav;
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.