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 { enhanceRadioGroup } from "@synatix/vanilla";
import "@synatix/theme-kredit/theme.css";
// Ein Container im Markup trägt data-theme="kredit".
const root = document.querySelector(
"[data-scope='radio-group']"
);
const cleanup = enhanceRadioGroup(root);Vanilla@synatix/vanilla + @synatix/theme-cpool
import { enhanceRadioGroup } from "@synatix/vanilla";
import "@synatix/theme-cpool/theme.css";
// Ein Container im Markup trägt data-theme="cpool".
const root = document.querySelector(
"[data-scope='radio-group']"
);
const cleanup = enhanceRadioGroup(root);Vanilla@synatix/vanilla
import { enhanceRadioGroup } from "@synatix/vanilla";
const root = document.querySelector(
"[data-scope='radio-group']"
);
const cleanup = enhanceRadioGroup(root);React@synatix/react + @synatix/theme-kredit
import { RadioGroup } from "@synatix/react";
import "@synatix/theme-kredit/theme.css";
export function Example() {
return (
<div data-theme="kredit">
<RadioGroup defaultValue="24">
<RadioGroup.Item value="24">24 Monate</RadioGroup.Item>
</RadioGroup>
</div>
);
}React@synatix/react + @synatix/theme-cpool
import { RadioGroup } from "@synatix/react";
import "@synatix/theme-cpool/theme.css";
export function Example() {
return (
<div data-theme="cpool">
<RadioGroup defaultValue="24">
<RadioGroup.Item value="24">24 Monate</RadioGroup.Item>
</RadioGroup>
</div>
);
}React@synatix/react
import { RadioGroup } from "@synatix/react";
export function Example() {
return (
<RadioGroup defaultValue="24">
<RadioGroup.Item value="24">24 Monate</RadioGroup.Item>
</RadioGroup>
);
}Svelte@synatix/svelte + @synatix/theme-kredit
<script>
import { RadioGroup } from "@synatix/svelte";
import "@synatix/theme-kredit/theme.css";
</script>
<div data-theme="kredit">
<RadioGroup
label="Laufzeit"
name="term"
options={terms}
bind:value
/>
</div>Svelte@synatix/svelte + @synatix/theme-cpool
<script>
import { RadioGroup } from "@synatix/svelte";
import "@synatix/theme-cpool/theme.css";
</script>
<div data-theme="cpool">
<RadioGroup
label="Laufzeit"
name="term"
options={terms}
bind:value
/>
</div>Svelte@synatix/svelte
<script>
import { RadioGroup } from "@synatix/svelte";
</script>
<RadioGroup
label="Laufzeit"
name="term"
options={terms}
bind:value
/>Anatomie
Feste Parts dienen als Selektoren für CSS und Tests.
<div data-scope="radio-group" data-part="root">
<span data-part="label">…</span>
<span data-part="item">…</span>
<span data-part="control">…</span>
<span data-part="item-label">…</span>
</div>Props
| Prop | Typ | Standard | Beschreibung |
|---|---|---|---|
value | string | — | Steuert die aktive Option. |
orientation | "horizontal" | "vertical" | "vertical" | Bestimmt die Anordnung. |
disabled | boolean | false | Deaktiviert die Gruppe. |
Tastatur
| Taste | Verhalten |
|---|---|
Tab | Setzt den Fokus auf das nächste bedienbare Element. |
Shift + Tab | Setzt den Fokus auf das vorherige Element. |
Pfeiltasten | Wechseln die aktive Option innerhalb der Gruppe. |