Kleuren & kleurgebruik
Kleurprincipes
- Merkblauw is voor interactie — links, primaire CTA's, focus, het grand-totaal. Geen standaard tekstkleur. Bodytekst is
--ink-700/--ink-900. - Magenta is nooit bodytekst — alleen backgrounds, badges, soft borders en de „Niet definitief” status-pill. Mag subtiel een locked/read-only state markeren.
- Groen = bevestigend — Versturen, Klant aanmaken, „Definitief” pill en het Eerstvolgend-puntje (volgende afspraak).
- Sectie-headers (KLANT, DOCUMENT, OPMERKINGEN) gebruiken
--ink-900navy + uppercase +letter-spacing: 0.6px. - Geld in regel- en samenvattingsrijen is
--ink-700. Alleen het grand „Totaal” krijgt--accent-blue— dat is hét eindgetal.
0 · Pagina-achtergrond
De app-achtergrond is geen platte kleur maar een zachte gradient met een blauwe glow bovenaan en een subtiele noise-overlay. Cards rusten hier op alsof het een tafel is.
radial-gradient(ellipse 100% 55% at 50% -8%, rgba(195, 213, 255, 0.38) 0%, transparent 65%)linear-gradient(168deg, #f1f4fb 0%, #eaecf3 55%, #e7eaf1 100%)fractalNoise SVG · opacity 0.032 · fixed overlayhtml {
background:
radial-gradient(ellipse 100% 55% at 50% -8%,
rgba(195, 213, 255, 0.38) 0%, transparent 65%),
linear-gradient(168deg,
#f1f4fb 0%, #eaecf3 55%, #e7eaf1 100%);
}1 · Merk
Merkkleuren — bewust spaarzaam ingezet. Blauw voor interactie en het grand-totaal, magenta uitsluitend voor status/badges (nooit als bodytekst), groen voor bevestigende acties.
2 · Ink (tekst)
Een platte 5-staps schaal. Standaard bodytekst is --ink-700. Daarboven zwaarder, daaronder rustiger. Geen tussenwaarden toevoegen — die zijn al getest en versmolten visueel.
3 · Oppervlakken
Vier oppervlak-tiers — van pagina-canvas tot bijna-wit voor nesting. Cards zitten op --bg, geneste structuren op --surface-alt en --surface-muted.
4 · Randen
Drie tiers borders. Standaard is --border, --border-soft voor rustigere kaders, --border-line voor hairlines tussen rijen.
5 · Status / semantisch
Semantische kleuren — alleen voor wat ze betekenen, niet als decoratie.
6 · Schaduw — hoofd-cards
Overview-tabel card, A4 document-content en de right side bar. Één rustige, licht donkerblauwe schaduw met een hairline border. Geen hover-state — de grote cards blijven rustig liggen.
4px 4px 15px 0 rgba(14, 34, 85, 0.05)1px solid #eef0f4 (var(--border-soft))12px.main-card {
background: var(--surface);
border: 1px solid var(--border-soft);
border-radius: 12px;
box-shadow: 4px 4px 15px 0 rgba(14, 34, 85, 0.05);
}7 · Schaduw — KPI-cards
Kleinere tegels met een kleurgebonden schaduw (blauw, roze, paars). Bij hover verdiept de schaduw en schuift de card licht omhoog. Hover onderstaande tegels om het effect te zien.
0 4px 14px rgba(19, 80, 234, 0.06)0 10px 24px rgba(19, 80, 234, 0.11), 0 3px 8px rgba(19, 80, 234, 0.06)geen schaduw0 10px 24px rgba(230, 0, 126, 0.15), 0 3px 8px rgba(230, 0, 126, 0.07)0 4px 14px rgba(170, 0, 255, 0.06)0 10px 24px rgba(170, 0, 255, 0.11), 0 3px 8px rgba(170, 0, 255, 0.05)hover: translateY(-2px)transform .18s, box-shadow .18s12px.kpi {
border-radius: 12px;
transition: transform .18s, box-shadow .18s;
}
.kpi:hover { transform: translateY(-2px); }
.kpi--blue { box-shadow: 0 4px 14px rgba(19, 80, 234, 0.06); }
.kpi--blue:hover {
box-shadow: 0 10px 24px rgba(19, 80, 234, 0.11),
0 3px 8px rgba(19, 80, 234, 0.06);
}
.kpi--pink { box-shadow: none; }
.kpi--pink:hover {
box-shadow: 0 10px 24px rgba(230, 0, 126, 0.15),
0 3px 8px rgba(230, 0, 126, 0.07);
}
.kpi--purple { box-shadow: 0 4px 14px rgba(170, 0, 255, 0.06); }
.kpi--purple:hover {
box-shadow: 0 10px 24px rgba(170, 0, 255, 0.11),
0 3px 8px rgba(170, 0, 255, 0.05);
}9 · Gebruik in code
Gebruik altijd de CSS-variabelen, nooit hardcoded hex. Zo blijft theming centraal.
.my-card {
background: var(--surface);
border: 1px solid var(--border);
color: var(--ink-700);
}
.my-card__title { color: var(--ink-900); }
.my-card__link { color: var(--accent-blue); }
.my-card__total { color: var(--accent-blue); font-weight: 700; }