What UI density means and how to design for it
matthewstrom.com
matthewstrom.com
Some sites disabled pinch zooms (massively frustrating for images). Some sites exclude information in mobile view. I'm sure there's other reasons too.
Facebook, Reddit and Amazon all have terribly made mobile versions of their sites, for example.
Reddit's is comically bad, like they hired interns to make it who tried trendy stuff but didn't understand how to implement any of it properly.
Amusingly, I use my phone to magnify the labels for food ingredients to make sure myself or my kid aren't eating problem foods.
It is amazing how many years people live after their 40's and so much stuff is now "hard" and yet no one will design for it. Even when they themselves will inevitably suffer from it one day.
Best are the blogs that have embedded images of graphs or something and they are as large as you can make them (edge to edge). Try pinch to zoom... nope. Tap on image... Here is a smaller version of the image (not edge to edge). Oooookay... Can I zoom now? Hahahhahah....nope!
I've always wondered why sites do this. What's the point of it? What does the web designer get from it?
Exactly my thought. I too use it sometimes, but "always" is a bit too much.
I think it's intentionally bad. They just want to force you to use the app instead. Hence the 5 times a minute "Reddit is better in the app" popups too. Unfortunately the real reason of course is "Reddit can collect much more information about you if you use the app". It's not about "being better". That's a choice, if they wanted to provide a phenomenal web app experience they could easily do so.
I've built responsive sites that work as you'd expect in desktop mode, and I'm not 100% certain how other sites that don't are built.
They seem to degrade into some odd hybrid between desktop and mobile. It's like the worst of both worlds.
So, for example, you get hamburger menus, instead of the full desktop nav. And you get a different layout with an increased PPI, but it's not quite mobile and not quite desktop.
I can only assume that they are looking at the agent string in addition to implementing media queries / breakpoints. But there's also something weird going on with the PPI.
Whatever it is, seems like it takes more effort to create a poorer design.
Every "mobile friendly" menu site is able to show maybe 5 items on the page at once
This is due to accessibility regulations. Apple design guidelines and Material guidelines explicitly state how small font can and should be. Ask any designer you know.Why the sincere fuck must I peck around on a screen for ants when I am paying money to be served?
This is the usual race to the bottom on the market.
Restaurants are one of the few areas of the market where local businesses that are deeply connected to their communities still thrive.
There are plenty of restaurants & pubs near me who recognise me as a regular customer by name. The people at those places genuinely enjoy making their customers happy. It's much easier to care when your customers are living, breathing human beings with names you know whom you see frequently. The same can't be said for McDonald's, but there are places that aren't so soulless.
On a similar vein: Why do I not get a small discount, say 1%, if I go and use a self-checkout instead of going to a manned checkout? The cashier isn't serving me, so why am I paying for his wages?
I am, of course, fine with receiving less service if I am expected to pay less accordingly.
There’s plenty of good mobile-friendly menus around. Nice clear typography, easily scroll through items by category, one tap to add to order or to get more details (and often photos) of the dish.
It’s just not an art that every restaurant (and restaurant software vendor) seems to have mastered yet, unfortunately.
I wish more mobile interfaces make good use of that. Instead we have a various versions of drilldowns and poorly implemented search.
Half the time I can't even tell what the full list of items are on a mobile menu.
I can honestly say that I've never seen a good mobile-friendly menu anywhere. I'm not saying that they don't exist somewhere, of course, just that I've never seen them.
I would settle for a single, zoomable html page.
On the other hand, the spatial benefits to such a plane helps people remember where to look if they want to return to a section, whereas with endless scrolling, it's nearly impossible to find something you saw before until you happen upon it again scrolling back up for an indeterminate amount of time.
This makes me think it would be useful for mobile browsers to allow adding temporary scroll bookmarks while using a page. It'd be useful for browsing lots of items, restaurant menus, on a single page, etc.
("that looks good" [bookmark scroll position] ... [keep scrolling] ... [tap icon to return to the previously saved position])
EDIT: At least restaurant menu sites aren't that bad yet. Can you imagine? "Hamburger. Redefined." <SCROLLS> Hamburger slowly pieces together across the screen tied to your scrolling. "We think you're gonna love it." <SCROLLS> Pickles slowly fade in and out to demonstrate the difference between Hamburger and Hamburger Pro
I simply disagree, and think the EXACT opposite.
Panning and Zooming a two-dimensional, immutable file itself isn't tedious compared to scrolling.
(You're straw-manning PDFs, though it could be any 2D image or mutable document file)
This shouldn't be necessary with a well-designed menu interface. Firstly the whole thing should be indexed anyway, allowing easy jumping between categories. And if something looks good you should be able to favourite it with a single tap, or at least add it to your order with a single tap. (If you end up with too many items in you order, consider it a short-list, reviewing the items and narrowing it down from the final order review page).
A real-world analog would be adhesive color tabs people stick to the sides of books or printed documents to mark a paragraph non-destructively, so they can return to that point later more easily.
Think anchor headings, except user-driven, because many websites don't even use anchors to enable linking to page sections by URL hashes, and without inspecting headings for anchors (by tapping or long-pressing on them), nobody would ever know it's a feature.
I wish I could just mark my current scroll position and return to it later by navigating back + forth between the ones I've saved for a page. I've lost count how many times I've made mental notes saying "This is interesting, I'll return to this bit later" only to struggle finding it again because it's lost in a sea of text. Browsers have no way to temporarily bookmark bits of content without developers (or CMS'es) being smart enough to anchor headings and sections.
This, instead of presenting a bunch of items, or only segmenting by category.
In general, the need to navigate the entire menu is reflective of a bigger problem, which is that nobody ever knows what they want to eat for a given meal.
If somebody can algorithmically solve this in a personalized way, that would be a quality of life improvement beyond fixing mobile menu formats.
Matter of fact, give me an app that spans multiple restaurant menus, understands my preferences over time, and keeps track of what I've recently eaten, then suggests my next meal.
But even with that, your experimentation could be guided. And, man, most times I find myself just needing to eat something versus embarking on some great culinary quest. So, more often than not, it's just one more thing to solve.
doing that with a digital menu is maddening. "where's X?" "below Y, no you've scrolled too far", ad nauseam.
It also explains why trading UI for pros haven't changed at all compared to these Bloomberg Terminal screenshots.
Sometimes a dense UI is precisely what you need. And the one thing that matters for people trading "manually", clicking on things, is latency: there should be no room for "wait, did the server get my order or not!?".
In a way TFA explains why a restaurant isn't a trading floor.
It's the same reason we have paragraphs in writing, rather than walls of text. We need tools that help us spatially recognize + remember content so we have a relative frame of reference to quickly get back to something we're looking for.
It's the same reason we have pages in a book -- not just that it's easier to carry a book versus a long scroll of paper, but it's objectively easier for our minds to handle the limited amount of content each page provides, as we get ready to flip to the next. The amount of pages we've read in a book also give us a natural indication of progress.
In a similar way, UIs that are split up a little better give those of us who do get overwhelmed a better way to organize the content we're looking for. This is why the majority of web apps have distinct views dealing with different content and reachable utility dealing with that content.
And pages are pages because that's convenient to make.
And to bring up restaurant menus in another spot, look at that density! If twenty pages was better I feel like we would know.
A phone screen becomes a well sized and flexible canvas, given sufficient dexterity and eye sight.
It can easily be a comparatively tiny medium as well.
See the famous (still? hopefully?) Kadir&Brady paper "Saliency, Scale and Image Description" from 2000 for an explanation of how encapsulating information in something visibly distinct, like whitespace, increases the visual saliency of that information: https://www.robots.ox.ac.uk/~timork/Saliency/ijcv_SalScale.p...
But for simple consumer facing apps or websites, I don’t see it making a comeback, as it is more aesthetically pleasing and more usable to have simpler / sparser user interfaces for less tech savvy people.
No, it's not about the data model, that's a completely orthogonal matter. You could add more whitespace to e.g. Darktable, and put functionality which doesn't fit anymore into e.g. menus.
It's about the software being used for focused work. People invest some time learning it, but then expect that the work will be fast and efficient. More whitespace will mean you have to do more clicks to do the same thing in comparison to a more dense UI which costs time.
> and more usable to have simpler / sparser user interfaces for less tech savvy people.
I'd say it's often the opposite. More visible data presents more context, more opportunity to lead the user and visually explain what's going on. You need to invest more into arranging such screens correctly, but when designed well, their UX will be superior to low-context low-information space-filled screens.
The "design needs to be understandable by the person writing the check who will never use it" problem is all over enterprise sales leading to software that doesn't need to look like $trendy_consumer_app but has to anyway to get the sale.
[1] - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pref...
Not once does the term "word density" occur. They talk about Tufte's concept of "information density," though. Edward Tufte is really must-read for any designer or anyone working with them.
> what they should have said is that a good interface for humans maximizes information without losing visual salience
And Tufte talks about that, too. I'm sure the author realized this.
It’s like entire web design world decided more whitespace is better, and won’t hear anything about it. And now some desktop apps are being designed like web apps. Or take Hulu on my Roku, it will literally only show the first three lines of a four-line movie synopsis, surrounded by tons of space, and make you expand it, via multiple button presses on the remote.
I once implemented a file list view for a start-up I was working for, off of a mock from the designer, similar to what you see when you are browsing Google Drive or Dropbox in a web browser, but with only one view, a list view with very large icons. The amount of whitespace was massive; use of screen real estate extremely poor. But then, these web UIs never look like the Finder, or Outlook, do they? They could. They could feel almost as snappy, too, with some allowance for network roundtrips. The Finder is actually pretty slow these days, even on a high-end MacBook browsing local files. There are lots of pauses and stutters.
There’s an unspoken rule against labeling things, too, if you can use a row of inscrutable icons instead.
There will always be designers experimenting with taking things away. Apple has done it plenty. What if there were no scrollbars, no ports, no home button or menu bar (just swipe from the edge of the screen), no keyboard, no headphone jack. Sometimes it’s a bold direction, occasionally a clear net negative. But minimalism is a thing, it just has to be tempered.
Often, design “trends” are just trends, in my (admittedly cynical) view; there isn’t necessarily any merit at the core, or the people propagating them seem more interested in conforming to trends than asking what is good. The dynamics of fashion are easy to underestimate as an engineer.
People love to copy things. People who grow up watching action movies and become action movie directors just want to make an action movie with all the action movie tropes. That’s the main thing, not necessarily picking the things that work well in action movies and bringing in some things that just work well, period, that are original or timeless, like good directors or writers do.
Besides people loving to copy, people sometimes think following trends is why something will sell. If you’re making clothing and you aren’t hip to this year’s styles and colors, no one is going to buy your stuff, is the sentiment I presume. It can easily become overwhelmingly about conforming to trends. Designers also tend to put famous people and sources of influence on pedestals and think they will never be 1/10 of the genius of, say, the person who decided that some famous building should look like a pile of mashed potatoes, or that an Apple billboard should just be black text centered on a plain white background. In art, as in philosophy, there is so much pressure to agree that certain people are good, regardless of any objectivity or lay opinions—so much focus on status—that to even think of what you are doing as potentially-good-in-others’-eyes, you need to copy someone or some brand with high status, or somehow attain your own status, is how I think people sometimes feel.
In other words, designers of UIs might falsely think the customer cares about trends and fads, and that their work will be evaluated through a system of reference points and status divorced from actual merit, as can happen in the design world and adjacent spheres (art, fashion, etc).
https://news.ycombinator.com/item?id=23198893 (May 2020)
https://news.ycombinator.com/item?id=17427354 (June 2018)
https://news.ycombinator.com/item?id=14673628 (June 2017)
https://news.ycombinator.com/item?id=9053634 (Feb 2015)
Mobile-first designs create gargantuan gaps of information sparseness on any larger form-factor.
Folks should go back and re-read ethan marcotte‘a Responsive Web Design. He goes from actually a desktop design and shrinks it down. No mention of mobile-first.
So, start with a design, and consider how it works on both form factors EQUALLY. None of this mobile-first crap unless building an app, a whole app, and nothing but a mobile app.
> But minimalism is a thing, it just has to be tempered.
Some people's view of minimalism is frugality for its own sake. It becomes an ideology that has nothing to do with the practical purposes behind the label, "doing away with excess". Excess is whatever is too much, redundant. The quality of something excessive is that you don't notice it when it's gone. You don't miss it. Minimalism is not about replacing a function with another noticeably more convoluted approach. My personal summary of being a minimalist is that you own all of what you need and you use all of what you own. A minimalist may decide that they don't own a fork because they can eat just as well with their spoon. If they can go months without noticing, it's a good call. The moment you see them contorting that spoon while attempting to cut their steak, they've lost the plot. Likewise in UI, the hard to find scroll bars, the greying of texts, the missing buttons are all being noticed by users. It's minimalism gone to seed.
That's a fine way to frame it.
In this horticultural metaphor, I sure hope we'll come to germinate a new and healthy UX maximalism, but so far, with rare exceptions few and far between, I'm not seeing it.
Even Wikipedia, long a bastion of the good old ugly, went ahead and introduced a hamburger menu, replaced the old global sidebar with the article's TOC (collapsed by default with "generous" spacing), and replaced the old right-hand TOC with...whitespace.
I assume you mean the "colored text might be a button to perform an action" thing, not drawing button frames on things like dialog box choices anymore?
I sometimes wonder if that is nothing but a cargo cult started by the dark pattern of wanting to minimize number of people clicking the "Deny" button.
This era of UI as fashion sucks.
It is dumbing down of user interfaces to the level of general public. Specialty software UIs are still pretty dense and serious users of such software would actually complain about attempts at making things sparse such as using ribbon UIs instead of menus, etc.
> It’s like entire web design world decided more whitespace is better, and won’t hear anything about it. And now some desktop apps are being designed like web apps...
At the company I work for, "Microsoft does it this way" is a valid design argument (unfortunately). So, it is not like the entire web "decides" to do things in a certain way, but the entire web "follows" a few leaders (Apple, Google, Microsoft, etc.) with their design trends. And, of course, these companies change their designs every other year and the whole web follows.
What concerns me about this massive whitespace trend is that it's been going on for at least 15 years. That's a really long trend.
That's a good example of something I was thinking of which is cutting off text horizontally as well. Names of songs, artists, and albums in music apps is a common one, or titles in video apps. A lot of times the relevant piece of data (e.g. "part 5") is in the cut off part of the title. It's everywhere. Things should just flow to show all the information according to how much space is needed, just like how this comment is displayed on HN.
Pixel perfect design is dead but still living a zombie life.
"Mobile first"
p.s. oops, sorry, not the first comment of this kind. well, it's just obvious
First, whitespace makes things look _expensive_, more luxurious (look at all that material we surround our content with). This comes from print, and as screens have gotten bigger (and resolutions have gotten finer) this trend has entered screen design too.
Second is the perennial "grandma argument" - i.e. if your website or software or whatnot is not built in such a way that "a grandma could figure it out" it gets proclaimed "high barrier" and folks say that "nobody will ever take time to learn how this works". This often results in bikeshedding over features which are absolutely clear to anyone who has ever used a computer, are useful - but if the product design is ruled by a person driven purely by aesthetics - the features get killed. The issue though is that most software is useful exactly because it does not place a single button called "Do Thing Nao" in the middle of the screen, but actually tries to be a tool.
JIRA is a really visually dense application, but it's speed, as well as the number of different screens you normally need to click on makes it feel really sparse despite the dense visuals.
[0] - https://blog.codinghorror.com/performance-is-a-feature/
A decent level of performance these days should be table stakes, and _high_ performance is a feature. Software that’s molasses slow _is bad software_ these days.
And when slow is the only option, people will wait.
Decent performance is table stakes outside of very special contexts, and software that can't manage it is bad.
Finding an exception doesn't make that stop being true in general.
Stable diffusion is not relatively slow, because it has no alternative that is noticeably faster.
A great example is YouTube in a web browser. My internet is 350 Mbps with 20-40ms latency. Trying to load YouTube in a new browser tab takes a few to several seconds and I'm forced to wait for it to load because the sign in link doesn't show up until the end of the seizure inducing re-render flashes. Safari, no add ons.
I can't believe it takes so long and I think less of Google as a company because of it. Them speeding it up is not a feature in that case. A trillion dollar technology company ought to provide fast as merely baseline. Anything less is them intentionally disregarding their customer.
Also 1s is super slow given how much time you spend in the tool and how many clicks are required for many operations.
Differance - the difference that makes a difference.
It's not just more, or density: you need to sum the cost of context switches, which depends on context size and continuity with prior, i.e., delta size, which in turn depends in part on relevance i.e., which parts really matter.
Design by committee (including one person over time) loses the natural continuity and integrity of an initial idea.
The first derivative of difference?
I’m looking at a Kanban board right now. I have a 41 inch display and I can see a total of 9 issues at a time across three columns. And that’s with basically doing everything I can to maximize the space for the board and minimize how much chrome goes around it. I have no idea how anyone uses this thing on a laptop display. It’s awful.
- Peoples fingers are relatively fat and inaccurate.
- They are slower that desktop - so you'd break the load into parts
- The vertical scroll form factor and screen size limits what you can do.
- Things which are massively useful on desktop - like searching in a page or visually scanning a large doc are much harder on mobile.
A succinct summary of my high school coach's review of me.
Interesting, am I the only one who almost always uses "search on page" and glimpses/scrolls over the entire page before reading both on mobile and desktop? Especially if I just came from a search engine, I search for the "highlighted" phrase.
They're accurate enough to tap on a single OSK key and get it right most of the time. Regardless, tap targets are only a very limited factor in UX design, so there should be plenty of scope for enhancing information density after accounting for that.
I'm guessing that's the reason why I've gotten worse at typing on mobile some years ago, and can't seem to improve it, despite being able to quickly master any similar skill through repetition.
Desktop isn't much better. I actually somewhat like having the text inputs in some programs as I do writing in nontraditional programs (like arbitrary chat programs that don't implement spell check, because why would they?) but it feels incredibly unintuitive, especially when using RDP from my tablet [4], but also when using it locally. Windows is a keyboard-first OS for me, I shouldn't need to use the mouse for any first-party functionality.
1: including autocomplete suggestions, predictive text, and swipe input. I call all of these autocorrect since they mostly seen to share the same dictionary and rules. 2: they're not in my custom dictionary, and dragging the suggestion to the middle of the screen doesn't prevent it from happening again) 3: easy fix, but it needs to be implemented: a single dash is part of a word, a double dash is not. 4: this is an area Microsoft could improve tbh. They know what kind of input you're using when you're in edge or command line. In these software the mobile RDP client should provide keyboard hints to the local soft keyboard to switch input modes based on form input types, and should reset the local keyboard when the active remote keyboard context changes. It should certainly not be deleting entire command lines when I hit backspace in RDP (this is especially annoying in CMD and notepad) as the local software keyboard doesn't know that the my long string was 7 inputs to 4 different programs, not one long input.
How do people survive with their ducking auto-correct on, I don't know. I guess they don't type that much.
All of this was described in detail in Ken Kocienda's book about his time at Apple working on the keyboard for the original iPhone.
The majority of applications and websites you interact with should be simple, and a few should be complex and dense. The reason is that you aren't an expert at most applications and websites, and you want them to be simple, so you can do the thing you want to do without investing much effort. But for applications you know really well, and use all the time, you want them to be more dense, so you can get more things done with fewer steps.
Because there is no easy, cost-effective, or even feasible way to scale the same application's UI complexity smoothly from newbie to expert, the designer almost always has to try to thread a path between the two extremes. This path has to make sense for the use cases they know about, and the largest share of the users they want to serve. This is extremely hard, not extremely simple, as it may seem from an observer's position.
I've seen users struggle to flip between many views in some SPA to figure out if things are right or not in their other system, then come to our system to correlate and looking at one or two windows they see all the same data.
I guess it's just the designers, though it seems CSS and HTML lends itself very well to information-sparse pages.
As we're transitioning to the web, due to customer demand, this is one aspect which I very strongly want to keep. We'll see how it goes.
I've never been a fan over overly dense applications, unless they are purpose built tools. There's a big difference between PhotoShop and Grubhub. Likewise there should be differences depending on display size and UX... If you're going to have users with finger/touch input, then you don't want things too close.. if it's mostly Desktop/Laptop, you can go much more dense with less issues.
Do keep accessibility in mind, some of us zoom up a couple steps on many sites.
Others in this thread have already pointed out the massive difference in information density of a printed menu over most menus rendered on a mobile device.
Thing is it doesn't look super-dense. It's just space efficient let's say. Our UI components, based on Win32, makes it quite easy to have relatively dense UIs that's don't look cluttered or busy.
Like I said I'm sure you can do it using HTML and CSS, it just seems not to be done often.
That said it's absolutely a specialized application. At least 99% of our windows/views would make zero sense on a mobile or tablet.
> Do keep accessibility in mind, some of us zoom up a couple steps on many sites.
Yeah we had to manually implement font scaling, before Microsoft added it to Windows. Certainly something we will support going to the web.
That reminds me of the widgets and named-frames of: https://botoxparty.github.io/XP.css/
Fortunately our customers are mostly interested in functionality, and there's not a ton of competition. But yeah, a good looking interface does have a distinct impact so it will be something we'll have to balance.
The professional tool is expected to be used for many hours over and over. The ideal design is whatever reduces the cycle load for the user. So you get information dense screens with all the tools up front and exposed. They tend to be intimidating as hell for casual and new users.
The consumer tool is intended to be used rarely at great intervals. The ideal design is that which gently guides the user through an unfamiliar task. so you end up with deep sparse screens. Much easier to find your way but a pain in the ass when you know what you are doing.
I think a lot of designers over emphasize the experience for new users to the detriment of experienced users. To the point that I use "user-friendly" as a sort of euphemism for shitty software design. remember, usable is not the same thing as user friendly.
As a side note:
> They tend to be intimidating as hell for casual and new users.
There are a lot of fields and buttons, but also a lot of "smart" logic that's part of our secret sauce that puts us ahead of most competitors.
I've been pondering if this is an area where we could use a LLM to improve the user experience. Have a way for the user to describe what they want to do, and have the LLM provide the steps necessary to do so.
When new it can be hard to read and understand large user manuals, especially when you're on the clock and need to have this order registered and processed yesterday. A lot of our users are not very technical either, so being able to clarify etc could be helpful.
We're a small but growing company, so I've been planning on incorporating more methodical approaches to see where we might improve going forward.
I'm primarily concerned with providing a great product for our users. However I do hope it has a positive effect reducing the load on support.
It can be challenging though. We might provide great training but then that employee moves on and their replacement doesn't get the same training, so they don'tunderstand fully what they're supposed to do or how our software fits in their processes. And users are often not very technical, while the processes they need to perform often can get somewhat technical due to regulations or similar aspects outside of our control. Guiding the unsure users while not getting in the way of the seasoned ones can be a delicate act.
I frequently feel for any app that I use frequently, i would prefer for it to have many options that I could use to customize its behavior. For instance, Uber
In Chinese apps, I can post photos, message my friends, order food, call an uber, pay transactions, all from the same app
That seems tangential to UI density. You could do all that in a single app and it could still have an extremely sparse UI.
I don't see how this statement says anything about UI information density.
This is just a super app with monopoly over the market. Last I checked (and it's been a while if I'm being honest) WeChat just looked like a custom launcher for other views/apps that all happen to be hosted and controlled by the one company. That's like saying "Android is super dense. I can post photos, message my friends, order food, call an uber, pay transactions, all from the same device"
Pretty sure Facebook or Google would love to be that super app for US/Europe/rest of the world. However, you'd probably shout "monopoly, lock-in, anti-trust, market manipulation" if any single vendor actually tried and succeeded in that. For good reasons too.
The problem is that the era of zero interest rates and (mostly unprofitable) advertising-based business models means the tech industry shifted from making tools to benefit the user to "tools" that waste the user's time. Company targets are often measured in "engagement" such as screen time, DAU/MAU or pointless metrics about how many times some button was clicked.
The zero interest rate era is mostly behind us, but the mentality remains and company targets are still often based on that, so employees are not incentivized to make products more efficient for the user since doing so will reduce the DAU/MAU or whatever metric they're judged on.
Please don’t. Most mobile apps made by Chinese developers, esp. big techs, do employ grid, paged layouts everywhere as though multiple iOS home screens were squeezed into the app. However, most grids in such layouts are useless, distracting, and even malicious from a UX perspective, their mere reason to exist being to steer users into endless rabbit holes of the devs’ multiple lines of businesses for KPI purposes, and thus subject to constant and arbitrary changes. As such, you can find an icon for personal financing in a cloud storage app, or find an icon for groceries in a ride hailing app, only to be replaced with icons for online dating and hotel booking and something something a week later. This density of user-adversarial features is to be avoid by all means.
https://investor.vanguard.com/investment-products/mutual-fun...
Then there's the sticky header, on my screen it takes up 1/5th of the available space. Or the headings, subheadings and tabs that float away (proximity principle from the blog post) and the column of text, that becomes hard to read because of small line length.
It clearly looks designed, but they should take a look at this post.
There's a trend of using larger fonts sizes due to Accessibility, but it comes at the cost of reducing density.
IMO, that's a huge red flag. If the sales information puts beauty before functionality, that's an insurmountably amount of contempt they are showing for you before you even become a customer.
On an investment company it's even worse, because contempt is less likely than they just wanting to actively select dumb customers. That's a very strong indication they'll try to steal my money (I have no idea what this one site is tough, it's not my opinion on them, it's what their design choice makes me think).
But hey, it's very beautiful!
The pace and scale of application development is also not at all comparable to the past. The level of involvement management has in app dev is much higher and there are more technical contributors who are less coordinated. This leads to a lot of "good enough" thinking instead of paying attention to details.
This is especially true for products and especially at startups. Less so for services at big orgs. Services tend to have a longer lifecycle. Services are usually B2B and the public never sees those UIs.
You can blame a tool for making your work easier or harder, but you can't blame a tool for making your work substandard.
As I assume it's possible to have scalable interfaces in React - what's the common mistake people are doing?
React has almost no opinions on web page layouts or anything related to styling. The only type of web page problem I can think of that's specific to React would be hydration errors, and this doesn't sound like that.
The reason that a lot of React interfaces don't scale well is that the vast majority of web pages are very low quality, and React is a popular way to build web pages.
Obviously it's a developer competence issue, but I wondered if there was a React specific trick here - or as you say it's just that popular tech has by definition numerically more low quality/inexperienced developers.
As someone that has written his fair share of raw html, php and js, it's a bit misleading to associate react and these issues. I'm writing in nextjs / react these days, and it's amazing...but like everything out there, if used poorly, you get poor results.
Designing for reactive UI's and accessibility is a feature. Sometimes features get cut, even when they shouldnt.
- focus on authoring robust CSS
- actually test the UI (different devices, browsers, viewports, scenarios)
- reserve APPROPRIATE time to test UI
- reserve APPRORIATE time to fix the issues
- have designer in tight loop
- have systematic approach to track issues
- test with users
- aim to apply fixes asap so that the fixes gets tested as well
Biggest single factor causing issues is to start late. The time will run out if the styling setup is not robust, it depends on some questionable conventions or libraries, or is simply hacked together.
It is not that complicated, but it is most certainly difficult to do magic tricks late in the development.
React itself is not a root cause. I believe the fundamental cause is a mix of skill issues, lack of knowledge, quality ambitions and time management.
This entirely depends on the dev team working on it and the complexity of what's being asked for. As a developer, I'd rather start late on simple ideas than start early on incomplete and overly complex requirements.
I've seen plenty of projects be absolutely destroyed by product managers and designers with main character syndrome and their own lack of attention to detail and being entirely unresponsive to or flat out inexperienced at answering the technical questions from developers.
Those design decisions are sometimes even late and only mentioned after dev has started. That's completely unacceptable on any project. Requirements and designs are their own intermediate result and demand just as much finality as the product itself. Every revision will erode the final product and mess up a deadline. Developers should not be along for the ride with indecisive designers. Go to the developers with a completed vision and no stone unturned and you will have the best results. Level of experience throughout the project must be equal.
The implementation details are far more important to the overall UX and polish of the result than the visual design. The implementation details can't be ignored or you risk an uncoordinated shit show.
When it comes to the amount of upfront design needed…
…yes, everyone agree ”complete vision no stone unturned” is the optimal. That is easy ask.
In real life that is not possible, unless you are working with incredibly small scope OR without any schedule. I.e. not possible. Business with money involved? Just no.
Agree on level of experience. Experience usually helps a lot.
Unable to design and develop system with certain level of uncertainty and adaptability is the real tragedy.
I believe everyone should be interested on the possible routes ahead. Assuming one or two persons are able to foresee some unknowns is intellectually lazy. Expecting them to brainstorm it out to the detail infront of some whiteboard is just not how real life works.
I'm entirely willing to sound like a naive fool for saying this, but the tragedy from my perspective is business not willing to accept that the majority of the risk comes from letting people with less technical experience be in charge of people with more. That's just plain dysfunction and all too common. Many businesses waste so much money on scaling up their teams when they should be focused on hiring or training up the best.
For many years I served on the CS department's graduate admissions committee. Lots of our MS applicants talked about working on sites for major US / western brands, and lots of those kids did not make the cutoff for even our relatively low bar for admission.
I think about that a lot whenever I see that a multibillion dollar multinational corporation has a web page that doesn't work at all.
I wish the US had a more appropriate path for "software development education" than "scientific study of computing" or commercial bootcamps.
Where I'm from, after high school there's vocational higher education (as opposed to scientific higher education), and parallel to high school there's vocational education.
And then we fake-streamed the response (so you're still, technically, waiting 20 seconds for first token, but now you're also waiting maybe 10 additional seconds for the stream of text to be "typed")...
And, to my enormous surprise, it felt faster to users.
(Of course after several iterations, it's actually much faster now, but the effect still applies: streaming feels faster than getting results right away)
Presenting information is an art form. A lot of it depends on what the information is, and also, who the information is for.
One of my basic philosophies, is that the UI needs to get out of the way. This means not always using sexy little animations, everywhere (but still using them, if they also work as useful indicators of state transitions), proper contrast, minimizing overhead, like frames and controls, etc. Also, not crowding the display too much.
That said, sometimes, we need a dense display, if we have been trained for it. That Bloomberg terminal is probably fine, for many folks, because they have been trained for it, and it's a daily tool. A lot of Tufte's designs need to be presented to experienced users.
I remember the first time I looked at the train maps in the Shinagawa Station, in Tokyo. They were confusing AF. After just a couple of days, however, I had them down, and appreciated all that information.
I tried using a fancy paid Git client, once, because it was just so pretty.
After just a few minutes, though, I nuked it, wrote off the purchase, and went back to ugly old SourceTree.
For an example like that, were they confusing because the complexity of all the train routes were inherently confusing to a newcomer, or because it was a poor visualization?
When I get back to my desktop, I’ll see if I can scare up an image.
The numbers in the boxes are the fare (in Yen) required to get to the indicated station from where you are (this map is from the Yurakucho station).
A number of companies run trains in Tokyo. This map is for the JR company lines. Other maps can show the places the different lines meet up.
Sadly, so far as I know he's stopped doing live courses.
This seems to be a good overview: https://apnews.com/article/technology-business-storms-only-o...
Wikipedia is a good place to dig deeper, the article has over 60 references. https://en.wikipedia.org/wiki/SS_El_Faro
The NTSB report is over 300 pages, I have not read it: https://www.ntsb.gov/investigations/AccidentReports/Reports/...
There have also been several HN discussions, this has the most votes (477): https://news.ycombinator.com/item?id=16757343
I call bullshit. I want to see the studies. I very much doubt they exist.
One of the only sites my elderly father who can barely use a computer at all can navigate unassisted with any amount of confidence is craigslist. The “friendlier” and more “modern” the site (or app), the greater chance he’ll get lost and confused in it.
Yesterday I upgraded Chrome on Windows and they replaced the folder icons in the bookmarks bar. They changed it about a year ago, but there was a flag which allowed to revert it to the "old" interface. This flag is no longer effective.
Now two folder icons (ridiculous outlines of folders) side by side take up the space of three old yellow folders, and the menu item entries are all bold and super spaced, so I need to scroll a lot.
In every Google product I first set everything to compact mode.
What is it what makes these designers think "let's make this item take up a lot of space"? Don't they think that people also want as much on screen as possible?
To me this is a dark vs. light UI discussion: compact vs. spaced.
Instead, what I found was a reminder of the ‘laws of design’, which are certainly interesting, but which are only tangentially linked to this drift (in my opinion); and to take the most extreme example of sparse interfaces (the Bloomberg Terminal), without really any concrete elements that could help bring a little density back to our user interfaces.
...not to mention what ends the article, a lunar explanation along the lines of ‘Google's very high stock market valuation compared to Yahoo can be explained by the lack of density of its home page interface’ - really? Come on.
Isn't it the other way around? High on the left and low on the right?
EDIT: Based on the alt text both images should be swapped.
> You can form an opinion about the density of these websites simply by looking at an image for a franction of a second.
Those little + make the left graph much more expert user friendly. A chemist isn't looking at the graph to see that there are peaks (they know that, they're chemists), they want to find actual points on the line and the + are enabling a level of eyeballing on the low-density graph that isn't possible on the right.
If I'm a heavy graph user, I want the low density one. The high density one isn't for daily use - it is for appreciating as a one-off or learning about periodicity of elements.
Tufte's minimalist graph is much better if it is meant to tell a story or be shown to an unsophisticated audience. But if someone wants to actually refer to the data on a regular basis some guides are a much better approach that will cut down on stupid mistakes. Eyes aren't very good at scanning over blank space without drifting.
Continuing on from the Google/Yahoo example, I would be interested in the author's analysis of not just the landing page, but also the results pages. The search "value density" on google, bing, youtube, hn, chat.openai.com etc. are quite different these days.
Too bad the vast majority of designers being paid to create UIs today not only won't read it, but wouldn't understand how to even use it. UI design today is utterly full of fail because the people doing it are so far away from the type of thinking in this post that they wouldn't know a well-designed information space if it exploded in their custard.
We've done the trick of "short animations for delays <1sec", and "indeterminate loader for under 10sec", but one thing that's not mention is that the "determinate loader for waits between 10sec and 1min" is a huge marketing opportunity.
This is where you get to show the value of the product by listing "how much work" is getting done. Similar to how travel sites will tell you, while you're waiting for results, how many airlines they're comparing on your behalf.
Of course as someone in computers I know that the computer can do all of the actually work faster than my screen can refresh. Even accounting for network latency, all the work is done in less than 1 second - everything else is either inefficient code, or intentional delays to make the problem seem harder than it really is. Both of them are things that anyone with computer training should object to.
Delaying a 1 sec process to show me 10 sec of ads is one of the many definitions of evil
Even Google flights takes special consideration to show loading indicators here, and I'm sure they've put a lot of resources behind making it fast.
At best it makes me think the site was designed an implemented by incompetent people. Not a great look.
Using load times to convey something while users wait is fair however I would bet shorter loads times always beats however good a filler, unless your business is to trap users in load times to feed them more ads of course, in which case that's a whole other problem.
For example:
> Reticulating splines
> Generating witty dialogue
> Swapping time and space
https://gist.github.com/meain/6440b706a97d2dd71574769517e7ed...
https://www.youtube.com/watch?v=2ee-x6IXWK8
https://www.youtube.com/watch?v=BqgqwO11abk&list=PLmUXemGpYY...
When we ported it to a Win32/GDI program, the client was kept intentionally "dumb" and so resizing the window led to distorted text rendering. This was necessary to keep the 80x25 cells aligned, as the layout was meaningful.
Fast forward to the 2010s and we started offering our app developers a way to implement "more content" when resizing rather than just stretching it. Note also that there are plenty of "form"-style or "calculator"-style apps where there is no more content to show; in those cases resizing just adds more negative space around the UI. Now we are in the 2020s, and most of the apps have adapted to either "more content" or "more negative space" as needed.
There are ~1000 apps on the terminal and they all have their own roadmaps and business deliverables, so UI upkeep cannot always be a priority.
Opinions my own, etc.
EDIT: the above information is still correct, even if the <img> tag in the OP article is distorted.
Question: you response implies that changing the font would break things (maybe I'm reading too much into your reply).
Since monospace fonts are fixed width, wouldn't swapping out 1 monospace font for another monospace font (that's more readable) be seamless?
Not sure I exactly understand this suggestion - but if I do, wouldn't it require a different monospace font for each possible configuration of the window size?
The "normal" window size was set such that each character cell was 9x19 pixels; this makes the window 720x475 (ignoring window borders added by the OS). If the user resizes it to, e.g. 721x475, there is no specific font that can be added to substitute; instead that extra vertical line needs to be inserted somewhere.
And since the 9x19 size doesn't change, shouldn't you be able to substitute any 9x19 monospace font with another equally sized.
(The 9x19 grid doesn't change, which mean the UI wouldn't change, but you could use a monospace font that has more readable letter forms than what's currently in use)
I also won't comment on the aesthetics of this font, but the choice is intentional and part of the branding of the Terminal product.
See https://www.bloomberg.com/company/stories/how-bloomberg-term...
Also see previous discussion at https://news.ycombinator.com/item?id=11717351
Lots of numbers in Bloomberg should really be a clever chart rather than a bunch of numbers. There's a reason why traders have so many screens, often so they can build their own visual equivalent of the pile of numbers e.g. it's nice to have a chart where you left it.
Speaking of numbers in finance: A problem I have using what I'll call "big tech data" tools in finance is that I often need to care very deeply about fractions of a percent whereas these tools are basically made for terabytes of sloppy data for use in a machine learning model.
I like old style Windows 95 GUIs and "portlets"
I prefer dense GUIs. I know Japan has a different design aesthetic than the rest of the world. It's similar.
I liked the rest of the article until this nonsense statement.
In the first case the user has to search for it by clicking into submenus or scrolling in the later he can search by just moving his eyes.
I do think that searching with your eyes is often preferable. It is all around faster, especially if you realize you have been mistaken and need to search again.
I have a wide display for a reason.
Now, depending on what kind of content you deliver, that empty edge space can be filled with something else (like what Wikipedia does) or just be blank if there's nothing useful you can put there.
In fact, arguably the point of a wide display is to create your own columns i.e. putting more windows on the screen, or more panels within a single window in an application like a code editor. What's the point of the real estate if you just put one browser window on there? I only go fullscreen to watch movies or play games, which is somewhat analogous to full-page media spreads in newspapers.
Reminds me of people taking pictures of my presentation slides at conferences where four bullet points with short phrases (say, 50 words in total) turn into a full 12 megapixel photograph.
Similarly, my entire PhD thesis written in LaTeX is a 4MB PDF file, whereas my wife's is a 700MB MS Word monstrosity. Both are mostly text, math, line plots, and tables...
On the other hand, your site better be perfect, even if you aren't a professional web developer. If you are a professional web developer, you probably still won't meet the bar (though you will probably use fancier tools).
It's a funny dichotomy. What is anyone supposed to do?
Wait what??? THAT'S how you explain the differences in how their businesses fared - by the density of their UI?
Well it's a silly statement to make of course, BUT there is some truth behind it. Their search pages are a microcosm of their approaches to business. In 1999, the search page was THE reason Google was able to make traction. And you can still see the influence of that minimal design in their stuff today. It's kinda their thing.
Yahoo! could have copied them. When they felt Google breathing down their neck that would have been the obvious thing to do (or preferably, way before it got that far). But to this very day they are stuck in their old ways! Amazing.
[1]: https://ant.design/
This modern trend of gigantic paddings/whitespace everywhere and abstract flat icons everywhere is horrible to me, and I don't think it even really looks better than the older interfaces they're usually replacing.
[1] https://youtrack.jetbrains.com/issue/IJPL-59808/Tool-windows...
This is not true for some things and people. I would not call those simultaneous, rather bearable. Most users wouldn't mind it.
Input delay though is very noticeable. If keyboard or mouse have 100ms delay the user might consider that their device is doing something heavy.
And people who got used to fast software, e.g. optimized code editors or games, are even harder to please.
I wouldn’t combine them into a single metric because that combined metric is less useful
If you're building an app that people use for work and open every day, you should make it dense. People want to get work done, fast. They don't care about how pretty it is.
Otherwise, you should make it sparse.
Business apps that my customers want, crazy dense. Some of these I look at and I'm "man this is a lot of stuff" but ... then you get used to it and it works.
Four hypotheses why standard users are often the primary target of design:
(1) Power Users are louder but mostly ignored due statistically being not relevant.
(2) During design sessions the teams empathize with a standard user, not the power user. I've seen this pattern over and over again.
(3) Current web technology makes it difficult to build high density UIs that work well.
(4) Mobile UI first. If it works on mobile, we can just use the same UI for the web.
All this leads to another problem: Your standard users never become high power users on your platform. In the end platforms become interchangeable.
If your design is very dense, then a new user will be scared away. If you NEED growth, you can't afford to scare away users. You need to cater to them as much as possible. You need them to tell their friends "yes its very easy to get started with".
It leaves no room for a learning curve.
And this is also something we have come to expect. So anything with a learning curve feels like a massive investment, and we feel dumb whilst using it and not knowing how, because everything else is so dumbed down that it is instantly intuitive. This has made computers and software very popular and widely used. And I am happy for my (grand) parents that they can use these things now.
But it has come at a great cost of productivity for everyone. Because even the designs where we would have invested the learning time to get faster, can't invest that time, because the interface is so simple it becomes limiting.
This is considered good, because if they become power users and get their stuff done faster they'll "engage" less and we can't have that.
Remember that today's career incentives in tech companies means tech is primarily there to drive "engagement" and is not there to solve the user's problem.
Design for the least, compare against average, and don't cap the best, use those agents as immediate beta-user -> quality/dev feedbook loop, dog-fooding user requirements as a fundamental base, and don't let perfection impede progress.
Knowledge workers who "live" in the tool want as much data as possible, as quickly as possible.
But that means not having your intern pump out that single electron design so it’ll never happen
Would the density of these interfaces increase or decrease? An actual power-user would master all the shortcuts and would prefer a zen experience where only the document is visible, with no widgets whatsoever.
The most obvious pitfall is that more UIs = more work. There's the initial development, but it also increases the work every time you need to add something to the UI, and increases the likelihood of bugs. Microsoft could afford this increased cost, but it's not clear if it would be worth it.
Secondly, having multiple distinct UIs makes it difficult for someone to transition from a "casual user" to a "power user". If someone who has only used the "simple" UI switches to the "power" UI, they have to re-learn everything from scratch. Additionally, if there are any features limited to the "power" UI, it's extremely difficult for a "simple" UI user to discover those features even exist.
That doesn't mean that creating multiple UIs isn't ultimately the right solution for MS Office. It might be! But doing that comes with downsides, and I can understand why Microsoft doesn't want to go in that direction.
All I’m suggesting is splitting it on use case rather than on which device I open it
Unfortunately, this frequently results in technical debt because "functional" often means "complies with whatever business logic the current sponsoring org (Finance, HR, Supply Chain/Procurement, Ops, etc) wants that week, and the result of that is that many internal enterprise apps get wholesale rewrites every 4-5 years because it's easier than refactoring.
This set of phenomena is completely foreign to SWEs and PMs who have only ever worked in big tech, on consumer products especially, and the reality is that while some engineering teams in some companies are sometimes doing hard and creative work, the majority of big tech SWEs "moving protobufs" is much easier and less complicated than the kind of crap faced by enterprise IT.
Low density UIs specifically happen when you attempt to present the amount of information a 7" screen can display onto a 27" screen.
Business decided it would be mobile only, web support is 2 years away at least.
There's been a lot of issues because, A, nobody wants to install their previous employeer's spyware app, B, nobody wants to do job applications on a tiny screen, and C, a lot of the step up authentication requires the web browser, but is explicitly disabled for these folks meaning lots of them can't complete login.
It's completely bonkers.
The worst part of it all is the mobile app requires authentication for everything, including resolving tracking links and shortened urls. These people HAVE to go to the webpage to sign up and get the mobile app, but then can never visit the webpage again.
The issue I have is that the mobile app is already so dumbed down that it's pointless and I don't use it. When you have limited screen space you need to decide what to show first. For my bank it's the status of a MasterCard credit card I don't own on the first screen of the mobile app. Next is some pointless overview of my accounts. I say pointless, because all context has been removed, in favor of massive amounts of white space.
Now they want to replicate this interface, but for larger screens. Most of the screen is white space and you have to click on everything to get details, details that would fit perfectly well, even on a small laptop screen. Also nothing is obviously click-able, because why would you add visual clues that just taints their beautiful white space.
For the most part I think that companies would love to ignore desktops and large screens. In some sense they may also be afraid of presenting users with details overviews, either is to make everything seem more friendly, or to discourage usage.
There's an accessibility element here as well. It's not possible for everyone to use a touch screen.
One interesting usage I've seen is especially younger people, who have a debit card which doesn't allow an overdraft. They then keep their account at or around zero and only transfer the amount they need to the card account before every purchase. That usage is supported way better than my attempts at managing saving, paying large bills or keeping track subscriptions and other spending for the past week.
Most people have at least two. One of their incoming paycheck and one for their debit card. Most have more.
I also have a separate savings account, and one for my cottage, both which get scheduled transfers from my "main" account.
When my debit account is low I transfer $100 or so. Allows me to have a sense of spending that cash gave me.
This is possible by abstracting the layout engine (generally to match a web browser) and having UI control running in transpiled JavaScript.
In more practical terms, this means its easier to have one team managing your website and mobile app, reducing the number of specialist roles and minimising feature disparity. Generally it saves on duplicate work as well and makes timelines easier to manage.
For banks specifically there are a bunch of wins with respect to only having to ensure legal compliance of one application; this applies to banking laws - where certain information must be communicated at certain points, and to public accessibility laws. Most of these frameworks have a lot of tooling around language support and accessibility integrations.
So even if these experiences are inferior, it is very much worth it to the providers.
That was the brief moment when the iPhone was the only smartphone to target and was 320x640. Or when the majority computer screens where 1080p at most and the browser would be on more than half the screen estate.
But for your bank for instance, if their UI is optimized for a 6" diagonal window, they'd probably expect you to adjust for that instead of them trying to be perfect on every screen combination that could happen on earth.
That's also how I see many support chat apps' choices of spawning a popup when running on a desktop, to reset any browser size the user was trying to use in the first place (users are still free to do whatever they want with the popup, but it's a good indication of what size it's supposed to be)
How do you reconcile this with the fact that you need almost double the effort for 2 separate designs? I'd say you need at least 2x of Designer work and at least 1.5x of front-end Dev work to achieve this.
Where will additional resources to support this come from?
If anything, having two designs that look and function well is less work than having one design that looks and functions well on two disparate platforms with completely different affordances.
That's what you tell your customers at least :)
And having both is not really 1.5x to 2x the work, in my experience. Maybe more like 25% to 30%. A lot of components and widgets can be reused, the typography and colors can be similar, and certain screens can keep their layout with just small tweaks.
Sure, maybe the initial design takes a bit longer since each screen needs several breakpoints. But that's only a small part of the overall design work anyway. Then on an ongoing basis, your previously established patterns (and components in code) can largely be reused with small tweaks, easily done with modern toolkits like Tailwind or MUI.
I don't think it's that big a deal. Web devs have been doing mobile designs for more than a decade now, and the tools have gotten better and better. Honestly, it's way less wasteful than Agile ceremonies or endless meetings. If you want to stay lean and cut cruft, take it from places that don't directly affect the user, not the one place where they actually use your product all day.
Me in the year 2000 with a 1024x768 17" CRT would be flabbergasted at the amount of wasted/underutilized space that exists today.
Vertical space is precious, and it's why I paid more to have those 1600 pixels. And then Microsoft decides to not only enlarge the taskbar, but to not provide an option to turn it back to normal. I have to resort to hacks to wrangle MS Windows (primarily a Desktop OS the last time I looked) back down to size and reclaim my vertical space.
Serious point: a secondary 1080P display in portrait orientation is actually quite fabulous. Documentation gets parked on the secondary display. Line lengths remain readable, and you get lots of vertical space.
Not Much Ink / Nothing else.https://en.wikipedia.org/wiki/Chartjunk
which relates to a strong preference to use whitespace as a tool for visual organization. If you could separate two areas of the plot by drawing a line with them, Tufte would have you use whitespace instead.
Tufte certainly loves complex charts based on complex data, drawn as economically as possible. He'd also recognize that there's a time for a simple chart based on simple data and that such a chart should be as simple as possible: if you want to make a bar chart with Excel with the last 12 quarters of revenue for your business for instance he'd accept that, but insist that you turn off as much chartjunk as you can.
You point out web vs mobile, but of course as you probably use "web" as a shortcut for "PC", web also applies to mobile. Then on a 27" screen you might have one window full screen or 20 windows overlapping and an actual 7" browser to display the site. And others will be on PC, but with a 13" touch screen. And others on a 10" phone but split in half.
Then some people will increase text size and your design will need to deal with it.
Before you realize it you have dozens of constraints and requirements to think about, start dropping some to satisfy others, and inevitably people will be pissed at the result.
The big problem is catering to different input methods. A mouse has far greater accuracy than a touch display. You can put two links mere pixels apart on a desktop interface and that is fine because a mouse is more than accurate enough. The smallest interactive element a keyboard-and-mouse user can hit is probably about the size of a single period in a font. There are other issues with doing that, I'm trying to highlight the sort of accuracy you have with a mouse. A mobile user could never hit such a small target.
On PC, you can enter text and show the full content of the website at the same time. You can search in the page with a keypress. You can open multiple web pages at the same time. That is not possible on mobile.
As more and more countries have aging population I'd expect these kind of accessibility issues to be more prominent. Sometimes I feel like using modes (vim style) could help, with the user getting different tradeoffs when "reading" and "manipulating", if there was an easy enough way to switch between one mode and the other.
At the end of the day people want magazine layouts, newspaper splash styles, postcard type areas etc. I think even novel writers/editors have a "best viewed at" size and layout in mind that gives a perfect pace to their story.
Html/css gives the tool to switch layouts and potentially adjust to make the best of the area offered, but it will probably always be a compromise in the eyes of the more opiniated designers, and auto-reflowing content would be more of a necessary evil.
Even in our field we have traces of that with our recommended line length, method length, bracket styles etc.
* Size elements relative to the size of the viewport, some things should be smaller on little viewports, some things should be a little bigger, the CSS units for this are still just coming together. Use formulas and percentages, not pixels.
* Think about the correct layout direction for everything on a portrait vs landscape orientation, should those items be in a row or a column? This often requires only one CSS property to change
* Hide information density behind an accordion or modal if you need to on small viewports, don't just remove the functionality for all versions of the application. When people strip away functionality, I find design is rarely the true justification -- more commonly they no longer want to pay the maintenance cost of the feature and are using a redesign as an excuse.
Absolutely. We finally just got container queries! Responsive design using screen width was always a sham. A stop gap to all the work the browser devs and standards bodies had to do to figure out what worked.
Pretty much every single responsive design I ever worked had either the mobile or desktop version as an afterthought. The mobile was just a "scaled down" version that was done last-minute, or vice versa.
Is there a sidebar? Hamburger menu it is. Is there a list? Well just put every row on top of each other.
Sure, this makes things easier for the both the designer and the developers, but putting just a bit more effort in the "secondary" version would be enough to make both versions better.
We now exactly what works. UI didn't suddenly appear in 2024 out of nowhere.
What you need are actual tools to build UIs, and not a hodge-podge of hacks thrown in together with no long-term planning, and aimed at displaying only text and a couple of images.
Just giving the ability to get an element's size without causing a full-page re-flow and re-layout would give much more power to UIs than any number of relative sizes and container queries.
Well, there are a few standalone examples here or there, but "flexbox is enough" is verifiably false.
Here's an actual app and not the anemic crap that people call "apps" on the web: https://x.com/dmitriid/status/1424052288205856773
Yes, yes it would. That is why I wrote this: "Just giving the ability to get an element's size without causing a full-page re-flow and re-layout would give much more power to UIs than any number of relative sizes and container queries."
Because on the web you can barely make custom widgets and it's almost impossible to do custom layouts.
Unless, of course, you use the equivalent of early 2000s Windows GDI in the form of Canvas, or a limited subset of OpenGL in the form of WebGL etc. And yes, people end up resorting to that. Look at what Figma wrote: https://www.figma.com/blog/building-a-professional-design-to... "Pulling this off was really hard; we’ve basically ended up building a browser inside a browser"
To repeat my statement: UI didn't suddenly appear in 2024 out of nowhere. We know what an app UI looks like. And the anemic "flexbox is good for most apps" is verifiable bullshit. This is the constructive criticism.
Edit. Also the sibling comment: https://news.ycombinator.com/item?id=40440939
Just because someone experiences a less than ideal experience of RWD in one or more places doesn't mean to group all RWD UI experiences together as bad.
It's more practical spend less time developing and testing one global component than more than one.
Could there be improvements? Absolutely, and that's where we get to have a voice.
Imagine a current era designer trying to design Photoshop without just copying an existing system. It would be useless.
Designing for skill curve evolution is rare, but Webflow is another product that has achieved it.
I think this is the most important line: when taken with the axiom “design for your lowest common denominator” and the general advice given to lawyers in a jury trial “speak, explain at a 3rd grade level”
The upper limit for information density has lowered significantly for the vast majority of general users, so unless you can fix that we’re not gonna get our high density UIs back. At least not for general purpose widely distributed applications.
Customization is also useful for power users, but even one axis of scaling up information density can be super useful for "easing in" to an unfamiliar tool.
Hint: You can also force reader mode by pressing CMD+Shift+R