MeDo

KI-Input-Generator.

Beschreiben Sie Ihr Formular und MeDo generiert Textfeld und Textarea gemeinsam — Labels, Hilfetexte, Fehlerzustände, Prefix- und Suffix-Affixe, Zeichenzähler und automatische Höhenanpassung, alles mit den richtigen Barrierefreiheits-Attributen verdrahtet.

Input
Input

Das Feld ist der kleinste Teil eines Inputs

Der größte Teil der Arbeit an einem Input hat nichts mit dem Feld selbst zu tun. Label, Hilfetext, Fehler-Slot und die Abstände dazwischen machen ein Formular benutzbar — und genau diese Teile überlassen Komponentenbibliotheken gern dem Anwender. Also schreiben Teams für jedes Formular eigenes Wrapper-Markup, und der vertikale Rhythmus verschiebt sich Feld für Feld, bis nichts mehr zusammenpasst. Label, Beschreibung und Fehlerbereich als eine Einheit zu generieren, klärt ihr Verhältnis ein für alle Mal. Es beseitigt außerdem den häufigsten Barrierefreiheitsfehler in Webformularen: eine Fehlermeldung, die neben einem Feld gerendert, aber nie programmatisch mit ihm verbunden wird.

6 Vorlagen

Input-Vorlagen, die Sie generieren können

Jede Vorlage ist ein echter Prompt, kein Screenshot. Kopieren Sie ihn in einen KI-Editor oder führen Sie ihn in MeDo aus und erhalten Sie React- und Tailwind-Code zurück.

BasicLabel + Field

Labeled Input With Helper Text

The baseline every other field extends. Label, field, and a message region that already occupies its line at rest so the form does not grow when an error appears.

Create a text input component with a visible label above the field, wired with a generated id and a matching for attribute rather than wrapping the input in the label. Below it, a helper text line linked through aria-describedby. Reserve the height of that line at rest so the form does not shift when an error replaces it. The field is 40px tall with an 8px radius, a 1px grey border, and a 2px focus-visible ring offset from the border. Add a required prop that sets the required attribute and appends a visually hidden "required" to the label rather than relying on an asterisk alone. Accept type, inputMode and autocomplete as props with no defaults, so each call site declares them.

In MeDo testen
ErrorsValidation States

Error, Success and Warning States

Where most form bugs live. An error message rendered beside a field but never connected to it is the most common accessibility defect in web forms.

Add validation states to a text input: error with a red border, a red message replacing the helper text, aria-invalid="true", and the message linked through aria-describedby so it is announced when focus enters the field. Add success and warning states that change the border and the leading icon but keep the same message slot and line height. Never signal state by border color alone — pair every state with an icon and text. Validate on blur, then revalidate on change only once the field is already in an error state, so a half-typed email is not flagged mid-entry. Announce late server-side errors through a polite live region.

In MeDo testen
AffixesAffix Slots

Prefix and Suffix Inside the Field

Search icons, currency symbols, unit suffixes, password toggles. The trap is padding — an affix rendered over the field without matching inset padding lets typed text slide underneath it.

Create a text input with optional prefix and suffix slots rendered inside the field border. Static affixes such as a currency symbol or a .com suffix get aria-hidden and muted text; interactive affixes such as a password visibility toggle or a clear button render as real buttons with their own aria-label and stay reachable by keyboard. Increase the field padding to match each affix width so typed text never slides under it. Keep the focus ring on the outer wrapper, not the bare input, so the ring surrounds the affixes too. Include a search variant with a leading magnifier and a trailing clear button that appears only when the field has a value.

In MeDo testen
TextareaAutosize Textarea

Growing Textarea With a Counter

A fixed three-row box for a support message forces people to scroll inside a scroll. Growing to a cap keeps the submit button on screen.

Create a textarea that shares the label, helper text and error layout of the text input. Autosize from a three-row minimum up to eight rows, recalculating the height from scrollHeight on input after resetting it, then switch to internal scrolling at the cap so a long message cannot push the submit button off screen. Add an optional character counter in the bottom right showing used and total, turning amber at 90 percent of the limit and red at the limit, announced through a polite live region rather than on every keystroke. Disable the native resize handle only when autosizing is on, otherwise leave it available.

In MeDo testen
FormattingMasked Field

Card, Phone and Date Inputs

Formatted fields where the input event rewrites the value. Get the caret handling wrong and editing the middle of a card number jumps the cursor to the end on every keystroke.

Create a formatted input for card numbers, phone numbers and expiry dates. Insert separators as the user types — spaces every four digits for cards, a slash after the month for expiry — while storing the unformatted value in state and submitting that. Preserve the caret position when the mask inserts a character mid-string, rather than letting the value reset send it to the end. Set inputMode="numeric" and the correct autocomplete token: cc-number, tel, cc-exp. Accept paste of an already-formatted value by stripping non-digits first. Validate length on blur and keep the field editable in the error state.

In MeDo testen
LayoutField Group

Multi-Field Row With Shared Rhythm

City and postcode on one line, expiry and CVC side by side. The point is a single spacing scale, since per-form wrapper markup is what makes vertical rhythm drift.

Create a form field group component that lays out two or three inputs on one row using a grid, collapsing to a single column below 640px. Keep a shared vertical gap between rows and align the labels on a single baseline even when one field carries helper text and its neighbor does not, by reserving the message line in every field. Group semantically related fields in a fieldset with a legend, such as an address block, so screen readers announce the group name before each field. Let each field declare its own width in grid columns rather than a hardcoded percentage, so a postcode field can be narrower than a city field.

In MeDo testen

So passen Sie Ihre Input an

Fordern Sie immer ein echtes Label

Ein Platzhalter ist kein Label. Er verschwindet, sobald jemand tippt, was alle im Stich lässt, die mitten im Formular unterbrochen werden, und die meisten Screenreader behandeln ihn als optionalen Text. Fordern Sie ein sichtbares Label, das per <label for> mit dem Feld verknüpft ist, und nutzen Sie den Platzhalter nur für Formatbeispiele wie MM/JJ.

Reservieren Sie Platz für die Fehlermeldung

Erscheint der Fehlertext erst bei fehlgeschlagener Validierung, springt das Feld darunter beim Absenden nach unten. Legen Sie fest, dass der Hilfe- und Fehlerbereich im Ruhezustand eine feste Zeilenhöhe einnimmt, damit sich die Formularhöhe beim Einblenden von Meldungen nie ändert.

Benennen Sie die benötigten Input-Typen

Geben Sie type und inputMode pro Feld an: email, tel und numeric öffnen jeweils unterschiedliche mobile Tastaturen. Kombinieren Sie sie mit den richtigen autocomplete-Tokens wie email, tel, current-password und one-time-code, damit Browser und Passwort-Manager das Formular ausfüllen können.

Entscheiden Sie, wann validiert wird

Eine Validierung bei jedem Tastendruck markiert eine halb getippte E-Mail als falsch, bevor jemand fertig ist. Fordern Sie Validierung bei blur mit erneuter Prüfung bei change, sobald ein Feld bereits im Fehlerzustand ist — das korrigiert Fehler ohne zu nerven.

Wer die Input-Komponente nutzt

Registrierungs- oder Login-Formular

E-Mail- und Passwortfelder mit einem Sichtbarkeits-Umschalter im Suffix-Slot, einem Hinweis zur Passwortstärke im Hilfetext und gesetzten autocomplete-Tokens, damit Browser gespeicherte Zugangsdaten anbieten statt leerer Felder.

Checkout-Prozess

Felder für Kartennummer, Ablaufdatum und Postleitzahl mit numerischen Input-Modi, einem Währungs-Prefix am Betragsfeld und Validierung bei blur, damit eine teilweise eingegebene Kartennummer nie als ungültig markiert wird.

Support- oder Kontaktformular

Ein kurzes Betreff-Feld über einer mitwachsenden Nachrichten-Textarea mit 1.000-Zeichen-Zähler, damit lange Nachrichten das Feld erweitern statt zum Scrollen in einer festen Box zu zwingen.

Dashboard-Einstellungen

Dichte Reihen kleiner Inputs mit links ausgerichteten Labels, read-only-Feldern für Werte, die der Nutzer nicht ändern kann, und Hilfetexten, die erklären, was jede Einstellung bewirkt.

Input-Muster für verschiedene Websites

Dieselbe input-Komponente, abgestimmt auf die Art der Website, auf der sie läuft.

01 / 06

SaaS Signup and Login Inputs

Two fields decide whether the account gets created, so the autocomplete tokens matter more than the styling. Set email and current-password on login and new-password on signup, or password managers offer the wrong entry and people retype credentials they already saved. Put the visibility toggle in the suffix slot as a real button, not a click handler on an icon.

Input-Stile und -Varianten

Wählen Sie die Variante, die zum Rest der Seite passt, und generieren Sie sie.

01 / 06

Outlined Input

A 1px border on a light surface with the label above — the default that works in the widest range of layouts. Keep the focus ring offset from the border rather than replacing it, so the resting and focused widths match and the field does not appear to move on focus.

Input in React, Next.js, Vue und Svelte

React, Next.js, Vue 3, SvelteKit, Astro oder reines HTML — dieselbe input, sechs Wege zur Einbindung.

01 / 06

React Input

Generate the id with useId so label association survives rendering the field twice on one page. Forward the ref so form libraries like React Hook Form can register the element directly.

src/components/Input.tsx

export const Input = forwardRef(function Input(
  { label, hint, error, ...props },
  ref
) {
  const id = useId()
  return (
    <div className="space-y-1.5">
      <label htmlFor={id}>{label}</label>
      <input id={id} ref={ref} aria-invalid={!!error}
        aria-describedby={id + '-msg'} {...props} />
      <p id={id + '-msg'}>{error ?? hint}</p>
    </div>
  )
})

So fügen Sie Ihre Input einem Projekt hinzu

Vier Schritte, von der Auswahl einer input-Vorlage bis zum Einsatz in der Produktion.

01~30s

Pick an Input Template

Scan the six templates and start from the field you actually need — labeled text input, affix slots for search or currency, autosizing textarea, or a masked card field.

02~10s

Copy the Prompt

Take the prompt into MeDo, Lovable, Bolt, v0 or Cursor. Name the type, inputMode and autocomplete token per field before you run it, since those three decide which mobile keyboard opens and whether autofill works.

03~1min

Generate and Refine

You get React + Tailwind back with a live preview. Follow up in plain English — "validate on blur only", "add a clear button in the suffix", "reserve the error line" — rather than editing the aria wiring by hand.

04~2min

Wire It to Your Form State

Register the forwarded ref with React Hook Form, Formik or a Server Action and pass the resolver error straight into the error prop. The component owns layout and aria; your form library owns the validation rules.

Häufige Fragen zu Input

Wie generiere ich ein Formularfeld mit KI?

Beschreiben Sie in einem Prompt das Feld, sein Label, den Hilfetext und die benötigten Zustände, etwa „E-Mail-Input mit Label, Hinweistext und Fehlerzustand". MeDo generiert Label, Feld und Meldungsbereich als eine Komponente mit bereits verbundenen aria-Attributen. Sie können mehrere Feldtypen im selben Prompt auflisten und ein konsistentes Set zurückerhalten.

Was ist der Unterschied zwischen Platzhalter und Label?

Ein Label benennt das Feld dauerhaft und bleibt beim Tippen sichtbar. Ein Platzhalter ist temporärer Hinweistext im Feld, der bei Eingabe verschwindet — wird er als einziges Label genutzt, müssen Nutzer raten, was sie schon ausgefüllt haben. Verwenden Sie ein Label für den Feldnamen und einen Platzhalter nur für ein Formatbeispiel.

Sollen Eingabefehler beim Tippen oder erst nach dem Absenden erscheinen?

Validieren Sie bei blur statt bei jedem Tastendruck, damit ein teilweise eingegebener Wert nicht mitten in der Eingabe als falsch markiert wird. Zeigt ein Feld bereits einen Fehler, validieren Sie bei change neu, damit die Meldung verschwindet, sobald die Eingabe gültig ist. Reservieren Sie die Validierung beim Absenden für Prüfungen, die das ganze Formular brauchen, etwa die Passwortbestätigung.

Kann KI barrierefreie Eingabefelder generieren?

Ja. MeDo verknüpft das Label über for und id mit dem Feld, bindet Hilfe- und Fehlertext über aria-describedby an und setzt aria-invalid, wenn die Validierung fehlschlägt. Erwähnen Sie Pflichtfelder in Ihrem Prompt und sie werden mit dem required-Attribut markiert, statt sich nur auf ein Sternchen zu verlassen.

Wie lasse ich eine Textarea mit ihrem Inhalt wachsen?

Fordern Sie eine mitwachsende Textarea mit minimaler und maximaler Zeilenzahl, zum Beispiel drei Zeilen, die auf acht wachsen, bevor sie scrollt. Die Höhe wird bei jeder Eingabe aus der Scrollhöhe neu berechnet, und ein Maximum verhindert, dass eine lange Nachricht den Absenden-Button aus dem Bild schiebt.

Ist das autocomplete-Attribut wirklich wichtig?

Ja. Korrekte autocomplete-Tokens erlauben Browsern und Passwort-Managern, Felder in einem Schritt zu füllen, was Abbrüche bei Registrierung und Checkout messbar reduziert. Sagen Sie MeDo, was jedes Feld erfasst, und es setzt das passende Token — einschließlich der Adress- und Zahlungswerte, die man leicht falsch macht.