Files
triqura-ecd/docs/ux-stylesheet.md
2025-11-09 14:21:31 +01:00

195 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎨 Kleur Stylesheet MiniECD (v2, UXgeoptimaliseerd)
> Doel: consistente, toegankelijke kleuren met **lage cognitieve belasting**. Accentpalet teruggebracht tot **3 modules** (Afspraken, Medicatie/Herinneringen, Lab/Resultaten). Inclusief duidelijke states en contrastrichtlijnen.
---
## 🌐 Basiskleuren
* **Appachtergrond**: `#F8FAFC`
* **Oppervlak (kaarten/modals)**: `#FFFFFF`
* **Suboppervlak** (sekundair paneel/rightrail): `#F1F5F9`
* **Tekst primair**: `#0F172A`
* **Tekst secundair**: `#475569`
* **Borders/Dividers**: `#E2E8F0`
**WCAG tip:** tekst op witte of zachte pastelfondsen ≥ `#0F172A` / `#1E293B` voor AAcontrast.
---
## 🔹 Merk & Primaire UI
* **Primary / Brand**: `#3B82F6`
* Hover: `#2563EB`
* Active: `#1D4ED8`
* Subtle bg (chips, emptystates): `#EFF6FF`
* OnPrimary text/icon: `#FFFFFF`
* **Neutral CTA (secundair/terug)**: `#334155`
* Hover: `#1F2937`
* OnNeutral: `#FFFFFF`
---
## 📊 Moduleaccenten (gereduceerd)
Gebruik **max. drie** accentfamilies. Pastel voor kaarten + een verzadigd accent voor iconen/teksten.
1. **Afspraken**
* Card bg: `#E8F8EF`
* Accent (icon/label): `#16A34A`
* Border: `#CDECDC`
2. **Medicatie / Herinneringen**
* Card bg: `#FEF6DC`
* Accent: `#F59E0B`
* Border: `#F6E7B6`
3. **Lab / Resultaten**
* Card bg: `#FFEBDC`
* Accent: `#F97316`
* Border: `#FFD2B8`
> **Toegankelijkheid:** tekst op pastelkaarten in **donkergrijs `#0F172A`**. Accentkleur enkel voor iconen/badges/kleine headings.
---
## ⚠️ Status & Feedback
* **Success**: `#16A34A`
* **Warning**: `#EAB308`
* **Error**: `#DC2626`
* **Info**: `#3B82F6`
**Subtle backgrounds**
* Success subtle: `#ECFDF5`
* Warning subtle: `#FEFCE8`
* Error subtle: `#FEF2F2`
* Info subtle: `#EFF6FF`
**Toasts/alerts**
* Tekst: `#0F172A`
* Icon: statuskleur
* Border: statuskleur op 30% (bijv. mix met wit)
---
## 🏷️ Badges & Labels (Severity DSMlight)
* **Laag**: bg `#E5E7EB`, text `#374151`
* **Middel**: bg `#FEF3C7`, text `#92400E`
* **Hoog**: bg `#FEE2E2`, text `#991B1B`
---
## ✍️ Formulieren & Invoervelden
* **Input bg**: `#FFFFFF`
* **Input text**: `#0F172A`
* **Placeholder**: `#94A3B8`
* **Border default**: `#CBD5E1`
* **Border hover**: `#94A3B8`
* **Focus**: 2px ring `#3B82F6` + 1px inset border `#2563EB`
* **Disabled**: bg `#F1F5F9`, text `#94A3B8`, border `#E2E8F0`
* **Invalid**: border `#DC2626`, helptext `#B91C1C`
**Select/Dropdown**
* Menu bg: `#FFFFFF`
* Hover option: `#F1F5F9`
* Active/selected: left bar `#3B82F6`
---
## 🧩 Componentstates (Buttons/Links/Cards)
**Primary button**
* Default: bg `#3B82F6`, text `#FFFFFF`
* Hover: bg `#2563EB`
* Active: bg `#1D4ED8`
* Disabled: bg `#BFDBFE`, text `#FFFFFF` @ 70%
**Secondary button**
* Default: bg `#334155`, text `#FFFFFF`
* Hover: bg `#1F2937`
* Disabled: bg `#CBD5E1`, text `#FFFFFF` @ 60%
**Ghost button**
* Text: `#334155`; hover bg: `#F1F5F9`
**Links**
* Default: `#2563EB`
* Hover/Focus: underline + `#1D4ED8`
* Visited: `#4F46E5`
**Cards**
* Default: bg `#FFFFFF`, border `#E2E8F0`, shadow sm
* Hoverable variant: shadow md + translateY(1px)
---
## 🗺️ Navigatie
* **Sidebar item**
* Default text: `#334155`
* Active: text `#0F172A`, bg `#E2E8F0`, left accent bar `#3B82F6`
* Disabled: text `#94A3B8`
* **Topbar**
* Bg: `#FFFFFF`, borderbottom: `#E2E8F0`
---
## 🌫️ Elevation & Focus
* **Shadows**
* sm: `0 1px 2px rgba(15,23,42,0.06)`
* md: `0 2px 6px rgba(15,23,42,0.08)`
* lg: `0 8px 20px rgba(15,23,42,0.10)`
* **Focus ring (universeel)**: 2px `#3B82F6` buiten het element + 1px contrastborder.
---
## ♿ Toegankelijkheidsrichtlijnen
* Minimale contrastverhouding **AA**:
* Bodytekst op wit ≥ 4.5:1 (gebruik `#0F172A`/`#1E293B`)
* Tekst op gekleurde knoppen altijd **wit** (`#FFFFFF`) en check contrast.
* Gebruik niet alleen kleur: combineer status met **icoon**, **label** of **shape**.
* Focus is altijd zichtbaar (geen `outline: none`).
---
## 🔧 Semantische tokens (aliasing)
Gebruik semantische namen in code i.p.v. ruwe HEXwaarden:
* `--color-bg`, `--color-surface`, `--color-text`, `--color-border`
* `--color-brand`, `--color-brand-hover`, `--color-info`, `--color-success`, `--color-warning`, `--color-error`
* `--color-module-appointments`, `--color-module-meds`, `--color-module-labs`
---
## 📌 Notities
* Accentpalet bewust klein gehouden → minder visuele ruis, sneller scannen.
* Kaarten tonen **accent** alleen in icoon/badge of kleine titel; content blijft donker op licht voor leesbaarheid.
* Voor donker thema kunnen bovenstaande waarden gespiegeld worden met lichtere teksten en donkerder oppervlakken.