Demo
Ein Markup, drei Adapter, austauschbare Themes. Framework und Theme lassen sich frei kombinieren – die Komponente sieht immer gleich aus und verhält sich gleich. Der Code unter der Vorschau zeigt genau die gewählte Kombination.
Vanilla@synatix/vanilla + @synatix/theme-kredit
import { enhanceSwitch } from "@synatix/vanilla";
import "@synatix/theme-kredit/theme.css";
// Ein Container im Markup trägt data-theme="kredit".
const root = document.querySelector(
"[data-scope='switch']"
);
const cleanup = enhanceSwitch(root);Vanilla@synatix/vanilla + @synatix/theme-cpool
import { enhanceSwitch } from "@synatix/vanilla";
import "@synatix/theme-cpool/theme.css";
// Ein Container im Markup trägt data-theme="cpool".
const root = document.querySelector(
"[data-scope='switch']"
);
const cleanup = enhanceSwitch(root);Vanilla@synatix/vanilla
import { enhanceSwitch } from "@synatix/vanilla";
const root = document.querySelector(
"[data-scope='switch']"
);
const cleanup = enhanceSwitch(root);React@synatix/react + @synatix/theme-kredit
import { Switch } from "@synatix/react";
import "@synatix/theme-kredit/theme.css";
export function Example() {
return (
<div data-theme="kredit">
<Switch aria-label="Benachrichtigungen" defaultChecked />
</div>
);
}React@synatix/react + @synatix/theme-cpool
import { Switch } from "@synatix/react";
import "@synatix/theme-cpool/theme.css";
export function Example() {
return (
<div data-theme="cpool">
<Switch aria-label="Benachrichtigungen" defaultChecked />
</div>
);
}React@synatix/react
import { Switch } from "@synatix/react";
export function Example() {
return (
<Switch aria-label="Benachrichtigungen" defaultChecked />
);
}Svelte@synatix/svelte + @synatix/theme-kredit
<script>
import { Switch } from "@synatix/svelte";
import "@synatix/theme-kredit/theme.css";
</script>
<div data-theme="kredit">
<label><Switch bind:checked /> Benachrichtigungen</label>
</div>Svelte@synatix/svelte + @synatix/theme-cpool
<script>
import { Switch } from "@synatix/svelte";
import "@synatix/theme-cpool/theme.css";
</script>
<div data-theme="cpool">
<label><Switch bind:checked /> Benachrichtigungen</label>
</div>Svelte@synatix/svelte
<script>
import { Switch } from "@synatix/svelte";
</script>
<label><Switch bind:checked /> Benachrichtigungen</label>Anatomie
Feste Parts dienen als Selektoren für CSS und Tests.
<div data-scope="switch" data-part="root">
<span data-part="control">…</span>
<span data-part="thumb">…</span>
<span data-part="label">…</span>
<span data-part="hint">…</span>
</div>Props
| Prop | Typ | Standard | Beschreibung |
|---|---|---|---|
checked | boolean | false | Steuert den Status. |
disabled | boolean | false | Deaktiviert den Schalter. |
label | string | — | Benennt die Einstellung. |
Tastatur
| Taste | Verhalten |
|---|---|
Tab | Setzt den Fokus auf das nächste bedienbare Element. |
Shift + Tab | Setzt den Fokus auf das vorherige Element. |
Leertaste | Wechselt den Status. |