Radio
the Radio-element dient zur selection einer einzelnen Option aus einer Gruppe from Alternativen. Radio-buttons become verwendet, if user only a Option aus mehreren Moglichkeiten selections can should.
Installation
the Radio-element ist Teil the Casoon UI Library.
# Installation the gesamten Bibliothek
npm install @casoon/ui-lib
Import
/* Import aller UI-elements */
@import '@casoon/ui-lib/ui.css';
/* or only the Radio-Component */
@import '@casoon/ui-lib/components/radio.css';
Basic Usage
<label class="radio">
<input type="radio" name="radioGroup">
<span class="label">Option 1</span>
</label>
<label class="radio">
<input type="radio" name="radioGroup">
<span class="label">Option 2</span>
</label>
Variants
Standard Radio
the grundlegende Radio-button without spezielle States.
<label class="radio">
<input type="radio" name="demoRadio1">
<span class="label">Standard Radio</span>
</label>
Ausgewahlt (Checked)
a Radio-button im ausgewahlten state.
<label class="radio">
<input type="radio" name="demoRadio2" checked>
<span class="label">Ausgewahlte Option</span>
</label>
Deaktiviert (Disabled)
a Radio-button im deaktivierten state.
<label class="radio">
<input type="radio" name="demoRadio3" disabled>
<span class="label">Deaktivierte Option</span>
</label>
Deaktiviert and Ausgewahlt
a Radio-button, the sowohl deaktiviert as also ausgewahlt ist.
<label class="radio">
<input type="radio" name="demoRadio3" disabled checked>
<span class="label">Deaktivierte ausgewahlte Option</span>
</label>
Sizesvarianten
small (Small)
<label class="radio sm">
<input type="radio" name="demoRadioSize">
<span class="label">smaller Radio-button</span>
</label>
Standard
<label class="radio">
<input type="radio" name="demoRadioSize">
<span class="label">Standard Radio-button</span>
</label>
Gross (Large)
<label class="radio lg">
<input type="radio" name="demoRadioSize">
<span class="label">Grosser Radio-button</span>
</label>
Radio-Gruppen
Radio-buttons can in Gruppen organisiert become, um zusammengehorige Optionen darzustellen.
<div class="radio-group">
<label class="radio">
<input type="radio" name="options" value="option1">
<span class="label">Option 1</span>
</label>
<label class="radio">
<input type="radio" name="options" value="option2">
<span class="label">Option 2</span>
</label>
<label class="radio">
<input type="radio" name="options" value="option3">
<span class="label">Option 3</span>
</label>
</div>
<label style="align-items: center; cursor: pointer; display: inline-flex; font-size: 0.875rem; gap: 0.5rem;">
<input type="radio" name="options" value="option2" style="appearance: none; background-color: white; border: 2px solid #9ca3af; border-radius: 9999px; height: 1rem; position: relative; transition: all 0.15s ease-in-out; width: 1rem;">
<span>Option 2</span>
</label>
<label style="align-items: center; cursor: pointer; display: inline-flex; font-size: 0.875rem; gap: 0.5rem;">
<input type="radio" name="options" value="option3" style="appearance: none; background-color: white; border: 2px solid #9ca3af; border-radius: 9999px; height: 1rem; position: relative; transition: all 0.15s ease-in-out; width: 1rem;">
<span>Option 3</span>
</label>
Horizontale Radio-buttons
Radio-buttons can also horizontal angeordnet become.
<div class="radio-group horizontal">
<label class="radio">
<input type="radio" name="horizontalOptions" value="inline1">
<span class="label">Option 1</span>
</label>
<label class="radio">
<input type="radio" name="horizontalOptions" value="inline2">
<span class="label">Option 2</span>
</label>
<label class="radio">
<input type="radio" name="horizontalOptions" value="inline3">
<span class="label">Option 3</span>
</label>
</div>
<label style="align-items: center; cursor: pointer; display: inline-flex; font-size: 0.875rem; gap: 0.5rem;">
<input type="radio" name="horizontalOptions" value="inline2" style="appearance: none; background-color: white; border: 2px solid #9ca3af; border-radius: 9999px; height: 1rem; position: relative; transition: all 0.15s ease-in-out; width: 1rem;">
<span>Option 2</span>
</label>
<label style="align-items: center; cursor: pointer; display: inline-flex; font-size: 0.875rem; gap: 0.5rem;">
<input type="radio" name="horizontalOptions" value="inline3" style="appearance: none; background-color: white; border: 2px solid #9ca3af; border-radius: 9999px; height: 1rem; position: relative; transition: all 0.15s ease-in-out; width: 1rem;">
<span>Option 3</span>
</label>
Customization
the Radio-Component kann over CSS Variables angepasst become:
:root {
--color-primary: #3b82f6; /* Primarfarbe for den ausgewahlten state */
--color-white: #ffffff; /* background for Radio-button */
--color-gray-100: #f3f4f6; /* background for deaktivierten state */
--color-gray-300: #d1d5db; /* border for deaktivierten state */
--color-gray-400: #9ca3af; /* Rahmenfarbe for not ausgewahlten state */
--font-size-xs: 0.75rem; /* Kleine Textgrosse */
--font-size-sm: 0.875rem; /* Mittlere Textgrosse (Standard) */
--font-size-base: 1rem; /* size Textgrosse */
--space-2: 0.5rem; /* spacing between Elementen */
--transition-fast: 0.15s ease-in-out; /* Ubergangsgeschwindigkeit */
}
Accessibility
for a bessere Accessibility note please folgende Punkte:
- use them immer a
<label>
-element, the the Radio-Input umschliesst - Gruppieren them zusammengehorige Radio-buttons with the Class
radio-group
- Stellen them einen ausreichenden Kontrast between background and Radio-button sicher
- make sure, that the Radio-buttons with the Tastatur bedienbar sind (Tab-navigation and Pfeiltasten)
- use them immer denselben
name
-Attributwert for a Gruppe from Radio-buttons, um sicherzustellen, that only a Option ausgewahlt become kann
Bewahrte Praktiken
- use them Radio-buttons, if only a Option aus einer list ausgewahlt become kann
- Ordnen them Radio-buttons vertikal on, um the Lesbarkeit to verbessern
- Fugen them a Standardauswahl hinzu, if all Optionen gleichermassen gultig sind
- Begrenzen them the Anzahl the Optionen on a uberschaubare Menge
Browser-Kompatibilitat
the Radio-element ist with allen modernen Browsern kompatibel.
Function | Chrome | Firefox | Safari | Edge |
---|---|---|---|---|
Grundlegende Funktionalitat | ✅ | ✅ | ✅ | ✅ |
Anpassbares Styling | ✅ | ✅ | ✅ | ✅ |
Sizesvarianten | ✅ | ✅ | ✅ | ✅ |
CSS Variables | 49+ | 31+ | 9.1+ | 15+ |