Current section

Files

Jump to
bloom priv templates avatar.ex
Raw

priv/templates/avatar.ex

defmodule <%= @module_name %>Web.Components.Avatar do
use Phoenix.Component
@moduledoc """
Avatar component using https://avatars.dicebear.com styles.
Can be overridden by an image URL.
Styles available:
Adventurer
Adventurer Neutral
Avataaars
Avataaars Neutral
Big Ears
Big Ears Neutral
Big Smile
Bottts
Bottts Neutral
Croodles
Croodles Neutral
Fun Emoji
Icons
Identicon
Initials
Lorelei
Lorelei Neutral
Micah
Miniavs
Notionists
Notionists Neutral
Open Peeps
Personas
Pixel Art
Pixel Art Neutral
Rings
Shapes
Thumbs
"""
attr(:name, :string, required: true, doc: "Name for avatar and seed for dicebear API")
attr(:style, :string, default: "miniavs", doc: "Style for dicebear API")
attr(:img_src, :string, required: false, doc: "Image URL - overrides dicebear API")
attr(:class, :string, default: "", doc: "CSS class for parent div")
attr(:rest, :global)
def avatar(assigns) do
~H"""
<div class={["flex items-center w-12 h-12", @class]} {@rest}>
<img
src={@img_src || "https://api.dicebear.com/7.x/#{@style}/svg?seed=#{@name}"}
alt={"#{@name} avatar"}
class="rounded-lg"
/>
</div>
"""
end
end