“Produsul ne-a redus timpul de dezvoltare la jumătate.”
Home Page Components
Colecție de componente pentru pagina de "Acasă" în proiecte Next.js + TailwindCSS. Exemple live + explicații de utilizare.
MinimalistHero
Hero „curat”, full-bleed, cu fundal flexibil: color, gradient, image sau video. Conținutul este trecut ca children, iar înălțimea se controlează prin prop-ul height (ex. min-h-[60vh]).
Solid Color Hero
Fundal simplu, setat printr-o culoare hex/RGB/HSL.
Variantă cu fundal solid (hex).
Gradient Hero
Folosește clase Tailwind direct în backgroundValue.
Gradient dinamic, via Tailwind.
Image Hero
Imagine de fundal cu overlay subtil pentru contrast mai bun.
Fundal imagine + overlay (tint).
Video Hero
Videoclip pe fundal (autoplay, muted, loop) și un gradient pentru lizibilitate.
Fundal video (sursă gratuită Pinterest).
Utilizare
import MinimalistHero from "@/components/home-components/MinimalistHero";
/** 1) Solid color */
<MinimalistHero
backgroundType="color"
backgroundValue="#111827"
height="min-h-[60vh]"
className="text-white"
>
<h1 className="text-4xl md:text-5xl font-bold">Solid Color Hero</h1>
<p className="mt-3 text-lg text-white/80">Fundal simplu, setat prin culoare.</p>
</MinimalistHero>
/** 2) Gradient (Tailwind classes) */
<MinimalistHero
backgroundType="gradient"
backgroundValue="bg-gradient-to-r from-yellow-500 via-pink-500 to-purple-600"
height="min-h-[60vh]"
className="text-white"
>
<h1 className="text-4xl md:text-5xl font-bold">Gradient Hero</h1>
<p className="mt-3 text-lg text-white/90">Clasa Tailwind în backgroundValue.</p>
</MinimalistHero>
/** 3) Image + overlay */
<MinimalistHero
backgroundType="image"
backgroundValue="/bgimagetest.png"
height="min-h-[60vh]"
className="text-white"
overlay="tint"
/>
<h1 className="text-4xl md:text-5xl font-bold">Image Hero</h1>
<p className="mt-3 text-lg text-white/90">Overlay de tip 'tint' pentru contrast.</p>
</MinimalistHero>
/** 4) Video + overlay gradient */
<MinimalistHero
backgroundType="video"
backgroundValue="https://v1.pinimg.com/videos/mc/hls/fd/4b/dd/fd4bdd2ab0f900b2222badaf0bb5b236.m3u8"
height="min-h-[60vh]"
className="text-white"
overlay="gradient"
>
<h1 className="text-4xl md:text-5xl font-bold">Video Hero</h1>
<p className="mt-3 text-lg text-white/90">Autoplay + gradient pentru lizibilitate.</p>
</MinimalistHero>backgroundType—color|gradient|image|video.backgroundValue— culoare/ clase Tailwind / URL imagine / URL video.height— clase Tailwind pentru înălțime (ex.min-h-[60vh],h-[500px]).overlay— opțional:none|tint|gradient(îmbunătățește contrastul).className— stiluri pentru conținutul interior (ex.text-white).
HeroWithOneSection
Un hero flexibil cu un singur bloc de conținut. Fundalul poate fi color, gradient, image sau video. Controlezi poziția conținutului, un background local (glass/gradient/color), media (imagine/video) și butoane complet personalizabile (padding, rounded, text size, border, culori).
Build fast. Ship beautiful.
Componenta de hero 100% dinamică: poziții, butoane, media, overlay și content-box cu stil.
Gradient + content box „glass” și butoane preset.
Design that feels effortless
Overlay tip 'tint' pentru contrast. Poți adăuga o imagine laterală în conținut.
Imagine de fundal + overlay „tint”, content box gradient + media.
Motion elevates your story
Fundal video (autoplay, muted, loop) cu overlay gradient pentru lizibilitate.
Video + overlay gradient. Conținut minimalist, focus pe mesaj.
From idea to product
Schelet puternic: poziții, textColor, content-bg, media, butoane — toate controlabile din props.
Culoare solidă + content box color transparent.
Utilizare
import HeroWithOneSection from "@/components/home-components/HeroWithOneSection";
/** Gradient + glass + centered */
<HeroWithOneSection
backgroundType="gradient"
backgroundValue="bg-gradient-to-r from-indigo-600 via-violet-600 to-fuchsia-600"
overlay="none"
height="min-h-[65vh]"
contentPosition="center-center"
title="Build fast. Ship beautiful."
subtitle="Componenta de hero 100% dinamică."
textColorClass="text-white"
contentBgType="glass"
contentPaddingClass="p-8 sm:p-10"
contentRoundedClass="rounded-2xl"
buttons={[
{ label: "Get started", href: "/get-started", variant: "primary", paddingClass: "px-5 py-2.5", roundedClass: "rounded-lg" },
{ label: "Docs", href: "/docs", variant: "secondary", paddingClass: "px-4 py-2", roundedClass: "rounded-lg" },
]}
/>
/** Image + tint overlay + left aligned + media */
<HeroWithOneSection
backgroundType="image"
backgroundValue="/bgimagetest.png"
overlay="tint"
height="min-h-[65vh]"
contentPosition="center-left"
title="Design that feels effortless"
subtitle="Overlay pentru contrast + media imagine."
textColorClass="text-white"
contentBgType="gradient"
contentBgValue="bg-gradient-to-r from-black/60 via-black/30 to-transparent"
contentPaddingClass="p-8"
contentRoundedClass="rounded-2xl"
media={{ type: "image", src: "/softeneerscool.png", alt: "Softeneers", className: "h-20 w-20 rounded-xl object-contain" }}
buttons={[
{ label: "Explore", href: "/features", variant: "primary", paddingClass: "px-5 py-2.5", roundedClass: "rounded-lg" },
{ label: "Learn more", href: "/about", variant: "ghost", paddingClass: "px-4 py-2", roundedClass: "rounded-lg", borderClass: "border border-white/30" },
]}
/>
/** Video + gradient overlay + centered */
<HeroWithOneSection
backgroundType="video"
backgroundValue="https://v1.pinimg.com/videos/mc/hls/fd/4b/dd/fd4bdd2ab0f900b2222badaf0bb5b236.m3u8"
overlay="gradient"
height="min-h-[65vh]"
contentPosition="center-center"
title="Motion elevates your story"
subtitle="Fundal video (autoplay, muted, loop)."
textColorClass="text-white"
contentBgType="none"
buttons={[
{ label: "Watch demo", href: "/demo", variant: "ghost", paddingClass: "px-5 py-2.5", roundedClass: "rounded-full", borderClass: "border border-white/30" },
]}
/>
/** Solid color + right aligned + content color box */
<HeroWithOneSection
backgroundType="color"
backgroundValue="bg-neutral-950"
height="min-h-[60vh]"
contentPosition="center-right"
title="From idea to product"
subtitle="Control total din props."
textColorClass="text-white"
contentBgType="color"
contentBgValue="bg-white/10"
contentPaddingClass="p-8"
contentRoundedClass="rounded-xl"
buttons={[
{ label: "Changelog", href: "/changelog", variant: "secondary", paddingClass: "px-4 py-2", roundedClass: "rounded-md" },
]}
/>backgroundType—color|gradient|image|video.backgroundValue— culoare / clase Tailwind / URL imagine / URL video.overlay—none|tint|gradient(pentru contrast mai bun).contentPosition— una dintre:top|center|bottom×left|center|right.contentBgType—none|glass|color|gradient(+contentBgValue).buttons[].variant—primary|secondary|ghost|custom; poți suprascrie cu padding/rounded/text/bg/border.- Implicit textul este alb (
text-white), dar îl poți schimba cutextColorClass.
HeroWithTwoSections
Hero flexibil cu două secțiuni (alăturate pe desktop, stivuite pe mobil). Fiecare secțiune poate avea titlu, subtitlu, media (imagine/video) și o listă de butoane complet configurabile. Fundalul suportă image/ video/ color/ gradient, cu overlay opțional tint sau gradient.

Fundal imagine + overlay gradient; secțiunea stângă cu efect glass.
Live preview
See it in action
Fundal video + overlay tint; pe desktop, ordinea secțiunilor este inversată.
Powered by Next.js
Optimized for performance
Fundal solid; culori diferite per secțiune + box subtil pe dreapta.
Utilizare
import HeroWithTwoSections from "@/components/home-components/HeroWithTwoSections";
/** 1) Image background + gradient overlay */
<HeroWithTwoSections
backgroundType="image"
backgroundValue="/bgimagetest.png"
overlay="gradient"
height="min-h-[70vh]"
sectionGapClass="gap-10 md:gap-16"
left={{
title: "Build faster",
subtitle: "Ship UI in hours, not weeks.",
buttons: [
{ label: "Get started", href: "/get-started", variant: "primary" },
{ label: "Docs", href: "/docs", variant: "ghost" },
],
textColorClass: "text-white",
contentBgType: "glass",
align: "left",
}}
right={{
media: { type: "image", src: "/softeneerscool.png", alt: "Softeneers", className: "h-36 w-36" },
title: "Softeneers Framework",
subtitle: "Next.js + Tailwind components",
textColorClass: "text-white",
align: "center",
}}
/>
/** 2) Video background + tint overlay, reverse on desktop */
<HeroWithTwoSections
backgroundType="video"
backgroundValue="https://v1.pinimg.com/videos/mc/hls/fd/4b/dd/fd4bdd2ab0f900b2222badaf0bb5b236.m3u8"
overlay="tint"
height="min-h-[65vh]"
reverseOnDesktop
left={{
title: "Design beautifully",
subtitle: "New themes, faster workflow",
buttons: [{ label: "Try it", href: "/try", variant: "secondary" }],
textColorClass: "text-white",
align: "right",
}}
right={{
media: { type: "video", src: "/demo-loop.mp4" },
title: "Live preview",
subtitle: "See it in action",
textColorClass: "text-white",
align: "center",
}}
/>
/** 3) Solid color background + per-section colors */
<HeroWithTwoSections
backgroundType="color"
backgroundValue="bg-neutral-950"
height="min-h-[60vh]"
sectionGapClass="gap-8 md:gap-12"
left={{
title: "All-in-one UI kit",
subtitle: "A curated set of building blocks",
textColorClass: "text-white",
buttons: [{ label: "Explore", href: "/components", variant: "primary" }],
align: "left",
}}
right={{
title: "Powered by Next.js",
subtitle: "Optimized for performance",
textColorClass: "text-white/90",
contentBgType: "color",
contentBgValue: "bg-white/5",
align: "center",
}}
/>backgroundType—color|gradient|image|video.backgroundValue— culoare / clase Tailwind / URL imagine / URL video.overlay— opțional:none|tint|gradient.height— înălțime (ex.min-h-[70vh],75vh).left/right— conținutul pentru fiecare secțiune (titlu, subtitlu, media, butoane etc.).sectionGapClass— controlează spațiul dintre cele două secțiuni.reverseOnDesktop— inversează ordinea secțiunilor pe desktop.
AboutCard
Secțiune „About” pe card: imagine, titlu și descriere într-un card responsiv. Poți personaliza ușor culorile de fundal ale secțiunii și cardului, respectiv culoarea textului.

Who we are
Construim componente rapide, accesibile și elegante. Scopul nostru: DX excelent și livrare rapidă.
Varianta implicită (light): secțiune gri deschis, card alb, text întunecat.

Our mission
Să te ajutăm să livrezi UI impecabil în ore, nu săptămâni. Focus pe calitate și productivitate.
Secțiune dark + card alb pentru contrast clar; textul secțiunii este întunecat.

What we do
Componente Next.js + Tailwind cu API clar, preseturi bune și flexibilitate totală.
Secțiune și card colorate (Amber) — utile pentru pagini cu identitate puternică.
Utilizare
import AboutCard from "@/components/home-components/AboutCard";
/** 1) Implicit (light) */
<AboutCard
title="Who we are"
description="Construim componente rapide, accesibile și elegante."
imageUrl="/bgimagetest.png"
/>
/** 2) Dark section + white card */
<AboutCard
title="Our mission"
description="UI impecabil în ore, nu săptămâni."
imageUrl="/bgimagetest.png"
bgColor="bg-neutral-950"
textColor="text-black"
cardColor="bg-white"
/>
/** 3) Colored section + colored card */
<AboutCard
title="What we do"
description="Next.js + Tailwind, API clar și flexibil."
imageUrl="/softeneerscool.png"
bgColor="bg-amber-50"
textColor="text-amber-900"
cardColor="bg-amber-100"
/>title— titlul cardului (obligatoriu).description— descrierea cardului (obligatoriu).imageUrl— URL imagine afișată în header-ul cardului (obligatoriu).bgColor— culoarea de fundal a secțiunii (Tailwind class sau hex) — implicitbg-gray-50.textColor— culoarea textului (Tailwind class) — implicittext-gray-900.cardColor— culoarea cardului — implicitbg-white.
AboutCentered
Secțiune „About” centrată, cu titlu, subtitlu, descriere și imagine. Suportă culori custom pentru fundal, titlu și subtitlu, inclusiv clase Tailwind (ex. bg-neutral-950, text-white) sau valori custom (hex/RGB pentru bg via clase utilitare).
About us
Who we are
Construim experiențe UI rapide și plăcute, cu unelte moderne și atenție la detaliu.

Variantă light cu paleta implicită.
Our mission
Crafted for speed
Componente tip-safe, accesibile, ușor de compus. Focus pe DX și performanță.

Variantă dark (fundal închis + text alb).
Principles
Design that scales
Sisteme de design flexibile, reutilizabile, adaptate pentru echipe mici și mari.

Fundal gradient (clase Tailwind).
Utilizare
import AboutCentered from "@/components/home-components/AboutCentered";
// Light
<AboutCentered
title="Who we are"
subtitle="About us"
description="Construim experiențe UI rapide și plăcute, cu unelte moderne și atenție la detaliu."
imageSrc="/softeneerscool.png"
bgColor="bg-white"
textColor="text-gray-900"
subtitleColor="text-indigo-600"
/>
// Dark
<AboutCentered
title="Crafted for speed"
subtitle="Our mission"
description="Componente tip-safe, accesibile, ușor de compus. Focus pe DX și performanță."
imageSrc="/bgimagetest.png"
bgColor="bg-neutral-950"
textColor="text-white"
subtitleColor="text-amber-400"
/>
// Gradient
<AboutCentered
title="Design that scales"
subtitle="Principles"
description="Sisteme de design flexibile, reutilizabile, adaptate pentru echipe mici și mari."
imageSrc="/softeneerscool.png"
bgColor="bg-gradient-to-r from-indigo-600 via-violet-600 to-fuchsia-600"
textColor="text-white"
subtitleColor="text-white"
/>title,subtitle,description— conținutul textual.imageSrc— URL-ul imaginii (optimizat cunext/imageîn componentă).bgColor— clasa Tailwind pentru fundal (ex.bg-white,bg-neutral-950,bg-gradient-to-r ...).textColor— clasa pentru titlu (ex.text-white).subtitleColor— clasa pentru subtitlu (ex.text-indigo-600).
AboutSplit
Secțiune About împărțită în două coloane (imagine + conținut). Complet dinamic: poți controla culorile de fundal și text, titlul, subtitlul, descrierea, imaginea și CTA-ul — inclusiv ctaBgColor și ctaHoverBgColor pentru buton.

Who we are
About Softeneers
Construim componente Next.js + Tailwind rapide, accesibile și ușor de personalizat. Scopul nostru: time-to-ship cât mai mic.
Varianta light cu setările implicite.

Performance-first
Built for speed
Arhitectură atent gândită, styling previzibil și API de props coerent. Integrezi rapid, scalezi ușor.
Varianta dark (fundal & text controlate din props) + CTA custom.

Modern UX
Design that feels effortless
Componente cu layout-uri prietenoase, care se adaptează pe orice device. Poți porni de la preset-uri și ajusta progresiv.
Fundal gradient (Tailwind) + text alb + CTA transparent.
Utilizare
import AboutSplit from "@/components/home-components/AboutSplit";
/** Light */
<AboutSplit
title="About Softeneers"
subtitle="Who we are"
description="Construim componente Next.js + Tailwind rapid personalizabile."
imageSrc="/softeneerscool.png"
ctaText="Learn more"
onCtaClick={() => alert('CTA clicked')}
bgColor="bg-white"
textColor="text-gray-900"
subtitleColor="text-indigo-600"
ctaBgColor="bg-indigo-600"
ctaHoverBgColor="hover:bg-indigo-700"
/>
/** Dark */
<AboutSplit
title="Built for speed"
subtitle="Performance-first"
description="Arhitectură atent gândită, styling previzibil și API coerent."
imageSrc="/bgimagetest.png"
ctaText="Get started"
onCtaClick={() => console.log('Start')}
bgColor="bg-neutral-950"
textColor="text-white"
subtitleColor="text-amber-400"
ctaBgColor="bg-amber-500"
ctaHoverBgColor="hover:bg-amber-600"
/>
/** Gradient */
<AboutSplit
title="Design that feels effortless"
subtitle="Modern UX"
description="Layout-uri prietenoase, adaptabile, preset-uri ușor de extins."
imageSrc="/bgimagetest.png"
ctaText="Explore components"
onCtaClick={() => console.log('Explore')}
bgColor="bg-gradient-to-r from-indigo-600 via-violet-600 to-fuchsia-600"
textColor="text-white"
subtitleColor="text-white/90"
ctaBgColor="bg-white/20"
ctaHoverBgColor="hover:bg-white/30"
/>title/subtitle/description— texte de conținut.imageSrc— imaginea din coloana stângă.ctaText+onCtaClick— textul butonului și handler-ul.bgColor/textColor/subtitleColor— clase Tailwind pentru temă.ctaBgColor/ctaHoverBgColor— stilizarea butonului (fundal + stare hover).
ContactFormCard
Card de contact simplu, cu validare de bază și stare de încărcare. Nu trimite emailuri în mod real; simulează trimiterea pentru a demonstra fluxul de succes și eroare. Textele, culorile pentru text și fundalurile (container & card) pot fi personalizate din props.
Contactează-ne
Completează formularul de mai jos și te vom contacta în cel mai scurt timp.
Variantă implicită în limba română.
Get in touch
Fill in the form and we will reach back shortly.
Etichete și mesaje în limba engleză.
Suport & Întrebări
Completează câmpurile de mai jos cu cât mai multe detalii. Echipa noastră analizează fiecare solicitare și revine cu un răspuns în cel mai scurt timp posibil.
Copii mai lungi pentru a verifica înălțimea cardului și wrappingul.
Contact Sales
Let us know what you need and we’ll reach out.
Exemplu cu titleColor, descriptionColor, labelColor și inputTextColor.
Suport nocturn
Scrie-ne oricând. Răspundem rapid.
Exemplu cu containerBgColor și cardBgColor.
Utilizare
import ContactFormCard from "@/components/home-components/ContactFormCard";
/** Varianta implicită (RO) */
<ContactFormCard />
/** Etichete și mesaje ENG */
<ContactFormCard
title="Get in touch"
description="Fill in the form and we will reach back shortly."
nameLabel="Name"
emailLabel="Email"
messageLabel="Your message"
submitLabel="Send"
successMessage="Your message was sent successfully!"
errorMessage="Something went wrong. Please try again."
/>
/** Mesaje mai lungi */
<ContactFormCard
title="Suport & Întrebări"
description="Completează câmpurile cu cât mai multe detalii. Revenim rapid."
submitLabel="Trimite mesajul"
successMessage="Mulțumim! Am înregistrat mesajul."
errorMessage="A apărut o eroare. Încearcă din nou."
/>
/** Culori personalizate pentru text */
<ContactFormCard
title="Contact Sales"
description="Let us know what you need and we’ll reach out."
titleColor="text-indigo-700"
descriptionColor="text-slate-600"
labelColor="text-slate-700"
inputTextColor="text-slate-900"
/>
/** Fundaluri personalizate (container & card) */
<ContactFormCard
title="Suport nocturn"
description="Scrie-ne oricând. Răspundem rapid."
containerBgColor="bg-slate-900"
cardBgColor="bg-slate-800"
titleColor="text-white"
descriptionColor="text-slate-300"
labelColor="text-slate-300"
inputTextColor="text-white"
/>title— titlul formularului.description— descriere scurtă deasupra formularului.nameLabel,emailLabel,messageLabel— etichete pentru câmpuri.submitLabel— textul butonului de trimitere.successMessage/errorMessage— mesaje afișate după submit (simulat).titleColor,descriptionColor— clase Tailwind pentru culorile titlului și descrierii.labelColor— clasă Tailwind pentru culoarea etichetelor câmpurilor.inputTextColor— clasă Tailwind pentru culoarea textului din input/textarea.containerBgColor— clasă Tailwind pentru fundalul containerului exterior.cardBgColor— clasă Tailwind pentru fundalul cardului.
Notă: componenta simulează trimiterea (timeout de ~1.2s). Integrarea reală cu un backend (ex. API route, webhook) nu este inclusă.
ContactFormCentered
Formular de contact centrat, simplu și responsiv. Toate culorile pot fi personalizate prin props: fundaluri (container & card), texte (titlu, descriere, etichete, input), borduri și inelul de focus, plus butonul (fundal, hover și text).
Variantă implicită (EN) cu stiluri default.
Etichete în limba română, același stil.
Exemplu dark: fundal container & card, culori texte, borduri, focus și buton.
Preset brand cu accent verde (emerald).
Contrast obișnuit, buton deschis (alb) cu text închis.
Utilizare
import ContactFormCentered from "@/components/home-components/ContactFormCentered";
/** Varianta implicită */
<ContactFormCentered />
/** Etichete RO */
<ContactFormCentered
title="Contactează-ne"
description="Completează formularul și revenim în scurt timp."
nameLabel="Nume"
emailLabel="Email"
messageLabel="Mesaj"
buttonText="Trimite"
/>
/** Temă dark */
<ContactFormCentered
title="Suport nocturn"
description="Suntem disponibili și noaptea."
containerBgColor="bg-slate-900"
cardBgColor="bg-slate-800"
titleColor="text-white"
descriptionColor="text-slate-300"
labelColor="text-slate-300"
inputTextColor="text-white"
inputBorderColor="border-slate-600"
inputFocusRingColor="focus:ring-indigo-500"
buttonBgColor="bg-indigo-600"
buttonHoverBgColor="hover:bg-indigo-700"
buttonTextColor="text-white"
/>
/** Temă brand (accent verde) */
<ContactFormCentered
title="Talk to Sales"
description="Tell us about your needs and we’ll reach out."
containerBgColor="bg-emerald-50"
cardBgColor="bg-white"
titleColor="text-emerald-900"
descriptionColor="text-emerald-700"
labelColor="text-emerald-900"
inputTextColor="text-emerald-900"
inputBorderColor="border-emerald-300"
inputFocusRingColor="focus:ring-emerald-500"
buttonBgColor="bg-emerald-600"
buttonHoverBgColor="hover:bg-emerald-700"
buttonTextColor="text-white"
/>title,description— texte de antet.nameLabel,emailLabel,messageLabel— etichete pentru câmpuri.buttonText— textul butonului.containerBgColor/cardBgColor— fundalurile containerului & cardului.titleColor,descriptionColor— culori pentru titlu și descriere.labelColor,inputTextColor— culoarea etichetelor și a textului din input/textarea.inputBorderColor,inputFocusRingColor— control pentru borduri și inelul de focus (Tailwind ring).buttonBgColor,buttonHoverBgColor,buttonTextColor— culorile butonului.
Notă: această componentă nu trimite emailuri; gestionează doar formularul și emite datele în consola browserului. Integrarea reală se face via route API / webhook sau servicii terțe (EmailJS, Resend, etc.).
ContactFormSplit
Secțiune de contact în layout pe două coloane (text + formular). Complet personalizabilă prin props pentru fundaluri (container și card/form), culori de text (stânga, etichete, input), borduri & inel de focus la câmpuri și stiluri de buton (fundal/hover/text). Compatibilă cu Tailwind utilities.
Get in Touch
We'd love to hear from you. Fill out the form and we'll get back to you soon.
Or email us directly at contact@example.com
Variantă implicită cu engleză și culori default.
Hai să discutăm
Spune-ne pe scurt ce ai nevoie și revenim rapid.
Ori scrie-ne direct la contact@example.com
Etichete RO + accent albastru pe buton.
Suport nocturn
Suntem disponibili și după program. Scrie-ne oricând.
Ne poți scrie și la support@example.com
Dark mode: container + form, texte, borduri, focus și buton.
Preset brand cu accent verde (emerald).
Utilizare
import ContactFormSplit from "@/components/home-components/ContactFormSplit";
/** Varianta implicită */
<ContactFormSplit />
/** RO + accent albastru */
<ContactFormSplit
title="Hai să discutăm"
description="Spune-ne pe scurt ce ai nevoie și revenim rapid."
emailLabel="Ori scrie-ne direct la"
nameLabel="Nume"
emailFieldLabel="Email"
messageLabel="Mesaj"
buttonText="Trimite mesajul"
accentColor="bg-blue-600"
buttonTextColor="text-white"
/>
/** Temă dark */
<ContactFormSplit
title="Suport nocturn"
description="Suntem disponibili și după program."
emailLabel="Ne poți scrie și la"
containerBgColor="bg-slate-900"
leftTextColor="text-white"
formBgColor="bg-slate-800"
labelColor="text-slate-300"
inputTextColor="text-white"
inputBorderColor="border-slate-600"
inputFocusRingColor="focus:ring-indigo-500"
accentColor="bg-indigo-600"
buttonTextColor="text-white"
buttonHover="hover:bg-indigo-700"
contactEmail="support@example.com"
/>
/** Temă brand (emerald) */
<ContactFormSplit
title="Talk to Sales"
description="Tell us about your use case and we’ll reach out."
emailLabel="Prefer email?"
containerBgColor="bg-emerald-50"
leftTextColor="text-emerald-900"
formBgColor="bg-white"
labelColor="text-emerald-900"
inputTextColor="text-emerald-900"
inputBorderColor="border-emerald-300"
inputFocusRingColor="focus:ring-emerald-500"
accentColor="bg-emerald-600"
buttonTextColor="text-white"
buttonHover="hover:bg-emerald-700"
contactEmail="sales@example.com"
/>title,description— conținutul din coloana stângă.emailLabel,nameLabel,emailFieldLabel,messageLabel,buttonText— etichete formular.contactEmail— adresa pentru linkul mailto.containerBgColor— fundalul secțiunii;formBgColor— fundalul cardului formular.leftTextColor— culoarea textului din coloana stângă.labelColor,inputTextColor— culorile etichetelor și ale textului în câmpuri.inputBorderColor,inputFocusRingColor— borduri și inelul de focus (Tailwind ring).accentColor— fundalul butonului;buttonTextColor— culoarea textului;buttonHover— efect la hover.
Notă: formularul este static (fără submit real). Integrarea cu backend/servicii de email nu este inclusă aici.
CTASectionCentered
Secțiune de tip Call‑to‑Action centrată, cu titlu, descriere și două butoane. Fundalul și culoarea textului sunt personalizabile prin props (bgColor,textColor). Butoanele folosesc implicit accent albastru; dacă vrei, putem expune și props dedicate pentru culorile butoanelor.
Ready to get started?
Start building your project with us today. Flexible, scalable, and tailored to your needs.
Implicit: fundal alb, text gri închis, butoane blue.
Dark mode: text alb pe fundal slate‑900.
Brand accent pe verde (fundal + text). Butoanele rămân stilul implicit.
New features just dropped
Explore the latest improvements to workflow and performance.
Fundal deschis accesibil cu text închis pentru contrast.
Utilizare
import CTASectionCentered from "@/components/home-components/CTASectionCentered";
/** Varianta implicită */
<CTASectionCentered />
/** Dark mode */
<CTASectionCentered
title="Ready for night mode?"
description="Switch your app to a sleek dark interface."
primaryButtonText="Enable"
secondaryButtonText="Learn more"
bgColor="bg-slate-900"
textColor="text-white"
/>
/** Brand accent (emerald) */
<CTASectionCentered
title="Grow with us"
description="Simple pricing, flexible scaling for teams of any size."
primaryButtonText="Start trial"
secondaryButtonText="See pricing"
bgColor="bg-emerald-50"
textColor="text-emerald-900"
/>title,description— conținutul textului.primaryButtonText/secondaryButtonText— etichetele butoanelor.primaryButtonLink/secondaryButtonLink— destinațiile linkurilor.bgColor,textColor— control pentru fundalul secțiunii și culoarea textului.
Notă: butoanele folosesc implicit albastru pentru accent. Dacă vrei să fie 100% dinamic, pot expune props suplimentare (ex: primaryBtnBg, primaryBtnHover,primaryBtnText, respectiv variante pentru butonul secundar).
CTASectionHero
Secțiune erou (hero) cu CTA, cu layout pe două coloane: text + (opțional) imagine. Culorile fundalului și ale textului sunt controlate prin props (backgroundColor,textColor). Există două acțiuni: primară și secundară (etichetă + link). Stilurile butoanelor pot fi extinse ulterior prin props dedicate, dacă dorești.
Join us today
Ready to take your business to the next level?
Start building your success with our solutions. It's quick, simple, and powerful.
Implicit: fundal indigo, text alb, fără imagine.
Construiește rapid
Scale fără bătăi de cap
Arhitectură modernă, performanță stabilă și integrare ușoară.
Exemplu pe fundal deschis, cu imagine pe dreapta.
Dark mode: contrast ridicat, CTA-uri vizibile.
Go-to-market
Launch faster
From prototype to production with best practices built in.
Preset brand pe verde (emerald).
Utilizare
import CTASectionHero from "@/components/home-components/CTASectionHero";
/** Varianta implicită */
<CTASectionHero />
/** Cu imagine pe fundal deschis */
<CTASectionHero
title="Scale fără bătăi de cap"
subtitle="Construiește rapid"
description="Arhitectură modernă, performanță stabilă și integrare ușoară."
primaryAction={{ label: "Începe acum", href: "#" }}
secondaryAction={{ label: "Află mai multe", href: "#" }}
backgroundColor="bg-white"
textColor="text-gray-900"
imageSrc="https://images.unsplash.com/photo-1521737604893-d14cc237f11d?q=80&w=1200&auto=format&fit=crop"
imageAlt="Hero illustration"
/ >
/** Dark mode */
<CTASectionHero
title="Ready for night mode?"
subtitle="Switch today"
description="A sleek, accessible dark theme for your app."
primaryAction={{ label: "Enable", href: "#" }}
secondaryAction={{ label: "Docs", href: "#" }}
backgroundColor="bg-slate-900"
textColor="text-white"
imageSrc="https://images.unsplash.com/photo-1527443154391-507e9dc6c5cc?q=80&w=1200&auto=format&fit=crop"
imageAlt="Dark UI"
/ >title,subtitle,description— conținutul text.primaryAction/secondaryAction— obiecte cu { label, href }.backgroundColor— fundalul secțiunii;textColor— culoarea textului.imageSrc/imageAlt— imagine opțională în partea dreaptă.
Notă: butoanele folosesc stiluri implicite (primar alb pe fundal închis, secundar cu border alb). Dacă dorești 100% control, pot expune props suplimentare pentru culorile butoanelor (bg/hover/text/border) și actualizăm Docs-ul corespunzător.
CTASectionSplit
Secțiune Call‑to‑Action cu layout pe două coloane: text + imagine. Control prin props pentrubgColor șitextColor, titlu/descriere și buton. Imaginea din dreapta este opțională și se setează cu image.
Implicit: fundal alb, text gri închis, buton albastru.
Fundal gray‑50 cu o imagine de exemplu.
Dark: text alb pe fundal închis.
Preset brand pe verde (emerald), buton implicit albastru.
Utilizare
import CTASectionSplit from "@/components/home-components/CTASectionSplit";
/** Varianta implicită */
<CTASectionSplit />
/** Fundal deschis + imagine */
<CTASectionSplit
title="Build confidently"
description="Modern tooling and best practices out of the box."
buttonText="Start now"
buttonLink="#build"
bgColor="bg-gray-50"
textColor="text-gray-900"
image="https://images.unsplash.com/photo-1515879218367-8466d910aaa4?q=80&w=1200&auto=format&fit=crop"
/>
/** Dark mode */
<CTASectionSplit
title="Switch to dark"
description="Accessible contrast and elegant visuals."
buttonText="Enable dark"
buttonLink="#dark"
bgColor="bg-slate-900"
textColor="text-white"
image="https://images.unsplash.com/photo-1527443154391-507e9dc6c5cc?q=80&w=1200&auto=format&fit=crop"
/>title,description— conținutul text.buttonText/buttonLink— butonul principal.bgColor— fundalul secțiunii;textColor— culoarea textului.image— imaginea din coloana dreaptă (opțională).
Notă: culoarea butonului este albastru implicit. Dacă dorești control total, pot adăuga props suplimentare (ex: buttonBgColor, buttonHoverBgColor,buttonTextColor) și actualizăm Docs.
FeaturesAlternating
Secțiune de feature-uri cu layout alternant media/text. Complet dinamic: suportă imagini sau video, fundal pe secțiune (culoare, gradient, imagine, video) cu overlay, cutie de conținut cu moduri color/gradient/glass, bullets, butoane și aliniere pe fiecare rând.
De ce noi
UI rapid, flexibil și coerent

Performanță
Componente optimizate, fără dependențe inutile.

Accesibilitate
Respectăm bunele practici a11y by default.
Minimalist dark: secțiune închisă, text deschis, fără cutii de conținut.
Cum lucrăm
Proces clar, rezultate previzibile
Varianta light complexă: bullets, butoane, moduri color și glass pe text-box.
Capabilități
Media bogată și fundaluri dinamice

Branding coerent
Culori, gradient, font și spacing controlabile per rând.
Video friendly
Suport pentru video în media sau ca background de secțiune.
Dark v2: background video + overlay gradient, cutii de conținut cu gradient sau tint.
Utilizare
import FeaturesAlternating from "@/components/home-components/FeaturesAlternating";
/** Minimalist dark */
<FeaturesAlternating
heading="De ce noi"
subheading="UI rapid, flexibil și coerent"
backgroundType="color"
backgroundValue="bg-neutral-950"
textColorClass="text-neutral-100"
items=[
{
title: "Performanță",
description: "Componente optimizate, fără dependențe inutile.",
media: { type: "image", src: "/bgimagetest.png" },
},
{
title: "Accesibilitate",
description: "Respectăm bunele practici a11y by default.",
media: { type: "image", src: "/softeneerscool.png" },
},
]
/>
/** Light complex */
<FeaturesAlternating
backgroundType="color"
backgroundValue="bg-white"
textColorClass="text-zinc-900"
items=[
{
title: "Discovery",
media: { type: "image", src: "/bgimagetest.png" },
bullets: [{ label: "Interviuri" }, { label: "Audit" }],
contentBgType: "color",
contentBgValue: "bg-zinc-50",
buttons: [{ label: "Detalii", href: "#", variant: "secondary" }],
},
{
title: "Delivery",
media: { type: "video", src: "/showreel.mp4" },
contentBgType: "glass",
},
]
/>
/** Dark v2 */
<FeaturesAlternating
backgroundType="video"
backgroundValue="/bg-video.mp4"
overlay="gradient"
textColorClass="text-neutral-100"
items=[
{ title: "Branding coerent", media: { type: "image", src: "/bgimagetest.png" }, contentBgType: "gradient" },
{ title: "Video friendly", media: { type: "video", src: "/feature.mp4" }, contentBgType: "color", contentBgValue: "bg-black/40" },
]
/>Caracteristici dinamice
items— array de rânduri (alternante) cu:title,description?,bullets?,media?,reverseOnDesktop?,align?,textColorClass?,fontClassName?,contentBgType?,contentBgValue?,contentPaddingClass?,contentRoundedClass?,contentBorderClass?,buttons?.backgroundType— "color" | "gradient" | "image" | "video" (implicit "color").backgroundValue— Tailwind bg/gradient sau valoare CSS (hex/rgb/linear-gradient) ori URL imagine/video.overlay— "none" | "tint" | "gradient" (aplicat peste background).textColorClass— culoare text globală (override per item disponibil).rowGapClass,columnGapClass— spațiere între rânduri/coloane.containerClassName,className,height— layout general și înălțime minimă.
FeaturesGrid
Grid de feature-uri complet dinamic: fundal de secțiune (culoare/gradient/imagine/video) cu overlay, titlu/subtitlu, carduri cu icon/emoji/număr/imagine, badge opțional, link pe card și stiluri variate (plain/card/soft/glass).
Platform
De ce e rapid
Prop-uri tipate, theming simplu, fără bloat
Type-safe
Props tipate end-to-end
A11y
Focus-visible, semantic corect
Theming
Tailwind-first, clase compozabile
Minimalist dark: variant="plain" fără card borders/shadows.
Capabilități
Tot ce-ți trebuie
Combină iconuri, imagini, badge-uri și link-uri pe card
Imagine
NewIcon tip imagine cu dimensiuni custom
Număr
Index numeric auto-stilat
React Node
Poți trece un node React ca icon
Varianta light: carduri cu border/shadow, badge și link.
Showcase
Media bogată
Background video + overlay gradient
Glass
Carduri cu blur subtil
Soft
Borders discrete, fără shadow
Card
Look clasic cu shadow
Dark v2: background video, overlay gradient, variant="glass".
Utilizare
import FeaturesGrid from "@/components/home-components/FeaturesGrid";
/** Minimalist dark */
<FeaturesGrid
backgroundType="color"
backgroundValue="bg-neutral-950"
textColorClass="text-neutral-100"
items={[
{ title: "Type-safe", description: "Props tipate", icon: { type: "emoji", value: "✅" } },
{ title: "A11y", description: "Semantic corect", icon: { type: "emoji", value: "♿" } },
]}
variant="plain"
/>
/** Light complex */
<FeaturesGrid
backgroundType="color"
backgroundValue="bg-white"
textColorClass="text-zinc-900"
items={[
{ title: "Imagine", icon: { type: "image", src: "/logo.png" }, badge: { label: "New" }, href: "#" },
{ title: "Număr", icon: { type: "number", value: 2 } },
]}
variant="card"
/>
/** Dark v2 */
<FeaturesGrid
backgroundType="video"
backgroundValue="/bg-video.mp4"
overlay="gradient"
textColorClass="text-neutral-100"
items={[
{ title: "Glass", icon: { type: "emoji", value: "🫧" } },
{ title: "Soft", icon: { type: "emoji", value: "🌫️" } },
]}
variant="glass"
/>Caracteristici dinamice
items— listă de carduri cu:title,description?,icon?(emoji/image/react/number),href?,badge?,cardClassName?,titleClassName?,descriptionClassName?.backgroundType— "color" | "gradient" | "image" | "video".backgroundValue— clasă Tailwind sau valoare CSS (hex/linear-gradient) ori URL media.overlay— "none" | "tint" | "gradient".columnsClass,gapClass— control complet al gridului.variant— "plain" | "card" | "soft" | "glass".cardPaddingClass,cardRoundedClass,cardBorderClass,hoverLift— stilul cardului.eyebrow,title,titleTag,subtitle,headerAlign,headerClassName— header configurabil.maxWidthClass,paddingClass,textColorClass,className,wrapperClassName— layout și temă pentru secțiune.
FeaturesTabs
Tabs flexibile cu trei variante vizuale (underline, pill, segmented), fundal de secțiune (culoare/gradient/imagine/video), controlat sau necontrolat, panou cu media, bullets și acțiuni.
Platform
Explorare rapidă
Tabs subliniate, aspect minimalist
UI snappy în mod constant.
Randare eficientă
Optimizări out-of-the-box
- Code-splitting
- Caching

Minimalist dark: variant="underline" pe fundal închis.
Capabilități
Tab-uri bogate
Pill tabs cu descriere activă
Theming first, control fin

Light complex: variant pill, 3 tab-uri cu media și acțiuni.
Showcase
Segmented + Glass
Panou cu fundal glass și bullets
Monitorizare clară
Metrici și loguri la îndemână
- Dashboards
- Alerts

Dark v2: variant segmented + panel "glass".
Utilizare
import FeaturesTabs from "@/components/home-components/FeaturesTabs";
/** Minimalist dark (underline) */
<FeaturesTabs
backgroundType="color"
backgroundValue="bg-neutral-950"
textColorClass="text-neutral-100"
variant="underline"
tabs={[{ id: "a", label: "A", panel: { title: "Panel A" } }, { id: "b", label: "B", panel: { title: "Panel B" } }]}
/>
/** Light complex (pill) */
<FeaturesTabs
backgroundType="color"
backgroundValue="bg-white"
textColorClass="text-zinc-900"
variant="pill"
defaultActiveTabId="design"
tabs={[{ id: "design", label: "Design", panel: { title: "Themeable" } }, { id: "workflow", label: "Workflow", panel: { title: "DX" } }]}
/>
/** Dark v2 (segmented + glass) */
<FeaturesTabs
backgroundType="color"
backgroundValue="bg-neutral-950"
textColorClass="text-neutral-100"
variant="segmented"
panelBgType="glass"
tabs={[{ id: "obs", label: "Observability", panel: { title: "Monitorizare" } }]}
/>Caracteristici dinamice
tabs— listă de tab-uri:{ id, label, description?, icon?, badge?, panel?, tabClassName?, panelClassName? }.variant— "underline" | "pill" | "segmented".activeTabId,defaultActiveTabId,onTabChange— mod controlat/necontrolat.panelBgType— "none" | "glass" | "color" | "gradient" (cupanelBgValuepentru culoare/gradient).panelPaddingClass,panelRoundedClass,panelBorderClass— stilul panoului.backgroundType— "color" | "gradient" | "image" | "video" (cubackgroundValueșioverlay).eyebrow,title,subtitle,headerAlign,headerClassName— header configurabil.maxWidthClass,paddingClass,textColorClass,className,wrapperClassName— layout și temă pentru secțiune.
PartnersGrid
Grilă flexibilă pentru logouri de parteneri: fundal de secțiune (culoare, gradient, imagine, video), header opțional și celule pentru fiecare logo cu efecte la hover și control de contrast.
Varianta light cu carduri, lift la hover și grid de 6 coloane pe large.
Utilizare
import PartnersGrid from "@/components/home-components/PartenersGrid";
<PartnersGrid
eyebrow="Trusted by"
title="Teams of all sizes"
partners={[
{ name: "Softeneers", logo: "/softeneerscool.png", href: "https://softeneers.com" },
{ name: "Acme", logo: "/logos/acme.svg" },
{ name: "Globex", logo: "/logos/globex.svg", grayscale: false },
]}
columnsClass="grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6"
variant="plain"
logoGrayscale
logoHoverEffect="ungray"
/>Caracteristici dinamice
partners— lista de logouri:{ name, logo, href?, width?, height?, className?, grayscale? }.backgroundType— color | gradient | image | video, cubackgroundValueșioverlayopțional.columnsClass,gapClass— control total al gridului.variant— plain | card | soft | glass; pluscellPaddingClass,cellRoundedClass,cellBorderClass,hoverLift.logoGrayscale,logoOpacityClass,logoHoverEffect— comportamentul logourilor.eyebrow,title,subtitle,headerAlign,headerClassName— header configurabil.maxWidthClass,paddingClass,textColorClass,className,wrapperClassName— layout și temă pentru secțiune.
PartnersMarquee
Bandă rulantă cu logouri de parteneri/branduri. API simplu: title?, partners (nume, logo, url) și speed? (durata în secunde a animației). Ideal pentru social proof.
Utilizare
import PartnersMarquee from "@/components/home-components/PartnersMarquee";
<PartnersMarquee
title="Our Trusted Partners"
partners={[
{ name: "Stripe", logo: "/logos/stripe.svg", url: "#" },
{ name: "Vercel", logo: "/logos/vercel.svg", url: "#" },
]}
speed={30}
/>Caracteristici dinamice
title— titlu opțional afișat deasupra benzii.partners— array de obiecte{ name, logo, url }(logo este imagine Next).speed— durata animației în secunde (ex:18mai rapid,45mai lent). Implicit30.
ShowcaseCarousel
Carousel responsiv pentru secțiuni de tip showcase: imagine + titlu + descriere, cu auto-play (~5s) și navigație cu săgeți. Fiecare slide poate avea culori personalizate la nivel de item.

Fast DX
Componente tipate, API clar, zero friction.
Minimalist dark: content pe fundal închis cu contrast ridicat.

Construiește rapid landing-uri cu blocuri gata făcute.
Varianta light cu trei slide-uri și link opțional pe titlu.

Security
2FA, audit trail, role-based access.
Dark v2 cu accent pe titlu (amber) și copy desaturat.
Utilizare
import ShowcaseCarousel from "@/components/home-components/ShowcaseCarousel";
<ShowcaseCarousel
items={[
{
title: "Fast DX",
description: "Componente tipate, API clar, zero friction.",
image: "/bgimagetest.png",
bgColor: "bg-neutral-950",
textColor: "text-neutral-100",
titleColor: "text-white",
descriptionColor: "text-neutral-300",
},
]}
/>Caracteristici dinamice
items— array de slide-uri:{ title, description, image, href?, bgColor?, textColor?, titleColor?, descriptionColor? }.- Auto-play ~5s și săgeți pentru navigare (implicit).
- Complet responsiv: imaginea ocupă jumătatea stângă pe viewport mare, full-width pe mobil.
ShowcaseGrid
Grilă responsivă pentru a evidenția proiecte, studii de caz sau articole. Fiecare item are imagine, titlu, descriere și link opțional. Layout-ul se adaptează de la 1→2→3 coloane pe breakpoints.

Design System
Tokeni, temare și ghiduri de folosire.
Minimalist dark: folosim doar conținutul, stilul vine din wrapper.
Varianta light cu mai multe carduri (3 coloane pe large).
Dark v2: accent subtil prin border amber la container.
Utilizare
import ShowcaseGrid from "@/components/home-components/ShowcaseGrid";
<ShowcaseGrid
items={[
{ title: "Case study A", description: "Rezultate măsurabile.", image: "/bgimagetest.png", href: "#" },
{ title: "Case study B", description: "Stack modern.", image: "/softeneerscool.png" },
]}
/>Caracteristici dinamice
items— listă de carduri:{ title, description, imageSrc, href? }.- Grilă responsivă (1/2/3 coloane) și imagini optimizate via Next/Image.
- Stilizare tematică prin wrapper (dark/light/accent) fără a depinde de props suplimentare.
StatsCards
Grilă de carduri pentru statistici. Fiecare item poate avea culori proprii pentru fundal și text.
Dark minimalist: carduri pe tonuri închise, text deschis.
Light cu paletă colorată pe fiecare item.
Dark v2 cu accente pe valorile cheie.
Utilizare
import StatsCards from "@/components/home-components/StatsCards";
<StatsCards
items={[
{ label: "Utilizatori", value: "1.2k", bgColor: "bg-neutral-900", textColor: "text-neutral-100" },
{ label: "Conversie", value: "3.8%", bgColor: "bg-neutral-900", textColor: "text-neutral-100" },
{ label: "MRR", value: "€18k", bgColor: "bg-neutral-900", textColor: "text-neutral-100" },
]}
/>Caracteristici dinamice
items— array de obiecte cu:{ label, value, bgColor?, textColor? }.bgColor— clasa Tailwind pentru fundal per item (ex.:bg-emerald-50).textColor— clasa Tailwind pentru culoarea textului per item (ex.:text-emerald-900).- Grilă responsivă: 1 → 2 → 4 coloane pe breakpoints, cu spațiere uniformă.
StatsRow
O linie simplă de carduri de statistici. Fiecare item poate avea culori proprii pentru fundal și text.
Dark minimalist: carduri pe tonuri închise, text deschis.
Light cu paletă colorată pe fiecare item.
Dark v2 cu accente pe valorile cheie.
Utilizare
import StatsRow from "@/components/home-components/StatsRow";
<StatsRow
items={[
{ label: "Utilizatori", value: "1.2k", bgColor: "bg-neutral-900", textColor: "text-neutral-100" },
{ label: "Conversie", value: "3.8%", bgColor: "bg-neutral-900", textColor: "text-neutral-100" },
{ label: "MRR", value: "€18k", bgColor: "bg-neutral-900", textColor: "text-neutral-100" },
]}
/>Caracteristici dinamice
items— array de obiecte cu:{ label, value, bgColor?, textColor? }.bgColor— clasa Tailwind pentru fundal per item (ex.:bg-emerald-50).textColor— clasa Tailwind pentru culoarea textului per item (ex.:text-emerald-900).- Layout fluid: se împachetează pe rânduri cu
flex-wrapșigap.
TestimonialsCarousel
Carousel pentru testimoniale cu auto‑play, navigație cu săgeți, indicatori și pauză la hover. Fiecare item poate avea culori dedicate pentru fundal și text, rating opțional și avatar.
Dark minimalist cu avatar și rating.
“Am migrat rapid, fără întreruperi pentru utilizatori.”
Variantă light, trei item‑uri, interval mai scurt.
“Am crescut NPS cu 18p după lansare.”
Dark v2 controlat manual (fără auto‑play/indicatori).
Utilizare
import TestimonialsCarousel from "@/components/home-components/TestimonialsCarousel";
<TestimonialsCarousel
autoPlay
interval={5000}
showArrows
showIndicators
pauseOnHover
items={[
{ quote: "Produsul ne-a redus timpul de dezvoltare.", author: "Alex P.", role: "Tech Lead", rating: 5, bgColor: "bg-white" },
{ quote: "Integrare simplă și documentație clară.", author: "Mara I.", role: "Frontend", rating: 4, bgColor: "bg-white" },
]}
/>Caracteristici dinamice
items— listă de testimoniale cu:{ quote, author, role?, avatar?, href?, rating?, bgColor?, textColor?, quoteColor?, authorColor?, roleColor? }.autoPlay— rulează automat caruselul (implicit activ).interval— durata între slide‑uri în milisecunde (implicit5000).showArrows/showIndicators— afișare butoane și buline (implicite active).pauseOnHover— oprește auto‑play când utilizatorul ține cursorul peste componentă.className— clase suplimentare pentru container.
TestimonialsMasonry
Masonry pentru testimoniale: carduri cu avatar, citat, autor, rol și rating opțional. Fiecare item poate avea culori proprii pentru fundal și text.
“Produsul ne‑a redus timpul de dezvoltare la jumătate.”
“Integrarea a fost simplă, documentația foarte clară.”
“Performanță foarte bună pe mobil.”
Minimalist dark: carduri pe fundal închis cu contrast ridicat.
“Am migrat rapid, fără întreruperi pentru utilizatori.”
“Calitate vizuală excelentă și API previzibil.”
“Suportul tehnic a fost la nivel înalt.”
“Documentație clară și exemple utile.”
Varianta light cu paletă diferită per card.
“Am crescut NPS cu 18p după lansare.”
“Time‑to‑value foarte scurt pentru echipa noastră.”
Dark v2 fără rating, pentru un look mai curat.
Utilizare
import TestimonialsMasonry from "@/components/home-components/TestimonialsMasonry";
<TestimonialsMasonry
showRatings
items={[
{ quote: "Produsul ne‑a redus timpul de dezvoltare.", author: "Alex P.", role: "Tech Lead", rating: 5, bgColor: "bg-white" },
{ quote: "Integrare simplă și documentație clară.", author: "Mara I.", role: "Frontend", rating: 4, bgColor: "bg-white" },
]}
/>
Caracteristici dinamice
items— listă de testimoniale:{ quote, author, role?, avatar?, href?, rating?, bgColor?, textColor?, quoteColor?, authorColor?, roleColor? }.showRatings— afișează stelele (implicit activ).className— stiluri suplimentare pe container (ex.: margini, culori, spacing).- Masonry CSS pur: folosește
columns+break-inside-avoidpentru cădere naturală a cardurilor.
TestimonialsSimple
Grid simplu de testimoniale cu avatar, citat, autor, rol și rating opțional. Controlezi numărul de coloane (1/2/3) și poți seta culori per card.
“Produsul ne‑a redus timpul de dezvoltare la jumătate.”
“Integrarea a fost simplă, documentația foarte clară.”
Dark minimalist în 1 coloană.
“Am migrat rapid, fără întreruperi pentru utilizatori.”
“Calitate vizuală excelentă și API previzibil.”
“Suportul tehnic a fost la nivel înalt.”
“Documentație clară și exemple utile.”
Varianta light în 2 coloane cu paletă per card.
“Am crescut NPS cu 18p după lansare.”
“Time‑to‑value foarte scurt pentru echipa noastră.”
“Performanță excelentă pe mobil.”
Dark v2 în 3 coloane, fără rating pentru un look curat.
Utilizare
import TestimonialsSimple from "@/components/home-components/TestimonialsSimple";
<TestimonialsSimple
columns={2}
showRatings
items={[
{ quote: "Produsul ne‑a redus timpul de dezvoltare.", author: "Alex P.", role: "Tech Lead", rating: 5, bgColor: "bg-white" },
{ quote: "Integrare simplă și documentație clară.", author: "Mara I.", role: "Frontend", rating: 4, bgColor: "bg-white" },
]}
/>
Caracteristici dinamice
items— listă de testimoniale:{ quote, author, role?, avatar?, href?, rating?, bgColor?, textColor?, quoteColor?, authorColor?, roleColor? }.columns— 1 | 2 | 3; controlează layout‑ul responsiv al grilei.showRatings— afișează stelele (implicit activ).className— stiluri suplimentare pe container.
