Files
atomic-design-poc/public/cibg-huisstijl/MIGRATION.md
Edwin van den Houdt b443f1fc04 feat(design): re-theme to CIBG Huisstijl (Bootstrap 5.2), replacing RHC/Utrecht
The portal now adheres to the CIBG design system (designsystem.cibg.nl) — a customized
Bootstrap 5.2 build — replacing the Rijkshuisstijl-Community / Utrecht theme. See ADR-0003.

- Vendor @cibg/huisstijl@3.22.0 under public/cibg-huisstijl/, loaded via a <link> in
  index.html (Storybook serves it via staticDirs). Drop the two @rijkshuisstijl-community deps.
- Token bridge in styles.scss: redefine the app's ~54 --rhc-* tokens onto CIBG/--bs-* values,
  so components keep referencing tokens (no 300+ site rewrite). System-font stack; licensed
  RO/Rijks text fonts intentionally not shipped.
- Re-skin every shared atom to Bootstrap/CIBG classes (btn, form-control, form-check-*,
  table, breadcrumb, …) keeping their input() APIs. alert is hand-rolled (CIBG drops .alert);
  local .card/.badge renamed to avoid Bootstrap collisions.
- Domain pages: drop stray rhc-*/utrecht-* classes; registration-table → table table-striped.

Verified: build green, check:tokens OK, lint clean, 174 tests pass, build-storybook OK,
and the served build loads the vendored CSS (200, .btn-primary present).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 12:32:50 +02:00

3.9 KiB

Migratie naar CIBG Huisstijl 2.0.0

In dit document staat beschreven welke stappen er moeten worden doorlopen om een prototype bij te werken naar versie 2.0.0 van de CIBG Huisstijl. Deze versie is gebaseerd op Bootstrap 5.2, waardoor er een aantal class en data-attribute migraties moeten worden doorgevoerd.

Je kunt deze migratiegids ook gebruiken voor het bijwerken van de applicaties. In appplicaties is Bootstrap alleen geen dependency, dus deze hoef je dan ook niet bij te werken.

Voorbereiding

  • Update naar CIBG Huisstijl 2.0.1 package (npm install -s @cibg/huisstijl@2.0.1)
  • Update de boostrap dependency naar versie 5.2.0. Dit is nodig omdat we de bootstrap.bundle.min.js van Bootstrap gebruiken (alleen voor prototypes).

Hernoemingen

Er zijn een aantal classes en data-attributes gewijzigd. Doorloop de onderstaand wijzigingen. Hierin de dingen die we vaak gebruiken in prototypes.

Let op dat je alles in de folder 'pages' en 'includes' vervangt, maar vooral niet de eventueel gearchiveerde sprints omdat deze nog gebruik maken van Bootstrap 4.X.

De hernoemingen die hieronder staan zijn veel in prototypes gebruikte classes. Het kan echter zijn dat je zelf nog andere classes gebruikt die gewijzigd zijn. Werkt iets niet naar verwachting? Check dan de Bootstap 5 migration guide op https://getbootstrap.com/docs/5.2/migration/ om te kijken of je classes gebruikt die gewijzigd zijn.

Classes

De volgende classes worden veel gebruikt in de prototypes en moeten worden hernoemd. Let op dat je eerst de skiplink class vervangt en daarna de screenreader-only classes.

Was Wordt
sr-only sr-only-focusable visually-hidden-focusable
sr-only visually-hidden
ml-* ms-*
mr-* me-*
pl-* ps-*
pr-* pe-*
text-left text-start
text-right text-end
font-weight-* fw-*
badge badge-primary badge bg-primary
dropdown-menu-right dropdown-menu-end
dropdown-menu-left dropdown-menu-start

Classes van dropdown select lists

Styling van dropdowns is verplaats onder een andere class-name, waardoor de classes veranderd moeten worden. Wijzig de class van select elementen met de class form-control naar form-control form-select. Dit kun je niet met een (eenvoudige) replace-all doen, omdat andere controls ook de form-control gebruiken.

Let op: Dit is niet van toepassing bij de paginering select, die gebruikt andere classes die niet gewijzigd zijn.

Data attributes (alleen voor prototypes)

Bootstrap data-toggles zijn voortaan genamespaced. Alle data-*="*" moeten worden gewijzigd in data-bs-*="*".

Was Wordt
data-toggle="tab" data-bs-toggle="tab"
data-toggle="tooltip" data-bs-toggle="tooltip"
data-toggle="dropdown" data-bs-toggle="dropdown"
data-toggle="collapse" data-bs-toggle="collapse"
data-toggle="modal" data-bs-toggle="modal"
data-dismiss="modal" data-bs-dismiss="modal"
data-target="" data-bs-target=""
data-original-title="" data-bs-title=""

Javascript

Controleer of er javascript in je project zit dat dymamisch HTML injecteert en of daarin de bovenstaande hernoemingen voorkomen. In een standaard project is dit meestal alleen een sr-only class voor menu-items in de header.