Verwende ein Modal, um z. B. ...
-
einfache Dialoge wie Abfragen oder kurze Anlege-Prozesse anzuzeigen.
-
kurze Bearbeitungsmöglichkeiten darzustellen.
-
Inhalte anzuzeigen, die kein Scrollen erfordern und für die die Breite des Modals ausreicht.
Verwende ein Modal, um ...
Modal und OffCanvas erfüllen beide den Zweck, dem Nutzer Informationen in einem Overlay zu vermitteln. Auch technisch sind sie identisch.
Dennoch sollte je nach Anwendungsfall zwischen beiden unterschieden werden, da die unterschiedliche Darstellung verschiedene Vorteile mit sich bringt.
einfache Dialoge wie Abfragen oder kurze Anlege-Prozesse anzuzeigen.
kurze Bearbeitungsmöglichkeiten darzustellen.
Inhalte anzuzeigen, die kein Scrollen erfordern und für die die Breite des Modals ausreicht.
Inhalte anzuzeigen, die nicht gekürzt werden können und ein Scrollen erfordern.
sehr breite Inhalte anzuzeigen.
In den meisten Fällen ist eine ActionGroup im Footer des Modals erforderlich, um Eingaben zu bestätigen oder das Modal zu verlassen.
Beachte bei der Verwendung jedoch, dass manche Inhalte keine Bestätigung erfordern, da ...
In diesen Fällen benötigt die ActionGroup keine Hauptaktion.
Manche Eingaben erfordern keine explizite Bestätigung. An diesen Stellen ist es ausreichend, nur einen „Schließen“-Button in der ActionGroup des Modal Footers anzuzeigen.
Beachte bei der Heading folgende Punkte:
Unter der Heading befindet sich oft ein beschreibender Text. Dabei sind folgende Punkte zu beachten:
Wenn die Bildschirmgröße weniger als 551 px beträgt, dann füllt das Modal die gesamte Breite des Bildschirms aus und wird am unteren Rand des Bildschirms angezeigt.
Das Schließen eines Modals sollte einfach sein, besonders wenn im Modal nichts Wichtiges vom Nutzer bestätigt werden muss. Es sollte möglich sein, es durch einen Klick außerhalb des Modals oder durch Drücken der "Schließen"- oder "Abbrechen"-Taste oder der Esc-Taste zu schließen.
Verwende <Modal />, um ein Modal darzustellen. Da ein Modal in der Regel nur
durch eine Aktion des Nutzers erscheint, wird ein <ModalTrigger /> in
Kombination z. B. einem <Button /> benötigt.
import { Action, ActionGroup, Button, Content, Heading, Label, Modal, ModalTrigger, Section, Text, TextField, } from "@mittwald/flow-react-components"; import { sleepLong } from "@/content/04-components/actions/action/examples/lib"; <ModalTrigger> <Button>Modal öffnen</Button> <Modal> <Heading>Organisation anlegen</Heading> <Content> <Section> <Text> Eine Organisation kannst du dir wie ein Unternehmen vorstellen. An diesem Ort verwaltest du deine Mitarbeiter, Zahlungsmodalitäten und kannst deine Rechnungen einsehen. </Text> <TextField isRequired> <Label>Organisationsname</Label> </TextField> </Section> </Content> <ActionGroup> <Action closeModal> <Action onAction={sleepLong}> <Button color="accent"> Organisation anlegen </Button> </Action> <Button variant="soft" color="secondary"> Abbrechen </Button> </Action> </ActionGroup> </Modal> </ModalTrigger>
Neben der klassischen Darstellung lässt sich das Modal auch als OffCanvas öffnen.
Das Modal gibt es in zwei Standardgrößen: S und M. Beide Größen sind sowohl als klassisches Modal als auch in der OffCanvas-Variante verfügbar.
Size S: Ein Modal in der Size S (Breite 660 px) wird zum Beispiel für einfache Abfragen, ob etwas gelöscht werden soll, verwendet.
Size M: Ein Modal in der Size M (Breite 900 px) wird für komplexere Dialoge (z. B. Erstellungs-Prozesse mit mehreren Eingabefeldern) verwendet.
Neben dem <ModalTrigger /> kann das Modal auch über einen Controller gesteuert
werden.
Dieser Controller steht auch in Modals zur Verfügung, die über den ModalTrigger geöffnet wurden.
Verwende eine Form innerhalb eines Modals wie im folgenden Beispiel.
| Property | Type | Default | Description |
|---|---|---|---|
size | "s" | "m" | "l" | "s" | The size of the modal. |
offCanvas | boolean | - | Whether the modal should be displayed as an off canvas. |
offCanvasOrientation | "left" | "right" | "right" | Whether the off canvas should be displayed on the right or left side of the screen. |
controller | OverlayController | - | An overlay controller to control the modal state. |
slot | string | - | Accepts "actionConfirm" to use the modal as a confirmation modal for an action. |
isDismissable | boolean | - | Whether the modal can be closed by clicking outside of it. |
showCloseButton | boolean | - | Whether the close button should be visible |
children | ReactNode | - | |
wrapWith | ReactElement<unknown, string | JSXElementConstructor<any>> | - | |
ref | Ref<HTMLSpanElement> | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see React Docs |
key | Key | - | |
className | string | - | The elements class name. |
isOpen | boolean | - | |
isDefaultOpen | boolean | - |
| Property | Type | Default | Description |
|---|---|---|---|
onOpenChange | OverlayOpenStateHandler | - | |
onClose | OverlayCloseHandler | - | |
onOpen | OverlayOpenHandler | - |