-
Notifications
You must be signed in to change notification settings - Fork 17
docs: blog post on messaging #181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
baee385
docs: blog post on messaging
flxlst09 18dbd0e
docs: adapted according to gemini review
flxlst09 7a9a08e
docs: incorporated uxw feedback
flxlst09 38f18c2
docs: rework after element feedback
flxlst09 7ec6c64
docs: smaller adaptions
flxlst09 a7ea50f
docs: incorporated feedback by Susanne254
flxlst09 3455dbb
docs: incorporating feedback by kathrin
flxlst09 1acb02c
docs: updated illustration
flxlst09 e8b6e47
docs: typo fixed
flxlst09 4ab23eb
docs: introducing anchor links in table
flxlst09 aba530e
docs: adapting anchor links
flxlst09 53e763a
docs: anchor link fixes
flxlst09 60e1ebf
Merge branch 'main' into docs/blogpost-messaging
flxlst09 ee4253b
docs(core/buttons): Updated buttons example import paths (#180)
GayatriK2002 9156d96
Merge branch 'main' into docs/blogpost-messaging
flxlst09 af64723
docs: incorporated feedback by tokyojen
flxlst09 e488df5
docs: fix broken links
flxlst09 794ff32
Merge branch 'release/v4.3.0' into docs/blogpost-messaging
danielleroux 8d75778
Revert "docs(core/buttons): Updated buttons example import paths (#180)"
danielleroux File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
99 changes: 99 additions & 0 deletions
99
blog/2026-02-23-messaging/2602_blog_messaging_inlinemessage.svg
|
flxlst09 marked this conversation as resolved.
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions
30
blog/2026-02-23-messaging/2602_blog_messaging_inputfeedback.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 38 additions & 0 deletions
38
blog/2026-02-23-messaging/2602_blog_messaging_messagebar.svg
|
flxlst09 marked this conversation as resolved.
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions
40
blog/2026-02-23-messaging/2602_blog_messaging_messagemodal.svg
|
flxlst09 marked this conversation as resolved.
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
94 changes: 94 additions & 0 deletions
94
blog/2026-02-23-messaging/2602_blog_messaging_notificationhistory.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
201 changes: 201 additions & 0 deletions
201
blog/2026-02-23-messaging/2602_blog_messaging_toast.svg
|
flxlst09 marked this conversation as resolved.
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,127 @@ | ||
| --- | ||
| slug: messaging | ||
| authors: [felixleist] | ||
| tags: [ux] | ||
| --- | ||
|
|
||
| # Beyond the toast: Mastering messaging and feedback | ||
|
|
||
|  | ||
|
|
||
| Effective communication with users is of the highest priority. Providing timely, clear and contextual feedback within our applications is crucial for a smooth and intuitive user experience. While toast messages have their place, relying on them exclusively can sometimes lead to missed information or user frustration. | ||
|
|
||
| In response to your questions about toast messages, and especially their interplay with modal dialogs, we want to guide you through our recommended best practices for displaying messages. | ||
|
|
||
| <!-- truncate --> | ||
|
|
||
| # The problem with over toasting | ||
|
|
||
|  | ||
|
|
||
| [Toasts](/docs/components/toast/guide) are quick, non-intrusive pop-ups that provide simple feedback on a user action. They are excellent for immediate low-priority confirmations, e.g. a successful deletion. | ||
|
|
||
| However, toasts can often be: | ||
| - **Missed** when a modal is open or the user’s attention is elsewhere. | ||
| - **Overwhelming** when several toasts appear in quick succession. | ||
| - **Lacking context** due to their intentionally brief messaging. | ||
|
|
||
| This is why, for most scenarios requiring user attention or detailed information, we recommend exploring more robust messaging patterns. | ||
|
|
||
| # When to use what | ||
|
|
||
| We already offer a set of components designed to handle various messaging needs. Let’s explore the alternatives to toast messages and understand when to use each one from contextual feedback to required decision making. | ||
|
|
||
| <div class="table-full-width table-column-equal-width"> | ||
| | **Option** | **When to use** | | ||
| | :-------------- | :-------------- | | ||
| | **Toast message** | Low-priority confirmations | | ||
| | **[Input field feedback text](#input-field-feedback-text)** | Immediate, field-level validation | | ||
| | **[Inline notification](#inline-notification-planned)** | Noticeable, contextual feedback | | ||
| | **[Message bar as banner](#message-bar-as-banner)** | Important and persistent non-blocking messages | | ||
| | **[Modal](#modal)** | Critical information demanding user interaction | | ||
| </div> | ||
|
|
||
| ### Input field feedback text | ||
|
|
||
|  | ||
|
|
||
| <strong>When to use it:</strong> For immediate and highly contextual feedback related to user [input fields](/docs/components/forms-validation/guide), direct feedback texts are the recommended choice. These messages appear below the input field. | ||
|
|
||
| <strong>Why it’s better than a toast:</strong> Input field feedback is directly tied to the user’s action. It helps users correct errors and prevents frustration. A toast would be too far removed from the input field to be effective here. | ||
|
|
||
| Examples: | ||
|
|
||
| - Invalid email format. | ||
| - Password too short (minimum 8 characters). | ||
| - Required field. | ||
|
|
||
| ### Inline notification (planned) | ||
|
|
||
|  | ||
|
|
||
| <strong>When to use it:</strong> Inline notifications appear within a specific section or component of a page, rather than spanning the entire width. We are planning on providing a component that is optimized for inline use in future. | ||
|
|
||
| <strong>Why it’s better than a toast:</strong> An inline notification provides contextual feedback directly where it’s most relevant, without disrupting the overall page flow. It’s less intrusive than a full banner but more persistent and noticeable than a toast for localized issues, especially when other UI elements (like modals) are present. | ||
|
|
||
| Examples: | ||
|
|
||
| - Above a form, indicating validation errors for multiple fields. | ||
| - Within a data table, showing a message about filtering results. | ||
| - Inside a specific widget, providing status updates. | ||
|
|
||
| ### Message bar as banner | ||
|
|
||
|  | ||
|
|
||
| <strong>When to use it:</strong> Banners are ideal for important, non-blocking messages that need to persist until dismissed or resolved. These messages can be system-wide (affecting the entire application) or page-specific (relevant to a particular view). In our design system the [message bar](/docs/components/messagebar/code) component is used for banner notifications. See our UX writing section on | ||
| [time-related messages](/docs/guidelines/language/messaging/time-related-messages). | ||
|
|
||
|
|
||
| <strong>Why it’s better than a toast:</strong> Unlike toasts, banners remain visible until the user takes action or the condition is resolved. This persistence ensures that important information, like a lost connection or planned maintenance, is not missed. | ||
|
|
||
| Examples: | ||
|
|
||
| - Connection lost. Reconnecting… | ||
| - System maintenance scheduled for August 22nd, 02:00-04:00. | ||
| - Your trial period ends in 7 days. | ||
|
|
||
| ### Modal | ||
|
|
||
|  | ||
|
|
||
| <strong>When to use it:</strong> Modals are your choice for critical information that demands immediate user attention and interaction. [Modal messages](/docs/components/message-modal/guide) are recommended for scenarios where a user needs to confirm an action, acknowledge a severe error that blocks further progress, or make a crucial decision. See our UX writing section on [messaging](/docs/guidelines/language/messaging/messages-overview). | ||
|
|
||
| <strong>Why it’s better than a toast:</strong> Modals overlay the entire application, ensuring the user’s focus is entirely on the message. They prevent further interaction with the underlying content until dismissed, guaranteeing that critical information is seen and acted upon. | ||
|
|
||
| Examples: | ||
|
|
||
| - Confirming a permanent deletion. | ||
| - Alerting the user about unsaved changes before navigating away. | ||
| - Displaying a critical system error that requires immediate resolution. | ||
|
|
||
| ### Notification management | ||
|
|
||
|  | ||
|
|
||
| Users might miss a critical message or need to refer back to past notifications. A dedicated notification management provides a persistent record of important events and messages. | ||
|
|
||
| <strong>When to use it:</strong> This is valuable for applications where: | ||
|
|
||
| - Users need to see a log of system actions or changes. | ||
| - Users need to catch up: After being away from the application, users can quickly review what they missed. | ||
| - Complex workflows: Where multiple actions trigger various messages. | ||
|
|
||
| <strong>How it adds value:</strong> A notification management is often presented as an [event list](/docs/components/event-list/code) on a separate page, within a dedicated dialog, or accessible via a notification icon. It ensures that no critical information is permanently lost. It complements all other messaging patterns by offering a centralized archive, allowing users to review, filter and act upon past notifications. This significantly enhances user control and confidence in the application. | ||
|
|
||
| ## Key takeaways | ||
|
|
||
| - <strong>Prioritize clarity and context:</strong> Always choose the messaging pattern that best communicates the information clearly and in the most relevant context. | ||
| - <strong>Reserve toasts for small feedback:</strong> Use toasts for quick, non-critical confirmations that don’t require immediate user action or detailed explanation. | ||
| - <strong>Embrace alternatives:</strong> Leverage input field feedback for direct validation, inline notifications for contextual feedback, banners for persistent alerts, and modals for critical interactions. | ||
| - <strong>Provide a notification management:</strong> For important events and messages, offer a persistent record that users can access and review. | ||
| - <strong>Stay aligned:</strong> You can always refer to our component usage guides for the most up-to-date guidance and examples. | ||
|
|
||
| ## More on messaging | ||
|
|
||
| - We highly recommend the [UX writing](/docs/guidelines/language/messaging/messages-overview) chapter on how to effectively phrase your messages depending on the context, e.g. warning messages. | ||
| - The <strong>UX Design Pattern</strong> team is currently working on a detailed overview of messaging patterns. Follow them on [Viva Engage](https://engage.cloud.microsoft/main/org/siemens.com/groups/eyJfdHlwZSI6Ikdyb3VwIiwiaWQiOiIyMzcxMzg0NTI0ODAifQ/new) to stay tuned. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.