v2

Design system

Twee lagen, zoals Material: Stijlen zijn de fundamenten (kleur, type, vorm, elevatie, spacing, iconen, motion), Componenten zijn de bouwstenen. Elk voorbeeld gebruikt exact dezelfde klassen als de app — een tweak in app/globals.css werkt hier én in de player meteen door.

Stijlen

Kleur

Wit podium, bijna-zwarte inkt, één geel accent — spaarzaam ingezet. Donker blijft alléén op de video zelf.

--bg
#FFFFFF
podium (wit)
--panel
#F4F4F6
kaarten, gates: licht vlak
--panel-line
#E4E4E7
randen op panelen
--panel-deep
#FFFFFF
invoervelden (wit + rand)
--lime
#FFD900
hét accent (geel) — spaarzaam
--ink
#121212
primaire tekst (bijna zwart)
--ink-dim
rgba(0,0,0,.5)
datums, hints
--danger
#FF5C39
waarschuwingen, verwijderen

Typografie

Eén familie: Stack Sans Text, in twee gewichten — Regular 400 en Bold 700. Het verschil zit verder in grootte: de app-schaal voor tekst in de app, plus één display-stijl voor de brutale koppen op de landing.

Afklappen.
Bold · --fs-display · clamp(44–116)Landing-koppen (hero + afsluiter)
Neem op, stel je vraag, deel één link.
Regular · --fs-lead · clamp(17–21)Intro-tekst, grote knop
Hier de titel van de video
Bold · --fs-title · clamp(30–46)Video- & paginatitels (h1)
Sectiekop
Bold · --fs-section · 24Sectiekoppen (h2)
Vraag over de video
Bold · --fs-question · clamp(15–30)Eind-/tussenvraag (.qz-question)
Kaart- of kolomkop
Bold · --fs-card · 17Kaart-/kolomkoppen (h3)
Bodytekst — de standaard voor alles.
Regular · --fs-body · 15Interface, comments, formulieren
Bold — koppen, knoplabels, nadruk.
Bold · --fs-body · 15Sub-koppen, knoplabels, nadruk
Secundaire tekst: datums, hints, notities.
Regular · --fs-small · 13 · 50%Datums, hints, ds-notes
Veldlabel
Bold · --fs-label · 11 · uppercase · 50%Formulier-labels

Vorm

Vier radii-tokens; nooit losse pixelwaardes verzinnen.

--r-video
20px
video, kaarten, edit-panel
--r-dock
30px
dock en gates
--r-input
10px
invoervelden
--r-pill
999px
knoppen, chips, rails

Elevatie

Het light theme is grotendeels vlak — diepte komt van 1px randen, niet van schaduw. Schaduw is voorbehouden aan wat echt optilt: de video, post-its en hover.

Vlak (rust)Panelen, kaarten, gates — alleen een 1px rand, geen schaduw.
Video / heroDe grote video-still tilt zacht van de pagina af.
Post-itGelaagde papier-schaduw; bij hover dramatischer.
Accent-glowGele knop bij hover — een kleur-schaduw als nadruk.

Spacing

Geen strikte 8pt-grid, maar een vaste ritmiek van een handvol waarden voor gaps en padding. Hoekafrondingen: zie Vorm.

6px
10px
12px
16px
20px
26px

Iconen

Dunne-lijn iconen uit /public/brand. Control-iconen zijn wit (over de donkere video), nav-iconen zijn inkt (op licht).

afspelen
afspelen
pauze
pauze
geluid
geluid
fullscreen
fullscreen
reactie
reactie
versturen
versturen
wachtwoord
wachtwoord
deel-link
deel-link
bibliotheek
bibliotheek
opname klaar
opname klaar

Motion

Drie easings dragen alles. Beweeg over een baan om 'm te voelen; de stip loopt continu met de bijbehorende curve.

Spring (signatuur)cubic-bezier(0.34, 1.56, 0.64, 1)
Knoppen, high five, post-its, reactie-bounce — met overshoot.
Settlecubic-bezier(0.22, 1, 0.36, 1)
Pagina- en skeleton-fade-in, post-it-hover — rustig, geen overshoot.
Klap-shakecubic-bezier(0.36, 0.07, 0.19, 0.97)
Het videobeeld dat kort natikt na een high five.
0.15sMicrohover, kleur, kleine states
0.26–0.3sTransitietoggles, lift, schuiven
0.5–0.6sRevealfade-in, klap, post-it opplakken

Componenten

Knoppen

Primair (lime pill) ↗

Regels: lime = primaire actie, maximaal één zwaartepunt per view. Secundair = transparant met rand. Hover: lift (−2 à −4px) met spring-easing.

Reactie-dock

De echte reactieknoppen (.emoji-row): hover = bounce omhoog + fors groter + slinger ±15° (even/oneven de andere kant op). Klik = pop + zwevende emoji. Het spraakballon-icoon klapt de comment-box uit (naam + tekst + tijdstip).

Video-reacties

Kijkers reageren in de browser met camera, camera + scherm of alleen audio. De strip (.vr-chip) toont wie er reageerde en waar; de grote record-knop (.rr-rec-btn) is dezelfde taal als de pill in de Mac-app: cirkel = opnemen, vierkant = stop.

Player-controls

De balk onder in de video. Links play/pauze (klik om te wisselen) en de tijd; rechts snelheid, geluid en fullscreen. De afspeelkop is een klein wit rond stipje op de rail — klik de rail om 'm te verzetten. In de app schuift deze balk pas omhoog bij hover of pauze; hier staat 'ie altijd open.

🔥💬
1:12

Vraag-post-its

Eind- en tussenvragen als post-its op de video. Hover = optillen + willekeurige kantel + zware schaduw; kiezen = hand-getekende omcirkeling die zich tekent + gele volgende-knop.

Meerkeuze

Welke richting kiezen we?

Hover = optillen + kantelen + zware schaduw. Klik = omcirkeling + volgende-knop. Post-its plakken gestaggerd op.

Open vraag

Wat vond je ervan?

Typ iets → de volgende-knop popt op. De post-it plakt op met dezelfde veer-easing.

Vraag-editor

De vragen in edit-mode (Figma 38-331). Standaard alleen Toevoegen; klik → één kaart die meegroeit met wat je invult: meerkeuze voegt opties met afbeelding toe, kies tijdstip voegt tijdstip + gedrag toe. Meerdere vragen stapelen als losse kaarten. Sectie-ritmiek 26px, labels 12px bold.

Ondertiteling

Uit het transcript. De CC-knop staat alleen in de balk als er een transcript is; aan → de actieve regel staat gecentreerd onderin en tilt op zodra de knoppenbalk verschijnt. Klik CC om te wisselen.

Zo ziet een ondertitel eruit, gecentreerd onderin.
1:12

Knippen & zoom

Niet-destructief, als metadata. Een knip is een rode gearceerde band op de rail (de player springt eroverheen); een zoom een geel ruitje. Het brandpunt kies je met een 3×3-raster — klik een cel.

Tijdlijn met knip + zoom

Zoom-brandpunt

Antwoorden-dashboard

Groepeert de antwoorden per vraag: meerkeuze als staafverdeling, open als lijst. Eronder de AI-samenvatting van de reacties (.reacsum).

Vond je de demo nuttig? 3
Ja2 · 67%
Nee1 · 33%
Wat zou je verbeteren? 2
  • DirkDe uitleg mag iets langzamer.
  • EvaMeer voorbeelden van zoomen.

Er is waardering voor de opbouw en de auto-edit. Verbeterpunten: meer zoom-voorbeelden en een rustiger uitleg. Niet iedereen vond de demo even nuttig.

Afhaakgrafiek

Retentie per tijdstip uit maxPositionSec van de kijkers. Hover = tijd + percentage; in de app is klikken = spring naar dat moment. Onder de grafiek een hint bij het grootste afhaakmoment.

6 kekengemiddeld 56%33% uitgekeken
0:003:00

Grootste afhaakmoment rond 0:42 — daar valt 17% van de kijkers af.

Klap & high five

Verstuurd → een high five direct over de video + een korte, subtiele klap-shake van het beeld. Het logo is dezelfde hand: hover beweegt, klik klapt.

High five + klap-shake

High five (los)

72px
132px
200px

Logo-klap (hover + klik)

Laadskeleton

Contour + shimmer + loader op de juiste hoogte; daarna fadet de content erin terwijl het skeleton zacht wegzakt. Skeletons blijven op dezelfde plek staan zodat er niets verspringt.

Contour + shimmer + loadertje op de juiste hoogte; daarna fadet de content in terwijl de skeleton zacht wegvalt.

Edit-paneel

De bouwstenen van het beheer-paneel: velden en knoppen op --r-input, de ja/nee als schuivende slider, rijen met omkaderde verwijderknop, gele toevoeg-knop.

Sectiekop (h4)

Toggle (ja / nee) — klik om te schakelen

Rij met verwijderknop