Brandguide

Welkom op de brandguide van Zwerfkei. Deze pagina documenteert de visuele bouwstenen van het design systeem: kleuren, typografie, componenten en spacing. Gebruik dit als referentie bij het bouwen van nieuwe pagina's en componenten. Deze informatie komt uit het Figma design, maar is hier in codevorm uitgewerkt zodat je precies kunt zien hoe alles is opgebouwd en geconfigureerd.

Deze brandguide is nog in ontwikkeling en zal de komende tijd verder worden uitgebreid en verfijnd. Feedback en suggesties zijn welkom!

Tech stack

De styling is opgebouwd met de volgende tools:

  • Tailwind CSS v4 — Utility-first CSS framework. Configuratie gebeurt volledig via CSS (@theme, @utility, @plugin), zonder tailwind.config.js.
  • @tailwindcss/typography — Voegt de prose-klassen toe voor het stylen van vrije HTML-content, zoals artikelen en CMS-teksten.
  • fluid-tailwindcss — Genereert vloeiende, viewport-schaalbare waarden via CSS clamp(). Gebruik klassen zoals fl-text-2xl/5xl of fl-p-4/8 om waarden automatisch te laten meeschalen tussen 600px en 1300px viewport breedte.
  • Reka UI — Headless, toegankelijke Vue-componenten voor UI-patronen zoals modals, dropdowns, tabs en tooltips. Geen standaard styling — volledig te stylen met Tailwind.
  • Swiper — Touch-vriendelijke slider/carousel library. Wordt headless ingezet zodat alle styling via eigen Tailwind-klassen verloopt.
  • blade-icons — Rendert SVG-iconen server-side inline in Blade via <x-icon-naam />. Iconen worden geladen vanuit resources/svg/.
  • vite-svg-loader — Vite plugin die SVG-bestanden importeert als Vue componenten via ?component. Gebruikt dezelfde bestanden uit resources/svg/ als blade-icons.
  • GSAP — Animatie-library. Gebruiken we voor animaties zoals parallax-effecten.

Typografie

Het lettertype is Alexandria (via Google Fonts), ingesteld als het standaard sans-serif font. De heading-klassen (text-h1 t/m text-h10) zijn handmatig gedefinieerd met clamp()-waarden en schalen vloeiend mee met de viewport — zonder vaste breakpoints.

Kleurpalet

Alle kleuren zijn gedefinieerd in de oklch-kleurruimte, wat zorgt voor perceptueel uniforme kleuren en betere toegankelijkheid. Elke kleur heeft een basis-, primary- en secondary-variant.

Fluid spacing

Spacing en maatvoering gebruiken de fl-* klassen van fluid-tailwindcss. De plugin is geconfigureerd met useRem: true en checkAccessibility: true, wat betekent dat gegenereerde clamp-waarden automatisch worden getoetst aan WCAG SC 1.4.4 (tekst moet tot 200% vergroot kunnen worden zonder verlies van functionaliteit).

Ideeën

Later in het design worden tabs ingebouwd. Eigenlijk wil ik die uiteindelijk gebruiken om deze brandguide te structureren, zodat je per sectie (kleuren, typografie, componenten) direct naar de relevante content kunt navigeren. Voor nu is het nog een lange scroll, maar dat zal in de toekomst verbeteren!

Colors

Red
primary
secondary
Yellow
primary
secondary
Green
primary
secondary
Turqoise
primary
secondary
Blue
secondary
Sand
primary
secondary
Gray 1
Gray 2
Gray 3
Gray 4
Gray 5
Gray 6
Zwart

Typography

text-h1 20-70px Lorem Ipsum
text-h2 26-60px Lorem Ipsum
text-h3 22-40px Lorem Ipsum
text-h4 20-24px Lorem Ipsum
text-h5 18-22px Lorem Ipsum
text-h6 14-16px Lorem Ipsum
text-h7 12-14px Lorem Ipsum
text-h8 12-12px Lorem Ipsum
text-h9 10-12px Lorem Ipsum
text-h10 8-8px Lorem Ipsum
Base text 16px Lorem ipsum is placeholder text commonly used in the graphic, print, and publishing industries for previewing layouts and visual mockups.

Container

De container-klasse (gedefinieerd in resources/css/app.css) regelt max-width, margin-inline: auto (centreren) en padding-inline (de zijkant-padding) in één keer. Gebruik deze klasse op de wrapper van elke sectie waarin content komt te staan.

Heb je een smallere sectie nodig? Voeg dan gewoon een max-w-*-klasse toe naast container, bijvoorbeeld class="container max-w-[1130px]". De container-klasse blijft verantwoordelijk voor het centreren en de padding, en de max-w-* override bepaalt alleen hoe breed de content wordt.

max-width is geen vaste breedte, maar een maximum — wordt het scherm kleiner dan die waarde, dan schaalt de container gewoon fluïde mee, daardoor verspringt er niets: de padding aan de zijkanten blijft altijd aanwezig, ongeacht hoe breed het scherm is.

Klik hier om container class te kopieren

Iconen

De iconen staan als .svg bestanden in resources/svg/. Dit maakt het mogelijk om hetzelfde bestand op twee manieren te gebruiken:

  • In Blade via blade-icons — rendert de SVG server-side inline. Gebruik de prefix x-icon- gevolgd door de bestandsnaam.
  • In Vue via vite-svg-loader — importeert de SVG als Vue component tijdens de Vite build. Dankzij de icons-plugin in resources/js/plugins/icons.ts is een SVG in resources/svg/heart.svg automatisch beschikbaar als <icon-heart />. Submappen worden met een koppelteken samengevoegd: svg/categories/arrow.svg<icon-categories-arrow />.

Iconen boven de fold gebruik je bij voorkeur via Blade, zodat ze direct zichtbaar zijn zonder te wachten op Vue hydration. Iconen binnen Vue componenten gebruik je als Vue component.

Bestandsnaam
Vue tag
Blade tag
Icoon
arrow-diagonal.svg
<icon-arrow-diagonal />
<x-icon-arrow-diagonal />
arrow-right.svg
<icon-arrow-right />
<x-icon-arrow-right />
arrow-left.svg
<icon-arrow-left />
<x-icon-arrow-left />
logo-facebook.svg
<icon-logo-facebook />
<x-icon-logo-facebook />
logo-instagram.svg
<icon-logo-instagram />
<x-icon-logo-instagram />
heart.svg
<icon-heart />
<x-icon-heart />
arrows-compare.svg
<icon-arrows-compare />
<x-icon-arrows-compare />
plus.svg
<icon-plus />
<x-icon-plus />
cross.svg
<icon-cross />
<x-icon-cross />
play.svg
<icon-play />
<x-icon-play />
pin.svg
<icon-pin />
<x-icon-pin />
magnify-zoom.svg
<icon-magnify-zoom />
<x-icon-magnify-zoom />
magnify-default.svg
<icon-magnify-default />
<x-icon-magnify-default />
minus.svg
<icon-minus />
<x-icon-minus />
check.svg
<icon-check />
<x-icon-check />
categories/accessories.svg
<icon-categories-accessories />
<x-icon-categories.accessories />

Categorie iconen

Hieronder kan je alle iconen vinden van de diverse categorieën.

Paddings/Margins

fl-w-25/50 100-200px
fl-w-20/37.5 80-150px
fl-w-12.5/25 50-100px
fl-w-7.5/12.5 30-50px
fl-w-5/7.5 20-30px
fl-w-3.75/5 15-20px
w-2.5 10px
w-[.313rem] 5px

Border radius

rounded-3xl 24px
rounded-2xl 16px
rounded-1lg 10px
rounded-sm 5px
rounded-xs 3px