Avatar Glass
shadcn-glass-ui/avatar-glassFreeComponent
Glass-themed avatar with:
Install it
npx shadcn@latest add https://raw.githubusercontent.com/artyhoo/shadcn-glass-ui-library/main/public/r/avatar-glass.jsonSource
1/**2 * AvatarGlass Component3 *4 * Glass-themed avatar with:5 * - Theme-aware styling (glass/light/aurora)6 * - Glow effect on hover7 * - Optional glow-pulse animation8 * - Status indicator with glow9 * - Size variants10 * - Built on Radix UI primitives11 *12 * @example Compound API (recommended)13 * ```tsx14 * <AvatarGlass size="default">15 * <AvatarGlassImage src="/avatar.jpg" alt="User" />16 * <AvatarGlassFallback>JD</AvatarGlassFallback>17 * </AvatarGlass>18 * ```19 *20 * @example With status indicator21 * ```tsx22 * <AvatarGlass size="lg" status="online">23 * <AvatarGlassImage src="/avatar.jpg" alt="User" />24 * <AvatarGlassFallback>JD</AvatarGlassFallback>25 * </AvatarGlass>26 * ```27 *28 * @example With glow animation29 * ```tsx30 * <AvatarGlass size="xl" glowing>31 * <AvatarGlassImage src="/avatar.jpg" alt="User" />32 * <AvatarGlassFallback>JD</AvatarGlassFallback>33 * </AvatarGlass>34 * ```35 */3637'use client';3839import * as React from 'react';40import * as AvatarPrimitive from '@radix-ui/react-avatar';41import { cn } from '@/lib/utils';42import { useHover } from '@/lib/hooks/use-hover';43import { avatarSizes, statusSizes } from '@/lib/variants/avatar-glass-variants';44import '@/glass-theme.css';4546// ========================================47// TYPES48// ========================================4950export type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';51export type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';5253// ========================================54// HELPERS55// ========================================5657const getStatusVars = (statusType: AvatarStatus): { bg: string; glow: string } => {58 const statusVars: Record<AvatarStatus, { bg: string; glow: string }> = {59 online: { bg: 'var(--status-online)', glow: 'var(--status-online-glow)' },60 offline: { bg: 'var(--status-offline)', glow: 'none' },61 busy: { bg: 'var(--status-busy)', glow: 'var(--status-busy-glow)' },62 away: { bg: 'var(--status-away)', glow: 'var(--status-away-glow)' },63 };64 return statusVars[statusType];65};6667// ========================================68// CONTEXT69// ========================================7071interface AvatarGlassContextValue {72 size: AvatarSize;73 status?: AvatarStatus;74 glowing?: boolean;75}7677const AvatarGlassContext = React.createContext<AvatarGlassContextValue>({78 size: 'md',79});8081// ========================================82// COMPOUND COMPONENT: ROOT83// ========================================8485// … truncated
More from shadcn-glass-ui
All 76 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Alert Glassalert-glass | shadcn-glass-ui | Components | Free | no deps | |
| Animated Background Glassanimated-background-glass | shadcn-glass-ui | Components | Free | no deps | |
| Badge Glassbadge-glass | shadcn-glass-ui | Components | Free | no deps | |
| Base Progress Glassbase-progress-glass | shadcn-glass-ui | Components | Free | no deps | |
| Button Glassbutton-glass | shadcn-glass-ui | Components | Free | no deps | |
| Card Glasscard-glass | shadcn-glass-ui | Components | Free | no deps | |
| Checkbox Glasscheckbox-glass | shadcn-glass-ui | Components | Free | no deps | |
| Circular Progress Glasscircular-progress-glass | shadcn-glass-ui | Components | Free | no deps |
