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
idstring——HTML-id für den Input.
labelstring——Eingabe-Beschriftungstext.
valuestring——Gesteuerter Eingabewert.
defaultValuestring——Unkontrollierter Ausgangswert.
placeholderstring——Platzhaltertext.
typestring"text"—HTML Input-Typ.
disabledbooleanfalse—Eingabe deaktivieren.
readOnlybooleanfalse—Eingabe schreibgeschützt machen.
requiredbooleanfalse—Feld als Pflichtfeld markieren.
fullWidthbooleanfalse—An Container-Breite anpassen.
multilinebooleanfalse—Als <textarea> rendern.
rowsnumber——Anzahl sichtbarer Zeilen (textarea).
minRowsnumber——Mindestzeilen für auto-resize textarea.
maxRowsnumber——Maximalzeilen für auto-resize textarea.
startNodeReactNode——Inhalt am Anfang der Eingabe.
endNodeReactNode——Inhalt am Ende der Eingabe.
renderNodeReactNode——Benutzerdefinierter Render-Override.
iconNamestring——Icon-Name innerhalb des Eingabefeldes.
errorTextstring——Fehlermeldung (setzt Fehlerzustand).
helperTextstring——Hilfetext unterhalb der Eingabe.
colorVariants——Farbakzent-Variante.
onChangeReact.ChangeEventHandler<HTMLInputElement>——Änderungs-Handler.
classNamestring——CSS-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