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.
Freie Verwendung
Fahrzeug
Modernisierung
Freie Verwendung
Fahrzeug
Modernisierung
Freie Verwendung
Fahrzeug
Modernisierung
Vanilla@synatix/vanilla + @synatix/theme-kredit
import { enhanceSelect } from "@synatix/vanilla";
import "@synatix/theme-kredit/theme.css";
// Ein Container im Markup trägt data-theme="kredit".
const root = document.querySelector(
"[data-scope='select']"
);
const cleanup = enhanceSelect(root);Vanilla@synatix/vanilla + @synatix/theme-cpool
import { enhanceSelect } from "@synatix/vanilla";
import "@synatix/theme-cpool/theme.css";
// Ein Container im Markup trägt data-theme="cpool".
const root = document.querySelector(
"[data-scope='select']"
);
const cleanup = enhanceSelect(root);Vanilla@synatix/vanilla
import { enhanceSelect } from "@synatix/vanilla";
const root = document.querySelector(
"[data-scope='select']"
);
const cleanup = enhanceSelect(root);React@synatix/react + @synatix/theme-kredit
import { Select } from "@synatix/react";
import "@synatix/theme-kredit/theme.css";
export function Example() {
return (
<div data-theme="kredit">
<Select defaultValue="car">
<Select.Trigger>
<Select.Value />
</Select.Trigger>
<Select.Content>
<Select.Item value="car">Fahrzeug</Select.Item>
</Select.Content>
</Select>
</div>
);
}React@synatix/react + @synatix/theme-cpool
import { Select } from "@synatix/react";
import "@synatix/theme-cpool/theme.css";
export function Example() {
return (
<div data-theme="cpool">
<Select defaultValue="car">
<Select.Trigger>
<Select.Value />
</Select.Trigger>
<Select.Content>
<Select.Item value="car">Fahrzeug</Select.Item>
</Select.Content>
</Select>
</div>
);
}React@synatix/react
import { Select } from "@synatix/react";
export function Example() {
return (
<Select defaultValue="car">
<Select.Trigger>
<Select.Value />
</Select.Trigger>
<Select.Content>
<Select.Item value="car">Fahrzeug</Select.Item>
</Select.Content>
</Select>
);
}Svelte@synatix/svelte + @synatix/theme-kredit
<script>
import { Select } from "@synatix/svelte";
import "@synatix/theme-kredit/theme.css";
</script>
<div data-theme="kredit">
<Select options={purposes} bind:value />
</div>Svelte@synatix/svelte + @synatix/theme-cpool
<script>
import { Select } from "@synatix/svelte";
import "@synatix/theme-cpool/theme.css";
</script>
<div data-theme="cpool">
<Select options={purposes} bind:value />
</div>Svelte@synatix/svelte
<script>
import { Select } from "@synatix/svelte";
</script>
<Select options={purposes} bind:value />Anatomie
Feste Parts dienen als Selektoren für CSS und Tests.
<div data-scope="select" data-part="root">
<span data-part="trigger">…</span>
<span data-part="value">…</span>
<span data-part="indicator">…</span>
<span data-part="content">…</span>
<span data-part="item">…</span>
<span data-part="input">…</span>
</div>Props
| Prop | Typ | Standard | Beschreibung |
|---|---|---|---|
options | Option[] | [] | Definiert verfügbare Werte. |
value | string | "" | Steuert den ausgewählten Wert. |
disabled | boolean | false | Deaktiviert die Auswahl. |
Tastatur
| Taste | Verhalten |
|---|---|
Tab | Setzt den Fokus auf das nächste bedienbare Element. |
Shift + Tab | Setzt den Fokus auf das vorherige Element. |
Pfeil ab / Pfeil auf | Öffnet die Liste und bewegt die Hervorhebung. |
Enter | Übernimmt die hervorgehobene Option. |
Escape | Schließt die Liste ohne Änderung. |