[Tekst van de koper. Wat werkte, wat niet. Wordt niet ingekort of aangepast.]
Reactie Galaxy Gadgetz: [optioneel]
Design system · v1.0 prototype
De bouwstenen van de nieuwe Galaxy Gadgetz-webshop. Een lichte, rustige winkel waarin roze alleen de actie aanwijst, met een donker podium voor de momenten waarop je iets ontdekt of ziet werken. Elke component heeft een commerciële of vertrouwensfunctie, en geen enkele component suggereert bewijs dat er niet is.
Fundament
Vijf ontwerpregels die elke pagina volgt. De compliance-regels zijn harde eisen uit het strategisch dossier (§3.3 en §13.2), geen stijlvoorkeur.
Fundament
Contrastwaarden worden live uit de tokens berekend (WCAG 2.x relatieve luminantie). AA vraagt 4.5:1 voor tekst en 3:1 voor grote tekst en grafische delen van bediening.
| Voorbeeld | Voorgrond | Achtergrond | Gebruik | Ratio |
|---|
Fundament
Inter blijft de huisletter (continuïteit met de huidige site), met zware, strak gespatieerde koppen. JetBrains Mono is de lab-laag voor specificaties, maten, labels en labels. Schaal is vloeiend tussen 390 en 1280 px.
.gg-mono · .gg-eyebrowFundament
Alles op een 4/8-grid. Sectieruimte is vloeiend (48 → 96 px), zijmarge groeit per breakpoint (16 / 24 / 32 / 40 px).
| Token | Waarde | Gebruik |
|---|---|---|
| basis | 390 px | Ontwerpstart, 2 productkolommen, filters in sheet, vaste koopbalk op PDP |
| sm | 600 px | 3 productkolommen, servicestrook 2 kolommen |
| md | 900 px | Desktopnavigatie met megamenu, zoekveld in header, koopbalk verdwijnt |
| lg | 1200 px | 4 productkolommen, merkregel naast logo |
| container | 1280 px | Maximale inhoudsbreedte |
| z-index | 100 · 200 · 300 · 350 · 400 · 500 · 600 · 700 · 800 · 900 | sticky · header · megamenu · koopbalk · overlay · drawer · modal/zoeken · toast · prototype-badge · cookie |
Fundament
Kort en functioneel: beweging bevestigt een actie of laat zien waar iets vandaan komt. Bij prefers-reduced-motion worden alle duurtokens 0 ms en stoppen loops (Ken Burns, shimmer, auto-rotate).
cubic-bezier(.2,.7,.2,1); spring alleen voor microinteracties (teller, vinkje).--gg-dur-1..4 · --gg-easeFundament
In gebruik (klantbesluit 12 okt 2026): het oorspronkelijke Galaxy Gadgetz-logo met pixelletters en twee roze vlakken, als transparante PNG voor licht en donker. Het spelt GADGETS met een S; een versie in dezelfde stijl met de Z is een open punt.


Alternatief voorstel (niet in gebruik): een eigen geconstrueerd woordmerk: vierkant-ronde letters op een raster van 24 eenheden, lijndikte 4,4, met dezelfde hoekradius als de interface. De Z staat waar hij hoort. Het beeldmerk is een pixel-G uit 16 blokjes, met één losgekomen pixel als ster: een knipoog naar het oude pixellogo.
Vrije ruimte rondom = de breedte van het beeldmerk. Minimaal 24 px hoog (lockup) of 16 px (beeldmerk). Onder 1200 px valt de merkregel naast het logo weg.
Fundament
Eén eigen lijnset op een 24-raster, lijn 1,75 px (2 px onder 18 px), ronde uiteinden. Altijd met tekstlabel of aria-label; decoratief aria-hidden. Gebruik: GG.icon('truck').
Bediening
Eén primaire stijl (roze, radius 10 px). Per scherm(deel) maximaal één primaire knop: op de productpagina is dat In winkelmand, in de winkelmand Veilig afrekenen.
.gg-btn--primary · --secondary · --ink · --tertiary · --icon.is-loading · .is-done · :disabled--sm · --lg · --block@media (pointer: coarse)Bediening
Label altijd boven het veld, nooit alleen een placeholder. Foutmelding onder het veld, gekoppeld met aria-describedby, en zegt wat er moet gebeuren. Validatie bij verlaten van het veld en bij verzenden (form[data-gg-validate]).
Dit e-mailadres lijkt niet te kloppen. Voorbeeld: naam@voorbeeld.nl
Bijv. A of 2-hoog
.gg-field · .gg-input · .gg-select · .gg-textarea · .gg-input-group.gg-check · .gg-radio · .gg-switchBediening
Varianten zijn radioknoppen in een fieldset. Een uitverkochte variant blijft kiesbaar zodat de klant ziet wanneer hij terugkomt; de koopknop wordt dan "Niet leverbaar".
.gg-options · .gg-option.is-unavailable · .gg-stepper.gg-choiceBediening
Filterchips zijn knoppen met aria-pressed; categoriechips zijn links. Op mobiel in een horizontale scroller (.gg-scroller) zonder pagina-overflow. Filteropties zonder resultaten worden uitgeschakeld, niet verborgen.
aria-current="page"..gg-chip--categoryProduct en bewijs
Gewone webshoplabels met een vaste betekenis. Geen labels die iets beloven wat niet uit de productdata blijkt.
| Label | Betekenis | Alleen tonen als |
|---|---|---|
| Uitgelicht | Extra aandacht in de shop | Tijdelijk, bijvoorbeeld voor een nieuw of seizoensproduct. |
| Nieuw | Recent toegevoegd | Maximaal 60 dagen na publicatie. |
| Niet leverbaar | Tijdelijk geen voorraad | Altijd, zodra voorraad 0 is. Met verwachting zonder datum te beloven. |
| Bestseller | Gebaseerd op verkoopdata | Niet in dit ontwerp. Pas met aantoonbare, consistente verkoopdata. |
GG.mediaLabel('demo' | 'ai' | '3d' | 'render')Product en bewijs
Prijzen inclusief btw, tabulaire cijfers. De kortingsstaat bestaat alleen als ontwerpstaat: een doorgestreepte prijs is altijd de eigen laagste prijs van de afgelopen 30 dagen, en dat staat er letterlijk onder.
GG.price(product, { variant, size: 'lg', vat: true })..gg-priceProduct en bewijs
Levertijd hoort bij het product en de route, niet bij de winkel. De verwachte periode wordt berekend uit vandaag en de werkdagen van de route. Geen "morgen in huis" als algemene belofte.
GG.delivery(p, { compact | box }) · GG.deliveryMulti(['eu','nl'])Product en bewijs
Hele kaart is één link (naar de PDP); de snelknop staat erboven. Volgorde: beeld met status, naam die zegt wat het is, korte belofte, prijs, levering. Tweede foto verschijnt bij hover (alleen muis).
GG.renderProductCard(p){ layout: 'editorial' }{ layout: 'compact' } · GG.renderSkeletonCard()Product en bewijs
Tegels openen een gebruikssituatie, niet een productsoort: de vraag uit het dossier staat erop. De navigatie werkt met 2, 3 of 4 categorieën; categorieën met status later verschijnen niet in menu's.
Shop op gebruikssituatie
Vier routes, elk met handige producten.
.gg-section-head · GG.renderTile(category)Product en bewijs
Eerst correcte productfoto's, daarnaast een korte echte demo. AI-sfeer en 3D zijn optioneel en altijd gelabeld. Video: stille loop met poster en ondertitels, pas afspelen na tik, nooit autoplay boven de vouw. 3D: poster eerst, model-viewer laadt pas na "Bekijk in 3D".
Deze video staat bij een externe dienst
Je hebt marketingcookies geweigerd. Laad de video eenmalig, of bekijk de foto's en specificaties hieronder.
.gg-player (consent)Product en bewijs
Specs in een echte tabel met waarden in mono. Op de PDP staan lange blokken in een accordion (mobiel) of tabs (desktop). Onbekende waarden worden niet ingevuld maar gemarkeerd.
GG.renderSpecs(p)45 cm breed, ongeveer de breedte van een 24-inch monitor. Past op schermen van 0,8 tot 3 cm dik.
Platte en gebogen monitoren tot 3 cm dik. Niet geschikt voor laptopschermen.
2 jaar garantie. CE, RoHS. Niet in de lichtbundel staren.
Verzonden uit NL in 1-2 werkdagen. 14 dagen bedenktijd, retour aanmelden kan online.
.gg-accordion[data-gg-accordion] · data-singlePijltjestoetsen wisselen tussen tabs; Home en End springen naar de eerste en laatste.
Light bar, monitorklem, USB-C-kabel 1,5 m, handleiding (NL).
Verzonden uit NL · 1-2 werkdagen. 14 dagen bedenktijd.
[role=tablist] · .gg-segmentProduct en bewijs
Bij lancering zijn er geen reviews; de lege staat is daarom de standaard. Reviews komen alleen van geverifieerde kopers, na levering. De gevulde weergave hieronder is een voorbeeldweergave en mag alleen in deze bibliotheek staan.
GG.renderReviewsEmpty()1 review van een geverifieerde koper. We publiceren alle reviews, ook kritische. Reviewbeleid
[Tekst van de koper. Wat werkte, wat niet. Wordt niet ingekort of aangepast.]
Reactie Galaxy Gadgetz: [optioneel]
.gg-reviewKopen
De drempelbalk is instelbaar (settings.free_shipping_threshold) en verdwijnt als die null is. Aanvullers komen uit complements van de producten in de mand, nooit uit "anderen kochten ook".
GG.renderLineItem(item) · .gg-totals.gg-bundleKopen
Alleen beloftes die operationeel waar zijn. Retourtermijn is een placeholder (14 dagen bedenktijd) tot het beleid is vastgesteld.
GG.renderServiceStrip()Feedback en navigatie
Meldingen staan in de pagina (blijvend), toasts bevestigen een handeling (tijdelijk, met optionele actie). Kleur draagt nooit alleen de betekenis: er is altijd een icoon en tekst.
.gg-alert--info · --success · --warning · --erroraria-live="polite", pauzeren bij hover. Tooltip: klik/tap of hover, Esc sluit.GG.toast(msg, { type, action }) · GG.tooltip(text)Feedback en navigatie
Breadcrumb volgt de primaire categorie. Op mobiel klapt hij in tot "terug naar ouder". Producten laden met "Meer laden" en een voortgangsregel; paginering blijft als crawlbare fallback.
Je bekijkt 8 van 17 producten
.gg-breadcrumb--collapse · .gg-load-more · .gg-paginationFeedback en navigatie
Alle lagen: focus gaat erin en blijft erin (focus-trap), Esc en klik op de achtergrond sluiten, de pagina scrolt niet mee, en focus gaat terug naar de knop die opende. Sheet: van onder op mobiel, van rechts vanaf 900 px (filters). Drawer: winkelmand.
GG.openLayer(id | el) · data-gg-open · data-gg-closeRetour aanmelden
Je meldt een retour aan voor bestelling GG-10421. Je hebt nog 11 dagen bedenktijd.
Filters 17 producten
Levering
.gg-layer.gg-modal · .gg-sheet · .gg-drawerVoorbeeld van een modal. Tab blijft binnen deze laag; Esc sluit.
Feedback en navigatie
Elke staat zegt wat er aan de hand is en biedt een volgende stap. Foutstaten noemen geen technische details, wel een referentie voor de klantenservice.
Geen producten met deze filters
Probeer een filter minder.
Dit lukt nu even niet
We konden de producten niet laden. Je winkelmand is bewaard.
Referentie: GG-ERR-7F3A
Producten laden
Duurt het langer dan een paar seconden, dan is je verbinding traag. We tonen eerst de foto's.
.is-loading..gg-state · --error · --boxed · .gg-spinnerFeedback en navigatie
Weigeren en Accepteren zijn gelijkwaardig: zelfde stijl, zelfde grootte, naast elkaar. Instellingen klapt de keuzes uit. De herroepingsknop is een vaste, goed vindbare online functie (dossier §13.2), naast het modelformulier.
GG.showCookieBanner()Bestelling herroepen
Je hebt 14 dagen bedenktijd na ontvangst. Vul je bestelnummer en e-mailadres in, dan bevestigen we je herroeping direct per mail.
.gg-withdraw-link en in elke orderbevestiging..gg-withdraw.gg-proto-badgeFeedback en navigatie
Header en footer worden door app.js in elke pagina gezet (zie bovenaan en onderaan deze pagina). Hoofdroutes: Shop (megamenu op gebruikssituatie), Ontdek, Cadeaugids. Klantenservice staat in de utility-balk, het mobiele menu en de footer. Zoeken is op mobiel altijd zichtbaar onder de header en schuift bij scrollen in tot een icoon.
Verschijnt pas als de koopknop uit beeld scrollt, en verbergt geen keuzevelden: heeft het product varianten die nog niet gekozen zijn, dan scrolt de knop terug naar de keuze in plaats van toe te voegen. Klasse body.has-buybar tilt de prototype-badge op.
.gg-buybar.is-visible