Say I'm creating a new calendar entry. I type a lot of information, then I get to save or cancel. Technically, cancel is safe because I'm not messing up my existing calendar. But all the typing I did (especially on mobile) would be lost. So is cancel really safe? But Stop wouldn't the right choice either...
No, it's not safe in that scenario. "Destructive" means throwing away anything, even one word the user typed. Do not use the word "cancel" for that operation - use the word "Discard" or an X button, with an are-you-sure prompt that has a cancel button that safely brings you back to the editing interface.
Edit: OK, maybe "one word" is an exaggeration. Certainly for the case of a form of input fields a no-prompt cancel button is inappropriate. However, if you have a simple OK/Cancel dialogue that contains a single one-line input field, it is usually acceptable to have a Cancel button that throws away your input without prompting.
If I'm filling out a modal form and "Cancel" doesn't result in a clean form after I open it again, it should probably say something like "Hide" or "Finish later" instead.
"Save", "Discard" (or "Don't save"), and "Cancel", where "Cancel" does not dismiss the editor.
(This is the three-button close prompt that's been the standard in desktop operating systems since at least the Windows 3.1 era, but I guess we have to rediscover these things when the same problems come up on mobile.)
That pattern makes more sense when you are A. Editing a document, as opposed to filling out an ephemeral form; and B. The document does not auto-save. This pattern is more likely on desktop, which is where you're getting the correlation from. It's unnecessarily complicated when filling out something that appears in a modal like the article is referring to, e.g. a calendar event.
Both apps show a ‘cancel’ button on the ‘add event’ popup, as per this post.
They both then show a ‘discard/keep editing’ prompt, but only fantastical has the extra option of a draft.
But in addition to that — fantastical’s popup isn’t even modal. You can push the sheet down to see and interact with the main calendar.
Unfortunately, fantastical doesn’t show the ‘drag handle’ that Mail and other apps use to show this functionality, so it’s not particularly discoverable.
Say I'm creating a new calendar entry. I type a lot of information, then I get to save or cancel. Technically, cancel is safe because I'm not messing up my existing calendar. But all the typing I did (especially on mobile) would be lost. So is cancel really safe? But Stop wouldn't the right choice either...
What do you suggest?