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

John Doe

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

John Doe

John Doe

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

John Doe

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

Jane Smith

Senior Software Engineer

Tech Company Inc.

Profile card cu titlu și companie, layout centrat, cu gradient background.

Jane Smith

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

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ță.

ProfileCardWithSocial

Profile card cu poza, nume, titlu și link-uri sociale. Perfect pentru pagini de portofoliu sau carduri de echipă cu social media.

Sarah Williams

Sarah Williams

Marketing Director

Profile card cu social links, layout centrat, cu gradient background.

Utilizare

import ProfileCardWithSocial from "@/components/profile-components/ProfileCardWithSocial";

const profile: ProfileData = {
  firstName: "Sarah",
  lastName: "Williams",
  profilePicture: "/avatar.jpg",
  title: "Marketing Director",
  socialLinks: [
    { platform: "twitter", url: "https://twitter.com/sarah" },
    { platform: "linkedin", url: "https://linkedin.com/in/sarah" },
    { platform: "github", url: "https://github.com/sarah" },
  ],
};

<ProfileCardWithSocial profile={profile} />
  • socialLinks — array de obiecte cu platform și URL (opțional).
  • Platforme suportate: twitter, linkedin, github, facebook, instagram, youtube, website, email.
  • Link-urile se deschid într-un tab nou și au hover effects.

ProfileCardWithStats

Profile card cu poza, nume, titlu și statistici. Perfect pentru platforme sociale sau portofolii cu metrici.

Mike Chen

Mike Chen

Data Scientist

42
Projects
1.2K
Followers
350
Following

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

Lisa Anderson

Business Consultant

📍București, România

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.

Alex Martinez

Alex Martinez

Creative Director

Design Studio

Passionate about creating beautiful and meaningful experiences through design. Love working with talented teams to bring ideas to life.

Hero section pentru profile page, layout responsive.

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

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.

Ryan Garcia

Ryan Garcia

Software Architect

Tech Corp

Building scalable systems and mentoring teams. Passionate about clean code and best practices.

Profile card cu layout centrat, elegant.

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

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.

📍Cluj-Napoca, România
12
Products
50K+
Users
5
Years
Product StrategyUser ResearchData AnalysisAgile

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

Tom Roberts

Senior Developer

Software Inc.

Experienced developer with expertise in modern web technologies. Passionate about building scalable applications and mentoring junior developers.

📍Timișoara, România
28
Projects
1.5K
Contributions
8
Years

Skills

ReactTypeScriptNode.jsAWSDocker

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

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

John Doe

CEO

Jane Smith

Jane Smith

CTO

Mike Johnson

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

John Doe

CEO

Jane Smith

Jane Smith

CTO

Mike Johnson

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.

📍Adresă de acasăImplicit

Strada Exemplu, Nr. 123

București, București 010001

România

Adresă simplă cu badge pentru adresă implicită.

📍Adresă de acasăImplicit

Strada Exemplu, Nr. 123

București, București 010001

România

📍Birou

Bd. Unirii, Nr. 45

Cluj-Napoca 400001

România

📍Adresă de livrare

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.

🏆
Game of the Year 2023
Awarded for outstanding game design and innovation
📱
100K Downloads
Reached milestone in first month after launch
Top Rated
4.9/5 stars on app store with 10K+ reviews
🎨
Best UI/UX
Recognized for exceptional user experience design

Listă simplă de achievements, layout compact.

🏆
Game of the Year 2023
Awarded for outstanding game design and innovation
📅 15.12.2023Gold
📱
100K Downloads
Reached milestone in first month after launch
📅 20.11.2023Milestone
Top Rated
4.9/5 stars on app store with 10K+ reviews
📅 10.10.2023
🎨
Best UI/UX
Recognized for exceptional user experience design
📅 05.09.2023Award

Listă detaliată cu toate informațiile, perfect pentru pagini de profil.

🏆
Game of the Year 2023
Awarded for outstanding game design and innovation
decembrie 2023
📱
100K Downloads
Reached milestone in first month after launch
noiembrie 2023
Top Rated
4.9/5 stars on app store with 10K+ reviews
octombrie 2023

Timeline de achievements, perfect pentru istoric cronologic.

🏆
Game of the Year 2023
Awarded for outstanding game design and innovation
dec. 2023Gold
📱
100K Downloads
Reached milestone in first month after launch
nov. 2023Milestone
Top Rated
4.9/5 stars on app store with 10K+ reviews
oct. 2023
🎨
Best UI/UX
Recognized for exceptional user experience design
sept. 2023Award

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ă.

React95%
TypeScript90%
Node.js85%
Python80%
AWS75%
Docker70%
PostgreSQL85%
MongoDB75%

Skills ca badge-uri, perfect pentru layout-uri compacte.

React
95%
TypeScript
90%
Node.js
85%
Python
80%
AWS
75%

Skills cu progress bars, perfect pentru afișarea nivelului de competență.

React
95%
TypeScript
90%
Node.js
85%
Python
80%
AWS
75%
Docker
70%
PostgreSQL
85%
MongoDB
75%

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
Web Development

E-commerce Platform

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

ian. 2024
ReactNode.js
Mobile App Design
Design

Mobile App Design

UI/UX design for fitness tracking mobile application

dec. 2023
UI/UXFigma
Data Analytics Dashboard
Data Science

Data Analytics Dashboard

Real-time analytics dashboard with data visualization

nov. 2023
ReactD3.js

Grid de portofoliu, perfect pentru showcase de proiecte.

E-commerce Platform
Web Development

E-commerce Platform

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

15 ianuarie 2024
ReactNode.jsPostgreSQL
Mobile App Design
Design

Mobile App Design

UI/UX design for fitness tracking mobile application

20 decembrie 2023
UI/UXFigmaDesign
Data Analytics Dashboard
Data Science

Data Analytics Dashboard

Real-time analytics dashboard with data visualization

10 noiembrie 2023
ReactD3.jsPython

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

✉️ maria@example.com📞 +40 123 456 789📍 București, România

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

2020-01 - Prezent

Leading development of multiple web applications using React, Node.js, and PostgreSQL.

Full Stack Developer

Startup Inc. • Cluj-Napoca

2018-06 - 2019-12

Developed and maintained web applications using modern JavaScript frameworks.

Educație

Master în Informatică

Universitatea Politehnica • București

2016 - 2018

Licență în Informatică

Universitatea Politehnica • București

2012 - 2016

Skills

React (95%)TypeScript (90%)Node.js (85%)PostgreSQL (80%)

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).