lunaDOM Docs
lunaDOM Docs

lunaDOM is a collection of lightweight, accessible shadowdom based web components built with JavaScript.

v0.0.25

The <luna-avatar> component displays a user's profile picture with optional status indicators.

Paths

/lunadom/components/avatar/avatar.js REQUIRED

Basic Usage

No Zoom on Hover

Standard Status Badges

Custom Status with Emoji

Hover to reveal full status text.

🌙 Sleeping

Shape Variants

Customization

Slots
default - Avatar content
status - Custom status content (when status="slot")

Attributes
src - Image source URL
alt - Image alt text (also used for generating initials)
size="3rem" - Avatar size (default: 3rem)
variant="circle" - Avatar variant (circle, rounded, square)
status - Status indicator (online, busy, away, offline, slot)
no-zoom - Disables the scale hover zoom effect

CSS Variables
--luna-avatar-size - Override width/height
--luna-avatar-bg - Avatar background color
--luna-avatar-color - Initials text color
--luna-avatar-border - Avatar border color
--luna-accent - Accent color on hover
--luna-pill-font-size - Custom status pill text size

Example Code

<!-- Basic avatar with image --> <luna-avatar src="image.jpg" alt="User Name" size="4rem"> </luna-avatar> <!-- Initials fallback --> <luna-avatar alt="Alex Smith"></luna-avatar> <!-- Standard status badges --> <luna-avatar src="image.jpg" alt="User" status="online"></luna-avatar> <luna-avatar src="image.jpg" alt="User" status="busy"></luna-avatar> <!-- Custom status with emoji (GitHub-style) --> <luna-avatar src="image.jpg" alt="User" status="slot"> <span slot="status">🌙 Sleeping</span> </luna-avatar> <luna-avatar src="image.jpg" alt="User" status="slot"> <span slot="status">💻 Coding</span> </luna-avatar> <!-- Shape variants --> <luna-avatar src="image.jpg" variant="rounded"></luna-avatar> <luna-avatar src="image.jpg" variant="square"></luna-avatar> <!-- Disable zoom effect --> <luna-avatar src="image.jpg" alt="User" no-zoom></luna-avatar>