Skip to main content

NL Design — Features

NL Design is a Nextcloud theming app that applies Dutch government design standards (Rijkshuisstijl and other NL Design System token sets) to every part of the Nextcloud interface. It functions as a Nextcloud Theme Editor: administrators select a pre-built organization token set or fine-tune individual CSS variables, and the result is propagated to both the NL Design CSS layer and Nextcloud's built-in theming system.

NL Design has no direct GEMMA component mapping — it is a cross-cutting infrastructure concern that ensures WCAG AA accessibility and Dutch government branding across all Conduction apps.

Standards Compliance

StandardStatusDescription
NL Design SystemBeschikbaar--nldesign-* token namespace; 39+ organization token sets
RijkshuisstijlBeschikbaarNational government visual identity token set
WCAG 2.1 AABeschikbaarContrast, font size, and spacing tokens enforced per token set
Digitoegankelijk (EN 301 549)BeschikbaarAccessible colour and typography via design tokens
DCAT-AP NLN.v.t.Not applicable — theming layer only

Features

FeatureDescriptionDocs
Token Sets39+ organization-specific CSS token sets; searchable dropdown; auto-generated from upstream NL Design Systemtoken-sets.md
Token Editor UITabbed admin panel for editing all Nextcloud --color-* CSS variables with live preview and per-token resettoken-editor.md
CSS Architecture7-layer CSS load order: design system → token set → custom overrides; design-systems.json controls bundlescss-architecture.md
Custom CSS Overridescustom-overrides.css — single write target for all edits; loaded last; token set files are read-onlycss-architecture.md
Token Set Apply DialogBefore applying a token set, shows old → new value diff per token; admin checks/unchecks individual changesapply-dialog.md
Theming SyncAfter token set selection, syncs Nextcloud's primary color and background color via the theming APItheming-sync.md
Token Import/ExportDownload custom-overrides.css; upload a saved file to restore or share a token configurationimport-export.md
Admin SettingsAdmin panel under Theming: token set selector, toggles (hide slogan, show menu labels), token editoradmin-settings.md
Hide SloganRemoves Nextcloud's default login-page slogan for a clean government-branded logintoggles.md
Show Menu LabelsReplaces header app icons with text labels; improves discoverability per Dutch government UX guidelinestoggles.md
Component Tokens--nldesign-component-* prefix bridging --utrecht-* component tokens to the nldesign namespacetoken-sets.md
App CompatibilityIntegration guide for other Nextcloud apps to ensure CSS-variable compatibility with nldesignapp-compatibility.md
Prometheus MetricsActive token set, custom override count, theming sync operations — in Prometheus text format

Architecture

NL Design operates as a pure CSS layer — no database tables. Configuration is stored in IAppConfig. The CSS stack loads in a defined order:

  1. Design system base CSS (design-systems.json bundle)
  2. Organization token set (css/tokens/{id}.css)
  3. Custom overrides (custom-overrides.css) — always loaded last

The token sync workflow (nightly GitHub Actions) pulls updates from the upstream nl-design-system/themes repository and opens PRs when token changes are detected.

GEMMA Mapping

GEMMA ComponentNL Design Role
N.v.t.Cross-cutting theming infrastructure for all Conduction Nextcloud apps