Zum Hauptinhalt springen
Version: latest
Universell einsetzbar

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

Input

Input rendert ein gestyltes <input> mit zugehörigem Label, optionalem Hilfetext unter dem Feld, Fehlerfeedback und Unterstützung für führende/abschließende Adornments (Icons oder Buttons).


Übersicht

import { Input } from "@prokodo/ui/input"
;<Input
name="email"
label="Email address"
type="email"
placeholder="you@example.com"
required
/>

Import

import { Input } from "@prokodo/ui/input"

CSS:

import "@prokodo/ui/input.css"

Props

PropTypStandardPflichtBeschreibung
idstringHTML-id für den Input.
labelstringEingabe-Beschriftungstext.
valuestringGesteuerter Eingabewert.
defaultValuestringUnkontrollierter Ausgangswert.
placeholderstringPlatzhaltertext.
typestring"text"HTML Input-Typ.
disabledbooleanfalseEingabe deaktivieren.
readOnlybooleanfalseEingabe schreibgeschützt machen.
requiredbooleanfalseFeld als Pflichtfeld markieren.
fullWidthbooleanfalseAn Container-Breite anpassen.
multilinebooleanfalseAls <textarea> rendern.
rowsnumberAnzahl sichtbarer Zeilen (textarea).
minRowsnumberMindestzeilen für auto-resize textarea.
maxRowsnumberMaximalzeilen für auto-resize textarea.
startNodeReactNodeInhalt am Anfang der Eingabe.
endNodeReactNodeInhalt am Ende der Eingabe.
renderNodeReactNodeBenutzerdefinierter Render-Override.
iconNamestringIcon-Name innerhalb des Eingabefeldes.
errorTextstringFehlermeldung (setzt Fehlerzustand).
helperTextstringHilfetext unterhalb der Eingabe.
colorVariantsFarbakzent-Variante.
onChangeReact.ChangeEventHandler<HTMLInputElement>Änderungs-Handler.
classNamestringCSS-Klasse am Root-Element.

Siehe src/components/input/Input.model.ts für den vollständigen InputProps-Typ.


Design-Tokens

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

TokenStandardBeschreibung
--pk-input-bgvar(--pk-color-surface)Hintergrundfarbe
--pk-input-fgvar(--pk-color-fg)Textfarbe
--pk-input-fg-mutedvar(--pk-color-muted)Placeholder / Hint
--pk-input-bordervar(--pk-color-border)Rahmenfarbe (ruhend)
--pk-input-border-focusvar(--pk-color-brand)Rahmenfarbe (fokussiert)
--pk-input-radiusvar(--pk-radius-pill)Eckenradius
--pk-input-padding-xvar(--pk-space-lg)Horizontaler Innenabstand
--pk-input-padding-y0.875remVertikaler Innenabstand
--pk-input-label-fgvar(--pk-color-muted)Labelfarbe (ruhend)
--pk-input-label-focused-fgvar(--pk-color-brand)Floating-Label-Farbe
--pk-input-helper-fgvar(--pk-palette-grey-300)Hilfetext / Fehlertextfarbe
--pk-input-shadowvar(--pk-shadow-sm)Box-Schatten (ruhend)
--pk-input-gradient-fromvar(--pk-color-brand)Verlauf Start (Fokusrahmen)
--pk-input-gradient-tovar(--pk-color-accent)Verlauf Ende (Fokusrahmen)

AIC-Hinweis

Verwende im Anwendungscode immer den Standard-Importpfad:

import { Input } from "@prokodo/ui/input"

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.3.5Eingabezweck identifizieren (AA)🔍 Manuell prüfenFormularfelder, die persönliche Daten erfassen, müssen ihren Zweck via HTML-autocomplete-Attribut kommunizieren.
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.
2.4.11Fokus nicht verdeckt (Min.) (AA)🔍 Manuell prüfenDie fokussierte Komponente darf nicht vollständig durch Sticky-Header, Overlays oder andere positionierte Seitenelemente verdeckt sein.
3.3.1Fehlererkennung (A)🔍 Manuell prüfenEingabefehler müssen in Textform identifiziert und dem Nutzer beschrieben werden, nicht nur durch Farbe.
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: 6 jest-axe-Assertion(s) in 5 Testdatei(en) · 7 ARIA-Attribut-Vorkommen im Quellcode-Scan. Kriterien mit 🔍 erfordern manuelle Prüfung im finalen Integrations- und Theme-Kontext.

Storybook

👉 Input in Storybook öffnen


Quellcode

src/components/input/Input.model.ts