Skip to content
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

Toast usability #316

Closed
romaninsh opened this issue Dec 18, 2018 · 3 comments
Closed

Toast usability #316

romaninsh opened this issue Dec 18, 2018 · 3 comments
Assignees
Labels
type/feat Any feature requests or improvements
Milestone

Comments

@romaninsh
Copy link

romaninsh commented Dec 18, 2018

Usability report - Toast

I have interviewed few people regarding the "Toast" to collect the following usability feedback. Hopefully this can inspire someone to further improve "Toast".

(I compared with MacOS notifier, see "terminal-notifier")

1. Copy text from the toast.

In some cases user may want to interact with a toast - take a screenshot of it or copy text. Developer is faced with a choice - hide toast automatically or make it sit there forever. There is no middle option.

PROBLEM: toast can disappear preemptively

FIX: Allow user to prevent toast from disappearing by hovering mouse over it.

FIX: Set default timeout based on the length of title/message, so longer messages would be displayed longer.

2. Attention impact and readability

Thinking on how toast is used: It captures user's attention when it appears and user scans the message. If message is not important, user will re-focus back on the page.

PROBLEM: toast perform more animation when disappearing rather than when appearing.

FIX: Run animation when toast appears. Use fade-out when disappearing.

3. Interrupted and difficulty to follow

Imagine user reads a toast. Two events can occur. Either new toast appear or another toast disappear. Which of those should encourage user to "stop" reading and re-focus?

PROBLEM: toast disappearing is more disruptive than appearance of new toast due to repositioning of the text.

FIX: new toasts should appear next to the edge of the screen and move existing toasts. Old toasts should fade-out subliminally.

4. Text selection

Attempt to select text for copy-paste from a toast makes it disappear (even if it's not timed).

FIX: click-drag-release should not hide toast.

4. Shadow

Toast appears on a layer ABOVE the interface. All other UI elements that appear on top feature shadow in the default theme.

FIX: toast should also cast shadow.

5. Bouncy effect

User may continue reading message while it slides. Bouncy effect makes it very hard to follow. Using ease-in-ease-out slide is much more easy on the eyes.

FIX: replace animation with smooth reposition

6. Default progress

When progress goes forward it indicates that some work is being performed. For example when you are installing update, progress bar moves forward. Typically user interaction will cancel action (e.g. copying files).

When action is "paused" such as waiting 30 seconds before reboot or displaying dialog that will disappear, progress goes backwards (count-down seconds or reverse progress bar). This should be recommended and default action.

FIX: change default

7. Icon positioning

It looks like icon is not properly aligned with the text.

FIX: position icon in the middle vertically

8. Title

Title text is very hard to distinguish from the body text. It's bold but the size is the same.

FIX: make title more pronounced

9. Close button (x)

Currently if the message stays on forever, user may not know that it can be clicked.

FIX: add x button (may be optional feature)

10. Link & Interaction on toast

It would be nice to see a test where message contains clickable link or even a button (s). For instance, it can indicate failure on some action but offer "Retry / Dismiss" buttons.

@lubber-de lubber-de self-assigned this Dec 18, 2018
@lubber-de lubber-de added the type/feat Any feature requests or improvements label Dec 18, 2018
@lubber-de lubber-de added this to the 2.7.x milestone Dec 18, 2018
@lubber-de
Copy link
Member

Thanks for the suggestion and investigation.

1.+ 3. Text selection: I think we will make this optional. We are currently working on the feature to make any kind of content a toast (similar to modal), so i guess we will follow the suggested direction
4. Worth thinking about 🙂 we'll perhaps have an option for this (see comment above regarding "any content".
6. Good point
7. We'll test this again with different content

  1. See comment above "any content"

Some behaviors you were mentioning are already possible/adjustable:

  1. Show Animation:
transition: {
  showMethod  : 'scale'
}
  1. Easing on close:
transition: {
  closeEasing  : 'ease-in-out'
}
  1. At the moment you might simply use your desired CSS
.ui.toast .header {
  font-size: 5em;
font-weight: 'bold';
}

'header' is the new default titleclass as of v2.7.0

  1. Closebutton: closeIcon:true

@romaninsh
Copy link
Author

@lubber-de I'm leaving it to your consideration. Since it is marked beta, it might be a last chance to get it straightened out with the correct defaults.

@lubber-de
Copy link
Member

Implemented everything by #1129 😁
Sorry it took so long

@lubber-de lubber-de modified the milestones: 2.8.x, 2.8.0 Oct 28, 2019
@lubber-de lubber-de added the state/has-pr An issue which has a related PR open label Oct 28, 2019
y0hami pushed a commit that referenced this issue Nov 13, 2019
BREAKING CHANGE: contains some breaking changes to the core logic and settings.

New Features
  - Image support just like icon
  - displayTime 'auto' calculates time by amount of words
  - Progressbars can have its own individual color now 
  - A toast can be created out of existing dom nodes or markup now $('.ui.toast').toast() with clone support;
  - Toast is pausable on hovering to be able to mark/copy text or just hold on to have more time to read it
  - closeIcon can be displayed to the left 
  - Support for `card` and `message` layouts

Behaviors
  - get or check for existing toasts
  - stop/start display timer
  - get the remaining Time

Actions
  - a toast can have a configurable amount of action buttons
  - support for default button selectors as in modal
  - displayable at the bottom of the toast as in modal or full width attached to the modal
  - also displayable to the right

Changed defaults (aka breaking changes)
  - Toast is floating (aka has a shadow)
  - Progressbar decreases
  - Close-Easing is smoother instead of bouncy (still available for those who like it)
  - Icon is centered vertically
  - Toast display in neutral white background without icon (looks good, as it has a shadow now)
  - A possible given title is a bit larger than before (by using standard "ui header")
  - floating and hoverfloating moved from toast to toast-box to cover the whole toast including possible attached actions

Core
  - Changed progressbar from css transition to css animation to be able to pause scrollbar on hover via css only
  - Return instance of created toast even when created dynamically via body so you can interact with and reference it via javascript afterwards
  - Support behaviors because of instantiation
  - Optimized LESS Code usage, refactored JS

Closes #160 #280 #315 #316 #566
@lubber-de lubber-de added tag/next-release/nightly Any issue which has a corresponding PR which has been merged and is available in the nightly build and removed state/has-pr An issue which has a related PR open labels Nov 13, 2019
@y0hami y0hami closed this as completed Nov 14, 2019
@y0hami y0hami removed the tag/next-release/nightly Any issue which has a corresponding PR which has been merged and is available in the nightly build label Nov 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/feat Any feature requests or improvements
Projects
None yet
Development

No branches or pull requests

3 participants