Profile Page Components
Colecție de componente pentru pagina de "Profil" în proiecte Next.js + TailwindCSS. Exemple live + explicații de utilizare.
ProfileCard
Componenta de bază pentru profile. Afișează poza de profil și numele complet. Suportă diferite dimensiuni, variante și stilizare completă.

John Doe
Profile card simplu cu poza și nume, cu gradient background.

John Doe
Profile card cu dimensiune mare, rounded corners și gradient background.

John Doe
Profile card compact, fără border și shadow, cu background solid.
Utilizare
import ProfileCard from "@/components/profile-components/ProfileCard";
import type { ProfileData } from "@/components/profile-components/types";
const profile: ProfileData = {
firstName: "John",
lastName: "Doe",
profilePicture: "/avatar.jpg",
};
<ProfileCard
profile={profile}
size="md" // "sm" | "md" | "lg"
variant="default" // "default" | "compact" | "detailed"
showBorder={true}
showShadow={true}
rounded="lg" // "none" | "sm" | "md" | "lg" | "xl" | "full"
/>profile— obiect cu datele profilului (firstName, lastName, profilePicture).size— dimensiune:sm|md|lg(implicit:md).variant— variantă:default|compact|detailed(implicit:default).rounded— rounded corners:none|sm|md|lg|xl|full(implicit:lg).
ProfileCardWithTitle
Profile card cu poza de profil, nume, titlu și companie. Layout centrat, perfect pentru carduri de echipă sau liste de membri.

Jane Smith
Senior Software Engineer
Tech Company Inc.
Profile card cu titlu și companie, layout centrat, cu gradient background.

Jane Smith
Senior Software Engineer
Tech Company Inc.
Profile card cu dimensiune mare și gradient background.
Utilizare
import ProfileCardWithTitle from "@/components/profile-components/ProfileCardWithTitle";
const profile: ProfileData = {
firstName: "Jane",
lastName: "Smith",
profilePicture: "/avatar.jpg",
title: "Senior Software Engineer",
company: "Tech Company Inc.",
};
<ProfileCardWithTitle profile={profile} />title— titlul/poziția în companie (opțional).company— numele companiei (opțional).- Layout-ul este centrat, perfect pentru carduri de echipă.
ProfileCardWithBio
Profile card cu poza, nume, titlu și bio. Perfect pentru pagini de despre sau carduri de echipă detaliate.

Alex Johnson
Product Designer
Passionate about creating beautiful and functional user experiences. Love working with modern design tools and collaborating with cross-functional teams.
Profile card cu bio, layout flexibil, cu gradient background.
Utilizare
import ProfileCardWithBio from "@/components/profile-components/ProfileCardWithBio";
const profile: ProfileData = {
firstName: "Alex",
lastName: "Johnson",
profilePicture: "/avatar.jpg",
title: "Product Designer",
bio: "Passionate about creating beautiful...",
};
<ProfileCardWithBio profile={profile} />bio— textul biografiei (opțional).- Bio-ul este limitat la 3 linii (line-clamp-3) pentru consistență.
ProfileCardWithStats
Profile card cu poza, nume, titlu și statistici. Perfect pentru platforme sociale sau portofolii cu metrici.

Mike Chen
Data Scientist
Profile card cu statistici în grid 3 coloane, cu gradient background.
Utilizare
import ProfileCardWithStats from "@/components/profile-components/ProfileCardWithStats";
const profile: ProfileData = {
firstName: "Mike",
lastName: "Chen",
profilePicture: "/avatar.jpg",
title: "Data Scientist",
stats: [
{ label: "Projects", value: "42" },
{ label: "Followers", value: "1.2K" },
{ label: "Following", value: "350" },
],
};
<ProfileCardWithStats profile={profile} />stats— array de obiecte cu label și value (opțional).- Statisticile sunt afișate într-un grid de 3 coloane.
- Value-ul poate fi string sau number.
ProfileCardWithContact
Profile card cu poza, nume, titlu și informații de contact (email, telefon, locație, website). Perfect pentru carduri de business.

Lisa Anderson
Business Consultant
Profile card cu informații de contact complete.
Utilizare
import ProfileCardWithContact from "@/components/profile-components/ProfileCardWithContact";
const profile: ProfileData = {
firstName: "Lisa",
lastName: "Anderson",
profilePicture: "/avatar.jpg",
title: "Business Consultant",
email: "lisa@example.com",
phone: "+40 123 456 789",
location: "București, România",
website: "https://lisaanderson.com",
};
<ProfileCardWithContact profile={profile} />email— adresă email (opțional, clickable).phone— număr de telefon (opțional, clickable).location— locație (opțional).website— website (opțional, clickable).
ProfileHero
Hero section pentru profile pages. Layout flexibil, gradient background, poza mare, nume, titlu, companie, bio și social links. Perfect pentru pagini de profil principale.
Utilizare
import ProfileHero from "@/components/profile-components/ProfileHero";
const profile: ProfileData = {
firstName: "Alex",
lastName: "Martinez",
profilePicture: "/avatar.jpg",
title: "Creative Director",
company: "Design Studio",
bio: "Passionate about creating...",
socialLinks: [...],
};
<ProfileHero profile={profile} />- Layout responsive: vertical pe mobile, horizontal pe desktop.
- Gradient background automat pentru un look modern.
- Poza de profil mare cu border și shadow pentru evidențiere.
- Suportă toate câmpurile opționale din ProfileData.
ProfileSplit
Profile card cu layout split: poza la stânga, conținut la dreapta. Layout responsive: vertical pe mobile, horizontal pe desktop. Perfect pentru carduri de echipă detaliate.

Chris Wilson
UX Designer
Design Agency
Creating intuitive and beautiful user experiences. Passionate about accessibility and user-centered design.
Profile card cu layout split, responsive.
Utilizare
import ProfileSplit from "@/components/profile-components/ProfileSplit";
const profile: ProfileData = {
firstName: "Chris",
lastName: "Wilson",
profilePicture: "/avatar.jpg",
title: "UX Designer",
company: "Design Agency",
bio: "Creating intuitive...",
};
<ProfileSplit profile={profile} />- Layout responsive: vertical pe mobile, horizontal pe desktop.
- Perfect pentru carduri de echipă cu mai mult conținut.
ProfileCentered
Profile card cu layout centrat: poza, nume, titlu, companie, bio și social links. Perfect pentru carduri de echipă elegante.
Utilizare
import ProfileCentered from "@/components/profile-components/ProfileCentered";
const profile: ProfileData = {
firstName: "Ryan",
lastName: "Garcia",
profilePicture: "/avatar.jpg",
title: "Software Architect",
company: "Tech Corp",
bio: "Building scalable systems...",
socialLinks: [...],
};
<ProfileCentered profile={profile} />- Layout centrat, perfect pentru carduri de echipă elegante.
- Suportă bio și social links.
ProfileCardFull
Profile card complet cu toate informațiile: poza, nume, titlu, companie, bio, contact, social links, stats și skills. Perfect pentru pagini de profil detaliate.

Sophie Taylor
Product Manager
Tech Startup
Experienced product manager with a passion for building products that users love. Focused on data-driven decisions and user-centric design.
Profile card complet cu toate informațiile disponibile.
Utilizare
import ProfileCardFull from "@/components/profile-components/ProfileCardFull";
const profile: ProfileData = {
firstName: "Sophie",
lastName: "Taylor",
profilePicture: "/avatar.jpg",
title: "Product Manager",
company: "Tech Startup",
bio: "Experienced product manager...",
email: "sophie@example.com",
socialLinks: [...],
stats: [...],
skills: [...],
};
<ProfileCardFull profile={profile} />- Combină toate informațiile disponibile într-un singur card.
- Layout centrat, perfect pentru pagini de profil principale.
- Toate câmpurile sunt opționale - se afișează doar ce este disponibil.
ProfileCardDetailed
Variantă detaliată de profile card. Include toate informațiile: poza, nume, titlu, companie, bio, contact, social links, stats și skills. Layout vertical, perfect pentru pagini de profil detaliate.

Tom Roberts
Senior Developer
Software Inc.
Experienced developer with expertise in modern web technologies. Passionate about building scalable applications and mentoring junior developers.
Skills
Profile card detaliat cu toate informațiile, layout vertical.
Utilizare
import ProfileCardDetailed from "@/components/profile-components/ProfileCardDetailed";
const profile: ProfileData = {
firstName: "Tom",
lastName: "Roberts",
profilePicture: "/avatar.jpg",
title: "Senior Developer",
company: "Software Inc.",
bio: "Experienced developer...",
email: "tom@example.com",
socialLinks: [...],
stats: [...],
skills: [...],
};
<ProfileCardDetailed profile={profile} />- Variantă detaliată, layout vertical.
- Include toate informațiile disponibile din ProfileData.
- Perfect pentru pagini de profil detaliate sau carduri de echipă extinse.
ProfileCardCompact
Variantă compactă de profile card. Dimensiuni mici, perfect pentru liste dense, sidebar-uri sau comentarii. Layout orizontal, optimizat pentru spațiu.

Anna Lee
Frontend Developer
Profile card compact, perfect pentru liste dense.
Utilizare
import ProfileCardCompact from "@/components/profile-components/ProfileCardCompact";
const profile: ProfileData = {
firstName: "Anna",
lastName: "Lee",
profilePicture: "/avatar.jpg",
title: "Frontend Developer",
};
<ProfileCardCompact profile={profile} />- Variantă compactă, optimizată pentru spațiu.
- Layout orizontal, poza mică (w-12 h-12).
- Perfect pentru liste dense sau sidebar-uri.
ProfileGrid
Grid de profile cards. Suportă customizare completă a coloanelor, gap-ului și tipului de card folosit. Perfect pentru pagini de echipă.

John Doe
CEO

Jane Smith
CTO

Mike Johnson
Designer
Grid de profile cards cu 3 coloane responsive.
Utilizare
import ProfileGrid from "@/components/profile-components/ProfileGrid";
import ProfileCardWithTitle from "@/components/profile-components/ProfileCardWithTitle";
const profiles: ProfileData[] = [
{ firstName: "John", lastName: "Doe", profilePicture: "/avatar1.jpg", title: "CEO" },
{ firstName: "Jane", lastName: "Smith", profilePicture: "/avatar2.jpg", title: "CTO" },
];
<ProfileGrid
profiles={profiles}
columnsClass="grid-cols-1 sm:grid-cols-2 lg:grid-cols-3"
gapClass="gap-6"
cardComponent={ProfileCardWithTitle}
/>profiles— array de obiecte ProfileData (obligatoriu).columnsClass— clase Tailwind pentru coloane (implicit:grid-cols-1 sm:grid-cols-2 lg:grid-cols-3).gapClass— spațiere între cards (implicit:gap-6).cardComponent— componenta de card de folosit (implicit:ProfileCard).
ProfileList
Listă verticală de profile cards. Suportă customizare completă a gap-ului și tipului de card folosit. Perfect pentru sidebar-uri sau liste de membri.

John Doe
CEO

Jane Smith
CTO

Mike Johnson
Designer
Listă verticală de profile cards.
Utilizare
import ProfileList from "@/components/profile-components/ProfileList";
import ProfileCardWithTitle from "@/components/profile-components/ProfileCardWithTitle";
const profiles: ProfileData[] = [...];
<ProfileList
profiles={profiles}
gapClass="gap-4"
cardComponent={ProfileCardWithTitle}
/>profiles— array de obiecte ProfileData (obligatoriu).gapClass— spațiere între cards (implicit:gap-4).cardComponent— componenta de card de folosit (implicit:ProfileCard).
AddressCard
Componente pentru afișarea adreselor (acasă, birou, livrare, facturare). Suportă multiple adrese, adresă implicită, și layout-uri flexibile.
Strada Exemplu, Nr. 123
București, București 010001
România
Adresă simplă cu badge pentru adresă implicită.
Strada Exemplu, Nr. 123
București, București 010001
România
Bd. Unirii, Nr. 45
Cluj-Napoca 400001
România
Calea Victoriei, Nr. 78
Timișoara 300001
România
Listă de adrese în grid, perfect pentru pagini de setări sau e-commerce.
Utilizare
import AddressCard from "@/components/profile-components/AddressCard";
import AddressCardList from "@/components/profile-components/AddressCardList";
const address: Address = {
type: "home", // "home" | "work" | "shipping" | "billing" | "other"
label: "Adresă de acasă",
street: "Strada Exemplu, Nr. 123",
city: "București",
state: "București",
zipCode: "010001",
country: "România",
isDefault: true,
};
<AddressCard address={address} />
// Sau pentru multiple adrese
<AddressCardList
addresses={[address1, address2]}
columnsClass="grid-cols-1 md:grid-cols-2"
gapClass="gap-4"
/>type— tipul adresei:home|work|shipping|billing|other.isDefault— marchează adresa ca implicită (afișează badge).label— etichetă custom (opțional, folosește type dacă nu este setat).
Achievements
Componente pentru afișarea achievements-urilor. Suportă variante multiple: listă simplă, listă detaliată, timeline, și grid. Perfect pentru platforme gamificate sau portofolii.
Listă simplă de achievements, layout compact.
Listă detaliată cu toate informațiile, perfect pentru pagini de profil.
Timeline de achievements, perfect pentru istoric cronologic.
Grid de achievements, perfect pentru pagini de echipă sau showcase.
Utilizare
import AchievementsList from "@/components/profile-components/AchievementsList";
import AchievementsGrid from "@/components/profile-components/AchievementsGrid";
const achievements: Achievement[] = [
{
title: "Game of the Year",
description: "Awarded for...",
icon: "🏆",
date: "2023-12-15",
badge: "Gold",
},
];
// Listă simplă
<AchievementsList achievements={achievements} variant="simple" />
// Listă detaliată
<AchievementsList achievements={achievements} variant="detailed" />
// Timeline
<AchievementsList achievements={achievements} variant="timeline" />
// Grid
<AchievementsGrid achievements={achievements} />variant— pentru AchievementsList:simple|detailed|timeline.showDate— afișează data achievement-ului (implicit:true).- AchievementsGrid suportă customizare completă a coloanelor și gap-ului.
Skills
Componente pentru afișarea skills-urilor. Suportă variante multiple: badge-uri, progress bars, listă, și grid. Perfect pentru portofolii de dezvoltatori sau pagini de echipă.
Skills ca badge-uri, perfect pentru layout-uri compacte.
Skills cu progress bars, perfect pentru afișarea nivelului de competență.
Grid de skills cu progress bars, perfect pentru pagini de profil detaliate.
Utilizare
import SkillsList from "@/components/profile-components/SkillsList";
import SkillsGrid from "@/components/profile-components/SkillsGrid";
const skills: Skill[] = [
{ name: "React", level: 95, category: "Frontend" },
{ name: "TypeScript", level: 90, category: "Frontend" },
];
// Badge-uri
<SkillsList skills={skills} variant="badges" />
// Progress bars
<SkillsList skills={skills} variant="bars" />
// Listă
<SkillsList skills={skills} variant="list" />
// Grid
<SkillsGrid skills={skills} />variant— pentru SkillsList:badges|bars|list.level— nivelul de competență (0-100, opțional).category— categoria skill-ului (opțional).- SkillsGrid suportă customizare completă a coloanelor și gap-ului.
Portfolio
Componente pentru afișarea portofoliului/CV-ului. Suportă grid și listă, cu imagini, descrieri, tag-uri și link-uri. Perfect pentru portofolii de dezvoltatori, designeri sau freelanceri.

E-commerce Platform
Full-stack e-commerce solution with React, Node.js, and PostgreSQL


Data Analytics Dashboard
Real-time analytics dashboard with data visualization
Grid de portofoliu, perfect pentru showcase de proiecte.

E-commerce Platform
Full-stack e-commerce solution with React, Node.js, and PostgreSQL

Mobile App Design
UI/UX design for fitness tracking mobile application

Data Analytics Dashboard
Real-time analytics dashboard with data visualization
Listă de portofoliu, perfect pentru pagini de profil detaliate.
Utilizare
import PortfolioGrid from "@/components/profile-components/PortfolioGrid";
import PortfolioList from "@/components/profile-components/PortfolioList";
const portfolio: PortfolioItem[] = [
{
title: "E-commerce Platform",
description: "Full-stack solution...",
image: "/project.jpg",
url: "https://example.com",
tags: ["React", "Node.js"],
date: "2024-01-15",
category: "Web Development",
},
];
<PortfolioGrid items={portfolio} />
<PortfolioList items={portfolio} />image— imagine pentru proiect (opțional).url— link către proiect (opțional, clickable).tags— tag-uri pentru proiect (opțional).category— categoria proiectului (opțional).
CVView
Componentă completă pentru afișarea CV-ului. Include header cu contact info, bio, experiență, educație și skills. Perfect pentru pagini de profil profesionale sau portofolii.
Maria Popescu
Senior Full Stack Developer
Despre
Experienced full stack developer with 8+ years of experience building scalable web applications. Passionate about clean code, best practices, and mentoring junior developers.
Experiență
Senior Full Stack Developer
Tech Solutions • București
Leading development of multiple web applications using React, Node.js, and PostgreSQL.
Full Stack Developer
Startup Inc. • Cluj-Napoca
Developed and maintained web applications using modern JavaScript frameworks.
Educație
Master în Informatică
Universitatea Politehnica • București
Licență în Informatică
Universitatea Politehnica • București
Skills
CV complet cu toate secțiunile, perfect pentru pagini de profil profesionale.
Utilizare
import CVView from "@/components/profile-components/CVView";
const profile: ProfileData = {
firstName: "Maria",
lastName: "Popescu",
title: "Senior Full Stack Developer",
bio: "Experienced developer...",
email: "maria@example.com",
experience: [...],
education: [...],
skills: [...],
};
<CVView
profile={profile}
showExperience={true}
showEducation={true}
showSkills={true}
/>- Layout vertical, perfect pentru pagini de profil profesionale.
- Suportă toate secțiunile: header, bio, experiență, educație, skills.
- Fiecare secțiune poate fi activată/dezactivată individual.
BioExtended
Componente pentru bio extins. Suportă variante multiple: simplu, cu secțiuni, și timeline. Perfect pentru pagini de despre sau profiluri detaliate.
Despre
Passionate about creating beautiful and functional user experiences. With over 10 years of experience in design and development, I've worked with teams from startups to Fortune 500 companies. I believe in the power of design to solve complex problems and create meaningful connections between users and products.
Bio simplu, formatat cu whitespace-pre-line pentru păstrarea liniilor.
Despre
Passionate about creating beautiful and functional user experiences. With over 10 years of experience in design and development, I've worked with teams from startups to Fortune 500 companies. I believe in the power of design to solve complex problems and create meaningful connections between users and products.
Experiență
Am lucrat cu echipe diverse, de la startup-uri la companii Fortune 500, creând soluții inovatoare și centrate pe utilizator.
Filosofie
Cred în puterea design-ului de a rezolva probleme complexe și de a crea conexiuni semnificative între utilizatori și produse.
Viitor
Continuu să explorez tehnologii noi și să învăț din fiecare proiect, cu scopul de a crea experiențe digitale excepționale.
Bio cu secțiuni separate, perfect pentru organizarea conținutului extins.
Despre
Passionate about creating beautiful and functional user experiences. With over 10 years of experience in design and development, I've worked with teams from startups to Fortune 500 companies. I believe in the power of design to solve complex problems and create meaningful connections between users and products.
Experiență
Am lucrat cu echipe diverse, de la startup-uri la companii Fortune 500, creând soluții inovatoare și centrate pe utilizator.
Filosofie
Cred în puterea design-ului de a rezolva probleme complexe și de a crea conexiuni semnificative între utilizatori și produse.
Viitor
Continuu să explorez tehnologii noi și să învăț din fiecare proiect, cu scopul de a crea experiențe digitale excepționale.
Bio cu timeline, perfect pentru prezentarea unei evoluții sau istoric.
Utilizare
import BioExtended from "@/components/profile-components/BioExtended";
const bio = "Passionate about creating...";
const sections = [
{ title: "Experiență", content: "Am lucrat cu..." },
{ title: "Filosofie", content: "Cred în..." },
];
// Simplu
<BioExtended bio={bio} variant="simple" />
// Cu secțiuni
<BioExtended bio={bio} variant="with-sections" sections={sections} />
// Timeline
<BioExtended bio={bio} variant="timeline" sections={sections} />variant— variantă:simple|with-sections|timeline.sections— array de secțiuni cu title și content (opțional, pentru with-sections și timeline).- Variantă simplă păstrează formatarea textului (whitespace-pre-line).