avatar

Avatar component

Component defintion

defc avatar(assigns) do
  ~H"""
  <.use_avatar :let={a} src={@src}>
    <div id={@id} class="w-12 h-12 rounded-full">
      <div {a.root} class="avatar placeholder">
        <img {a.image} alt={@alt} class="rounded-full" />
        <div {a.fallback} class="bg-neutral text-neutral-content rounded-full w-12">
          <%= @initials %>
        </div>
      </div>
    </div>
  </.use_avatar>
  """
end

Example usage

Image
@teamon
TT
@hodak
AH
<.avatar src="https://github.com/teamon.png" alt="@teamon" initials="TT"/>
<.avatar src={nil} alt="@hodak" initials="AH"/>
Missing image
@teamon
TT
<.avatar src={nil} alt="@teamon" initials="TT"/>
Bad image
@teamon
TT
<.avatar src="https://example.com" alt="@teamon" initials="TT"/>
<script type="text/javascript">console.log("avatar init")</script>