Skip to main content
Version: 1.0.3

Profile Page

Overview

A complete profile management component with editing capabilities, avatar upload, social links management, and multiple customization options. Perfect for user profile pages, settings sections, or any user management interface.

Installation

ignix add component profile

Usage

Profile Settings
Alex Thompson

Alex Thompson

Senior Product Designer

alex.thompson@example.com

San Francisco, CA

Basic Information

Display Name

Alex Thompson

Email Address

alex.thompson@example.com

Job Title

Senior Product Designer

Location

San Francisco, CA

Website

https://alexthompson.design

Phone

+1 (555) 123-4567

About Me

Product designer with 8+ years of experience creating digital experiences. Passionate about user-centered design and building products that make a difference. Currently leading design at InnovateTech.

Connect

ProfileData Interface

interface ProfileData {
displayName: string;
email: string;
bio: string;
avatarUrl: string | null;
socialLinks: SocialLink[];
location?: string;
jobTitle?: string;
website?: string;
phone?: string;
}

interface SocialLink {
id: string;
platform: string;
url: string;
}

Features

  • Avatar Management: Upload and preview avatar images with multiple shapes
  • Editable Fields: Toggle between view and edit modes for all profile information
  • Social Links: Add, edit, and remove social media links with automatic platform detection
  • Multiple Variants: Light, dark, gradient, glass, and card variants
  • Responsive Design: Works seamlessly across all screen sizes
  • Accessibility: Fully accessible with keyboard navigation and screen reader support
  • Customizable: Extensive customization options for every aspect

Props

PropTypeDefaultDescription
headerTitlestring"Profile Settings"Title displayed in the header
headerIconReact.ReactNode<User className="w-4 h-4" />Icon displayed next to header title
initialProfileDataPartial<ProfileData>{}Initial profile data to display
onSave`(data: ProfileData, avatarFile?: File | null) => Promise<void> | void-Callback when save is clicked
onCancel() => void-Callback when cancel is clicked
variant"default" | "gradient" | "card" | "glass" | "dark"'default'Visual variant of the profile page
animationVariant"fadeUp" | "scaleIn" | "slideUp" | "slideLeft" | "slideRight"'fadeUp'Animation style for page entrance
avatarShape"circle" | "square" | "rounded" | "hexagon" | "star"'circle'Shape of the avatar
avatarSize"md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "8xl" | "9xl"'3xl'Size of the avatar
inputVariantstringcleanVariant for input fields
buttonVariantstring'default'Variant for buttons
buttonAnimationVariantstring-Animation variant for buttons
customHeaderReact.ReactNode-Custom header component
customAvatarSectionReact.ReactNode-Custom avatar section component
customSocialLinksReact.ReactNode-Custom social links component
editButtonLabelstring'Edit Profile'Label for edit button
saveButtonLabelstring'Save Changes'Label for save button
cancelButtonLabelstring'Cancel'Label for cancel button
savingButtonLabelstring'Saving...'Label for saving state button
isLoadingbooleanfalseShow loading state
status"online" | "offline" | "away" | "busy"-User status indicator
showSaveNotificationbooleantrueShow notification on save
saveNotificationDurationnumber3000Duration of save notification in ms
saveNotificationMessagestring"Changes saved successfully!"Message for save notification
customNotificationReact.ReactNode-Custom notification component
darkModebooleanfalseEnable dark mode