diff --git a/demo/src/app.rs b/demo/src/app.rs index d9e138d..e067884 100644 --- a/demo/src/app.rs +++ b/demo/src/app.rs @@ -22,7 +22,6 @@ pub fn App() -> impl IntoView { }); let theme = create_rw_signal(theme); - provide_context(theme); provide_meta_context(); view! { @@ -84,6 +83,7 @@ fn TheRouter() -> impl IntoView { + diff --git a/demo/src/pages/components.rs b/demo/src/pages/components.rs index 5936ea0..d04d564 100644 --- a/demo/src/pages/components.rs +++ b/demo/src/pages/components.rs @@ -232,6 +232,13 @@ pub(crate) fn gen_menu_data() -> Vec { }, ], }, + MenuGroupOption { + label: "Config Components".into(), + children: vec![MenuItemOption { + value: "theme".into(), + label: "Theme".into(), + }], + }, MenuGroupOption { label: "Mobile Components".into(), children: vec![ diff --git a/demo/src/pages/mod.rs b/demo/src/pages/mod.rs index 2ccca25..cc05c74 100644 --- a/demo/src/pages/mod.rs +++ b/demo/src/pages/mod.rs @@ -34,6 +34,7 @@ mod tabbar; mod table; mod tabs; mod tag; +mod theme; mod toast; mod upload; @@ -73,5 +74,6 @@ pub use tabbar::*; pub use table::*; pub use tabs::*; pub use tag::*; +pub use theme::*; pub use toast::*; pub use upload::*; diff --git a/demo/src/pages/tabs/mod.rs b/demo/src/pages/tabs/mod.rs index 3217c57..819d955 100644 --- a/demo/src/pages/tabs/mod.rs +++ b/demo/src/pages/tabs/mod.rs @@ -8,7 +8,7 @@ pub fn TabsPage() -> impl IntoView { let value = create_rw_signal(String::from("apple")); view! {
-

"Tabs2"

+

"Tabs"

diff --git a/demo/src/pages/theme/mod.rs b/demo/src/pages/theme/mod.rs new file mode 100644 index 0000000..ae2aa1c --- /dev/null +++ b/demo/src/pages/theme/mod.rs @@ -0,0 +1,141 @@ +use crate::components::{Demo, DemoCode}; +use leptos::*; +use prisms::highlight_str; +use thaw::*; + +#[component] +pub fn ThemePage() -> impl IntoView { + let customize_theme = create_rw_signal(Theme::light()); + let on_customize_theme = move |_| { + customize_theme.update(|theme| { + theme.common.color_primary = "#f5222d".to_string(); + theme.common.color_primary_hover = "#ff4d4f".to_string(); + theme.common.color_primary_active = "#cf1322".to_string(); + }); + }; + view! { +
+

"Theme"

+ +

"GlobalStyle"

+

"You can use GlobalStyle to sync common global style to the body element."

+ + "" + + + "..." + + } + "#, + "rust" + ) + > + + "" + + +

"CustomizeTheme"

+ + + + + + + + + + + + + + + + + + } + "##, + "rust" + ) + > + + "" + + +

"ThemeProvider Props"

+ + + + + + + + + + + + + + + + + +
"Name""Type""Default""Description"
"theme""RwSignal""Theme."
+
+ } +} + +#[component] +fn ThemeProviderPage() -> impl IntoView { + view! { +

"ThemeProvider"

+ + "" + + + + + + + + + } + "#, + "rust" + ) + > + + "" + + + } +}