3 ms·
Honest question: What problem did hamburger menus solve? I remember menus before. They were there, they were obvious, and they didn't need someone to explain t
by ghusto 3y ago
Honest question: What problem did hamburger menus solve?
I remember menus before. They were there, they were obvious, and they didn't need someone to explain them to me. The first time I was on a site with a hamburger menu, I'm not embarrassed to say that it to me _minutes_ to figure out what it was.
I see how they're not as obvious, and would make that trade if they solved some serious worthwhile problem, but what was that?
- JohnFen 3y agoIIRC, they came about because of smartphones having limited screen space which made normal menus problematic. In that view, I understand them even though they're terrible. I just wish they'd stay on smartphones and not appear elsewhere.
- Brendinooo 3y agoYou need your menu design to work at every viewport width between 320 and 1900+. So if you want to have your top level items on the screen at all times: 1. You have to decide if your top-level menu will be dictated by the smallest width or not 2. If not 1, then you have to decide what will happen when a lot of menu ends up in a smaller space. Do you wrap it (and risk using up your "above the fold" space on menu items) or do something that requires scrolling/opening submenus? Also, whatever design you come up is almost inevitably messed up after handoff, when the client adds a word to a top-level item or adds five more top-level items. Hamburgers solve this by giving up a bit of usability and gaining a ton of screen real estate to work with as a result. As a designer-turned-developer, I've warmed to them over time, as has the Internet at large. If it helps, maybe consider them as a "the worst solution, except for every other solution" sort of thing. It's a pragmatic choice. And it's not like menus aren't a common paradigm of computing anyways.
- ghusto 3y agoThanks, it makes sense now. Basically needing to play down the the lowest common-denominator :/