Team
Displays a gallery of team members (image + name). The slide’s header and background are configured per node; the member list comes from the global workshop team settings.
Example structures
Basic
{
"type": "Team",
"data": {
"headline": "Our Team"
}
}
With background
{
"type": "Team",
"data": {
"headline": "Meet the Crew",
"background": "assets/backgrounds/team-hero.jpg",
"darkText": false
}
}
Expected global team data (sent automatically by the node)
[
{ "name": "Alice", "img": "team/alice.jpg", "show": true },
{ "name": "Bob", "img": "team/bob.jpg", "show": true },
{ "name": "Carsten", "img": "team/carsten.jpg", "show": false }
]
Properties
| Key | Type | Default | Description |
|---|---|---|---|
Global teamArray | { name:string; img:string; show:boolean }[] | — | Injected from state.workshopSettings.team by the server node; not configured inside this node’s data. Only entries with show: true are rendered. |
Behavior
tip
- Host-only: Participants won’t receive the payload unless you change
onlyHost. If you want everyone to see the slide, remove or overrideonlyHost = true. - Assets: Ensure
NEXT_PUBLIC_RESOURCE_LOCATIONandworkshopKeyare set and theimgfiles exist at that path. - Clipping: The container uses
overflow-hidden; very large teams may require layout tweaks (e.g., wrapping or scrolling) if members extend beyond the viewport.
-
The server node is host-only (
onlyHost = true). It sends a payload shaped as:{ data: this.data, teamArray: state.workshopSettings.team } -
The slide renders:
- Optional header block (
headline,subheading). - A horizontal row of portrait cards (
aspect-[3/5]) for all members withshow: true. - Each card shows an image and the member’s name (Next.js
<Image />withfill,object-fit: cover).
- Optional header block (
-
Image source path:
(process.env.NEXT_PUBLIC_RESOURCE_LOCATION ?? "/")
+ workshop.workshopKey + "/" + member.img -
Theme:
- On mount: if
data.darkTextis defined, callssetTheme(!data.darkText). - On unmount: reverts with
setTheme(!props.node.darkText)viauseLayoutEffectcleanup.
- On mount: if
-
Background:
- Rendered with
<Background background={data.background} />.
- Rendered with
Visual design
- Centered layout with a wide, gap-spaced row of cards.
- Card: rounded image container with cover cropping, name in bold below.
- Header uses the GT Flexa display font (
text-6xlfor headline).
Use cases
- Credits slide at the end of a session.
- “About us” section within a workshop deck.