# Lucide Icons in Leptos
This library provides Leptos components for Lucide SVGs .
## Installation
From the project directory, use the following command:
```
cargo add leptos_lucide
```
Alternatively, add the following line to your `Cargo.toml`:
```
leptos_lucide = "0.1.0"
```
## Usage
Create a `LucideAttributes` struct in a parent component. Then, use `provide_context()` to pass the attributes to any Lucide icon.
### Method 1: `new_with_attributes()`
```
use leptos::*;
use leptos_lucide::icons::*;
#[component]
pub fn SomeComponent() -> impl IntoView {
let attributes = LucideAttributes::new_with_attributes(
"animate-pulse",
"http://www.w3.org/2000/svg",
24,
24,
"0 0 24 24",
"#ffffff",
"rgba(0,0,0,0.69)",
1.625,
"round",
"round"
);
let attributes_ctx = LucideAttributesCtx(RwSignal::new(attributes));
provide_context(attributes_ctx);
view! {
}
}
```
### Method 2: `new()` - Builder Pattern
```
use leptos::*;
use leptos_lucide::icons::*;
#[component]
pub fn ExampleComponent() -> impl IntoView {
let attributes = LucideAttributes::new()
.set_height(24)
.set_width(96)
.set_stroke_width(1.625);
let attributes_ctx = LucideAttributesCtx(RwSignal::new(attributes));
provide_context(attributes_ctx);
view! {
}
}
```