Forms
Das Basis-Layout einer Gruppe von Eingabefeldern wird mit dem Grund-Markup bereitgestellt. Dieses ist immer zu verwenden und gibt eine grundlegende Formatierung und Ausrichtung der Elemente vor. Dieses Grund-Markup kann mit beliebigen Elementen aus den nachfolgenden Elementen gefüllt werden. (Beispielformulare)
The basic layout of a group of input fields is provided with the basic mark-up. It should always be used and specifies the basic formatting and alignment of the elements. This basic mark-up can be filled with any of the elements in the following elements. (Exampleforms)
Form elements
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField4879" class="form-label ">
Textfeld
</label>
<input class="form-control" id="myInputField4879" type="text" name="myInputField4879">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="mySelect7762" class="form-label">
Select
</label>
<select class="form-control" id="mySelect7762" name="mySelect7762"
>
<option value="">Bitte wählen</option>
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</select>
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="mySelect3729" class="form-label">
Multiselect
</label>
<select class="form-control" multiple id="mySelect3729" name="mySelect3729"
>
<option value="">Bitte wählen</option>
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</select>
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group js-multi-select">
<label id="mylabel5286" class="form-label">JS Multiselect</label>
<!-- Trigger -->
<button type="button" class="multi-select__trigger" aria-expanded="false" aria-controls="mypanel5286" aria-labelledby="mylabel5286 mytext5286">
<span id="mytext5286" class="multi-select__text">Bitte wählen</span>
</button>
<!-- Text/Messages (i18n) -->
<div class="multi-select__messages" hidden>
<span data-role="placeholder">Bitte wählen</span>
<span data-role="selected">ausgewählt</span>
</div>
<!-- Dropdown Panel -->
<div class="multi-select__panel" id="mypanel5286" hidden>
<fieldset class="multi-select__options">
<legend class="aural">JS Multiselect auswählen</legend>
<label class="multi-select__option">
<input type="checkbox" name="myname5286[]" value="option1">Option 1</label>
<label class="multi-select__option">
<input type="checkbox" name="myname5286[]" value="option2">Option 2</label>
<label class="multi-select__option">
<input type="checkbox" name="myname5286[]" value="option3">Option 3</label>
</fieldset>
</div>
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField3686" class="form-label ">
Dateiupload
</label>
<input class="form-control" id="myInputField3686" type="file" name="myInputField3686">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField3734" class="form-label ">
Time
</label>
<input class="form-control" id="myInputField3734" type="time" name="myInputField3734">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField4037" class="form-label ">
Number
</label>
<input class="form-control" id="myInputField4037" type="number" name="myInputField4037">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField1163" class="form-label ">
Url
</label>
<input class="form-control" id="myInputField1163" type="url" name="myInputField1163">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField810" class="form-label ">
Datepicker native (input[type=date])
</label>
<input class="form-control" id="myInputField810" type="date" name="myInputField810">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField3026" class="form-label ">
Datepicker with flatpickr.js (input.datepicker)
</label>
<input class="form-control datepicker" id="myInputField3026" type="text" name="myInputField3026">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField1699" class="form-label ">
Readonly
</label>
<input class="form-control" readonly id="myInputField1699" type="text" value="Dieser Text ist nicht zu ändern" name="myInputField1699">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField19" class="form-label ">
Required <span class="icon-required" aria-hidden="true">*</span><span class="aural">(Pflichtfeld)</span>
</label>
<input class="form-control" required aria-required="true" id="myInputField19" type="text" name="myInputField19">
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField7610" class="form-label ">
Input as plaintext
</label>
<input class="form-control-plaintext" readonly id="myInputField7610" type="text" value="Dieser Wert sieht aus wie Plaintext" name="myInputField7610">
</div>
</form>
Checkboxes und Radio buttons
Standardmäßig werden Checkboxen und Radios untereinander angezeigt und in der Wrapper-Klasse .form-check gekapselt. Das Inputfeld hat die Klasse .form-check-input. Das Label hat die Klasse .form-check-label.
Barrierefreiheit: Bitte beachten Sie bei Eingabegruppen die Verwendung von fieldset und legend. Siehe auch: Barrierefreies Webdesign - Mit FIELDSET und LEGEND zu beschreibenden Formularbeschriftungen
<form class="form--base panel--heavy">
<fieldset >
<legend >
Checkboxes legend
</legend>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="myCheckbox2975" name="myCheckbox2975">
<label class="form-check-label" for="myCheckbox2975">Checkbox label</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="myCheckbox8962" name="myCheckbox8962">
<label class="form-check-label" for="myCheckbox8962">Checkbox label</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" disabled id="myCheckbox2717" name="myCheckbox2717">
<label class="form-check-label" for="myCheckbox2717">Disabled checkbox label</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="myCheckbox2368" name="myCheckbox2368">
<label class="form-check-label" for="myCheckbox2368">Checkbox label with a lot of text Philosophy is considered a science but it is difficult to say, when one has to compare with an ordinary science, for example biology, or chemistry.</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="myCheckbox5317" name="myCheckbox5317">
<label class="form-check-label" for="myCheckbox5317">Checkbox label</label>
</div>
</fieldset>
</form>
<form class="form--base panel--heavy">
<fieldset >
<legend >
Radio button legend
</legend>
<div class="form-check">
<input class="form-check-input" type="radio" id="myCheckbox8503" name="exampleRadios">
<label class="form-check-label" for="myCheckbox8503">Radio label</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" id="myCheckbox9344" name="exampleRadios">
<label class="form-check-label" for="myCheckbox9344">Radio label</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" disabled id="myCheckbox5872" name="exampleRadios">
<label class="form-check-label" for="myCheckbox5872">Disabled radio label</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" id="myCheckbox6935" name="exampleRadios">
<label class="form-check-label" for="myCheckbox6935">Radio label with a lot of text Philosophy is considered a science but it is difficult to say, when one has to compare with an ordinary science, for example biology, or chemistry.</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" id="myCheckbox5481" name="exampleRadios">
<label class="form-check-label" for="myCheckbox5481">Radio label</label>
</div>
</fieldset>
</form>
Inline Checkboxen: Checkboxen und Radios können mit der Klasse .form-check-inline horizontal gruppiert werden.
<form class="form--base panel--heavy">
<fieldset >
<legend >
Inline checkboxes legend
</legend>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="myCheckbox1529" name="myCheckbox1529">
<label class="form-check-label" for="myCheckbox1529">Checkbox label</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="myCheckbox4444" name="myCheckbox4444">
<label class="form-check-label" for="myCheckbox4444">Checkbox label</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" disabled id="myCheckbox2238" name="myCheckbox2238">
<label class="form-check-label" for="myCheckbox2238">Disabled checkbox label</label>
</div>
</fieldset>
</form>
<form class="form--base panel--heavy">
<fieldset >
<legend >
Inline radio buttons legend
</legend>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="myCheckbox1034" name="exampleRadios2">
<label class="form-check-label" for="myCheckbox1034">Radio button label</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="myCheckbox4543" name="exampleRadios2">
<label class="form-check-label" for="myCheckbox4543">Radio button label</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" disabled id="myCheckbox2333" name="exampleRadios2">
<label class="form-check-label" for="myCheckbox2333">Disabled Radio button label</label>
</div>
</fieldset>
</form>
Toggle switch
<form class="form--base panel--heavy">
<fieldset >
<legend >
Settings
</legend>
<div class="toggle-switch form-check">
<input type="checkbox" name="toggle-switch-input-5107" id="toggle-switch-5107" aria-label="Toggle Switch" class="toggle-switch__input" checked="checked">
<span class="toggle-switch__display" hidden>
<i class="bicon bicon-check toggle-switch__icon toggle-switch__icon--on" aria-hidden="true"></i>
<i class="bicon bicon-times toggle-switch__icon toggle-switch__icon--off" aria-hidden="true"></i>
</span>
<label class="toggle-switch__label" for="toggle-switch-5107">Receive Notifications</label>
</div>
<div class="toggle-switch form-check">
<input type="checkbox" name="toggle-switch-input-3179" id="toggle-switch-3179" aria-label="Toggle Switch" class="toggle-switch__input">
<span class="toggle-switch__display" hidden>
<i class="bicon bicon-check toggle-switch__icon toggle-switch__icon--on" aria-hidden="true"></i>
<i class="bicon bicon-times toggle-switch__icon toggle-switch__icon--off" aria-hidden="true"></i>
</span>
<label class="toggle-switch__label" for="toggle-switch-3179">Receive SMS</label>
</div>
<div class="toggle-switch form-check">
<input type="checkbox" name="toggle-switch-input-9277" id="toggle-switch-9277" aria-label="Toggle Switch" class="toggle-switch__input" disabled="disabled">
<span class="toggle-switch__display" hidden>
<i class="bicon bicon-check toggle-switch__icon toggle-switch__icon--on" aria-hidden="true"></i>
<i class="bicon bicon-times toggle-switch__icon toggle-switch__icon--off" aria-hidden="true"></i>
</span>
<label class="toggle-switch__label" for="toggle-switch-9277">Receive call (disabled)</label>
</div>
</fieldset>
</form>
Hilfetexte
Der Hilfetext hat die Klasse .formgroup__help. Standardmäßig wird er unterhalb des Eingabefeldes angezeigt. Für Screenreader wird das Eingabeelement über das Attribut aria-describedby mit dem id des Beschreibungstexte verknüpft.
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField3755" class="form-label ">
Passwort
</label>
<input class="form-control" id="myInputField3755" type="password" aria-describedby="myInputField3755Help " placeholder="Geben Sie hier Ihr passwort ein" name="myInputField3755">
<small id="myInputField3755Help" class="formgroup__help">We never share your email with anyone else.</small>
</div>
</form>
Validierung
Über die Klassen .is-invalid und .is-valid können Elemente farblich gekennzeichnet werden.
Ein zusätzlicher Fehlertext mit der Klasse .message.message-error bzw. .message.message-success wird unterhalb des invaliden Elementes angezeigt.
<form class="form--base panel--heavy">
<div class="form-group">
<label for="myInputField7254" class="form-label ">
Textfeld
</label>
<input class="form-control is-invalid" id="myInputField7254" type="text" aria-invalid="true" aria-describedby="myInputField7254Invalid " name="myInputField7254">
<p id="myInputField7254Invalid" class="message message--error">Bitte füllen Sie dieses Feld aus.</p>
</div>
</form>
<form class="form--base panel--heavy">
<div class="form-check">
<input class="form-check-input is-invalid" type="checkbox" aria-invalid="true" aria-describedby="myCheckbox139Invalid " id="myCheckbox139" name="myCheckbox139">
<label class="form-check-label" for="myCheckbox139">Checkbox</label>
<p id="myCheckbox139Invalid" class="message message--error">Bitte füllen Sie dieses Feld aus.</p>
</div>
</form>
<form class="form--base panel--heavy">
<fieldset >
<legend >
Wie zufrieden sind Sie mit dieser Frage?
</legend>
<div class="form-check form-check-inline">
<input class="form-check-input is-invalid" type="radio" aria-invalid="true" aria-describedby="myFieldset1925Invalid" id="myCheckbox4935" name="exampleRadios">
<label class="form-check-label" for="myCheckbox4935">Sehr zufrieden</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input is-invalid" type="radio" aria-invalid="true" aria-describedby="myFieldset1925Invalid" id="myCheckbox9952" name="exampleRadios">
<label class="form-check-label" for="myCheckbox9952">Ist mir egal</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input is-invalid" type="radio" aria-invalid="true" aria-describedby="myFieldset1925Invalid" id="myCheckbox831" name="exampleRadios">
<label class="form-check-label" for="myCheckbox831">Weniger zufrieden</label>
</div>
<p class="message message--error" id="myFieldset1925Invalid">Bitte füllen Sie dieses Feld aus.</p>
</fieldset>
</form>
Horizontale Elemente
Horizontale Darstellung von Elementen mit .form-group--inline.
<form class="form--base panel--heavy">
<div class="form-group form-group form-group--inline"> <div class="form-group">
<label for="myInputField6995" class="form-label aural">
Textfeld
</label>
<input class="form-control" id="myInputField6995" type="text" name="myInputField6995">
</div>
<div class="form-group">
<label for="mySelect3443" class="form-label aural">
Auswahlliste
</label>
<select class="form-control" id="mySelect3443" name="mySelect3443"
>
<option value="">Bitte wählen</option>
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</select>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="myCheckbox4721" name="myCheckbox4721">
<label class="form-check-label" for="myCheckbox4721">Checkbox</label>
</div>
<button type="submit" class="button">Button</button>
</div></form>
.form-group--inline .fullspace .align-bottom
<form class="form--base panel--heavy">
<div class="form-group form-group form-group--inline fullspace align-bottom"> <div class="form-group">
<label for="myInputField6814" class="form-label ">
Textfeld
</label>
<input class="form-control" id="myInputField6814" type="text" name="myInputField6814">
</div>
<div class="form-group">
<label for="myInputField3045" class="form-label ">
Textfeld
</label>
<input class="form-control" id="myInputField3045" type="text" name="myInputField3045">
</div>
<button type="submit" class="button">Button</button>
</div></form>
Example 1
<form class="form--base panel--heavy">
<p class="form-description">
Hinweis: Pflichfelder sind mit einem <span class="icon-required" aria-hidden="true">*</span><span class="aural">(Pflichtfeld)</span> markiert.
</p>
<div class="form-group">
<label for="myInputField3206" class="form-label ">
Input <span class="icon-required" aria-hidden="true">*</span><span class="aural">(Pflichtfeld)</span>
</label>
<input class="form-control" required aria-required="true" id="myInputField3206" type="text" aria-describedby="myInputField3206Help " name="myInputField3206">
<small id="myInputField3206Help" class="formgroup__help">Helptext</small>
</div>
<div class="form-group">
<label for="mySelect5269" class="form-label">
Select <span class="icon-required" aria-hidden="true">*</span><span class="aural">(Pflichtfeld)</span>
</label>
<select class="form-control" required aria-required="true" id="mySelect5269" aria-describedby="mySelect5269Help " name="mySelect5269"
>
<option value="">Bitte wählen</option>
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</select>
<small id="mySelect5269Help" class="formgroup__help">Helptext</small>
</div>
<fieldset >
<legend >
Frage
</legend>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="myCheckbox573" name="myCheckbox573">
<label class="form-check-label" for="myCheckbox573">Antwort 1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="myCheckbox5561" name="myCheckbox5561">
<label class="form-check-label" for="myCheckbox5561">Antwort 2</label>
</div>
</fieldset>
<fieldset >
<legend >
Frage
</legend>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="myCheckbox678" name="exampleRadios1">
<label class="form-check-label" for="myCheckbox678">Ja</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" id="myCheckbox2622" name="exampleRadios1">
<label class="form-check-label" for="myCheckbox2622">Nein</label>
</div>
</fieldset>
<div class="form-actions"> <div class="form-actions__left">
<a href="#randomtarget5631" class="link--back">Back</a>
</div>
<div class="form-actions__right">
<button type="submit" class="button">Action</button>
</div>
</div>
<div class="form__footer panel__footer panel--heavy">
<p>Optionaler Footer</p>
</div>
</form>
Example 2
Dieser Bereich ist geschützt. Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein.
<form class="form--base panel--heavy">
<p class="form-description">
Hinweis: Pflichfelder sind mit einem <span class="icon-required" aria-hidden="true">*</span><span class="aural">(Pflichtfeld)</span> markiert.
</p>
<div class="form-group">
<label for="myInputField6344" class="form-label ">
Benutzername <span class="icon-required" aria-hidden="true">*</span><span class="aural">(Pflichtfeld)</span>
</label>
<input class="form-control" required aria-required="true" id="myInputField6344" type="text" name="myInputField6344">
</div>
<div class="form-group">
<label for="myInputField2260" class="form-label ">
Passwort <span class="icon-required" aria-hidden="true">*</span><span class="aural">(Pflichtfeld)</span>
</label>
<input class="form-control" required aria-required="true" id="myInputField2260" type="password" name="myInputField2260">
</div>
<div class="form-actions">
<button type="submit" class="button">Anmelden</button>
</div>
</form>