#component #material #leptos #material-design #design #ui #api-bindings

leptos-material

Leptos 组件包装器,用于 Material Web 组件

2 个版本

0.6.1 2024 年 8 月 23 日
0.6.0 2024 年 8 月 23 日
0.5.0 2024 年 8 月 22 日

#998GUI

Download history 127/week @ 2024-08-17

每月 127 次下载

MIT 许可证

41KB
912

leptos-material

leptos-material 是一个用于 Material Web Components (MWC) 的 Leptos 组件包装器,同时还提供了一些额外的组件以填补空缺。

此库旨在尽可能接近原始的 MWC 组件规范,这意味着您应该能够使用其 文档 中指定的所有内容。leptos-material 还实现了 MWC 中尚未实现的某些组件,例如卡片和日期选择器。

许多组件支持广泛的属性。为了简洁起见,leptos-material 不会完全公开所有属性,而是许多组件在 view 宏中使用 attr:attribute_name=value 语法来添加属性。例如

<TextField
style=TextFieldStyle::Outlined
attr:type=InputType::Email
attr:label="Email"
>

安装

要安装 leptos-material,请在您的项目目录中运行以下命令

cargo add leptos-material

或者,要使用项目中的最新仓库更新,请在您的 Cargo.toml 中添加

leptos-material = { git = "https://github.com/jordi-star/leptos-material" }

使用

在主组件的根目录中使用 UseMaterialWebComponents 组件来初始化 MWC。例如,如果您有一个名为 App 的主组件,则您的代码如下所示

#[component]
fn App() -> impl IntoView {
	view! {
		<UseMaterialWebComponents/>
		... // The rest of your site
	}
}

然后,启用您想要使用的任何组件的功能。例如,要使用 Icon 组件,您将启用 icon 功能。最后,您可以在代码中使用该组件。

#[component]
fn App() -> impl IntoView {
	view! {
		<UseMaterialWebComponents/>
		<h1>{"Hello from leptos-material!"}</h1>
		<Icon name="mood" />
	}
}

功能

每个组件都由一个功能控制。此库将任何需要的 MWC 组件捆绑到单个 JS 文件中,以供与 UseMaterialWebComponents 一起使用。默认情况下,leptos-material 使用 full 功能,这将包括所有 MWC 组件。为了减少编译时间和节省网页加载时间,请禁用默认功能,并仅添加与您需要的组件相关的功能。

nightly 注意

这个库不使用 nightly Rust,以便允许该库在使用稳定Rust工具链的项目中工作。使用Leptos与 nightly Rust允许使用信号的功能调用语法,而不是使用 .get().set()。此功能对该库不是必需的,因此leptos-material将在可预见的未来继续使用稳定的Rust。

正在进行中

这个库仍在开发中,目前尚未实现所有MWC组件。以下是当前已实现的特性标志列表

  • 复选框
  • 文本框
  • 按钮
  • 图标
  • 图标按钮
  • 卡片
  • 提升
  • 进度条
  • 日期选择器
  • 选择框
  • 芯片

依赖项

~21–33MB
~534K SLoC