Juice
garden.bradwoods.io
garden.bradwoods.io
That's what kinda gets me about UX/UI design articles - often times I think it's good advice, but then the examples on the page just seem obviously bad to me. It reminded me of Jakob Nielsen's website from about a decade or so ago. Here was one of the most famous UX researchers in the world, and I often thought he gave great advice, but his personal website was just god-awful ugly. And not ugly in a "lacking ornamentations but providing great usability" way (I'd probably put HN's design in that bucket), but just in a "this site is really ugly" way.
Just give me a thing that looks like an actual switch that moves left/right or up/down and turns a bright color when it's ON (color can vary for cultural representation of ON or whatever) and becomes dark grey and clearly OFF when it's untoggled.
The sounds is also too much. I don't want sound from every button I click. The sound from the mouse or touchpad is already enough.
This is a fair point, but I got the impression that the Delete button in question wasn't meant to say "here's how to make a Delete button better", but rather "here's what I'm talking about when I use this term that might be unfamiliar". The elevator music on the "max juice" setting was pretty clearly tongue-in-cheek.
Having examples that start at 0% usage of the concept and go all the way to 200% usage makes it more clear what it actually is.
Had some doubts if it would go well with, you know, your good old sysadmin types, but it did! A bit of embellishment that doesn't deviate too far from the native look and feel goes a long way. As per some guy here on HN - "delight your users" and all that.
Examples of what I'm referring to - https://bvckup2.com/wip/r82-preferences.gif, https://bvckup2.com/wip/r82-backup-settings.gif, https://bvckup2.com/wip/r82-rabbit-hole.gif, https://bvckup2.com/wip/r82-backup-verification-dialog-r2.gi...
>https://bvckup2.com/wip/r82-backup-settings.gif
>https://bvckup2.com/wip/r82-backup-verification-dialog-r2.gi...
UI elements jumping and moving around like that are absolute hell for usability. It denies muscle memory, demands eye tracking (and good eyesight and situational awareness in general), and keeps users on edge because things keep changing.
>https://bvckup2.com/wip/r82-rabbit-hole.gif
I'm failing to see the point of that dropdown (well, dropup) menu. The space is there from the beginning, but as unused and wasted whitespace. Why the unnecessary button and associated UI movements?
Also, why is that button called pi?
Seriously though, feel free to offer your version of the same that would cleanly separate secondary options and sub-options so not to overwhelm the user with a laundry list of settings.
> I'm failing to see the point of that dropdown (well, dropup) menu.
The point of all that "hell" is the layering and progressive refinement of the UI.
For what it's worth, I also despise this sort of needless UI fluff for essentially the same reason they do; it reduces usability.
But that's just like, my opinion, man.
Not that I encourage the tone in this thread, but... There is another perspective to it.
The best UIs are those that keep movements and other dynamic facets to the absolute minimum. A boring UI is a good UI.
Bit of a broad brush here. When the "next ->" button moves around of its own accord (in response to changing text content, say) and you need to click it to page through 10 screens of text, that's for sure bad. When elements move in response to a toggle the user clicked when they are nowhere close to the elements that move that's really not a big deal in my opinion. This is especially not-bad when the toggle will move everything back without the user moving their cursor.
Why couldn't the readme open in a separate window? It's completely different contextual information to the window they were working in, and in fact most software do produce a new window when opening help documentation so users aren't confused. Different windows for different contexts, this has been standard design for windowed environments since forever.
[1]: https://bvckup2.com/wip/r82-backup-verification-dialog-r2.gi...
--------------------------
Now consider the "Backup settings" window[2][3]: Why are the various dropdowns a button you click on which proceeds to resize and move the entire window?
Standard design for dropdowns have always been dropdown menus. Almost everyone knows how to use dropdown menus, both Windows and other programs use them. This is inconsistent design language for the environment the software operates in, and this is confusing for users.
What's more, there is no scroll bar to indicate there is information overflow in the window[2]. Can you tell there is more information above the "More options..." section in window[3]? I know I can't.
We need to take a page from Apple's playbook on this: Consistent design language is good design language. In this case, follow the design language of Win32 and Windows in general. Yes, this isn't as easy as it sounds since Microsoft themselves violate the rule of a consistent design language, but that's not an excuse for others to also violate it.
Not presenting a scroll bar to indicate information overflow is also inexcusable. A user interface exists to inform and guide a user, hiding or even lying to the user defeats the very purpose of a user interface. On that note, the window is being resized, why then isn't it being resized to show all of its contents? At least the resizing would then have a legitimate reason.
[2]: https://bvckup2.com/wip/r82-backup-settings.gif
[3]: https://bvckup2.com/wip/r82-rabbit-hole.gif
--------------------------
Now consider the "Preferences" window[4]: Why are the help texts for this window hidden behind "?" when the other windows either don't have them [1] or show the help text outright[2]?
Why is the "More..." text a hyperlink and the "Less..." button a button when they are the same interface element? This criticism also applies to the "Backup verification" window which exhibits the same problem.
This is all inconsistent design language within the software itself, let alone when compared with its operating environment. This is bad, again: Consistent design language is good design language.
That's not how one starts a "constructive conversation".
But, yeah, that's just like my opinion too, man.
I neither made "generic dismissive remarks" nor assumed you're "an idiot", but hey: If you want me to flame you to high heaven I can certainly oblige.
If you can't take constructive criticism, publishing stuff is probably not your alley.
I know far too many people (read: common users) who quickly lose track of what's going on if their program keeps changing things. Hell, I find most people still can't keep track of tabs in a web browser (because each tab overwrites most of the window), let alone your stuff.
>feel free to offer your version of the same that would cleanly separate secondary options and sub-options so not to overwhelm the user with a laundry list of settings.
A singular, global button or toggle somewhere that permanently keeps the UI in either Simple or Advanced modes? Almost nobody needs to flick between the two back and forth. Common users only care for what will get their work done, power users always want (and can deal with) all the details.
>The point of all that "hell" is the layering and progressive refinement of the UI.
What you call "layering and progressive refinement" I call an unnecessary click and movement of UI elements that don't have to exist. The former is a waste of time, and the latter is a waste of screen real estate.
On the other hand, if we're talking about parts of the UI which will see regular use then I agree with the other comments about usability reduction, while also acknowledging that there are other opinions out there. The best approach with these sorts of controversial features (i.e. those which some users love and others hate) is to offer a toggle in the options with a default aimed at the non-power user.
Meh. The animations juice, maybe. The slightly non-standard UI, though, is probably worth it if it avoids the nested-modal-dialog hell the stock Windows UI is prone to having. Installed mouse and audio drivers on NT 4 recently and, well, I’m glad I forgot how bad it was. Making settings non-awful is important even if you only visit them once.
What’s the upside for the user of a nested sequence of modal dialogs anyway? Though I understand the technical convenience given how limited the bare Win32 toolkit is. And there definitely is a downside for the user: I can’t say how many times I’ve seen relatively sophisticated users fruitlessly smash the OK button on the wrong (not top-level) dialog, because they all look the same. (This is perhaps salvageable by more prominently shading disabled windows—something Win95 admittedly could not afford on contemporary hardware—instead of blinking the title bar, but is it worth it?)
That's it. Allowing changing things in place is exactly one of the goals.
The pi permits access to a commonly used computer security system called "Gatekeeper" sold by Gregg Microsystems, a software company led by CEO Jeff Gregg.
Gregg is connected to with the "Praetorians", a notorious group of cyberterrorists linked to recent computer failures around the country.
Once the Praetorians sabotage an organization's computer system, Gregg sells Gatekeeper to it and gains unlimited access through the backdoor.
Most transitions are trivial to implement - you have a state A of your dialog that looks like this and a start B with your target look/layout - so the framework figures out what needs to move where, what needs to be hidden/shown and then animates that in a quick loop.
The complicated part is the fading of controls. There's no fine-grained control over when Windows repaints controls exactly, so unpainted parts of the background showing through is a nasty issue. Requires basically per-Windows version voodoo, because what works for W8, doesn't work for W10 and vice versa.
> https://bvckup2.com/wip/r82-rabbit-hole.gif
This one does confuse me though. Why not have the sidebar display permanently instead of hiding it within a drop-down? There already appears to be white space and a column header ("More options...") dedicated to it already. Also, why is the button label pi? It's all just really confusing and feels unintuitive. I imagine some thought went into it though, so I'm curious as to the reasoning behind it.
Other than that one particular case, I like what you've done with the rest.
This design didn't actually make it into the production release, it was replaced with https://bvckup2.com/wip/r82-rabbit-hole-x.gif.
Pi is a reference to a (really corny) "hacker" movie from the 90s called The Net. Same thing as the Pi at the bottom right of every page on Reddit.
> Same thing as the Pi at the bottom right of every page on Reddit
I'm always on Reddit and never noticed the Pi. Thanks for the trivia as well!
This seems pointless to me. The "More…" button adds three options and some help buttons. Wouldn’t it be less confusing to just have the options on the screen at all times?
> https://bvckup2.com/wip/r82-backup-settings.gif
Wouldn’t it be easier (and faster) to just show a modal dialog box? Or instead of shuffling items around, expand the window to fit the options?
The majority of your users are likely accessing your site on their mobile device. We crossed the 50% threshold for mobile views a long, long time ago. Desktop web browsing is -- maybe not surprisingly -- becoming a generational gap. For people who grew up entertained by their parents phones and tablets, it's rare for them to casually browse on their laptop (if they even have one).
The entire demonstration falls flat on mobile. There are no hover states on mobile. The feedback animations don't work on mobile. Holding the button down causes weird text highlighting issues. Even just the button itself is too small on a phone. It's a real demonstration of "let me just graft on the mobile layout later" after going through the desktop song and dance, which is missing a large chunk of your userbase.
The other critique I would have is around "novel" UX on web. If you're making someone learn a new way to hold down a delete button, that's a cognitive load on your user that in reality only serves to drive your users away from your product. How many of us flubbed the hold-to-delete interaction the first time, because we expected a button on a webpage to behave like a button on a webpage? I'd venture almost 100% of us. Some of us picked up on the slider that indicated that we had to keep holding it down to make the button work, but a lot of us probably didn't, and certainly a good chunk of your users will abandon their task because they can't figure out that interaction.
The author is talking about the gaming paradigm; this is where you get those random, wacky "tap twice to double jump" weird modal dialogs in games, because the complexity is so high and a user literally has to learn how to control their character. Doing this on the web is a guaranteed ticket to a high abandonment rate.
Definitely add "juice" to your pages, but don't do it at the price of _predictability_. Let your website behave like a website. Your users will thank you.
Another classic talk on the same topic comes from Jan Willem Nijman in 2013, The art of screenshake: https://www.youtube.com/watch?v=AJdEqssNZ-U
It's nice to see these terms being adopted by the wider software development industry, though I doubt we'll be seeing much screenshake on websites or utility apps any time soon.
I had never really paid attention to or understood tweening/lerping before watching their video, or that it's so tweakable, and it made the idea and uses slot perfectly into my mind.
[1] https://www.andy.works/words/the-most-satisfying-checkbox
One thing is doesn't mention however, is when do you want a "juiced" emotional "soulful" interaction with your computer, and when you don't.
I think it's telling that most of the examples are coming from video games, where layered emotional experiences in a different world are the whole point.
In contrast, when I'm trying to be productive with a spreadsheet or a video editor or sending an email, juice/emotion/soul is the last thing I need. I'm focusing on my task and I want my tools to get out of the way, not draw emotional attention to themselves. Which is why flat design, the ultimate "anti-juice", has been so successful.
I think it’s important to respect that not every person using a software wants to be doing so, and we should minimize the literal amount of time and energy it takes to use.
Such apps can still be beautiful, of course (a job well done ought to look it) but with a quiet beauty that acknowledges their place in the hierarchy of importance to the user.
This is why sometimes, for me, the juiciest feeling an app can give is just doing the thing I wanted instantly. The “pop” of new UI into place within milliseconds is very satisfying, especially if the layout doesn’t shift as a result.
I think you could even look at syntax highlighting, matching-paren-highlighting, and intellisense/autocomplete as a sort of juice - they're affordances that indicate that what you're doing is "good", and the app is "understanding you".
Even more than a spectrum (where "pro apps" need "less juice"), it seems like there's just different juice for different apps. For example, it seems like some kind of better-designed juice could have saved Citibank a lot of money: https://arstechnica.com/tech-policy/2021/02/citibank-just-go...
Also they realised at some point in development that mario just wasn't fun to control so they put a lot of effort into that. I feel games today seem to put a lot of effort into content instead.
My favourite games are all ones with deep satisfying controls that require practice to get good at, wave race 64, 1080 snowboarding, Tony hawk's 2, Goldeneye eye. Or maybe I'm just old!
I've an everdrive and an n64, but it looks too awful on a modern even with an ossc upscaler. Well it's not an upscaler really, but a line doubler, the results are awful on n64 (and ps1). I even rgb modded my n64 to use the ossc. Waste of money!
Going back to Mario 64 now does feel quite primitive and can feel frustrating at times.
Haha, yes, played so much multiplayer and after playing modern games you go back to golden eye and the controls are wacky, the speed is slow, can't jump or fall off of ledges ... it's just a different era.
If you're stuck in the office, have a go at the pico-8 version of Celeste at https://www.lexaloffle.com/bbs/?pid=11722
The story I recall is that before they did anything else they worked on how Mario felt to control, having him jump around in an empty room until that alone was fun to play with.
I think my favorite bit of juice is iOS’s rotation animations. Particularly when they have a bit of extra fun with it like you see in the calculator.
For example with the button cover and click animations are probably a good idea in most contexts. However the sounds would probably be unwelcome on a site that otherwise didn't make sound. However a sound may be a great addition in a video game that already has lots of sound.
Win or lose, you’ve made keeping score such a playful delight for us all these years. Thank you!
When I got to this bit "I work on multi-team task management software", it really made me think though. So much thoughtful design talent exists, and we're all just making B2B SaaS Productivity Software. Maybe I'm projecting my own insecurities though.
One day we’ll have Star Trek utopia where we are all free to pursue our art.
At least until then we can still blog about hobbies.
Keeping with comestibles, maybe 'spice/spices', 'condiments', 'flavor', 'toppings', 'sauce', etc?
I understand the idea is to 'juice up' the UI, but again, IMHO, it's not the right word for non-essential-but-nice additional behaviors. And I believe the original 'slang' usage comes from 'juicing' your engine, your portfolio, etc, ie squeezing extra performance out of it, which is almost the opposite meaning to here.
I don’t know where the term originated, but I’ve always thought of it as having to do with fruit. An apple is good, a juicy apple is better. The two may have the exact same flavor, but the juiciness improves experience of eating the apple.
I think it's nice to add some juice to website/apps but they are not games and I think should be kept at a minimum. Know your audience. I don't want any of my finance related apps full of unnecessary juice, but that doesn't mean I don't want feedback for any processes I'm waiting for. Sometimes apps try to be cool/edgy with fancy transitions and those things look cool the first few times I see it but get annoying after that because I'm having to wait for it every time. Anyways I am rambling but you get the gist, don't overuse juice and the level of juice depends on your audience and the nature of your product.
That 'project management setup' animation is a good example. That is kind slick - definitely useful, and I've found myself coming up with things like that over time. It's not trivial, and takes some time. Then... "but it doesn't work on mobile!". You end up needing to build an entirely different "experience" for mobile users. Or... say "no support for mobile" (and possibly disable it in some sense?) Or let people live with a really bad shrunk down experience.
I know it's all about setting expectations and such, but it's still annoying. The types of 'juice' you'd introduce are going to be somewhat device and screen-size dependent.
I feel like really high-quality software systems have this same feel, they allow a developer to dive in and splash around and get tons of salient feedback.
- Unnecessary & inaccessible interactivity (hold button down)
- Hiding critical information within animations
- Extra sounds competing with screen readers
Cute page but wholly impractical for building accessible web products.
It's implemented in CSS+JS because it's a web page.
Would you ever refer to the user of a CRUD app as a player?
> It originated in games but can be used in other types of software.
'Juice' is not universally good. In the context of a game there is utility, but even then the audio etc becomes grating. People tend to start turning off the sound because it gets so bad.
Somewhere around the first couple levels in that slider is I think I would fall - most people would agree click acknowledgement is good, but I found the animation actively unuseful, distracting, agravating.
I often wish that completing iOS/MacOS reminders had more “juice”, especially compared to dismissing them.
The "burstiness" of juice should contrast with the boringness of everything else. A delete button for e.g. is a very sterile interaction vs the mario coin so probably doesn't need maximum juice.
I wonder if he works at Atlassian. The screenshot looks a lot like Jira.
This could be a good explanation for why super smash bros melee is still popular 20 years later. Moving in the game is fun like playing with a toy. Great read!
Eew dude what is going on at your job?
I only watched The Expanse and became aware of GoT later I think. So I had assumed it was the order in which they were produced too.