We use too many damn modals (2018)
modalzmodalzmodalz.com
modalzmodalzmodalz.com
I seriously can't say enough for this message. Adrian helped us redesign our app 2 years ago, dispatching many many modals in the process, and delivering a huge increase in usability that our customers and users very much do care about.
This book argues about a lot of UI topics, and with a lot of detail. It’s the bible of UI design imo.
This is a link, you can also search “about face interaction design”
Payment page: not a modal. The user might want to add more stuff to the cart, even when they are literally one click away from purchasing. Blanking out the rest of the page means they now have to work around the site to buy more stuff.
Error message: not a modal. The user is vanishingly unlikely to report an error immediately (obviously it's logged in any case), and probably just wants to try again with slightly different input.
Irreversible action confirmation: not a modal. For the same reason as the payment page, the user might want to do something else before retrying the irreversible action. Just display a prominent message so the user knows the action is not yet done. Or, if at all possible, implement undo instead.
My job depends on it: OK, use a modal. We forgive you.
Your password is incorrect? Error dialog. Easier to design and build that a warning state on the text-boxes and a message close to the login button.
Writing a post? Editor dialog. It's easier to design and build than something that's inline, grows to accommodate what you're writing, and works predictably when you scroll away or click something else.
There's something the user should know? Alert dialog. Much easier than figuring out where in the component hierarchy you should inject a warning, how it should look, what controls you should disable, etc.
I don't think it is, as it hides some information from the main page. But I think it can be done well and be useful, as said at the end of the article.
After all, OS use a lot of modals.
> Unfortunately, you never really find out until you work somewhere.
If you invest in a stock that you tried to research and it drops to a value of zero and you say "well you never really know until you try it", am I gaslighting you if I tell you that there's room for improvement in your due diligence process?
A CTO hiring you and then leaving the company 2 weeks after you started is a major red flag. This is not a common occurrence in anything but a dysfunctional org. Now, there is of course only so far you can predict into the future, and surprises do happen. But whose decision was it to accept the offer? And who is ultimately on the hook for it, whether it's in your control or not? To protect yourself, you need to own the responsibility for that decision, even if you have no control over it happening inside the company.
There are companies you can accept offers from where the chances of this happening are one in several thousand, and companies where the chances are closer to one in fifty. To what extent are you confident in your ability to accurately predict and gauge a range and confidence interval about that?
I used to say the same things you did, and I kept getting the same results. Eventually, I just got tired of it and I realized I'd do quite a lot to prevent it from happening in the future -- or at least, if it happened again, I didn't want it to be a surprise. I'm thankful to say that I'm significantly closer to that point now, although it took many years of trial and error. And surely, I have even more room to improve, and I look forward to honing my technique even further as I gain more experience!
If what you're trying isn't working for you, it may be worthwhile to try to reconsider your process and see if you can improve it. If you don't even try to improve it and you're unhappy with your results, why do you think that would ever change?
> This is not a common occurrence in anything but a dysfunctional org.
This happens all the time in orgs all over the planet. Hiring managers and executives get new jobs and things change. Time from offer acceptance to starting work is always nonzero in big companies (measured in weeks to months in most of the fortune 500, I'd bet - my current company is Fortune 10[1], so there's that - cto in this case means of the particular division of this company, not the parent).
Now, please... do us both a favor and stop talking out of your ass.
I think there's a pretty universal consensus that a good design matters.
If you’re lucky your client hired you because they, too, care and believe design to be important, but that’s far from a given.
And many designers are artists ("designers") not ux engineers, so their main goal is to make something that shows their artistic skill - they're going to be trained in design packages, not designing a good ui.
(I mean, when was the last time you saw a clickable button on a modern user interface? nowadays it's just "guess what this shade of grey means")
Isn’t the obvious fix there to let the designer design and the implementer implement? Obviously if the designer is kept out of the loop completely they may not even be in a position to argue for the importance of good design (or just any design process), but then it shouldn’t be surprising that the outcome is bad design.
In any case, as I said, you get a problem if the person who designs the app is simply someone who was trained in coding, and you get a problem if they're simply someone who was trained in art.
If they are lazy design does that mean they are quick design, especially if you find a problem that needs solving in the middle of getting ready for the launch of your MVP it might be easier to do a modal.
Of course this would lead to legacy design that needs fixing over time, and legacy code to support the quick and dirty design decisions.
Edit: 1 bit lol
(But, yes, it’s pretty awful and makes it hard to take the content seriously even though it’s good content.)
So I guess point taken.
I think the first option is helpful; the second option is boringly obvious and not helpful.
As for the style, I found it to be entertaining and helped make a possibly dry topic seem a little less like a lecture and more like friendly advice.
Replace a doctor with a random stranger (which is what this website is, I don't know the person giving advice about the modals) on the street who is obese and tries to tell you with authoritative voice - "Hey! Listen, you're fat and this is how to lose weight!".
That's more accurate. I can agree with you about the entertainment value, I personally don't see it but if someone is entertained by it, good.
Look how well those those graphics get their message across, whilst also matching the style of the text. That takes a real steady hand (both literately and figuratively).
To anyone who's familiar with the topic it's immediately clear from the copy that the author understands it.
Considering that the target audience is other designers, why does the presentation matter?
IMO it totally kills it. Others may not have as strong of an opinion. This is the age old question about separating art from the artist. With authoritative didactics, especially as a stranger on the internet, it is even more important to associate art with the artist so to speak. It comes with responsibility.
I fail to see the logic here. Good design helps people learn easier. It's not like designers have some unique ability to learn equally well no matter how poor the design is.
It's not like he used gifs or flashing colors.
Now I kinda want gifs and flashing colors.
Edit: Claiming it's only designers' fault, or generalizing that all designers do that, is obviously wrong. I did not mean that. What I meant to convey (partially failed) is that examples propagate, and somehow design choices are the beginning of this propagation chain.
I think even GEOS had them.
Making GUIs less modal is a similarly ancient UI design holy grail. Applications are modes hence everything from OpenDoc to the just-announced App Clips. A familiar clunky modern mode is 'native' apps vs 'apps' in browsers - a big chunk of technologies many programmers work with today are directly or indirectly related to mitigating its effects.
The classical sense of "a collection of related controls that prevents interaction with the rest of the application (however the collection, controls and application are implemented)" is surprisingly rare now, particularly since the older sense were often called "dialogs" (and indeed, "modal" was short for "modal dialog") - intended to emphasise that this was communication between the user of the application and the developer of the application to decide how the application should behave.
Therefore, a modal dialog should be used when the communcation couldn't have happened before and cannot happen later, and the developer of the application cannot do something intelligent and allow the user to correct it later on. (For instance, just delete the thing and let them undo it - no interaction between the developer and the user actually needs to transpire.)
Not good designers. Bad middle-managers, who only know how to say, "Make it a pop-up!" and nothing else.
The problem problem with modals in a web page context is that they go against the statelessness of the html request/response model. They end up building up a lot of local state in the client, both model state as well as UI state, that eventually need to be reconciled with the server. If the user closes the modal, is the data saved for later? Does the form reset? Does the server know anything about it? If it is a wizard, were previous steps saved? And so on.
After many years of working on and with intercoolerjs/htmx, I now typically prefer inline editing and wizards, to a modal solutions. It fits better with the web model, allows for proper URLs, etc.
The inline-edit demo from htmx is a good example of something that might be implemented as a modal by some developers, but works very well as an inline-edit UI instead:
https://htmx.org/examples/click-to-edit/
(NB: I was lazy and did not make the URL update as I should have)
Can’t teach this stuff, you basically need to be confronted by tons of bad UI in software, games, physical printed forms, processes, until you get a good sense of taste.
I can’t teach HN devs that my thumb covers both the upvote and downvote button on mobile. Can’t teach it.
Imagine you're playing a game and you click "Options" and a modal window pops up with the options you can tweak. Or an endless image gallery where clicking an image enlarges it inside a modal that you can dismiss to resume scrolling without losing your place.
It didn't wrongfully force you out of experience, it's what you wanted.
Seems like we're talking about getting in the way of users where crappy modals are just one way of doing that. Navigating to a new page seems even more jarring in TFA examples.
There is literally a field of science called Human-Computer Interaction that teaches this stuff.
This seems to confirm the op's point.
"Yeah but they didn't know what they were doing and didn't want to learn" is a more appropriate take.
You can think of it this way: your neighbor nextdoor made a soapbox car. Does that qualify them to be your mechanic? Probably not.
So the only logical thing to do is avoid the site in the future, they're more interested in extracting money from their existing readers than getting new readers. Sorry, maybe if you had let me read one article I may have liked your content.
I feel your pain.
The web sites I maintain have at least 70% mobile users. But the managers (and designers!) only see them on giant-screen desktops, and only care what it looks like in-house, not to the customers.
I'm tired of constantly telling layers of bosses that what they want won't work on mobile, which is where their customers are.
Progressive disclosure retains user focus on a single task as opposed to showing everything at once. Accordions have similar function to modals and dialogs but adding further task controls to an already complex interface isn't always the best solution.
The author goes on to state that even full screen modals are bad, but what difference does the user see? If done well the user should still be able to use the browser back button, escape key, etc to navigate out. In modern applications, pages can transition from one to the next without a "full page load" -is that also bad for some reason?
Think of many popular mobile apps like Instacart, Doordash, etc that allow a user to dive into categories that slide on top of the existing content to give further controls; is that not ok?
Every element in the DOM can be applied inappropriately but that doesn't shift the blame to the elements themselves. One could argue an entire dedicated site that only uses modals based on the misuse of illegible fonts would be about as apropros.
[1] https://www.nngroup.com/articles/progressive-disclosure/
Since we're quoting NNGroup, here's their guidance on modals[1] (emphasis mine):
1) Important warnings
2) Critical to continuing the current process
Most modals are unasked for, not relevant to the user's current needs (no matter what the dev/marketing might think), and unwanted. Modal to select filter settings when I've clicked/tapped the 'filter' button? That's a good use.
Important from the NNGroup article you linked even demonstrates great modal usage and states "3. Modal dialogs can be used to fragment a complex workflow into simpler steps." and "4. Use modal dialogs to ask for information that, when provided, could significantly lessen users’ work or effort."
That's important - modals are not just intrusive pop-ups as many designers and others in this thread have decided that they are. Again, every element can be used inappropriately but that doesn't mean the elements are to blame.
Again, I'm not saying (and I wouldn't characterize TFA as saying) modals per se are bad. But the priors are such that absent any other information, modals are suspect.
If you design a desktop application, like say Word then modals are more appropriate than the alternatives in many situations. For a site like Medium, a modal is an annoyance. If I asked for something (click Settings) then I am happier with my modal than if I didn't ask (we're going to stuff cookies on your page anyway, here is our arse coverer).
The underlying message I take is we "use too many things that make it easier for the coder and harder for the user". Sometimes that's a modal, but sometimes that's NOT using a modal!
Edit: To provide a little more substance here - for example in one product of mine that actually has customers - confirmation is done via inline elements that slide into the page.
So you want delete a comment for example. The delete/cancel buttons slide into the box for that comment. No weird context switch for your eyes.
But if they're overlaid elements, like a context sensitive menu that contains two options - delete, cancel - is there any substantive difference between a menu and a modal? The main advantage of a classic menu over a modal seems to be that it has a implicit cancel option that is uniformally implemented. But nowadays, menus are implemented without toolkit support - yay dom, yay - so even that is not consistent.
Content size doesn't change in my case and I would highly advise against changing the sizing of elements on the page for something like this.
The buttons are sized vertical based on the content up to a limit.
I guess it's an between case I didn't consider - it's maybe not modal with respect to the whole app, but it seems to be modal with respect to that one comment (you can ignore it and do something else with the rest of the program, but with that comment, you can't even read it).
If you have to use a modal element at least allow me to get it out of the way so that I can read the text under it!
I know that 90 degree angles on webpages are not more dangerous for children, parents, adults, or any other known subcategory of humans than for any other known subcategory of humans, but ... lots of people who use webpages and dev tools are actually children.
Didn't a lot of us get started as kids?
Have we collectively forgotten the olden days, when to print something, the solution was to ask the neighbor's next door kid? (who was probably you). Printers aren't any easier to use today than they were back then, but I guess that practice is over nowadays.
Ofc we've all seen them done terribly.
Use them for that purpose, no need to swear them off completely.
Also, hilariously this website uncovers a bug in Safari where the cursor doesn't reset once you leave the page bounds, so I have a huge pixellated cursor hanging around until I click somewhere else :P
Not to mention that what should be a list is displayed as a table (-‸ლ)
I’ll try to fill that gap.
Modals switch the application normal mode to get your attention. So they interrupt your “flow”.
Most of the reasons to use them could be resolved by other means, that are better in terms of UX but requires more work in both design and implementation:
- Confirmation modals can be substituted with auto-save, undo, and restore, but is more complex to implement.
- Modals to show more info can be resolved with progressive disclosure or by improving the information architecture.
However, like with many design choices there are cases where modals are a good option. For example, for certain confirmations and navigation the advantage of the modal is that the backdrop makes clear where do you go after dismissing the modal (bottom sheets in mobile are a example).
Another reason why modals get a bad rep is that they have all sorts of implementation issues in web, and in the desktop the mode change for a window is not prominent (macOS solves that with sheets, but Windows still has that problem)
A personal favourite is osx Preview and the rename and move file drawer you can get from the status bar of an open file. That guy can't even be moved, and perfectly covers up the portion of a document likely to contain info relevant to a filename.
> And remember to always ask, kids: >“Why does this have to be a modal?”
In my experience people don't need to be remembered to ask this. And generally people can't justify why it shouldn't be a modal or why a non-modal solution is better than a modal one.
I was playing with Alibaba Cloud's UI and it's all modals and feels much much nicer to use. I wouldn't use Ali Cloud due to Chinese ownership issues, but I do like their UX.
With time, I have just accepted that this is what modal means (I'm going to create a window of this type to display the data/filters), disconnected from any meaning of the term "mode".
But I still don't like it.
If you can still interact with some other part of the page while it's open, it's not a modal, it's just a popup.
Adjective, (of a proposition) in which the predicate is affirmed of the subject with some qualification, or which involves the affirmation of possibility, impossibility, necessity, or contingency.
Its pretty plain to see how a confirm or error message is applied to that definition no?
> in which the predicate is affirmed of the subject with some qualification,
E.g. an error with an error message
Or
> or which involves the affirmation of possibility, impossibility, necessity, or contingency.
E.g. an are you sure? dialog preceeding a save.
It has to do with the notions that are expressed by "can, should, might, must, has to" etc. These words (most of them are called "modal verbs" in English) modify a proposition in such a way that they do not mean it happened/happens/whatever, but qualify it, or indicate its possibility etc. So "he's going out now" is a proposition. "He can go out now" modifies that proposition - no longer are we affirming it, but merely affirming the possibility or permissability of it.
Nothing about "are you sure" is modal. A modal dialog is called modal because the mode of the program has changed - no longer can it accept requests to delete articles or add text or modify an avatar, but it is now in a mode when you can either say "delete this" or "don't delete this".
In particular, if you showed an inline prompt that says "are you sure? delete/cancel" but still allows you to interact with the rest of the system, it's not modal.
https://en.wikipedia.org/wiki/Mode_(user_interface) and https://en.wikipedia.org/wiki/Modal_window
The trouble with elaborate modes is that the user has to mentally keep track of which mode they're in (which is what the term describes); and that other functions are inaccessible even though they might be useful to resolve the situation. However, modal dialogs are a streamlined and visually distinct extreme of modes, with an established history, so some don't consider them problematic. (Modes that are difficult to notice are still a no-no.) OTOH dialogs are frequently used as cheap bail-out by programmers, especially in desktop interfaces—since they're very easy to produce, completely synchronous, and shift all problems onto the user.
I guess I just have to live with it when I pop in and out of the UI coding world. Just like in Python a .method isn't what the natural word typically means, but just has gotten a domain-specific meaning attached to it in that world.