Number field alignment #37761
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
11 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#37761
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The issue
Most text items in Blender are left-aligned. This is good for vertical eye scanning, because you can quickly scan through a vertical list of items.
However, number fields are centre-aligned. This means that both the number values and text items become difficult to scan through, and also that it's hard to visually separate the values from the text.
The yellow dotted lines represent the left and right edges of the text and values. Notice how they are not aligned:
Additionally, the centre-alignment is problematic when comparing number values, because the decimal point is not aligned.
Proposed solution: Use left-right alignment for text and values.
In the example below, notice how the text and values are are easier to read.
Also notice how the Diffuse, Glossy and Transmission values are easy to compare even though they have varied integer sizes - '100', '4' and '80' are correctly aligned.
This is a closeup of the Bounces number fields for illustration:
In summary
Changed status to: 'Open'
Added subscriber: @billrey
Added subscriber: @ThomasDinges
Sounds reasonable, I agree with the suggestion.
Added subscriber: @JoshuaLeung
Agreed. This sounds like a reasonable solution. The main barrier here currently is probably technical/implementational I assume.
Added subscriber: @ideasman42
Heres a quick hack to test the functionality.
@ideasman42:
Wow, you're fast. It seems to work very well - it even puts preference on the values, meaning if there's not enough space to display the entire word+value, the word is nicely truncated before the value. Nice!
I took some before/after screenshots to see how it works in various places:
Before:
After:
It's much easier to read the words and values now
Getting pedantic:
Perhaps the tiniest bit of padding is needed on either side so that the text & values don't run into the arrows?
Also, the values are left aligned when there's no title inside the number value (e.g. Rougness in Cycles materials, or % slider in Render properties)
These are minor issues though. Nicely done.
Added subscribers: @brecht, @JonathanWilliamson
I think this is a great idea.
Just tested Campbells patch and I agree with William here.
Apart from that it's indeed a nice improvement. Particle buttons suddenly look so "clean" and organised....I never thought that such a change would increase the readability that much.
This is a great improvement. The readability improvement is shocking.
Added subscriber: @xrg
Uploaded patch D93 (not a test this time)
Silly error where numbers that have no label were left aligned is fixed since previous patch too.
Screenshot:
http://www.graphicall.org/ftp/ideasman42/text_align.png
(btw any docs on how to embed images? - {F123} supposed to do this but how/where to upload the file?)
(btw2 - can I delete the attached patches?)
Made some unrelated improvements
widget_draw_text
so the patch is less of a kludge.See D93 for patch.
Noticed a slight drawback/confusion - That the text shows on the right but edits on the left, with wide layouts its a little odd.
Changed status from 'Open' to: 'Resolved'
Committed to master, closing.
Added subscriber: @BassamKurdali
noticed some potential drawbacks to this having tried it:
It really works well in consistent 2 column layouts of numeric buttons. The only examples in this thread are from that type. On IRC jensverwiebe brings up two issues:
the lux render panel looks worse in the new layout (mix of vertical layouts and really wide buttons)
I think 1 and 3 can be solved with some layout guidelines for making panels, and perhaps 2 can be solved by:
Added subscriber: @jensverwiebe
I would like to add that when shrinking the layout, the "label" should be preserved not as it is now the value.
Seeing just the values says nothing, but seeing still the label makes me know what i will edit when clicking on
the numberfield.
As bassam said i felt imediately that single row layout seperates label and value way to much as is. In the examples
only dual row layout was judged, which shows the disruption less prominent.
All in all there are a lot of places where noncentered value is just ugly and looks just misaligned ( for example if no label is used 'inside'), sorry to say this.
Here just an example from Lux addon: http://www.jensverwiebe.de/Other/blender_gui_new.jpg
Jens
As I see it, there are a number of ways to lay out data.
The issue with the Lux panels is that it is done as a single-column layout, while the rest of the Properties area is designed for two columns.
The advantage of multi-collumn design is that you can get a lot of data on the screen at the same time.
However, the issues with multi-column layouts is
Notice how Cycles Materials already uses a single column for its data. The Properties editor can be made much slimmer when viewing the Cycles materials, and it still works fine.
This is much cleaner than the confusing mess of the BI Materials with all the many check marks, number fields and sliders spread across the two columns.
In the long run I think we could make some nicer, cleaner layouts with a single column. This way we could have a single, unified way to lay out all the data in Blender, rather than the current mess of multiple layout styles.
I think we can change the alignment for buttons in headers to use the old style in some or all cases.
For the properties editor, the Luxrender panel already looked quite confusing with labels being a mix of left and center aligned as you scan along the material properties. In some ways it's more consistent now as the labels are now all on the left. But neither looks particularly good to me, it will look better if the label is moved out of the button similar to Cycles panels.
@brecht: Agreed, that'd be nicer.
In fact, here's a mock of how that might look:
Quite a bit easier to read and understand this way.
@BassamKurdali:
I think for controls such as the Font Size in Stamp, this is a good candidate for putting the controls in a single column, with the titles on the left and the values on the right, like so:
Again, like the Cycles materials
For the Lux example:
You miss some points here:
Asymmetry is a float_vector, so no easy to do in seperate lines.
Here also shows up an difference in handling: a float gets 'name': 'name' inside the field,
a float_vector gets an outside label.
This all should be carefully tweaked + a bit more space between arrows and values/names.
I will wait for the result coming out of gui refresh. Not in the mood again running after blender changes
for our addon, as we now have to do every 3 months it seems.
BTW: i saw a mockup with tabs vertical !!! I tested a lot with this earlier in Lux gui and just can say: avoid this, make them horizontal !
Jens
@billrey and @brecht
Nice Ideas! will clean up a lot of layout issues
@jensverweibe I too don't like vertical text much but I struggle to see another way that could function and not be too bulky.
@jensverwiebe:
Ok, the Asymmetry values I see are actually RGB, not XYZ. Here's an update:
This is a good example of why we probably need some better way to divide panels into sections, so that sections such as IOR, Absorption and Scattering can better be separated. In the current UI they all round together and it's difficult to see that the IOR presets refers to IOR and not other settings.
On a positive note, already in Lux, things do get a quite nice single column design when using node tree materials. If/when Lux goes that route completely, the layout issue is more or less already solved.
Here is a screenshot from Lux using node materials. It's not too bad:
Cheers
William
Added subscriber: @AditiaA.Pratama
Added subscriber: @macouno-3
Hmm ok... only just now saw this change...
I completely understand how scanning vertically is easier if things align... but
If you have the definition separate from the value, it's a bit messy to have it inside the input... but... having it outside effectively makes the input smaller. Having a large input makes it easier to click/change the value.
In a way, I have to say that perhaps I really like having the definition/name right next to the value. That makes it easy to see that relationship, which may be more important than the relationship between inputs below each other... So... if the name is outside the numeric input... what would it look like with the number aligning on the left?
Something I would definitely do... if the name is outside the input, have it light up slightly on hover, and make it clickable to compensate for the input becoming smaller?
Nice work guys... and what a hard thing to find a nice solution to! ;)
PS: I think my main issue with this initially is that I really like having the definition next to the value (but maybe I'm just old and not used to it yet)
@macouno-3: Nicely summarised.
Here are the four variations that I can think of for this:
Or...
Regarding "outside" labeling mockup, i'am for '3.
This would be consequently in line also with existing float_vector presentation.
Jens
@macouno-3: IMO that's a bit strange with left-to right languages. Titles with colons usually refer to what'd about to come, what's to the right on the title.
When having a single column of data, such as the Cycles material settings, I think it's cleanest and clearest to have the titles all on the left and the values all to the right. It's very simple this way, easy to read and understand. Trouble is with the multi-column layouts, when you have text outside the control that can get a bit confusing, because values may be surrounded with titles, like so:
What does 'Mysterious Boats' refer to? It becomes a but muddy in this case. That's why I think it's related to the way we design layouts in general.
When using a single column layout, it becomes clear:
The nice thing about the right-aligned titles is that the titles are close to the values and you can do things like type 'Resolution X' and then type 'Y' underneath and have it still be clear. 'Resolution' is then both a title and a category label at the same time.