A collection of Phoenix LiveView Components for all SVG Lucide Icons. Lucide Icons is a community fork of Feather Icons.
Based on Phoenix LiveView Heroicons.
def deps do
[
{:lucide_live_view, "~> 0.1.0"}
]
end
<Lucide.activity />
Use the render
function to dynamically select an icon based on a variable:
<Lucide.render icon="activity" />
Besides, any attributes passed in will be forwarded to the svg element.
<Lucide.activity
id="my-activity-icon"
class="inline-block h-5 w-5"
stroke_width="1.5"
/>
For further customization, consider wrapping Lucide icons within your own components.
# core_components.ex
attr :name, :string, required: true
attr :class, :string, required: false, default: "icon"
attr :rest, :global
def icon(assigns) do
~H"""
<Lucide.render icon={@name} class={@class} {@rest} />
"""
end
This approach allows you to define and use custom attributes for your icon components.
Use your custom component in your HTML (html.heex) files:
<.icon name="circle" />
Clone down the latest Lucide Icons Github repo and run the generator task.
git clone https://github.com/lucide-icons/lucide.git priv/lucide
mix lucide.gen
Source code is licensed under the MIT License.