18个版本
0.8.0 | 2023年10月1日 |
---|---|
0.7.2 | 2023年4月26日 |
0.7.1 | 2023年3月29日 |
0.7.0 | 2022年11月27日 |
0.4.1 | 2022年6月10日 |
在 图像 分类中排名 118
每月下载量 327
用于 2 crate
23MB
54K SLoC
yew_icons
此crate使您能够轻松使用以下集合中的SVG图标(未来可能还会添加更多):
图标集合 | 许可证 | 变体 |
---|---|---|
Bootstrap | MIT许可证 | - |
Feather | MIT许可证 | 已弃用(使用Lucide) |
Font Awesome | CC BY 4.0许可证 | 常规、实心 |
Heroicons | MIT许可证 | 实心、轮廓、迷你实心 |
Lipis国旗图标 | MIT许可证 | - |
Lucide | ISC许可证 | - |
Octicons | MIT许可证 | - |
Simple Icons | CC0许可证 | - |
额外 | 逐个处理 | - |
画廊
*画廊 中不包含所有图标。
使用方法
使用画廊找到您喜欢的图标,并将它们作为功能标志添加。
# If still using yew 0.19, use yew_icons 0.6.1
# If still using yew 0.20, use yew_icons 0.7.3
[dependencies]
yew_icons = {version = "0.8", features = ["LucideArrowLeftCircle", "LucideArrowRightCircle", "LucideArrowUpCircle"]}
然后,添加一个具有相应图标ID的 <Icon>
组件,可选地指定 width
、height
和/或 onclick
回调。
use yew::prelude::*;
use yew_icons::{Icon, IconId};
html!{
<>
<Icon icon_id={IconId::LucideArrowLeftCircle}/>
<Icon icon_id={IconId::LucideArrowUpCircle} width={"2em".to_owned()} height={"2em".to_owned()}/>
<Icon icon_id={IconId::LucideArrowRightCircle} onclick={Callback::from(|_: MouseEvent| {})}/>
</>
}
注意:图标将继承其父元素的CSS color
。
功能标志
每个图标集合必须与相应的功能标志一起包含,例如 lucide
或 font_awesome_solid
。
为了节省二进制大小,也可以通过功能标志单独包含图标,例如 LucideZoomIn
或 FontAwesomeSolidAtom
。
默认情况下,不包含任何收藏或图标。请注意,包含过多的图标可能会导致某些WebAssembly引擎拒绝加载的.wasm
二进制文件,尤其是在调试模式下(参见https://github.com/rustwasm/wasm-pack/issues/981)。
许可证
代码的许可方式如下
- Apache许可证第2版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
图标由各自创作者授权(见上文)。每个图标的授权概要会输出到DOM中
<svg data-license="...original license..."></svg>
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的,您提交给工作内容的任何有意贡献都将根据上述方式双重授权,不附加任何额外条款或条件。
更新图标收藏
# 1. on first checkout, init submodules:
git submodule update --init --recursive
# 2. update a submodule to latest commit in remote branch:
git submodule update --remote bootstrap
# 3. generate the icons, writing the feature flags to a file:
cargo run --features="generator" > generated_feature_flags.txt
# 4. reformat the feature flags onto separate lines (choose your own adventure, e.g. vim macros)
# 5. copy the feature flags from generated_feature_flags.txt to the Cargo.toml
运行测试
# 1. uncomment the "testing" feature flag in Cargo.toml
# 2. for each icon set to test, run:
cargo test test --features "enum-iterator testing [icon collection to test]"
# (the test name is "test", which we specify to skip the doc tests)
# icon collection options are: bootstrap feather font_awesome_regular font_awesome_solid heroicons_mini_solid heroicons_outline heroicons_solid lipis_flag_icons_1_x_1 lipis_flag_icons_4_x_3 lucide octicons simple_icons
# if testing all icon sets at once, the prokio-runtime-worker may overflow its stack
依赖关系
~10–15MB
~268K SLoC