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>
  • backgroundTypecolor | 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" },
  ]}
/>
  • backgroundTypecolor | gradient | image | video.
  • backgroundValue — culoare / clase Tailwind / URL imagine / URL video.
  • overlaynone | tint | gradient (pentru contrast mai bun).
  • contentPosition — una dintre: top|center|bottom × left|center|right.
  • contentBgTypenone | glass | color | gradient (+ contentBgValue).
  • buttons[].variantprimary | secondary | ghost | custom; poți suprascrie cu padding/rounded/text/bg/border.
  • Implicit textul este alb (text-white), dar îl poți schimba cu textColorClass.

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.

Build faster

Ship UI in hours, not weeks.

Softeneers

Fundal imagine + overlay gradient; secțiunea stângă cu efect glass.

Design beautifully

New themes, faster workflow

Live preview

See it in action

Fundal video + overlay tint; pe desktop, ordinea secțiunilor este inversată.

All-in-one UI kit

A curated set of building blocks

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",
  }}
/>
  • backgroundTypecolor | 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

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

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

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) — implicit bg-gray-50.
  • textColor — culoarea textului (Tailwind class) — implicit text-gray-900.
  • cardColor — culoarea cardului — implicit bg-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.

Who we are

Variantă light cu paleta implicită.

Our mission

Crafted for speed

Componente tip-safe, accesibile, ușor de compus. Focus pe DX și performanță.

Crafted for speed

Variantă dark (fundal închis + text alb).

Principles

Design that scales

Sisteme de design flexibile, reutilizabile, adaptate pentru echipe mici și mari.

Design that scales

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 cu next/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.

About Softeneers

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.

Built for speed

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.

Design that feels effortless

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 &amp; Î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).

Contact Us

We would love to hear from you. Please fill out the form below.

Variantă implicită (EN) cu stiluri default.

Contactează-ne

Completează formularul de mai jos și revenim în scurt timp.

Etichete în limba română, același stil.

Suport nocturn

Suntem disponibili și noaptea. Scrie-ne oricând.

Exemplu dark: fundal container & card, culori texte, borduri, focus și buton.

Talk to Sales

Tell us about your needs and we’ll reach out.

Preset brand cu accent verde (emerald).

Feedback

Ajută-ne să îmbunătățim produsul.

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&apos;d love to hear from you. Fill out the form and we&apos;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.

Talk to Sales

Tell us about your use case and we’ll reach out.

Prefer email? sales@example.com

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.

Ready for night mode?

Switch your app to a sleek dark interface.

Dark mode: text alb pe fundal slate‑900.

Grow with us

Simple pricing, flexible scaling for teams of any size.

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

Hero illustration

Exemplu pe fundal deschis, cu imagine pe dreapta.

Switch today

Ready for night mode?

A sleek, accessible dark theme for your app.

Dark UI

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.

Join Our Community

Become a part of our growing network and enjoy exclusive benefits.

Get Started

Implicit: fundal alb, text gri închis, buton albastru.

Build confidently

Modern tooling and best practices out of the box.

Start now
Build confidently

Fundal gray‑50 cu o imagine de exemplu.

Switch to dark

Accessible contrast and elegant visuals.

Enable dark
Switch to dark

Dark: text alb pe fundal închis.

Grow with us

Flexible pricing and support for teams.

See pricing
Grow with us

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

Performance

Performanță

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

Accessibility

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

Discovery

Discovery

Aliniem obiective, definim KPI și scope.

  • Interviuri
  • Audit
  • Roadmap

Delivery

Iterații săptămânale, QA riguros, demo-uri constante.

  • CI/CD
  • QA
  • Observability

Varianta light complexă: bullets, butoane, moduri color și glass pe text-box.

Capabilități

Media bogată și fundaluri dinamice

Brand

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

New

Icon 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

Themeable by design

Tailwind-first & fine-grained control

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" (cu panelBgValue pentru culoare/gradient).
  • panelPaddingClass, panelRoundedClass, panelBorderClass — stilul panoului.
  • backgroundType — "color" | "gradient" | "image" | "video" (cu backgroundValue și overlay).
  • eyebrow, title, subtitle, headerAlign, headerClassName — header configurabil.
  • maxWidthClass, paddingClass, textColorClass, className, wrapperClassName — layout și temă pentru secțiune.

NewsletterCard

Card de abonare cu titlu, descriere, input email și buton. Include validare de email by default.

Subscribe to our newsletter

Minimalist dark: cardul este încadrat într-un wrapper întunecat.

Join our mailing list

Get the latest updates and offers.

Varianta light cu descriere explicită și validare implicită.

Stay updated

Subscribe for news and updates.

Dark v2: accent de culoare aplicat containerului (border amber).

Utilizare

import NewsletterCard from "@/components/home-components/NewsletterCard";

<NewsletterCard
  title="Subscribe to our newsletter"
  description="Get the latest updates and offers."
  placeholder="Enter your email"
  buttonText="Subscribe"
/>

Caracteristici dinamice

  • title — titlul principal al cardului.
  • description — text opțional sub titlu.
  • placeholder — placeholder-ul pentru câmpul de email.
  • buttonText — textul butonului de trimitere.

NewsletterSimple

Card simplu de abonare la newsletter: titlu, descriere, input de email cu validare și buton de submit. API minimal, ușor de folosit.

Subscribe

Minimalist dark: varianta standard încadrată într-un wrapper închis.

Join our newsletter

Get the latest updates and offers.

Varianta light implicită, cu descriere și validare out‑of‑the‑box.

Stay in the loop

News, tips and resources.

Dark v2: accent de culoare prin border amber aplicat containerului.

Utilizare

import NewsletterSimple from "@/components/home-components/NewsletterSimple";

<NewsletterSimple
  title="Subscribe to our Newsletter"
  description="Get the latest updates and offers."
  placeholder="Enter your email"
  buttonText="Subscribe"
/>

Caracteristici dinamice

  • title — titlul cardului.
  • description — text opțional sub titlu.
  • placeholder — placeholder pentru câmpul de email.
  • buttonText — textul butonului de trimitere.
  • onSubmit — callback opțional (email: string) => void la submit valid.

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.

Trusted by

Teams of all sizes

Câteva branduri din ecosistem

StripeVercelSupabaseGitHub

Minimalist dark cu ungray la hover.

Ecosystem

Platform partners

Mix de logouri și grid mai dens

Next.jsTailwindPlanetScaleCloudflarePrismaSupabase

Varianta light cu carduri, lift la hover și grid de 6 coloane pe large.

Cloud & DevOps

Technology stack

AWSAzureGCPDocker

Dark v2 cu glass cards și overlay subtil.

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, cu backgroundValue și overlay opțional.
  • columnsClass, gapClass — control total al gridului.
  • variant — plain | card | soft | glass; plus cellPaddingClass, 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.

Trusted by

StripeVercelSupabaseGitHubStripeVercelSupabaseGitHub

Minimalist dark: titlu scurt, viteză implicită (~30s/loop).

Ecosystem partners

Next.jsTailwindPlanetScaleCloudflarePrismaNext.jsTailwindPlanetScaleCloudflarePrisma

Varianta light: mai multe logouri, viteză mai mare (18s).

Cloud & DevOps

AWSAzureGCPDockerAWSAzureGCPDocker

Dark v2: viteză lentă (45s) pentru un vibe calm.

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: 18 mai rapid, 45 mai lent). Implicit 30.

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.

Acme DashboardAcme Dashboard

Analytics în timp real, filtre avansate, export CSV.

SaaS BillingSaaS Billing

Stripe + webhooks + rapoarte lunare.

Design System

Design System

Tokeni, temare și ghiduri de folosire.

Minimalist dark: folosim doar conținutul, stilul vine din wrapper.

Landing-ul principalLanding-ul principal

Secțiuni hero, features, testimonials &amp; CTA.

Blog platformBlog platform

MDX, căutare full‑text, previews sociale.

StorefrontStorefront

Catalog, coș, checkout și facturare.

Docs siteDocs site

Sidebar, ancore, code blocks, versiuni.

Varianta light cu mai multe carduri (3 coloane pe large).

ObservabilityObservability

Logs, metrics &amp; traces într-un singur loc.

SecuritySecurity

SSO, 2FA, RBAC și audit trail.

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.

1.2k
Utilizatori
3.8%
Conversie
€18k
MRR
42
Tickets

Dark minimalist: carduri pe tonuri închise, text deschis.

+320
Signups
1.1%
Churn
€29
ARPU
99.97%
Uptime

Light cu paletă colorată pe fiecare item.

92ms
Latency
99.97%
Uptime
0.12%
Errors
11k
Req/min

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.

1.2k
Utilizatori
3.8%
Conversie
€18k
MRR

Dark minimalist: carduri pe tonuri închise, text deschis.

+320
Signups
1.1%
Churn
€29
ARPU
42
Tickets

Light cu paletă colorată pe fiecare item.

92ms
Latency
99.97%
Uptime
0.12%
Errors

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 și gap.

TestimonialsMasonry

Masonry pentru testimoniale: carduri cu avatar, citat, autor, rol și rating opțional. Fiecare item poate avea culori proprii pentru fundal și text.

Alex P. avatar

Produsul ne‑a redus timpul de dezvoltare la jumătate.

Alex P.· Tech Lead
Mara I. avatar

Integrarea a fost simplă, documentația foarte clară.

Mara I.· Frontend Engineer
Victor S. avatar

Performanță foarte bună pe mobil.

Victor S.· iOS Dev

Minimalist dark: carduri pe fundal închis cu contrast ridicat.

Ioan C. avatar

Am migrat rapid, fără întreruperi pentru utilizatori.

Ioan C.· PM
Daria M. avatar

Calitate vizuală excelentă și API previzibil.

Daria M.· Designer
Radu G. avatar

Suportul tehnic a fost la nivel înalt.

Radu G.· CTO
Irina T. avatar

Documentație clară și exemple utile.

Irina T.· Full‑stack

Varianta light cu paletă diferită per card.

Elena R. avatar

Am crescut NPS cu 18p după lansare.

Elena R.· Head of Product
Andrei L. avatar

Time‑to‑value foarte scurt pentru echipa noastră.

Andrei L.· Engineer Manager

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-avoid pentru 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.

Alex P. avatar

Produsul ne‑a redus timpul de dezvoltare la jumătate.

Alex P.· Tech Lead
Mara I. avatar

Integrarea a fost simplă, documentația foarte clară.

Mara I.· Frontend Engineer

Dark minimalist în 1 coloană.

Ioan C. avatar

Am migrat rapid, fără întreruperi pentru utilizatori.

Ioan C.· PM
Daria M. avatar

Calitate vizuală excelentă și API previzibil.

Daria M.· Designer
Radu G. avatar

Suportul tehnic a fost la nivel înalt.

Radu G.· CTO
Irina T. avatar

Documentație clară și exemple utile.

Irina T.· Full‑stack

Varianta light în 2 coloane cu paletă per card.

Elena R. avatar

Am crescut NPS cu 18p după lansare.

Elena R.· Head of Product
Andrei L. avatar

Time‑to‑value foarte scurt pentru echipa noastră.

Andrei L.· Engineering Manager
Victor S. avatar

Performanță excelentă pe mobil.

Victor S.· iOS Dev

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.