Issue: Create UmbralAvatar
Overview
Create an avatar component for displaying user images, initials, or profile icons with optional status badges.
PRD Reference
Section B3.3: UmbralAvatar
Acceptance Criteria
Visual Reference
With Image: With Initials: Default:
┌───┐ ┌───┐ ┌───┐
│ 🖼 │ │ JD │ │ 👤 │
└───┘ └───┘ └───┘
With Badge (Online):
┌───┐
│ 🖼 │
└───┘● ← green dot
Sizes:
Small Medium Large XLarge
32dp 40dp 56dp 80dp
○ ○ ○ ○
Use Cases
- Profile pictures
- User list items
- Chat avatars
- Session status indicators
Implementation Notes
- Use
Modifier.clip(CircleShape) for clipping
- Badge should use
Box with offset positioning
- Border helps when stacking avatars (avatar group)
- Consider
AsyncImage from Coil for loading images
File Location
app/src/main/java/com/umbral/presentation/ui/components/display/UmbralAvatar.kt
Dependencies
- Motion.kt (01-motion-tokens)
- Phase 1 color tokens
Part of Epic #80
Issue: Create UmbralAvatar
Overview
Create an avatar component for displaying user images, initials, or profile icons with optional status badges.
PRD Reference
Section B3.3: UmbralAvatar
Acceptance Criteria
modifier: Modifierimage: ImageBitmap?initials: String?size: AvatarSize(Small, Medium, Large, XLarge)badge: AvatarBadge?(Online, Offline, Active, None)accentPrimary15% opacityaccentPrimarybackgroundBase(for stacking)Visual Reference
Use Cases
Implementation Notes
Modifier.clip(CircleShape)for clippingBoxwith offset positioningAsyncImagefrom Coil for loading imagesFile Location
app/src/main/java/com/umbral/presentation/ui/components/display/UmbralAvatar.ktDependencies
Part of Epic #80