section-019

Team Through the Project

Included in the VaultGet the Vault

A single team photograph travels between six people as their individual stories enter view during the scroll.

ScrollTrigger intermediate
7 more details
scroll-storytellingguided-cameraimage-focal-pointsprogressive-enhancementreduced-motioncontainer-queriesresponsive-section
Team Through the Project - website section preview

This section reads better at your own screen size than in the frame below:

About this section

Morrow Assembly is a fictional product studio whose strategy, design and engineering team stays close to the work. A wide shared photograph introduces all six colleagues together. As visitors scroll through six individual biographies, the photo moves and zooms from one face to the next, linking each person to their contribution across Understand, Shape and Build.

Read the full section overview

The biographies stay in normal document flow beside a sticky photograph on desktop and beneath it on phones. The camera follows the reader's position rather than hiding content or taking over host scrolling. Reduced motion, missing JavaScript or blocked GSAP dependencies leave the full group image and every story readable.

Replace the fictional copy, generated concept photograph and example contact link with verified studio information.

What's included

6 items
  • One generated group concept photograph with six editable face positions
  • Scroll-driven camera movement between individual team members
  • Six complete biographies grouped by project stage
  • Readable static fallback with the full group photograph
  • Reduced-motion support, independent roots and instance teardown
  • Container-aware desktop, mobile and narrow-host layouts

Perfect for

4 use cases
  • Product studios introducing strategy, design and engineering leads
  • Creative agencies helping clients find the right specialist
  • Consultancies showing the people responsible for delivery
  • Nonprofits introducing programme and operations teams

How it works

2 sections

Each team member is a semantic article containing their role, biography and contribution. Face coordinates and crop scale sit on that article as data attributes, while the single image remains a normal editable img element. The script measures article centres and interpolates the camera position between them as the reader scrolls. A brief opening view shows the complete team before the first close focus.

ScrollTrigger is scoped to each section root. The photo uses CSS sticky positioning; no ScrollTrigger pin, smooth scroller or host navigation change is required. Reduced motion and missing dependencies show the full group photo and all six articles. Teardown removes only that instance's triggers, observers and state.

Plugins ScrollTrigger
Difficulty Intermediate
Includes HTML + JS + CSS source, documentation, AI setup prompt, lifetime updates

Lighthouse, as measured

Google Lighthouse on this website section's demo, 15 September 2026. A measurement of the demo as shipped, not a promise for your page.

Accessibility
100
Best practices
100

No performance score, on purpose. That figure depends on how you deploy: your server's compression and caching, your CDN, the connection and the device doing the test, none of which the code controls. The same page can score very differently on two consecutive runs, so measure it where it will live.

Included in the Vault

Get the Vault to use this section.

The Vault includes Team Through the Project, the HTML, CSS and JavaScript source, the full documentation, an AI setup prompt for your editor, and every update we ship to it. Standard license: unlimited personal and commercial projects. Sections are available only in the Vault for now while the collection is small.

Documentation

Quick start

Copy the complete <section class="team-directory" data-team-directory> from index.html and the assets/ directory beside your page. Load:

Code snippet omitted: it ships with the download.

The demo main, body background and body margin are preview furniture. The section uses the host's normal page scroll; it does not install a smooth scroller or pin the page.

Make it yours

Edit the heading, introduction and contact link in the section header, plus the short caption below the photograph. Each [data-team-person] article contains one person's chapter, role, name, biography and contribution. Add, remove or reorder whole articles; the camera sequence and numeric counter derive from their document order. Update any written team count in the introduction or photo caption yourself. A single person also works. Change the h2 to suit your page outline without changing its class.

The root variables at the top of assets/style.css control colour, typography, width and gutters. Adjust these to rebrand the section, then check contrast. For example, an architecture practice could use a team portrait in its workshop, replace the six articles with its own staff, and change the accent and text variables without touching the camera code.

Replace the photograph

assets/img/morrow-team-group.webp is a generated 1774×887 concept photograph. Replace it with one ordinary wide team photograph, ideally at least 1600px wide with clear space around each face. Edit the <img data-team-image> src, intrinsic width/height and descriptive alt in index.html. The photo has no baked text or markers. With reduced motion or missing JavaScript, the whole image is shown.

Each article's data-focus-x and data-focus-y locate that person's face as a fraction of the source image width and height: 0 is the left/top edge, 1 the right/bottom edge. data-focus-scale controls the crop (usually 1.52.2). After replacing the photograph, adjust those three numbers per person while viewing desktop and phone crops. These attributes are the only photo-specific motion settings; no script changes are needed. The source PNG and portrait references in assets/img-src/ are authoring inputs and are excluded from the buyer download.

Behaviour and integration

The script mounts each root independently. Its API is on root.teamDirectory:

Code snippet omitted: it ships with the download.

window.TeamDirectory.mountAll(scope) and destroyAll(scope) manage roots within an optional element. Repeated mounts return the same instance. Destroy before removing a root or changing its person articles, then mount again. Teardown removes only this instance's ScrollTrigger and observers. If a host changes the section's layout after loading, call refresh().

Normal keyboard and touch scrolling drive the same sequence. Reduced motion, no JavaScript and blocked GSAP dependencies leave the full group photograph and every biography readable in order. The section needs enough vertical room for the photo to remain beside the biographies on desktop; on narrow hosts it stacks above them. The contact link is an example email destination and should be replaced along with the fictional names and claims before publishing.

Credits and licence

  • GSAP 3.15.0 and ScrollTrigger from jsDelivr, subject to the GSAP standard licence.
  • Group concept photograph generated with OpenAI image generation on 23 September 2026, using five generated fictional portrait references. It does not depict real employees.
  • The section code is covered by the GSAP Vault licence. Replace the concept image with your own photograph without an image-generation service.

Worked examples, the events and programmatic API, and the class reference ship with the download, alongside the full source.

Your cart

Your cart is empty

The Vault £99

The Vault library, plus future additions to the library.