yew_icons

![Icons Gallery] ![Latest Version]

This crate makes it easy to use SVG icons from the following collections (more may be added in the future):

| Icon Set | License | Variants | | -------------------- | ----------------- | -------------------------- | | Bootstrap | MIT License | - | | Feather | MIT License | Deprecated (use Lucide) | | Font Awesome | CC BY 4.0 License | Regular, Solid | | Heroicons | MIT License | Solid, Outline, Mini Solid | | Lipis Flag Icons | MIT License | - | | Lucide | ISC License | - | | Octicons | MIT License | - | | Simple Icons | CC0 License | - |

Gallery

Gallery

*not all icons included in gallery.

Usage

Use the gallery to find icons you like, and add them as feature flags.

```toml

If still using yew 0.19, use yew_icons 0.6.1

[dependencies] yew_icons = {version = "0.7", features = ["LucideArrowLeftCircle", "LucideArrowRightCircle", "LucideArrowUpCircle"]} ```

Then, add an <Icon> component with the corresponding icon id, optionally specifying a width, height, and/or onclick callback.

```rust use yew::prelude::*; use yew_icons::{Icon, IconId};

html!{ <> } ```

example image

Note: The icons will inherit their parent's CSS color.

Feature Flags

Each icon collection must be included with the corresponding feature flag, such as lucide or font_awesome_solid.

To save binary size, individual icons can also be included by feature flag, such as LucideZoomIn or FontAwesomeSolidAtom.

By default, no collections or icons are included. Be warned that including too many icons may result in a .wasm binary that some WebAssembly engines refuse to load, especially in debug mode (see https://github.com/rustwasm/wasm-pack/issues/981).

License

Code is licensed under either of

at your option.

Icons are licensed by their respective creators (see above). An license summary is emitted to the DOM for each icon:

html <svg data-license="...original license..."></svg>

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Updating an Icon Collection

```shell

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" > generatedfeatureflags.txt

4. reformat the feature flags onto separate lines (choose your own adventure, e.g. vim macros)

5. copy the feature flags from generatedfeatureflags.txt to the Cargo.toml

```

Running tests

```shell

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 fontawesomeregular fontawesomesolid heroiconsminisolid heroiconsoutline heroiconssolid lipisflagicons1x1 lipisflagicons4x3 lucide octicons simple_icons

if testing all icon sets at once, the prokio-runtime-worker may overflow its stack

```