Skip to main content

dioxus_bootstrap_css/
lib.rs

1//! # dioxus-bootstrap-css
2//!
3//! Type-safe Bootstrap 5.3 components for [Dioxus](https://dioxuslabs.com/).
4//!
5//! This crate provides a 1-to-1 mapping of every Bootstrap 5.3 component as Dioxus RSX
6//! components. All interactive behaviors (modals, dropdowns, accordions, carousels, etc.)
7//! are driven by Dioxus signals — **zero JavaScript required**.
8//!
9//! ## Quick Start
10//!
11//! ```rust,no_run
12//! use dioxus::prelude::*;
13//! use dioxus_bootstrap_css::prelude::*;
14//!
15//! fn app() -> Element {
16//!     let theme = use_signal(|| Theme::Dark);
17//!     rsx! {
18//!         ThemeProvider { theme }
19//!         BootstrapHead {}
20//!         Container {
21//!             h1 { "Hello Bootstrap!" }
22//!             Button { color: Color::Primary, "Click me" }
23//!         }
24//!     }
25//! }
26//! ```
27//!
28//! ## Bootstrap HTML → Dioxus RSX
29//!
30//! | Bootstrap HTML | Dioxus RSX |
31//! |---|---|
32//! | `<div class="container">` | `Container { }` |
33//! | `<div class="row"><div class="col-md-6">` | `Row { Col { md: ColumnSize::Span(6) } }` |
34//! | `<button class="btn btn-primary">` | `Button { color: Color::Primary }` |
35//! | `<div class="card"><div class="card-body">` | `Card { body: rsx! { } }` |
36//! | `<div class="alert alert-danger">` | `Alert { color: Color::Danger }` |
37//! | `<div class="modal">` + JS | `Modal { show: signal, title: "..." }` |
38//! | `<div class="dropdown">` + JS | `Dropdown { open: signal, toggle: rsx! { }, menu: rsx! { } }` |
39//! | `<div class="carousel">` + JS | `Carousel { active: signal, slides: vec![...] }` |
40//! | `<div class="accordion">` + JS | `Accordion { open: signal }` |
41//!
42//! ## Modules
43//!
44//! Every Bootstrap component has its own module. Import everything via the [`prelude`].
45
46pub mod accordion;
47pub mod alert;
48pub mod badge;
49pub mod breadcrumb;
50pub mod button;
51pub mod card;
52pub mod carousel;
53pub mod collapse;
54pub mod dropdown;
55pub mod figure;
56pub mod form;
57pub mod grid;
58pub mod head;
59pub mod icon;
60pub mod input_group;
61pub mod list_group;
62pub mod modal;
63pub mod nav;
64pub mod offcanvas;
65pub mod pagination;
66pub mod placeholder;
67pub mod popover;
68pub mod progress;
69pub mod scrollspy;
70pub mod spinner;
71pub mod table;
72pub mod tabs;
73pub mod theme;
74pub mod toast;
75pub mod tooltip;
76pub mod types;
77
78/// Prelude — import everything with `use dioxus_bootstrap_css::prelude::*`.
79pub mod prelude {
80    pub use crate::accordion::*;
81    pub use crate::alert::*;
82    pub use crate::badge::*;
83    pub use crate::breadcrumb::*;
84    pub use crate::button::*;
85    pub use crate::card::*;
86    pub use crate::carousel::*;
87    pub use crate::collapse::*;
88    pub use crate::dropdown::*;
89    pub use crate::figure::*;
90    pub use crate::form::*;
91    pub use crate::grid::*;
92    pub use crate::head::*;
93    pub use crate::icon::*;
94    pub use crate::input_group::*;
95    pub use crate::list_group::*;
96    pub use crate::modal::*;
97    pub use crate::nav::*;
98    pub use crate::offcanvas::*;
99    pub use crate::pagination::*;
100    pub use crate::placeholder::*;
101    pub use crate::popover::*;
102    pub use crate::progress::*;
103    pub use crate::scrollspy::*;
104    pub use crate::spinner::*;
105    pub use crate::table::*;
106    pub use crate::tabs::*;
107    pub use crate::theme::*;
108    pub use crate::toast::*;
109    pub use crate::tooltip::*;
110    pub use crate::types::*;
111}