Öffentliche Dienste und Bildung · Neue Ressource

Helsinki-Designsystem.

Kombinieren Sie native HDS-Auswahlgruppen, semantische Feedbackfarben und verknüpfte Fehlerübersichten zu einem vollständigen lokalen Ablauf zum Prüfen und Korrigieren.

OpenDesign-Leitfaden8 Kapitel24 ReferenzeinträgeOriginaler Anwendungsleitfaden
01

Interface-Vorschau des Helsinki-Designsystems

Versuchen Sie, zu wenige Themen auszuwählen, dem Fehlerlink zu folgen, die Auswahl zu korrigieren und aus der Überprüfung zurückzukehren.

Einen Nachmittag für Kompetenzen planenVollständiges Beispiel öffnen
Natives hds-core5.2.2 CSS; Arial als Fallback und ursprüngliche Anwendungslogik. · Implementierungsreferenz
02

Gestaltungsreferenz des Helsinki-Designsystems

Paket CSS hds-core5.2.2 und offizielle Formularrichtlinien. Native Stile; Arial als Fallback; ursprüngliche Regel zur Mindestauswahl.

Typografie-Tokens

Quelle
Name / RegelWert / KonfigurationVerwendung
--font-defaultHelsinkiGroteskPro, Arial, sans-serifDie urheberrechtlich geschützten Schriftarten von Helsinki sind nicht im Core-Paket enthalten; die Demo verwendet Arial als nativen Fallback.
--fontsize-body-s/m/l/xl14 /16 /18 /20pxBeim normalen Root-Wert eine Funktion auswählen, statt beliebige Größen für einzelne Felder festzulegen.
--fontsize-heading-xxl/xl64 /48pxGrößte Überschriften.
--fontsize-heading-xl-mobile40pxExplizites Token; die Vorschau wechselt bei576px als Anwendungsentscheidung.
--fontsize-heading-l/m/s32 /24 /20pxSekundäre Überschriften.
--lineheight-s/m/l/xl1 /1.2 /1.5 /1.75Multiplikatoren, keine Pixelhöhen.

Abstände von Komponenten und Layout

Quelle
Name / RegelWert / KonfigurationVerwendung
Component scale2,4,8,12,16,24,32,40,48,56,64,72pxspacing-4-xs bis spacing-5-xl.
Layout scale16,24,32,48,64,96,128pxspacing-layout-2-xs bis spacing-layout-2-xl.
Breakpoints320,576,768,992,1248,1440pxxs bis xxl; die deklarierten Token-Werte erzeugen selbst keine Media Queries.
Container widths288,544,720,944,1200pxReferenzbreiten von xs bis xl.
Checkbox geometry24px size;2px border;3px focus outlineTatsächliches Core5.2.2 CSS.
Button minimum56px; square corners2px-Rahmen mit aus spacing-s/l abgeleitetem Innenabstand.

Semantische Farben und Palettenfarben

Quelle
Name / RegelWert / KonfigurationVerwendung
Bus#0000bf Standardstil für ausgewählte Checkboxen und das primäre Button-Theme.
Coat of arms / focus#0072c6 Abgesetztes Stadtblau und Fokusfunktion.
Copper#00d7a7 Akzentpalette; Regel für den Demo-Header.
Error / light#b01038 /#f6e2e6Validierungsmeldung; nicht mit dekorativem Brick austauschbar.
Success / light#007a64 /#e2f5f3Funktion für bestätigte Ergebnisse.
Info / alert#0062b9 /#ffda07Informations- und Aufmerksamkeitsfunktionen.
Text / secondary#1a1a1a /#595959black-90 und black-60.

Formularstruktur und Fehlerbehebung

Quelle
Name / RegelWert / KonfigurationVerwendung
Selection groupfieldset + legendDie Legende beschreibt die Auswahl, die Beschriftungen die Optionen.
Vertical itemshds-selection-group__items--verticalLange Optionen nicht in eine einzige horizontale Zeile zwingen.
Error summaryNotification error variant with linked error listUnter der Formularüberschrift platzieren und nach einer fehlgeschlagenen Übermittlung die Überschrift fokussieren.
Inline errorhds-selection-group__error-textHinweise während der Korrektur sichtbar lassen.
Application ruleAt least two topicsValidierung des ursprünglichen Szenarios, kein HDS-Standard für Checkboxen.
03

Vollständiger Leitfaden zum Helsinki-Designsystem

Ein praktischer Leitfaden zur Auswahl, Anwendung und Überprüfung dieses Systems für ein echtes Interface.

DESIGN-helsinki.md

Umfassende Anleitung, Einstieg in die Implementierung und Links zu den Quellen.

Leitfaden herunterladen

Kern und Abgrenzung zu React im Helsinki-Designsystem

Verwenden Sie die Implementierung, die Sie tatsächlich ausführen

HDS stellt Core CSS, React-Komponenten und Design-Tokens bereit. Dieses Beispiel verwendet fest hds-core5.2.2, das für das Beispiel heruntergeladene und geprüfte Paket. Versionsnummern von Repository-Releases können von der Version eines einzelnen Pakets abweichen. Ein neuerer Repository-Tag ist daher kein Beleg dafür, dass dieses Beispiel mit dieser Version ausgeführt wird.

Aus diesem OpenDesign-Leitfaden

Core stellt Basisvariablen und einzelne Komponentenstile bereit. Der hier verwendete Formular-Anwendungszustand ist darin nicht enthalten. Auswahl, Validierung, Überprüfung und Änderungslogik wurden eigens für JavaScript entwickelt und bauen auf nativen HTML-Eingaben sowie dem dokumentierten HDS-Formularmuster auf.

Unterstützende Spezifikation lesen

Typografie und die Schriftartgrenze im Helsinki-Designsystem

Nativen Fallback transparent verwenden

Die Schriftvariablen führen zuerst HelsinkiGroteskPro und danach Arial und sans-serif auf. In der Core-README wird ausdrücklich darauf hingewiesen, dass die Schriftdateien von Helsinki aus urheberrechtlichen Gründen nicht enthalten sind. Die Vorschau verwendet weiterhin den Fallback, statt eingeschränkte Schriftarten herunterzuladen oder stillschweigend eine exakte Markendarstellung zu behaupten.

Das Basis-Body-Token beträgt16px bei einer Zeilenhöhe von1.5. Heading-xl beträgt48px, das mobile Token40px; die Vorschau wechselt bei576px zwischen ihnen. Dies sind benannte Werte, doch eine CSS-Variable mit einem Breakpoint sorgt nicht automatisch für responsives Verhalten. Die explizite Media-Regel gehört zur Anwendungskomposition.

Unterstützende Spezifikation lesen

Zwei Abstandssysteme im Helsinki-Designsystem

Abstände zwischen Komponenten und Seitenrhythmus getrennt behandeln

HDS unterscheidet eine Abstandsfolge für Komponenten von einer größeren Abstandsfolge für Layouts. Erstere umfasst2,4,8,12,16 und24px und wächst anschließend bis72px. Die Layoutabstände reichen bis128px. spacing-layout-xl als Abstand zwischen benachbarten Checkboxen würde die Gruppe überladen, obwohl die Variable gültig ist.

Die Checkbox-Komponente definiert ein Bedienelement mit24px, einen2px-Rahmen und einen3px-Fokusring. Die Mindesthöhe des Buttons beträgt56px, seine Ecken sind rechtwinklig. Die Vorschau übernimmt diese nativen Formen; das Formular befindet sich in einem Anwendung-Container mit einer maximalen Breite von720px gemäß der veröffentlichten Referenzbreite.

Unterstützende Spezifikation lesen

Farbfunktionen in einem Formular des Helsinki-Designsystems

Palettennamen nicht mit Rückmeldungsfunktionen verwechseln

Das interaktive Standarddesign verwendet Busblau, während die Fokusumrandung Wappenblau nutzt. Für Fehlermeldungen kommen ein separater Beerenton und eine helle Fehlerfläche zum Einsatz. Ein Palettenakzent wie Kupfer kann eine Kopfzeile gestalten, sollte aber nicht allein deshalb die Fehlerfarbe ersetzen, weil er markanter wirkt.

Die Inline-Fehlermeldung der Auswahlgruppe kombiniert Text, einen kontrastierenden linken Rand und ein Icon. Sie verlässt sich nicht allein auf die Farbe Rot. Die Links in der Fehlerübersicht verwenden die vertraute Interaktionsfarbe, damit der Weg zurück zum Feld leicht erkennbar ist.

Unterstützende Spezifikation lesen

Anatomie einer Kontrollkästchengruppe im Helsinki-Designsystem

Eine Gruppe umfasst eine Frage und mehrere Antwortmöglichkeiten

Die native Struktur besteht aus einem fieldset mit einer legend, einem Container für die Elemente und einzelnen Kontrollkästchen-Containern. Auf jedes Eingabefeld folgt unmittelbar sein Label, da das Stylesheet diese Beziehung für visuelle Zustände nutzt. Die legend erläutert die Auswahlaufgabe; jedes Label benennt ein verfügbares Thema.

Das Beispiel verlangt mindestens zwei Themen – eine eigens festgelegte Geschäftsregel. Kontrollkästchen sind passend, da mehrere Optionen ausgewählt bleiben können. Eine Optionsgruppe würde eine sich gegenseitig ausschließende Auswahl ausdrücken und der Aufgabe widersprechen. Der Hinweis zum fieldset bleibt vor und nach der Validierung sichtbar.

html
<fieldset class="hds-selection-group" aria-describedby="topics-hint">
  <legend class="hds-selection-group__legend">Topics for your afternoon</legend>
  <p id="topics-hint">Choose at least two topics.</p>
  <div class="hds-selection-group__items hds-selection-group__items--vertical">
    <div class="hds-checkbox">
      <input class="hds-checkbox__input" type="checkbox" id="repair" value="Repair and reuse">
      <label class="hds-checkbox__label" for="repair">Repair and reuse</label>
    </div>
    <div class="hds-checkbox">
      <input class="hds-checkbox__input" type="checkbox" id="garden" value="Urban gardening">
      <label class="hds-checkbox__label" for="garden">Urban gardening</label>
    </div>
  </div>
</fieldset>

Code-Referenz

Unterstützende Spezifikation lesen

Verknüpfte Fehlermeldungen und Fehlerbehebung im Helsinki-Designsystem

Problem fokussieren und Eingaben beibehalten

HDS empfiehlt, nach dem Absenden eines fehlerhaften Formulars eine Fehlerübersicht unterhalb der Formularüberschrift anzuzeigen. Ihre Einträge verlinken auf fehlerhafte Steuerelemente, und der Fokus wird auf die Überschrift der Übersicht gesetzt. Das Beispiel folgt diesem Ablauf: Werden keine oder nur ein Thema ausgewählt, erscheinen die Übersicht und eine Inline-Fehlermeldung; der Link setzt den Fokus auf das erste Kontrollkästchen.

Nach dem ersten Versuch wird bei jeder Änderung der Auswahl erneut geprüft, ob die Mindestanzahl erreicht ist. Sobald zwei Themen ausgewählt sind, verschwinden beide Fehleranzeigen, ohne die ausgewählten Eingaben zu löschen. Bei einem weiteren fehlgeschlagenen Versuch springt der Fokus zurück zur Überschrift der Fehlerübersicht. Bei der Überprüfung wird die Regel erneut geprüft; clientseitige Rückmeldungen ersetzen in einem echten Dienst keine serverseitige Validierung.

  1. Ohne ausgewählte Themen überprüfen und sicherstellen, dass die Fehlerübersicht den Fokus erhält.
  2. Dem Link folgen und zwei Themen auswählen; sicherstellen, dass die Fehlermeldung verschwindet.
  3. Die lokale Überprüfung öffnen, zurückkehren, die Themen ändern und prüfen, ob beide Auswahlen erhalten bleiben.

Unterstützende Spezifikation lesen

Assets und vollständiges Beispiel im Helsinki-Designsystem

Basis und ausgewählte Komponenten laden

Das Core-Paket trennt base.css von den Komponenten-Stylesheets. Wird nur base importiert, stehen Variablen und Typografie zur Verfügung, nicht aber die Gestaltung der Kontrollkästchen oder Benachrichtigungen. Die Einrichtung nennt genau die Dateien, die in diesem Beispiel verwendet werden, und hält so den Asset-Umfang kleiner als beim Bundle mit allen Komponenten.

Das vollständige Beispiel umfasst die Anwendungsvalidierung und das Zurücksetzen. Der letzte Zustand heißt „lokale Überprüfung“, da nichts registriert oder gesendet wird. Die Auswahl wird bewusst gelöscht: Auswahlen und Validierungsverlauf werden zurückgesetzt, anschließend erhält das erste Eingabefeld den Fokus. Ein gewöhnlicher Feldfehler löst diese Aktion nicht aus.

  • base.css stellt Farben, Abstände, Typografie und Referenzmaße bereit.
  • Die Styles für Kontrollkästchen und Auswahlgruppen sorgen für gruppierte Steuerelemente und Inline-Rückmeldungen.
  • Die Styles für Benachrichtigungen und Schaltflächen stellen die Fehlerübersicht und Aktionen bereit.

Unterstützende Spezifikation lesen

Was das Beispiel im Helsinki-Designsystem zeigt

Implementierungsdetails ohne irreführende Aussagen über den Dienst

Die Vorschau zeigt die tatsächliche HDS-Komponentenformatierung, Tastaturfokus, Fehlerbehebung und Datenerhalt bei 1440, 768 und 390 px. Sie erhebt nicht den Anspruch, eine umfassende Barrierefreiheitsprüfung darzustellen. Ein echter mehrsprachiger Stadtdienst benötigt außerdem lokalisierte Labels, passende Sprachmetadaten, serverseitige Regeln und eine bestätigte Antwort seines Service-Backends.

Der Quellcode ist unter MIT lizenziert, für die Stadtschrift gelten jedoch eigene Nutzungsrechte. Dieses unabhängige Lernbeispiel verwendet fiktive Programmthemen und keine offizielle Helsinki-Identität. Die sichtbare Gestaltung und der lokale Zustand dürfen nicht mit einer echten Veranstaltungsanmeldung verwechselt werden.

Unterstützende Spezifikation lesen

Komponentenbeispiele im Helsinki-Designsystem

Native Struktur für gruppierte Kontrollkästchen

Fieldset und legend legen die Frage fest; Eingabefelder und Labels ermöglichen mehrere Antworten.

html
<fieldset class="hds-selection-group" aria-describedby="topics-hint">
  <legend class="hds-selection-group__legend">Topics for your afternoon</legend>
  <p id="topics-hint">Choose at least two topics.</p>
  <div class="hds-selection-group__items hds-selection-group__items--vertical">
    <div class="hds-checkbox">
      <input class="hds-checkbox__input" type="checkbox" id="repair" value="Repair and reuse">
      <label class="hds-checkbox__label" for="repair">Repair and reuse</label>
    </div>
    <div class="hds-checkbox">
      <input class="hds-checkbox__input" type="checkbox" id="garden" value="Urban gardening">
      <label class="hds-checkbox__label" for="garden">Urban gardening</label>
    </div>
  </div>
</fieldset>

Code-Referenz

Vollständiger Ablauf zur Auswahl mit verknüpften Fehlermeldungen

Fokus auf der Fehlerübersicht, verknüpfte Fehlerbehebung, Überprüfen, Ändern und Auswahl löschen.

html
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Plan a skills afternoon</title><link rel="stylesheet" href="vendor/hds-core-5.2.2/base.css"><link rel="stylesheet" href="vendor/hds-core-5.2.2/checkbox.css"><link rel="stylesheet" href="vendor/hds-core-5.2.2/selection-group.css"><link rel="stylesheet" href="vendor/hds-core-5.2.2/notification.css"><link rel="stylesheet" href="vendor/hds-core-5.2.2/button.css"><style>*{box-sizing:border-box}body{margin:0;padding:var(--spacing-layout-s) var(--spacing-s);font-family:var(--font-default);color:var(--color-black-90)}main{max-width:720px;margin:auto}h1{margin-top:8px}header{border-top:8px solid var(--color-copper);padding-top:var(--spacing-m)}.hds-selection-group{margin:24px 0}.hds-notification{margin:24px 0}.actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:32px}footer{font-size:14px;line-height:1.5;margin-top:32px;border-top:1px solid var(--color-black-20);padding-top:16px}#review{background:var(--color-silver-light);padding:24px;margin-top:24px}[hidden]{display:none!important}@media(max-width:575px){.heading-xl{font-size:var(--fontsize-heading-xl-mobile)}}button{max-width:100%}</style><main class="text-body"><header><small>COMMUNITY SKILLS · LOCAL PLAN</small><h1 class="heading-xl">Plan a skills afternoon</h1><p>Select at least two topics for an example programme. Nothing is registered or sent.</p></header><form id="form" novalidate><div id="summary" class="hds-notification hds-notification--error" hidden><div class="hds-notification__content"><h2 id="summary-heading" class="hds-notification__label" tabindex="-1">Check your topic selection</h2><div class="hds-notification__body"><ul><li><a href="#repair" id="error-link">Choose at least two topics</a></li></ul></div></div></div><fieldset class="hds-selection-group" aria-describedby="hint field-error"><legend class="hds-selection-group__legend">Topics for your afternoon</legend><p id="hint">Choose two or more. You can change your selection before reviewing the plan.</p><div class="hds-selection-group__items hds-selection-group__items--vertical"><div class="hds-checkbox"><input id="repair" type="checkbox" class="hds-checkbox__input" value="Repair and reuse"><label class="hds-checkbox__label" for="repair">Repair and reuse</label></div><div class="hds-checkbox"><input id="digital" type="checkbox" class="hds-checkbox__input" value="Everyday digital skills"><label class="hds-checkbox__label" for="digital">Everyday digital skills</label></div><div class="hds-checkbox"><input id="garden" type="checkbox" class="hds-checkbox__input" value="Urban gardening"><label class="hds-checkbox__label" for="garden">Urban gardening</label></div></div><div id="field-error" class="hds-selection-group__error-text" hidden>Choose at least two topics.</div></fieldset><p id="count" role="status">0 topics selected.</p><div class="actions"><button class="hds-button hds-button--primary" type="submit">Review local plan</button><button id="reset" class="hds-button hds-button--secondary" type="button">Clear selection</button></div></form><section id="review" hidden tabindex="-1"><h2 class="heading-m">Your selected topics</h2><ul id="selected"></ul><p>This is a local review, not a booking confirmation.</p><button id="change" class="hds-button hds-button--secondary">Change topics</button></section><footer>Native HDS Core5.2.2 styles with Arial fallback. Original selection rule and local review. No Helsinki branding, registration or backend.</footer></main><script>let attempted=false;const boxes=[...document.querySelectorAll('input[type=checkbox]')];const values=()=>boxes.filter(x=>x.checked);function validate(focus=false){const n=values().length;document.querySelector('#count').textContent=n+' topics selected.';const bad=attempted&&n<2;document.querySelector('#summary').hidden=!bad;document.querySelector('#field-error').hidden=!bad;boxes.forEach(x=>{if(bad)x.setAttribute('aria-invalid','true');else x.removeAttribute('aria-invalid')});if(bad&&focus)document.querySelector('#summary-heading').focus();return !bad}boxes.forEach(x=>x.onchange=()=>validate());document.querySelector('#error-link').onclick=e=>{e.preventDefault();boxes[0].focus()};document.querySelector('#form').onsubmit=e=>{e.preventDefault();attempted=true;if(!validate(true))return;const list=document.querySelector('#selected');list.replaceChildren();values().forEach(x=>{const li=document.createElement('li');li.textContent=x.value;list.append(li)});document.querySelector('#form').hidden=true;document.querySelector('#review').hidden=false;document.querySelector('#review').focus()};document.querySelector('#change').onclick=()=>{document.querySelector('#form').hidden=false;document.querySelector('#review').hidden=true;boxes[0].focus()};document.querySelector('#reset').onclick=()=>{boxes.forEach(x=>x.checked=false);attempted=false;validate();boxes[0].focus()};</script></html>

Code-Referenz

04

Agent-Einrichtung für das Helsinki-Designsystem

Ausgangspunkt für die Implementierung

Exakte Pfade der Core-Assets. Der Anwendungscode übernimmt Validierung und Überprüfung; HelsinkiGroteskPro ist nicht enthalten. Das vollständige ZIP mit dem funktionierenden Beispiel unter Sources enthält außerdem die exakten Abhängigkeiten für die Vorschau und das vollständige Dokument. Entpacken Sie es, führen Sie in diesem Verzeichnis python3 -m http.server 8080 aus und öffnen Sie anschließend http://localhost:8080/helsinki.html. Öffnen Sie Beispiele mit Modulen nicht über file://.

bash
npm install [email protected]
# CSS imports in a bundler:
# import 'hds-core/lib/base.css';
# import 'hds-core/lib/components/checkbox/checkbox.css';
# import 'hds-core/lib/components/selection-group/selection-group.css';
# import 'hds-core/lib/components/notification/notification.css';
# import 'hds-core/lib/components/button/button.css';
# In plain HTML, copy these files into public assets and link base.css first.
# HelsinkiGroteskPro is not bundled; the native font stack falls back to Arial.

Ein Prompt für dein Projekt

Agenten-Prompt
Verwenden Sie HDS Core 5.2.2 mit base und den ausgewählten Komponenten-CSS. Gruppieren Sie verwandte Kontrollkästchen mit fieldset/legend, erhalten Sie Labels und Hinweise und verwenden Sie semantische Fehlertokens. Zeigen Sie bei einer fehlgeschlagenen Überprüfung verknüpfte Fehlermeldungen unter der Formularüberschrift an und setzen Sie den Fokus auf die Überschrift der Übersicht. Prüfen Sie nach einer Korrektur erneut, behalten Sie ausgewählte Werte bei und unterscheiden Sie die lokale Überprüfung von einer serverseitig bestätigten Übermittlung.
05

Quellen und Geltungsbereich des Helsinki-Designsystems

Unabhängiges OpenDesign-Beispiel. Kein Schriftdatei-Asset Helsinki und keine Dienstidentität; keine Registrierung und kein Backend-Ergebnis.