Zum Hauptinhalt springen

Ihre Meinung ist uns wichtig! Gemeinsam mit Ihnen möchten wir KoliBri stetig verbessern. Teilen Sie uns Ihre Ideen, Wünsche oder Anregungen mit – schnell und unkompliziert.

InputPassword

Diese Dokumentation wird aktuell überarbeitet und befindet sich im Beta-Status. Inhalte können sich noch ändern.

Synonyme: Passwort-Eingabefeld, Passwortfeld, Password Input, Password Field

Beschreibung: Mit InputPassword können Passwörter eingegeben und bearbeitet werden.

Die Komponente basiert auf dem nativen HTML5-Eingabetyp password und unterstützt Funktionen wie das Ein- und Ausblenden des Passworts sowie die Konfiguration der maximalen Eingabelänge.

Beispiel

Standard-Passwortfeld mit Beschriftung und optional aktivierter Sichtbarkeitsfunktion:

<KolInputPassword _label="Passwort" _variant="default" _visibilityToggle={true} />

Barrierefreiheit

  • Das Eingabefeld muss mit einer aussagekräftigen Beschriftung (_label) versehen werden.
  • Zusätzliche Hinweise können über _hint, Fehlermeldungen über _msg bereitgestellt werden.
  • Die Sichtbarkeitsfunktion (_visibilityToggle) wird als eigenständiger Button umgesetzt und ist vollständig über Tastatur sowie assistive Technologien bedienbar.
  • Über _icons eingebundene Icons sind rein dekorativ und werden vor assistiven Technologien verborgen (aria-hidden).

Konkrete Designentscheidungen

EntscheidungBegründung
Verwendung des nativen HTML5-Eingabetyps passwordDie Komponente nutzt bewusst den nativen HTML5-Eingabetyp password und profitiert dadurch von dessen standardisierter Unterstützung durch Browser und assistive Technologien.
Aktualisierung des ZeichenzählersBei aktiviertem Zeichenzähler (_has-counter) wird dieser mit einer Verzögerung von 1000 ms aktualisiert, um Screenreader nicht bei jeder Eingabe zu unterbrechen. Ist kein Zeichenzähler aktiv, aber _max-length gesetzt, wird stattdessen ein versteckter, nur für assistive Technologien sichtbarer Hinweis bereitgestellt.
FokusmanagementDie Basis-Komponente setzt den nativen Fokusring zurück. Der sichtbare Fokusindikator wird durch das jeweils verwendete Theme bereitgestellt.

Verwendung

  • Nutzen Sie _visibilityToggle, um das Passwort bei Bedarf ein- und ausblenden zu können.
  • Verwenden Sie _max-length, um die maximal zulässige Anzahl an Zeichen zu begrenzen.
  • Nutzen Sie _max-length-behavior, um festzulegen, ob die Zeichenbegrenzung nativ durchgesetzt oder lediglich angezeigt wird.
  • Setzen Sie _autoComplete passend zum Anwendungsfall, beispielsweise auf current-password für Anmeldungen oder new-password für die Vergabe neuer Passwörter.

Hinweis: Die Komponente setzt _autoComplete standardmäßig auf "off". Überschreiben Sie diesen Wert in produktiven Formularen in der Regel explizit, damit Browser und Passwort-Manager das Eingabefeld korrekt erkennen und unterstützen können.

Tastatursteuerung

Die Tastaturbedienung wird durch den Browser und das Betriebssystem bestimmt. Daher können sich einzelne Tastaturfunktionen je nach Browser, Betriebssystem und Endgerät unterscheiden.

Typischerweise werden folgende Funktionen unterstützt:

TasteFunktion
TabFokus auf das Eingabefeld bzw. das nächste fokussierbare Element setzen.
Shift+TabFokus auf das vorherige fokussierbare Element setzen.
PfeiltastenCursor innerhalb des Eingabefelds bewegen.
Pos1 / EndeCursor an den Anfang bzw. das Ende des Eingabewerts setzen.

Hinweis: Ist _visibilityToggle aktiviert, kann der Sichtbarkeits-Button über Tab fokussiert und mit Enter oder Leertaste betätigt werden.

Best Practices / Empfehlungen

  • Setzen Sie _autoComplete passend zum Anwendungsfall ein. Verwenden Sie current-password für Anmeldungen und new-password für die Vergabe neuer Passwörter, damit Browser und Passwort-Manager das Eingabefeld korrekt erkennen und unterstützen können.
  • Nutzen Sie _visibilityToggle, wenn Nutzende ihre Passworteingabe vor dem Absenden überprüfen können sollen. Berücksichtigen Sie dabei, ob das Anzeigen des Passworts in der jeweiligen Nutzungssituation angemessen ist.
  • Begrenzen Sie die Passwortlänge bei Bedarf über _max-length und wählen Sie mit _max-length-behavior das zum Anwendungsfall passende Verhalten.
  • Formulieren Sie Passwortanforderungen und Validierungsfehler verständlich und stellen Sie diese über _hint bzw. _msg bereit.
  • Verwenden Sie _placeholder ausschließlich als zusätzliche Orientierung und nicht als Ersatz für eine aussagekräftige Beschriftung (_label).

Anwendungsfälle

  • Eingabe eines Passworts bei der Anmeldung an einer Anwendung
  • Vergabe eines neuen Passworts bei der Registrierung eines Benutzerkontos
  • Festlegen oder Ändern eines Passworts in den Kontoeinstellungen
  • Bestätigung eines neuen Passworts in Registrierungs- oder Änderungsformularen
  • Eingabe eines Passworts zur Authentifizierung besonders geschützter Aktionen

FAQ

Wann sollte ich _visibilityToggle verwenden?
Nutzen Sie _visibilityToggle, wenn Nutzende ihre Passworteingabe vor dem Absenden überprüfen können sollen, beispielsweise bei der Vergabe komplexer Passwörter. Berücksichtigen Sie dabei, ob das Anzeigen des Passworts in der jeweiligen Nutzungssituation angemessen ist.

Wie kann ich die Länge eines Passworts begrenzen?
Mit _has-counter, _max-length und _max-length-behavior können Sie eine Längenbegrenzung mit Zeichenzähler konfigurieren. _max-length-behavior="hard" verhindert die Eingabe nach Erreichen der festgelegten Zeichenanzahl, während "soft" weitere Eingaben zulässt und die verbleibenden Zeichen im Zähler negativ dargestellt werden.

Wie sollte _autoComplete verwendet werden?
Verwenden Sie current-password für Anmeldungen und new-password für die Vergabe neuer Passwörter. Dadurch können Browser und Passwort-Manager das Eingabefeld korrekt erkennen und unterstützen.

Kann ich zusätzliche Passwortregeln prüfen?
Ja. Nutzen Sie beispielsweise _pattern oder eine anwendungsspezifische Validierung, um zusätzliche Anforderungen wie Mindestlänge, Sonderzeichen oder bestimmte Passwortregeln umzusetzen.

Konstruktion / Technik

Playground

Testen Sie die verschiedenen Eigenschaften des Passwortfelds:

<KolInputPassword _label="Passwort" _visibilityToggle={true} />

Funktionalitäten (mit Code)

Basis-Passwortfeld

Standard-Passwortfeld mit Beschriftung:

<KolInputPassword _label="Passwort" _visibilityToggle={false} />

Sichtbarkeitsfunktion (Auge-Icon)

Passwortfeld mit Toggle zum Anzeigen/Verbergen des Passworts:

<KolInputPassword _label="Passwort" _visibilityToggle={true} />

Formular-Attribute

Standardattribute für Formulare (Pflichtfeld, deaktiviert, read-only, etc.):

<KolInputPassword _label="Passwort" _visibilityToggle={true} />

Hinweise und Fehlermeldungen

Hilfetext und Validierungsmeldungen:

Message
<KolInputPassword _hint="Mindestens 8 Zeichen erforderlich" _label="Passwort" _visibilityToggle={true} />

Zeichenzähler und Längenbegrenzung

Passwortfeld mit Zeichenzähler und Längenbegrenzung (hart oder weich):

<KolInputPassword _hasCounter={true} _label="Passwort" _maxLength={20} _visibilityToggle={true} />

Events und Eingabeverarbeitung

Das InputPassword unterstützt verschiedene Events für die Eingabeverarbeitung:

EventAuslöserValue
clickPasswortfeld wird angeklickt
focusPasswortfeld wird fokussiert
blurPasswortfeld verliert Fokus
inputWert wird durch Eingabe geändertAktueller Wert des Passwortfelds
changeEingabe wurde abgeschlossenAktueller Wert des Passwortfelds

Zur Behandlung von Events bzw. Callbacks siehe .

API

Overview

The Password input type creates an input field for passwords. The input is masked with dot symbols.

Properties

PropertyAttributeDescriptionTypeDefault
_accessKey_access-keyDefines the key combination that can be used to trigger or focus the component's interactive element.string | undefinedundefined
_autoComplete_auto-completeDefines whether the input can be auto-completed.string | undefined'off'
_disabled_disabledMakes the element not focusable and ignore all events.boolean | undefinedfalse
_hasCounter_has-counterShows a character counter for the input element.boolean | undefinedfalse
_hideLabel_hide-labelHides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it.boolean | undefinedfalse
_hideMsg_hide-msgHides the error message but leaves it in the DOM for the input's aria-describedby.boolean | undefinedfalse
_hint_hintDefines the hint text.string | undefined''
_icons_iconsDefines the icon classnames (e.g. _icons="fa-solid fa-user").string | undefined | { right?: IconOrIconClass | undefined; left?: IconOrIconClass | undefined; }undefined
_label (required)_labelDefines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to false to enable the expert slot.stringundefined
_maxLength_max-lengthDefines the maximum number of input characters.number | undefinedundefined
_maxLengthBehavior_max-length-behaviorDefines the behavior when maxLength is set. 'hard' sets the maxlength attribute, 'soft' shows a character counter without preventing input."hard" | "soft" | undefined'hard'
_msg_msgDefines the properties for a message rendered as Alert component.Omit<AlertProps, "_on" | "_label" | "_level" | "_variant" | "_hasCloser"> & { _description: string; } | string | undefinedundefined
_name_nameDefines the technical name of an input field.string | undefinedundefined
_on--Gibt die EventCallback-Funktionen für das Input-Event an.InputTypeOnBlur & InputTypeOnClick & InputTypeOnChange & InputTypeOnFocus & InputTypeOnInput & InputTypeOnKeyDown | undefinedundefined
_pattern_patternDefines a validation pattern for the input field.string | undefinedundefined
_placeholder_placeholderDefines the placeholder for input field. To be shown when there's no value.string | undefinedundefined
_readOnly_read-onlyMakes the input element read only.boolean | undefinedfalse
_required_requiredMakes the input element required.boolean | undefinedfalse
_shortKey_short-keyAdds a visual shortcut hint after the label and instructs the screen reader to read the shortcut aloud.string | undefinedundefined
_smartButton_smart-buttonAllows to add a button with an arbitrary action within the element (_hide-label only).string | undefined | { _label: string; } & { _type?: "button" | "reset" | "submit" | undefined; _accessKey?: string | undefined; _on?: ButtonCallbacksPropType<StencilUnknown> | undefined; _ariaExpanded?: boolean | undefined; _tabIndex?: number | undefined; _value?: StencilUnknown; _role?: "tab" | "treeitem" | undefined; _ariaControls?: string | undefined; _ariaDescription?: string | undefined; _ariaSelected?: boolean | undefined; _customClass?: string | undefined; _disabled?: boolean | undefined; _hideLabel?: boolean | undefined; _icons?: IconsPropType | undefined; _id?: string | undefined; _inline?: boolean | undefined; _name?: string | undefined; _shortKey?: string | undefined; _syncValueBySelector?: string | undefined; _tooltipAlign?: AlignPropType | undefined; _variant?: string | undefined; }undefined
_tooltipAlign_tooltip-alignDefines where to show the Tooltip preferably: top, right, bottom or left."bottom" | "left" | "right" | "top" | undefined'top'
_touched_touchedShows if the input was touched by a user.boolean | undefinedfalse
_value_valueDefines the value of the element.string | undefinedundefined
_variant_variantDefines which variant should be used for presentation.string | undefinedundefined
_visibilityToggle_visibility-toggleActivates the show password buttonboolean | undefinedfalse

Methods

click

click() => Promise<void>

Clicks the primary interactive element inside this component.

Returns

Type: Promise<void>

focus() => Promise<void>

Sets focus on the internal element.

Returns

Type: Promise<void>

getValue() => Promise<string | undefined>

Returns the current value.

Returns

Type: Promise<string | undefined>

Slots

SlotDescription
The label of the input field.