Do you have any example of a UI Widget type create...
# thinking-together
m
Do you have any example of a UI Widget type created in the last 20 years? (like slider, select, radio button, checkbox, things you would have on a UI builder palette)
i
How about the combo move-rotate-scale widgets you get in modern 3D apps? First time I saw one was in 3DS Max R3, if memory serves, which would have been roughly 20 years ago.
Also, the type-ahead search + multi select box. I don't remember seeing any of those before the early 00s.
m
the command palette like in superhuman may be in the type-ahead search family too
i
The floating "create" button in the bottom right of Google's products probably also counts, even though I hate it and want to refuse to acknowledge that it exists.
🤣 2
🍰 1
w
The button that only appears when you hover over it? (I guess those have been around in menus for a lot longer.)
j
The command palette is a relatively old pattern, at least dating the late 80s.
Hm. There are some I still don't see on UI builders that were developed in the 90s, like pie menus (radial menus in general). There have been some new things in touch interfaces, but they are usually a bit different in character, like: https://www.schultzschultz.com/touchtype.html
c
Pinch zoom and fling scroll aren't really "widgets" but they are major developments in the last 20yrs
🤔 1
Fling scroll I find interesting because it introduces a new phenomenon (inertia/momentum) into the "physics" of the UI. Old school scrolling now feels quite unnatural and unintuitive to me, although I still don't expect windows themselves to be flingable
i
Likewise, the pull-to-refresh on list views. (The list view would be the UI widget, but the behaviour of it has changed. Not sure how you want to account for that, because the same probably applies to all the prototypical UI elements.)
👍 2
m
to clarify, I think there has been a lot of innovation in the mobile space in the last 20 years, in terms of responsive UIs, touch, animations and so on, I'm looking for new "controls", new visual ways to display and manipulate data. My questions comes from a feeling in different areas where I'm not sure if there's stagnation or there's an upper bound in the number of things that can be created in the space (similarly: new visualization/chart types, data manipulation primitives, "primitive" data types etc)
Someone asked the other day on twitter "what's the new cool scripting/dynamically typed language" and it was either wrong responses or crickets. In that case, is some mix of lisp and smalltalk a local or global maxima?
i
Part of it might also be the mental "snap to grid" effect, for lack of a better term, where the existence of a "good enough" UI widget means most people won't bother to create something new and different that might be an even better fit for a particular situation. For instance, if you want to turn something off and on, you could use: • An "On" button that turns into an "Off" button, like a toggle or checkbox • Two separate buttons (perhaps segmented), like a radio selector, or a select / pulldown with 2 options • A button that you need to press and hold for "On" which reverts to "Off" when released, or the same but on hover rather than on press • A box / region that you drag some other object into for "On", and drag it back out for "Off" • A button that will "latch" into the "On" state when clicked, which requires a complicated procedure of clicking many other buttons to release the latch and turn it off The first three examples are fairly simple / obvious, and are thus ubiquitous. There are probably other simple / obvious approaches, but probably not many, because the interaction here is really, really simple — it's a binary off / on. Looking at the real world, it's hard to find examples of a binary off / on control that aren't basically the same as the top 3 bullets. And when they are different, it's usually through some additional elaboration that serves some other purpose than "make it simple / obvious to turn the thing off / on", much like the last 2 bullets.
1D continuous inputs are similar, but allow a fair bit more customization: • Min/max limits (a slider), or infinite (a knob)? • Detents • Nonlinear relationship between input and output • Return-to-initial-position when released There are a lot more things about these that can be customized, especially when you get into the physical world. For instance, a slider that resists motion in one direction but not the other (which recently went mainstream in a software context with the adaptive triggers on the PS5 controller).
In software, you can add all sorts of elaborations, but any elaboration needs to have some justifiable reason to exist, and that reason needs to be communicated to the user somehow (either out-of-band, or perhaps implicitly through the interaction itself). This is a challenge. So that "snap to grid" effect kicks in, and people go with the simple / obvious standards. These standards lack texture, but at least they don't impose a new learning curve, they don't reveal new accessibility problems, etc.
Unrelated to the above, here's another aspect: we tend to see new UI widgets when there's a new UI paradigm. The 2D GUI is pretty well-explored at this point. 3D GUIs are almost as old, and not as fully explored, but we still see an increasing degree of stability there (ie: look at in-world GUI elements in games and game engines, like beacons/markers, paths, brushes. Also look at the common in-viewport GUI elements in 3D apps, like surface normals, TRS-manipulators, the way verts/edges/faces are depicted, etc.) We haven't explored VR nearly enough to reach consensus. Likewise, voice interfaces. Likewise, tangible dynamic media (Dynamicland, Reactable, etc). So if these new paradigms continue to grow and expand in usage, we'll probably eventually see a standard set of interface conventions emerge for them.
🍰 3
s
I really like the time picker in Android (eg for setting an alarm). It's fairly similar to a radial/pie menu though.