Add invalid states for interactive elements
This commit is contained in:
@@ -149,6 +149,46 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sg-state-example">
|
||||
<p class="sg-state-example__label sg-table-label">form-invalid</p>
|
||||
|
||||
<div class="sg-labeled-input-row">
|
||||
<span class="sg-label">Label</span>
|
||||
<div class="sg-input-validation-stack">
|
||||
<div class="sg-pulldown-demo" data-open="false" data-align="left" data-selection-mode="single" data-component="pulldown" data-component-state="invalid">
|
||||
<button class="sg-interaction-element sg-pulldown sg-pulldown-demo__trigger" type="button" aria-expanded="false" aria-label="Pulldown mit Validierung" aria-invalid="true" aria-describedby="pulldown-invalid-feedback" data-component-part="pulldown-trigger">
|
||||
Auswahl
|
||||
</button>
|
||||
|
||||
<div class="sg-pulldown-panel" aria-label="Geöffnetes invalides Pulldown" data-component-part="pulldown-panel">
|
||||
<ul class="sg-pulldown-option-list" aria-label="Verfügbare Optionen im invaliden Pulldown">
|
||||
<li class="sg-pulldown-option" role="checkbox" aria-checked="false" data-pulldown-option>
|
||||
<span>Menüpunkt 1</span>
|
||||
</li>
|
||||
|
||||
<li class="sg-pulldown-option" role="checkbox" aria-checked="false" data-pulldown-option>
|
||||
<span>Menüpunkt 2</span>
|
||||
</li>
|
||||
|
||||
<li class="sg-pulldown-option" role="checkbox" aria-checked="false" data-pulldown-option>
|
||||
<span>Menüpunkt 3</span>
|
||||
</li>
|
||||
|
||||
<li class="sg-pulldown-option" role="checkbox" aria-checked="false" data-pulldown-option>
|
||||
<span>Menüpunkt 4</span>
|
||||
</li>
|
||||
|
||||
<li class="sg-pulldown-option sg-pulldown-option--disabled">
|
||||
<span>Menüpunkt 5</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<span class="sg-form-validation-text" id="pulldown-invalid-feedback">Bitte eine gültige Auswahl treffen.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sg-state-example">
|
||||
<p class="sg-state-example__label sg-table-label">Variante aktivierbar</p>
|
||||
|
||||
@@ -493,6 +533,19 @@
|
||||
</button>
|
||||
<span>Option nicht verfügbar</span>
|
||||
</label>
|
||||
|
||||
<div class="sg-state-example">
|
||||
<p class="sg-state-example__label sg-table-label">form-invalid</p>
|
||||
<div class="sg-input-validation-stack">
|
||||
<label class="sg-checkbox-field-option sg-body" data-component="checkbox-field" data-component-state="default">
|
||||
<button class="sg-checkbox-field" type="button" role="checkbox" aria-checked="false" aria-label="Standard Checkbox mit Validierung" aria-invalid="true" aria-describedby="checkbox-invalid-feedback">
|
||||
<span class="sg-checkbox-field__mark" aria-hidden="true">✓</span>
|
||||
</button>
|
||||
<span>Standard Checkbox</span>
|
||||
</label>
|
||||
<span class="sg-form-validation-text" id="checkbox-invalid-feedback">Bitte mindestens eine Option auswählen.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -568,6 +621,32 @@
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<div class="sg-state-example">
|
||||
<p class="sg-state-example__label sg-table-label">form-invalid</p>
|
||||
<div class="sg-input-validation-stack">
|
||||
<label class="sg-checkbox-field-option sg-body" data-component="radio-field" data-component-state="default">
|
||||
<span class="sg-radio-field-row">
|
||||
<span class="sg-label">Label</span>
|
||||
<span class="sg-radio-activatable-group__choices">
|
||||
<span class="sg-radio-activatable-group__choice">
|
||||
<button class="sg-radio-field" type="button" role="radio" aria-checked="false" aria-label="Radio 1 mit Validierung" aria-invalid="true" aria-describedby="radio-invalid-feedback">
|
||||
<span class="sg-radio-field__mark" aria-hidden="true"></span>
|
||||
</button>
|
||||
<span>Radio 1</span>
|
||||
</span>
|
||||
<span class="sg-radio-activatable-group__choice">
|
||||
<button class="sg-radio-field" type="button" role="radio" aria-checked="false" aria-label="Radio 2 mit Validierung" aria-invalid="true" aria-describedby="radio-invalid-feedback">
|
||||
<span class="sg-radio-field__mark" aria-hidden="true"></span>
|
||||
</button>
|
||||
<span>Radio 2</span>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</label>
|
||||
<span class="sg-form-validation-text" id="radio-invalid-feedback">Bitte eine Option auswählen.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sg-checkbox-field-option sg-body" data-component="radio-field" data-component-state="default">
|
||||
<span class="sg-state-example__label sg-table-label">Variante ohne Gesamtlabel</span>
|
||||
<span class="sg-radio-field-row sg-radio-field-row--without-label">
|
||||
|
||||
@@ -407,6 +407,12 @@
|
||||
box-shadow: 0 0 0 1px var(--color-signal-red) inset;
|
||||
}
|
||||
|
||||
.sg-pulldown[aria-invalid="true"],
|
||||
.sg-checkbox-field[aria-invalid="true"],
|
||||
.sg-radio-field[aria-invalid="true"] {
|
||||
box-shadow: 0 0 0 1px var(--color-signal-red) inset;
|
||||
}
|
||||
|
||||
.sg-labeled-input-row:has(.sg-input-multi-line) {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user