ClassicSidebar Layout

ToggleButton

Schaltbarer Button für einen booleschen Zustand via @bind-Active. Für reine Klick-Aktionen bitte Button verwenden.

Verhalten

Nur Text
Aktiv: False
Text + Icon
Aktiv: True
Nur Icon
Aktiv: False
Toggle-Gruppe
B: False | I: True | U: False
Aktiv/Inaktiv Farben
Aktiv: False
Disabled

Farben

Semantische Paletten (Standard)
Soft inaktiv → Solid aktiv
Soft mit Icon (Gruppe)
Soft Light / Dark Shades

Größen (Size)

Standard-Größe ist OoSize.Xs.
Nur Text
Text + Icon
Nur Icon

Border-Radius

Stufen
Icon + Full

Click-Event

Click-Callback
Aktiv: False | Klicks: 0

Inaktiv → Aktiv: Varianten-Vergleich

Outline → Solid
Ghost → Solid
Soft → Solid
Soft → Solid + Shadow (aktiv)
Soft → Solid.Light + Shadow (aktiv)
Soft → Solid.Lighter + Shadow (aktiv)
Soft → Soft.Dark + Shadow (aktiv)
Soft → Soft + Shadow (aktiv)
Nur Icon (Soft → Solid + Shadow)
Soft + Shadow – nur Icon
Soft + Shadow – Format-Gruppe

Validierung

Pflichtfeld

class & style

class
style
SKILL.md – Togglebutton
---
name: ToggleButton
description: Onesown Blazor Komponente ToggleButton (Common). Verwende diesen Skill wenn du die ToggleButton-Komponente verwenden, konfigurieren oder debuggen moechtest.
---

# ToggleButton

**Namespace:** `Onesown.Blazor.Components`  
**Kategorie:** Common  
**Basisklasse:** `FormControlBase`  

Umschalt-Button mit An/Aus-Zustand, konfigurierbaren Farb-Token für aktiv/inaktiv, Shadow-Effekt und Integration in EditContext/DataAnnotations-Validierung.

**Live-Demo:** https://components.schini.com/demo/togglebutton  

## Parameter

| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
| ``Text`` | ``string`` |  | Beschriftungstext des Buttons. Wird links vom Icon angezeigt, wenn beide gesetzt sind. |
| ``Icon`` | ``string`` |  | Name des Material-Symbols (z.B. "star", "toggle_on"). Wird neben oder statt Text angezeigt. |
| ``Disabled`` | ``bool`` |  | Deaktiviert den Button: kein Klick, ausgegraut. Standard: false. |
| ``Active`` | ``bool`` |  | Aktueller Zustand des ToggleButtons. true = aktiv, false = inaktiv. Für Two-Way-Binding: @bind-Active. |
| ``ActiveChanged`` | ``EventCallback<bool>`` |  | EventCallback für Two-Way-Binding (@bind-Active). Wird nach jedem Umschalten mit dem neuen Zustand aufgerufen. |
| ``ValueExpression`` | ``Expression<Func<object>>`` |  | LINQ-Expression auf die gebundene Model-Property. Wird für DataAnnotations-Validierung benötigt. |
| ``Type`` | ``string`` | ``"button"`` | HTML-Button-Typ. Mögliche Werte: "button" (Standard), "submit", "reset". |
| ``Title`` | ``string`` |  | HTML-Title-Attribut – erscheint als nativer Browser-Tooltip beim Hover. |
| ``BaseColor`` | ``OoColor`` |  | Basisfarbe aus der OoColorPalette. Leitet ActiveStyle und InactiveStyle automatisch ab, wenn diese nicht explizit gesetzt sind. Standard: OoColorPalette.Neutral. |
| ``ActiveStyle`` | ``OoButtonStyle`` |  | Farb-Token für den aktiven Zustand. Überschreibt die von BaseColor abgeleitete Farbe. |
| ``InactiveStyle`` | ``OoButtonStyle`` |  | Farb-Token für den inaktiven Zustand. Überschreibt die von BaseColor abgeleitete Farbe. |
| ``OnClick`` | ``EventCallback`` |  | Wird beim Klick ausgelöst – zusätzlich zu ActiveChanged. Nützlich für Seiteneffekte ohne Two-Way-Binding. |
| ``Radius`` | ``string`` |  | Border-Radius. OoRadius-Konstanten oder beliebiger CSS-Wert. Standard: OoRadius.Md. |
| ``ChildContent`` | ``RenderFragment`` |  | Beliebiges Markup als Button-Inhalt – ersetzt Text und Icon, wenn gesetzt. |
| ``ActiveShadow`` | ``bool?`` |  | Zeigt Shadow wenn aktiv. |
| ``InactiveShadow`` | ``bool?`` |  | Zeigt Shadow wenn inaktiv. |

## Geerbte Parameter (FormControlBase)

| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
| ``Size`` | ``string`` | ``OoSize.Md`` | Größe der Komponente. Mögliche Werte: OoSize.Xs, OoSize.Sm, OoSize.Md, OoSize.Lg, OoSize.Xl. Wird als CSS-Klasse am Root-Element gesetzt. |
| ``Id`` | ``string`` | ``Generator.GenerateRandomHtmlTagID()`` | Eindeutige HTML-ID des Input-Elements. Wird automatisch generiert und kann überschrieben werden (z. B. für Labels mit for-Attribut). |
| ``ShowLabel`` | ``bool`` | ``true`` | Blendet das Label über dem Eingabefeld ein oder aus. Standard: true. |
| ``IsFloatingLabel`` | ``bool`` | ``true`` | Aktiviert das schwebende Label (Floating Label), das beim Fokus oder bei Eingabe nach oben animiert. Standard: true. |
| ``Label`` | ``string`` |  | Beschriftung des Eingabefelds. Wird auch als Accessible-Name für Screenreader verwendet. |
| ``Placeholder`` | ``string`` | ``" "`` | Platzhaltertext im leeren Eingabefeld. Standard: Leerzeichen (verhindert Floating-Label-Sprung in Chrome). |
| ``AutoSaveCallback`` | ``EventCallback`` |  | Wird nach jeder Wertänderung ausgelöst und signalisiert der Seite, dass gespeichert werden soll. Kombinierbar mit TriggerAutoSaveCallbackOnlyIfValid. |
| ``TriggerAutoSaveCallbackOnlyIfValid`` | ``bool`` | ``true`` | Steuert ob AutoSaveCallback nur bei gültigem Wert ausgelöst wird. Standard: true. |
| ``AfterValueChanged`` | ``EventCallback`` |  | Wird nach jeder Wertänderung ausgelöst, unabhängig von der Gültigkeit des Werts. Geeignet für Live-Vorschau oder Seiteneffekte. |
| ``ShowValidationTooltip`` | ``bool`` | ``false`` | Zeigt Validierungsmeldungen als Tooltip neben dem Feld statt als Text darunter. Standard: false. |

## Hinweise

- Immer @bind-Value für Two-Way-Binding verwenden
- Für Formular-Validierung ValueExpression="() => _model.Property" setzen
- Komponente muss innerhalb eines &lt;Form&gt;- oder &lt;EditForm&gt;-Containers liegen, damit der EditContext greift
- AutoSaveCallback wird nach jeder gültigen Änderung ausgelöst, wenn TriggerAutoSaveCallbackOnlyIfValid=true (Standard)
- AfterValueChanged wird nach jeder Änderung ausgelöst, unabhängig von der Gültigkeit
- ShowValidationTooltip=true zeigt Validierungsmeldungen als Tooltip statt unter dem Feld
- Two-Way-Binding: @bind-Active="_istAktiv" für reaktive Zustandsverwaltung
- Farben: BaseColor="OoColorPalette.Primary" leitet aktiv/inaktiv automatisch ab
- Farben explizit: ActiveStyle="OoColorPalette.Primary" InactiveStyle="OoColorPalette.Neutral.Ghost"
- Shadow im aktiven Zustand: ActiveShadow="true" (Standard), InactiveShadow="false" (Standard)
- Text + Icon kombinierbar: Text="Favorit" Icon="star"
- Appweite Defaults: per CascadingValue&lt;OoDefaults&gt; im Root-Layout vorgeben
- Validierung: ValueExpression="() => _model.IstAktiv" für DataAnnotations-Integration


Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.