plait_heroicons/lib.rs
1//! [Heroicons](https://heroicons.com) as [`plait`](https://crates.io/crates/plait) components.
2//!
3//! # Usage
4//!
5//! Icons are organized into four modules, matching the Heroicons styles:
6//!
7//! | Module | Size | Style |
8//! |-------------|------|---------|
9//! | [`outline`] | 24px | Outline |
10//! | [`solid`] | 24px | Solid |
11//! | [`mini`] | 20px | Solid |
12//! | [`micro`] | 16px | Solid |
13//!
14//! Each icon is a component function named in PascalCase after the original SVG filename (e.g. `academic-cap.svg`
15//! becomes `AcademicCap`).
16//!
17//! ```rust
18//! use plait::component;
19//! use plait_heroicons::outline;
20//!
21//! component! {
22//! pub fn Navbar() {
23//! nav {
24//! @outline::BellAlert() {}
25//! @outline::UserCircle() {}
26//! }
27//! }
28//! }
29//! ```
30//!
31//! You can use icons from different styles in the same component:
32//!
33//! ```rust
34//! use plait::component;
35//! use plait_heroicons::{solid, mini};
36//!
37//! component! {
38//! pub fn Controls() {
39//! div {
40//! @solid::PlayCircle() {}
41//! @mini::ChevronDown() {}
42//! }
43//! }
44//! }
45//! ```
46
47/// 24px outline icons.
48pub mod outline {
49 use plait::component;
50 include!(concat!(env!("OUT_DIR"), "/outline.rs"));
51}
52
53/// 24px solid icons.
54pub mod solid {
55 use plait::component;
56 include!(concat!(env!("OUT_DIR"), "/solid.rs"));
57}
58
59/// 20px solid (mini) icons.
60pub mod mini {
61 use plait::component;
62 include!(concat!(env!("OUT_DIR"), "/mini.rs"));
63}
64
65/// 16px solid (micro) icons.
66pub mod micro {
67 use plait::component;
68 include!(concat!(env!("OUT_DIR"), "/micro.rs"));
69}