component Avatar(user *arn.User)
	CustomAvatar(user, user.Link(), user.Nick)

component CustomAvatar(user *arn.User, link string, title string)
	a.user.tip(href=link, aria-label=title)
		AvatarNoLink(user)

component AvatarNoLink(user *arn.User)
	if user.HasAvatar()
		img.user-image.lazy(data-src=user.AvatarLink("small"), data-webp="true", alt=user.Nick)
	else
		SVGAvatar(user)

component AvatarNoTip(user *arn.User)
	a.user(href=user.Link(), title=user.Nick)
		AvatarNoLink(user)

component ProfileImage(user *arn.User)
	if user.HasAvatar()
		img.profile-image.lazy(data-src=user.AvatarLink("large"), data-webp="true", alt="Profile image")
	else
		SVGProfileImage(user)

component SVGAvatar(user *arn.User)
	svg.user-image(viewBox="0 0 50 50")
		circle.head(cx="25", cy="19", r="10")
		circle.body(cx="25", cy="50", r="20")

		if len(user.Nick) <= 6
			text.svg-nick(x="25", y="44", text-anchor="middle")= user.Nick
		else
			text.svg-nick(x="25", y="44", text-anchor="middle")= user.Nick[:6]

component SVGProfileImage(user *arn.User)
	svg.profile-image(viewBox="0 0 50 50", alt="Profile image")
		circle.head(cx="25", cy="19", r="10")
		circle.body(cx="25", cy="50", r="20")