diff --git a/demo/gh-pages b/demo/gh-pages
new file mode 160000
index 0000000..faaa4df
--- /dev/null
+++ b/demo/gh-pages
@@ -0,0 +1 @@
+Subproject commit faaa4dfa5547b4c3e117999f4ed4cf2332006f2b
diff --git a/demo/src/pages/breadcrumb/mod.rs b/demo/src/pages/breadcrumb/mod.rs
index 1b6cdb5..0a737a8 100644
--- a/demo/src/pages/breadcrumb/mod.rs
+++ b/demo/src/pages/breadcrumb/mod.rs
@@ -10,18 +10,9 @@ pub fn BreadcrumbPage() -> impl IntoView {
"Breadcrumb"
-
- "Rust"
-
-
- "Leptos"
-
-
- "UI"
-
-
- "Thaw"
-
+ "Leptos"
+ "UI"
+ "Thaw"
impl IntoView {
r#"
- "Rust"
+ "Leptos"
+
+ "UI"
+
+
+ "Thaw"
+
+
+ "#,
+ "rust"
+ )
+ >
+
+ ""
+
+
+ "Separator"
+
+
+ "Leptos"
+ "UI"
+ "Thaw"
+
+
"Leptos"
diff --git a/src/breadcrumb/breadcrumb.css b/src/breadcrumb/breadcrumb.css
index 65a26dd..0cff1ff 100644
--- a/src/breadcrumb/breadcrumb.css
+++ b/src/breadcrumb/breadcrumb.css
@@ -11,8 +11,31 @@
.thaw-breadcrumb-item__separator {
margin: 0 8px;
+ color: var(--thaw-font-color);
}
-.thaw-breadcrumb-item__separator:last-child {
+.thaw-breadcrumb
+ .thaw-breadcrumb-item:last-child
+ .thaw-breadcrumb-item__separator {
display: none;
}
+
+.thaw-breadcrumb-item__link {
+ padding: 4px;
+ border-radius: 3px;
+ transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1),
+ color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ color: var(--thaw-font-color);
+ cursor: pointer;
+}
+
+.thaw-breadcrumb
+ .thaw-breadcrumb-item:not(:last-child)
+ .thaw-breadcrumb-item__link:hover {
+ color: var(--thaw-font-color-hover);
+ background-color: var(--thaw-background-color-hover);
+}
+
+.thaw-breadcrumb .thaw-breadcrumb-item:last-child .thaw-breadcrumb-item__link {
+ color: var(--thaw-font-color-hover);
+}
diff --git a/src/breadcrumb/breadcrumb_item.rs b/src/breadcrumb/breadcrumb_item.rs
index d269dbb..9926710 100644
--- a/src/breadcrumb/breadcrumb_item.rs
+++ b/src/breadcrumb/breadcrumb_item.rs
@@ -6,9 +6,7 @@ pub fn BreadcrumbItem(children: Children) -> impl IntoView {
let breadcrumb_separator = use_breadcrumb_separator();
view! {
-
- {children()}
-
+ {children()}
{move || breadcrumb_separator.0.get()}
diff --git a/src/breadcrumb/mod.rs b/src/breadcrumb/mod.rs
index 56aeced..a1fcbc0 100644
--- a/src/breadcrumb/mod.rs
+++ b/src/breadcrumb/mod.rs
@@ -1,9 +1,10 @@
mod breadcrumb_item;
+mod theme;
+use crate::{mount_style, use_theme, Theme};
pub use breadcrumb_item::BreadcrumbItem;
use leptos::*;
-
-use crate::mount_style;
+pub use theme::BreadcrumbTheme;
#[component]
pub fn Breadcrumb(
@@ -11,12 +12,29 @@ pub fn Breadcrumb(
children: Children,
) -> impl IntoView {
mount_style("breadcrumb", include_str!("./breadcrumb.css"));
+ let theme = use_theme(Theme::light);
+ let css_vars = create_memo(move |_| {
+ let mut css_vars = String::new();
+ theme.with(|theme| {
+ css_vars.push_str(&format!(
+ "--thaw-font-color: {};",
+ theme.breadcrumb.item_font_color
+ ));
+ css_vars.push_str(&format!(
+ "--thaw-font-color-hover: {};",
+ theme.breadcrumb.item_font_color_hover
+ ));
+ css_vars.push_str(&format!(
+ "--thaw-background-color-hover: {};",
+ theme.breadcrumb.item_background_color_hover
+ ));
+ });
+ css_vars
+ });
provide_context(BreadcrumbSeparatorInjection(separator));
view! {
-