Sharingan

Section · scroll

Portrait burst

A stack of portraits rises behind a centred headline, then bursts out into a constellation around it, with short facts set between the faces.

The team

Meet the growth team

Fourteen specialists who have scaled products from the first hundred users to the first million.

  • Daniel Okafor, founder
  • Maya Lindqvist, lifecycle lead
  • Kofi Mensah, paid media
  • Lena Brandt, brand and content
  • Ravi Desai, data
  • Priya Nair, product analytics
  • Jonas Weber, SEO
  • Mei Tan, onboarding
  • Tom Ellis, experiments
  • Ana Ruiz, design
  • Sam Novak, engineering
  • Alex Moreau, research
  • 15+ years of growth
  • 120+ startups
  • 3 exits
  • Remote · 9 countries

Portrait burst

A stack of portraits rises behind a centred headline, then bursts out into a constellation around it, with short facts set between the faces.

Use when: Introducing a team, speakers or a community: six to twelve people who matter more than any one of them.

DOM and GSAP (ScrollTrigger, Flip), every browser · pinned for about 1.6 screens

npx shadcn@latest add @sharingan/portrait-burst

First time? Add the @sharingan registry to your project: getting started. The CLI also installs gsap, used under GSAP’s own no-charge licence.

Add ?motion=final or ?motion=off to the address for the version without scroll motion; phones below 768 px get it too, with short reveals.

Props

content what the section says, real text in the DOM

Portrait burst content
NameTypeDefaultDescription
eyebrowstring (≤ 48 chars)—A short kicker above the headline.
headline *string (4–40 chars)—A short headline, 2–5 words: the portraits gather around it.
textstring (≤ 160 chars)—One sentence under the headline.
primaryCtaobject—
label *string (2–28 chars)—Action verb first, 1–4 words.
href *string (≥ 1 chars)—
secondaryCtaobject—
label *string (2–28 chars)—Action verb first, 1–4 words.
href *string (≥ 1 chars)—
people *object[] (6–12)—The portraits, placed in this order on twelve set slots around the headline.
src *string (≥ 1 chars)—A portrait, 4:5, the face near the top third.
alt *string (4–160 chars)—Who it is, for screen readers.
namestring (≤ 40 chars)—
rolestring (≤ 40 chars)—
pillsstring[] (≤ 4)—Short facts set between the portraits: 15+ years, 100+ clients.

config how it moves; attributes on the Web Component

Portrait burst config
NameTypeDefaultDescription
lengthnumber (0.8–3)1.6How long the section stays pinned, in screen heights.
driftnumber (0–1)0.5How far the portraits drift up, each at its own speed, as the section leaves.
tiltnumber (0–20)8How much the stacked portraits lean, in degrees.
accentstring (≥ 1 chars)"#ee8a7b"The pills.

The same section as a Web Component

Section · scroll

<sg-portrait-burst>

The same engine as a Web Component, driven by attributes, on the page’s own HTML.

<sg-portrait-burst>

Eight portraits in plain HTML, a steeper lean in the stack, a longer drift and mint pills.

  • A member of the team
  • A member of the team
  • A member of the team
  • A member of the team
  • A member of the team
  • A member of the team
  • A member of the team
  • A member of the team
  • No framework
  • Attributes only

Sharingan is made by Dilane Kombou.

Open source under the MIT licence.