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.
Wie im Ausweisdokument angegeben.
Wie im Ausweisdokument angegeben.
Wie im Ausweisdokument angegeben.
Vanilla@synatix/vanilla + @synatix/theme-kredit
import { enhanceTextField } from "@synatix/vanilla";
import "@synatix/theme-kredit/theme.css";
// Ein Container im Markup trägt data-theme="kredit".
const root = document.querySelector(
"[data-scope='text-field']"
);
const cleanup = enhanceTextField(root);Vanilla@synatix/vanilla + @synatix/theme-cpool
import { enhanceTextField } from "@synatix/vanilla";
import "@synatix/theme-cpool/theme.css";
// Ein Container im Markup trägt data-theme="cpool".
const root = document.querySelector(
"[data-scope='text-field']"
);
const cleanup = enhanceTextField(root);Vanilla@synatix/vanilla
import { enhanceTextField } from "@synatix/vanilla";
const root = document.querySelector(
"[data-scope='text-field']"
);
const cleanup = enhanceTextField(root);React@synatix/react + @synatix/theme-kredit
import { TextField } from "@synatix/react";
import "@synatix/theme-kredit/theme.css";
export function Example() {
return (
<div data-theme="kredit">
<TextField aria-label="Name" placeholder="Erika Musterfrau" />
</div>
);
}React@synatix/react + @synatix/theme-cpool
import { TextField } from "@synatix/react";
import "@synatix/theme-cpool/theme.css";
export function Example() {
return (
<div data-theme="cpool">
<TextField aria-label="Name" placeholder="Erika Musterfrau" />
</div>
);
}React@synatix/react
import { TextField } from "@synatix/react";
export function Example() {
return (
<TextField aria-label="Name" placeholder="Erika Musterfrau" />
);
}Svelte@synatix/svelte + @synatix/theme-kredit
<script>
import { TextField } from "@synatix/svelte";
import "@synatix/theme-kredit/theme.css";
</script>
<div data-theme="kredit">
<label>Name <TextField placeholder="Erika Musterfrau" /></label>
</div>Svelte@synatix/svelte + @synatix/theme-cpool
<script>
import { TextField } from "@synatix/svelte";
import "@synatix/theme-cpool/theme.css";
</script>
<div data-theme="cpool">
<label>Name <TextField placeholder="Erika Musterfrau" /></label>
</div>Svelte@synatix/svelte
<script>
import { TextField } from "@synatix/svelte";
</script>
<label>Name <TextField placeholder="Erika Musterfrau" /></label>Anatomie
Feste Parts dienen als Selektoren für CSS und Tests.
<div data-scope="text-field" data-part="root">
<span data-part="label">…</span>
<span data-part="control">…</span>
<span data-part="hint">…</span>
<span data-part="error">…</span>
</div>Props
| Prop | Typ | Standard | Beschreibung |
|---|---|---|---|
label | string | — | Beschriftet das Eingabefeld. |
type | "text" | "email" | "tel" | "password" | "text" | Bestimmt den Eingabetyp. |
invalid | boolean | false | Markiert das Feld als ungültig und verknüpft die Fehlermeldung. |
Tastatur
| Taste | Verhalten |
|---|---|
Tab | Setzt den Fokus auf das nächste bedienbare Element. |
Shift + Tab | Setzt den Fokus auf das vorherige Element. |
Pfeiltasten | Bewegen den Cursor im Text. |