Toast
Kurze Nachrichten, die sich sauber stapeln, bei Hover aufklappen, weggewischt werden können und einen Ladezustand an Ort und Stelle in Erfolg oder Fehler verwandeln.
pnpm dlx shadcn@latest add https://hextaui.com/r/toast.jsonFügt die Komponente, die HextaUI-Theme-Tokens und alle HextaUI-Komponenten hinzu, von denen sie abhängt.
Füge die Theme-Tokens zu deinem globalen CSS hinzu, falls du das noch nicht getan hast.
Installiere die Abhängigkeiten.
pnpm add @base-ui/react @tabler/icons-react cnKopiere den folgenden Code und füge ihn in dein Projekt ein.
components/ui/toast.tsx components/ui/button.tsx components/ui/spinner.tsx Passe die Importpfade an dein Projekt-Setup an.
Füge <Toaster /> einmal nahe dem Root deiner App hinzu.
Rufe dann toast von überall auf, auch außerhalb von React-Komponenten.
Toasts stapeln sich zu einem ordentlichen Haufen, der neueste vorn. Hovere oder fokussiere den Stapel, um ihn aufzufächern; jeder Timer pausiert, während du liest. Wische einen Toast zu seinem Rand, um ihn zu schließen.
Typen
Jeder Toast nutzt dieselbe ruhige Fläche; nur das Icon trägt die Farbe.
Promise
toast.promise zeigt einen Spinner und wandelt sich dann an Ort und Stelle in einen Erfolgs- oder Fehler-Toast, wobei das Icon beim Wechsel aufploppt.
Aktion
Übergib action für einen Button wie Undo. Ein Klick darauf schließt auch den Toast.
An Ort und Stelle aktualisieren
Behalte die id von toast.loading und ändere ihn mit toast.update, auch seinen Typ.
Keine Duplikate
Gib einem Toast eine id, und ein erneuter Aufruf aktualisiert den bestehenden, statt eine Kopie zu stapeln.
| Taste | Aktion |
|---|---|
| F6 | Setzt den Fokus in die Toasts und fächert sie auf. |
| Tab | Wechselt zwischen Toast-Aktionen und Schließen-Buttons. |
| Esc | Schließt den fokussierten Toast. |
- Toasts werden höflich angesagt;
toast.errorwird sofort angesagt. - Timer pausieren, solange Zeiger oder Fokus auf den Toasts liegen, damit niemand einem Countdown hinterherrennen muss.
- Schließen-Buttons erscheinen bei Hover und Fokus und sind auf Touchscreens immer sichtbar.
- Bei reduzierter Bewegung blenden Toasts ein, statt zu gleiten.
| Prop | Typ | Standard |
|---|---|---|
positionSmartphones nutzen immer die volle Breite. | "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right" | "bottom-right" |
limitGleichzeitig angezeigte Toasts; ältere blenden aus. | number | 3 |
timeoutStandarddauer auf dem Bildschirm, in ms. | number | 5000 |
| Attribut | Beschreibung |
|---|---|
data-slot="toaster" | Der Viewport, mit data-position. |
data-slot="toast" | Jeder Toast, mit data-type, data-expanded und data-swiping. |
| Prop | Typ | Standard |
|---|---|---|
description | ReactNode | – |
action | { label: ReactNode; onClick?: (event) => void } | – |
idWiederverwenden, um zu aktualisieren statt zu duplizieren. | string | – |
timeoutStandard ist das Timeout des Toasters. Lange Nachrichten bleiben länger, etwa 250 Wörter pro Minute. | number | – |
priority | "low" | "high" | "low" |
onClose | () => void | – |
onRemove | () => void | – |
Außerdem toast.success, toast.error, toast.warning, toast.info, toast.loading, toast.promise, toast.update und toast.dismiss. Jede gibt die id des Toasts zurück oder nimmt sie entgegen.
- ButtonButtons in allen Varianten und Größen, mit eingebautem Lade-, Erfolgs- und Fehlerablauf, der den Spinner bei schnellen Anfragen überspringt.
- SpinnerEin Ladeindikator mit Ticks im Apple-Stil oder einem atmenden Ring, der vor dem Anzeigen warten und lange genug sichtbar bleiben kann, um nicht zu flackern.
- AlertInline-Meldungen für Status und Feedback, mit neutraler Fläche, farbigem Icon und einem Schließen, das sanft zusammenklappt.
- EmptyEin Platzhalter für Ansichten, in denen es noch nichts zu zeigen gibt, mit Icon, Nachricht und der nächsten Aktion.
- ProgressEin Balken oder Ring, der zeigt, wie weit eine Aufgabe fortgeschritten ist, sanft zwischen Aktualisierungen wechselt und gleitet, solange die Gesamtmenge unbekannt ist.
- SkeletonPlatzhalter, die 150 ms warten, bevor sie erscheinen, exakt die Größe des umschlossenen Inhalts annehmen und ihn einblenden, ohne etwas zu verschieben.
In Blocks verwendet
Blocks, die auf Toast aufbauen.
- API keysDie API-Schlüssel-Seite eines KI-Produkts, wie in den Konsolen von OpenAI und Anthropic. Schlüssel mit eingeschränkten Berechtigungen und Ablaufdatum erstellen, das Secret einmal sehen mit einem Kopieren, das sich bestätigt, mit Rückgängig widerrufen, direkt umbenennen, mit Übergangsfrist rotieren und die Nutzung pro Schlüssel sehen.
- ArtifactDas Panel neben einem KI-Chat, das zeigt, was das Modell erzeugt hat. Webseiten, SVGs, Dokumente und Code streamen live ein und wechseln dann zu einer Sandbox-Vorschau, mit Versionen zum Vergleichen und Wiederherstellen, einem anpassbaren Split und einem Bottom Sheet auf Smartphones.
- Chat SidebarDie Seitenleiste für eine Chat-App. Logo, Suche und Neuer Chat oben, deine eigenen Links darunter, angeheftete Chats, Projekte, die sich aufklappen und ihre Chats zeigen, zuletzt verwendete nach Tag gruppiert und Zeilen mit Hover- und Rechtsklick-Menüs, direktem Umbenennen, Löschen mit Rückgängig und Live-Antwortzuständen.
- HextaAIEine vollständige KI-Chat-App, gebaut aus allen KI-Blocks von HextaUI. Chats in einer Seitenleiste, Denkprozess mit Quellen, Tool-Aufrufe mit Diffs und Freigaben, ein Plan, den du prüfst, bevor der Agent läuft, gestreamtes Markdown und gestreamter Code sowie ein stiller Sprachmodus, alles gesteuert über AI-SDK-Message-Parts.