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}