Links ein Button, den wir komplett selbst gebaut haben. Rechts derselbe Button mit KERN, dem Design-System der öffentlichen Verwaltung. Beide sind echt und anklickbar — der Unterschied steckt nicht im Klick, sondern darin, wer die Details festlegt. Umschalten zwischen React und CSS zeigt den Code darunter.
Farbe, Abstände & Ecken haben wir geraten.
Kein sichtbarer Fokus für Tastatur-Nutzer.
function AbsendenButton() { return ( <button className="my-button" type="button"> Absenden </button> ) }
.my-button { background-color: #004b76; /* geratenes Blau */ color: #ffffff; padding: 8px 18px; border: none; border-radius: 3px; font-size: 15px; cursor: pointer; } .my-button:hover { background-color: #003a5c; /* wieder geraten */ } /* Fokus-Zustand vergessen → nicht barrierefrei */
Amtliche Farbe, Abstände & Ecken.
Sichtbarer Fokus-Ring — mit Tab ansteuerbar.
function AbsendenButton() { return ( <button className="kern-btn kern-btn--primary" type="button"> <span className="kern-label">Absenden</span> </button> ) }
.kern-btn--primary { background-color: var(--kern-color-primary); }
Ein Klick setzt --kern-color-primary neu. Überschrift und Button
wechseln gemeinsam — sie lesen denselben Topf. Achte auf den
„Ohne KERN"-Button ganz oben: der bleibt stur blau, weil seine
Farbe fest eingetippt ist.
function Hinweis() { return ( <div className="mein-bereich"> {/* ← hier hängt die Klasse */} <h2>Bitte prüfen Sie Ihre Eingabe</h2> <button className="kern-btn kern-btn--primary"> <span className="kern-label">Absenden</span> </button> </div> ) }
/* DEINE Regel — färbt den Text im div */ .mein-bereich { color: var(--kern-color-primary); } /* KERNs eingebaute Regel — liest denselben Topf */ .kern-btn--primary { background-color: var(--kern-color-primary); }
Ohne: geraten. Mit KERN: amtlich vorgegeben — überall dasselbe Blau.
Ohne: selbst sicherstellen. Mit KERN: schon eingebaut & geprüft.
Ohne: viel eigenes CSS. Mit KERN: fast keins.
Ohne: jede App einzeln ändern. Mit KERN: zentral aktualisiert.