Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

Checkbox funktioniert sowohl auf dem Server als auch im Browser. Nutze immer den Standard-Import (z. B. @prokodo/ui/checkbox) — die Library erkennt die Umgebung automatisch.

Checkbox

Checkbox rendert ein barrierefreies <input type="checkbox"> mit zugehörigem Label, optionalem Hilfetext und Fehlerfeedback. Funktioniert in kontrollierten und unkontrollierten Modi.


Übersicht

import { Checkbox } from "@prokodo/ui/checkbox"
;<Checkbox
value="terms"
title="Ich akzeptiere die Allgemeinen Geschäftsbedingungen"
checked={accepted}
onChange={checked => setAccepted(checked)}
/>

Import

import { Checkbox } from "@prokodo/ui/checkbox"

CSS:

import "@prokodo/ui/checkbox.css"

Props

PropTypStandardPflichtBeschreibung
valueT (generisch)Wert dieser Checkbox.
titleReactNodeLabel/Titel neben der Checkbox.
descriptionstringSekundärer Beschreibungstext.
iconstringIcon-Name in der Karten-Variante.
iconLabelstringBarrierefreie Bezeichnung des Icons.
checkedbooleanGesteuerter Aktivierungszustand.
defaultCheckedbooleanUnkontrollierter Ausgangszustand.
disabledbooleanfalseCheckbox deaktivieren.
requiredbooleanfalseFeld als Pflichtfeld markieren.
showRequiredMarkbooleanfalsePflicht-Sternchen am Label anzeigen.
variant"plain" | "card""plain"Visuelle Variante.
colorVariantsFarbakzent-Variante.
onChange(checked: boolean, value: T) => voidWird bei Aktivierungszustandsänderung aufgerufen.
classNamestringCSS-Klasse am Root-Element.

Siehe src/components/checkbox/Checkbox.model.ts für den vollständigen CheckboxProps-Typ.


Design-Tokens

Passe Checkbox über CSS Custom Properties auf :root oder einem übergeordneten Element an.

TokenStandardBeschreibung
--pk-checkbox-size1.125remGröße der Checkbox
--pk-checkbox-control-radius6pxEckenradius der Checkbox
--pk-checkbox-control-bordervar(--pk-palette-grey-200)Rahmen (nicht angehakt)
--pk-checkbox-gradient-fromvar(--pk-color-brand)Verlauf Start (angehakt)
--pk-checkbox-gradient-tovar(--pk-color-accent)Verlauf Ende (angehakt)
--pk-checkbox-fgvar(--pk-color-fg)Label-Textfarbe
--pk-checkbox-error-fgvar(--pk-color-error)Fehler-Textfarbe

AIC-Hinweis

Verwende im Anwendungscode immer den Standard-Importpfad:

import { Checkbox } from "@prokodo/ui/checkbox"

Eine separate Auswahl von /client oder /lazy ist im Consumer-Code nicht erforderlich.

AIC-Komponenten unterstützen außerdem ein priority-Flag für kritische Above-the-fold-Elemente. Am sichtbarsten ist das bei Image (natives Preloading via <link rel="preload"> für Above-the-fold-Inhalte).


WCAG-2.2-Status

KriteriumBezeichnungStatusHinweis
1.3.1Info und Beziehungen (A)✅ ErfülltSemantische Struktur (Überschriften, Listen, Labels, Landmarks) muss programmatisch via HTML oder ARIA vermittelt werden.
1.4.1Verwendung von Farbe (A)🔍 Manuell prüfenFarbe darf nicht das einzige Mittel zur Informationsvermittlung sein (z. B. Fehlerhinweise, Pflichtfeldmarkierungen).
2.1.1Tastatur (A)✅ ErfülltAlle Funktionalität muss allein über Tastatur bedienbar sein, ohne Timing-Anforderungen.
2.4.7Fokus sichtbar (AA)🔍 Manuell prüfenAuf jedem interaktiven Element muss ein sichtbarer Tastaturfokus-Indikator vorhanden sein. Prüfung gegen das angewendete Produkt-Theme erforderlich.
3.3.2Bezeichnungen oder Anweisungen (A)✅ ErfülltJedes Formularfeld benötigt ein programmatisch verknüpftes Label oder eine sichtbare Anweisung.
4.1.2Name, Rolle, Wert (A)✅ ErfülltName, Rolle und Zustand aller interaktiven UI-Komponenten müssen via nativer HTML-Semantik oder ARIA programmatisch bestimmbar sein.

Testabdeckung: 2 jest-axe-Assertion(s) in 5 Testdatei(en) · 3 ARIA-Attribut-Vorkommen im Quellcode-Scan. Kriterien mit 🔍 erfordern manuelle Prüfung im finalen Integrations- und Theme-Kontext.

Storybook

👉 Checkbox in Storybook öffnen


Quellcode

src/components/checkbox/Checkbox.model.ts