Checkboxes alignment tweaks #65965

Closed
opened 2019-06-20 18:47:05 +02:00 by William Reynish · 35 comments

Alignment

For the Properties in Blender 2.8, we moved to a more simple and structured approach for the lists of buttons and controls, which aim to be aligned around a center-line.

However, checkmark toggles currently do not follow this alignment principle:

Screenshot 2019-06-20 at 18.26.44.png

There are many cases where it would make sense to align the checkboxes along this center line.

Take this before & after example from the Sequencer :

{F7370312, size=full}

The 'Cache' text on the left side represents a heading, and is used as a visual anchor to guide the eye down the list.

Here are some more before/after examples:

Screenshot 2019-06-20 at 18.35.26.png

Screenshot 2019-06-20 at 18.36.18.png

Screenshot 2019-06-20 at 18.38.45.png

Screenshot 2019-06-20 at 22.12.56.png

Screenshot 2019-06-21 at 11.59.26.png

Screenshot 2019-06-26 at 21.53.49.png

Screenshot 2019-06-21 at 16.33.50.png

Screenshot 2019-06-26 at 21.51.52.png

Screenshot 2019-06-26 at 21.52.14.png

Screenshot 2019-06-27 at 20.19.40.png

Screenshot 2019-08-05 at 01.06.23.png

Checkmark + value

In addition, there are many cases where we have configurations where we have a checkmark followed by a value. Currently, we tend to use sub-panels to show this nested relationship:

Screenshot 2019-06-20 at 18.41.25.png
It works, and communicates the hierarchy, but can often be simplified like so:
{F7370734, size=full}

Currently there's no good way to do this while ensuring proper alignment with other items. A built-in way to do the above would help in many cases where all we need is a simple checkbox+value arrangement.

Other examples:

Screenshot 2019-06-21 at 12.50.46.png

Screenshot_2019-06-21_at_16.33.50.png

Screenshot 2019-06-27 at 20.19.40.png

Implications

Different alignments have different tradeoffs. The center-line alignment here has the advantage that it's more aligned with other properties, and is easier to scan. It also adds overall more consistency because the checkbox is then to the left of the text.

The downside is that there can be some scenarios where there is less space for the text strings, although it is mitigated by adding header text on the left side, as with the above examples.

This may prompt us to want to change the split %. Currently it's 50/50 but could become 40/60 for eg.

## Alignment For the Properties in Blender 2.8, we moved to a more simple and structured approach for the lists of buttons and controls, which aim to be aligned around a center-line. However, checkmark toggles currently do not follow this alignment principle: ![Screenshot 2019-06-20 at 18.26.44.png](https://archive.blender.org/developer/F7370098/Screenshot_2019-06-20_at_18.26.44.png) There are many cases where it would make sense to align the checkboxes along this center line. Take this before & after example from the Sequencer : {[F7370312](https://archive.blender.org/developer/F7370312/Screenshot_2019-06-20_at_18.30.17.png), size=full} The 'Cache' text on the left side represents a heading, and is used as a visual anchor to guide the eye down the list. Here are some more before/after examples: ![Screenshot 2019-06-20 at 18.35.26.png](https://archive.blender.org/developer/F7370571/Screenshot_2019-06-20_at_18.35.26.png) ![Screenshot 2019-06-20 at 18.36.18.png](https://archive.blender.org/developer/F7370611/Screenshot_2019-06-20_at_18.36.18.png) ![Screenshot 2019-06-20 at 18.38.45.png](https://archive.blender.org/developer/F7370651/Screenshot_2019-06-20_at_18.38.45.png) ![Screenshot 2019-06-20 at 22.12.56.png](https://archive.blender.org/developer/F7391386/Screenshot_2019-06-20_at_22.12.56.png) ![Screenshot 2019-06-21 at 11.59.26.png](https://archive.blender.org/developer/F7429879/Screenshot_2019-06-21_at_11.59.26.png) ![Screenshot 2019-06-26 at 21.53.49.png](https://archive.blender.org/developer/F7550567/Screenshot_2019-06-26_at_21.53.49.png) ![Screenshot 2019-06-21 at 16.33.50.png](https://archive.blender.org/developer/F7437949/Screenshot_2019-06-21_at_16.33.50.png) ![Screenshot 2019-06-26 at 21.51.52.png](https://archive.blender.org/developer/F7550563/Screenshot_2019-06-26_at_21.51.52.png) ![Screenshot 2019-06-26 at 21.52.14.png](https://archive.blender.org/developer/F7550565/Screenshot_2019-06-26_at_21.52.14.png) ![Screenshot 2019-06-27 at 20.19.40.png](https://archive.blender.org/developer/F7552276/Screenshot_2019-06-27_at_20.19.40.png) ![Screenshot 2019-08-05 at 01.06.23.png](https://archive.blender.org/developer/F7649292/Screenshot_2019-08-05_at_01.06.23.png) ## Checkmark + value In addition, there are many cases where we have configurations where we have a checkmark followed by a value. Currently, we tend to use sub-panels to show this nested relationship: ![Screenshot 2019-06-20 at 18.41.25.png](https://archive.blender.org/developer/F7370841/Screenshot_2019-06-20_at_18.41.25.png) It works, and communicates the hierarchy, but can often be simplified like so: {[F7370734](https://archive.blender.org/developer/F7370734/Screenshot_2019-06-20_at_18.40.07.png), size=full} Currently there's no good way to do this while ensuring proper alignment with other items. A built-in way to do the above would help in many cases where all we need is a simple checkbox+value arrangement. Other examples: ![Screenshot 2019-06-21 at 12.50.46.png](https://archive.blender.org/developer/F7430498/Screenshot_2019-06-21_at_12.50.46.png) ![Screenshot_2019-06-21_at_16.33.50.png](https://archive.blender.org/developer/F7550569/Screenshot_2019-06-21_at_16.33.50.png) ![Screenshot 2019-06-27 at 20.19.40.png](https://archive.blender.org/developer/F7552278/Screenshot_2019-06-27_at_20.19.40.png) ## Implications Different alignments have different tradeoffs. The center-line alignment here has the advantage that it's more aligned with other properties, and is easier to scan. It also adds overall more consistency because the checkbox is then to the left of the text. The downside is that there can be some scenarios where there is less space for the text strings, although it is mitigated by adding header text on the left side, as with the above examples. This may prompt us to want to change the split %. Currently it's 50/50 but could become 40/60 for eg.
Added subscribers: @WilliamReynish, @BartekMoniewski, @LucianoMunoz, @DuarteRamos, @zebus3dream, @A.Lex_3D, @CharlieJolly, @schweppie, @Hexbob6, @freemind, @PierreSchiller, @SteffenD, @remotecrab131, @Thane5, @orvb, @brezdo, @iss, @0o00o0oo, @ideasman42, @RamiroCantu, @Regnas
Member

Added subscriber: @Blendify

Added subscriber: @Blendify
Member

With, Checkmark + value it looks a bit awkward when using number buttons (like in the example below) should the text in the bottom be shift left slightly to be alingned with the other numbers?

Screenshot 2019-06-27 at 20.19.40.png

With, Checkmark + value it looks a bit awkward when using number buttons (like in the example below) should the text in the bottom be shift left slightly to be alingned with the other numbers? ![Screenshot 2019-06-27 at 20.19.40.png](https://archive.blender.org/developer/F7552278/Screenshot_2019-06-27_at_20.19.40.png)

Added subscriber: @AlbertoVelazquez

Added subscriber: @AlbertoVelazquez

I want to remember this proposal in RCS with a lot of community support

image.png

https://blender.community/c/rightclickselect/Jkcbbc/

I want to remember this proposal in RCS with a lot of community support ![image.png](https://archive.blender.org/developer/F7664742/image.png) https://blender.community/c/rightclickselect/Jkcbbc/

In #65965#753130, @AlbertoVelazquez wrote:
I want to remember this proposal in RCS with a lot of community support

image.png

https://blender.community/c/rightclickselect/Jkcbbc/

This is what we had originally, to try this out, comment UI_PROP_SEP_ICON_WIDTH_EXCEPTION in interface_layout.c.

> In #65965#753130, @AlbertoVelazquez wrote: > I want to remember this proposal in RCS with a lot of community support > > ![image.png](https://archive.blender.org/developer/F7664742/image.png) > > https://blender.community/c/rightclickselect/Jkcbbc/ This is what we had originally, to try this out, comment `UI_PROP_SEP_ICON_WIDTH_EXCEPTION` in `interface_layout.c`.

Maybe I'm wrong. But commenting

define UI_PROP_SEP_ICON_WIDTH_EXCEPTION

I only obtain that checkbox move to the center. But the proposal is about text left aligned (an old request from community) basically, and a few changes in the checkbox to make it better.

Maybe I'm wrong. But commenting # define UI_PROP_SEP_ICON_WIDTH_EXCEPTION I only obtain that checkbox move to the center. But the proposal is about text left aligned (an old request from community) basically, and a few changes in the checkbox to make it better.
Member

Added subscriber: @Harley

Added subscriber: @Harley
Member

Just for completeness, my own (unpopular) opinion on this checkbox alignment issue is to treat checkboxes more like other items. Think of them like toggle buttons we already use all over. Or consider them like sliders with only two positions. The alignment issue goes away, they become all more consistent, and the hit area is much larger:

checkboxes.png

Just for completeness, my own (unpopular) opinion on this checkbox alignment issue is to treat checkboxes more like other items. Think of them like toggle buttons we already use all over. Or consider them like sliders with only two positions. The alignment issue goes away, they become all more consistent, and the hit area is much larger: ![checkboxes.png](https://archive.blender.org/developer/F7664900/checkboxes.png)

Added subscriber: @ThinkingPolygons

Added subscriber: @ThinkingPolygons

@Harley To me it looks more like a color slot property. lol
image.png

@Harley To me it looks more like a color slot property. lol ![image.png](https://archive.blender.org/developer/F7664916/image.png)
Member

In #65965#753235, @ThinkingPolygons wrote:
@Harley To me it looks more like a color slot property. lol
image.png

It DOES. LOL. I was too lazy to add what it probably needs, which is an "unchecked checkmark" in the middle of it.

> In #65965#753235, @ThinkingPolygons wrote: > @Harley To me it looks more like a color slot property. lol > ![image.png](https://archive.blender.org/developer/F7664916/image.png) It DOES. LOL. I was too lazy to add what it probably needs, which is an "unchecked checkmark" in the middle of it.

In #65965#753228, @Harley wrote:
Just for completeness, my own (unpopular) opinion on this checkbox alignment issue is to treat checkboxes more like other items. Think of them like toggle buttons we already use all over. Or consider them like sliders with only two positions. The alignment issue goes away, they become all more consistent, and the hit area is much larger:

checkboxes.png

The problem with that is that user lost a good reference point in the menus that is the difference between controls and checkbox. If all that basic shapes are the same user only can identify things with the text. So muscle memory have a hard work with that.

> In #65965#753228, @Harley wrote: > Just for completeness, my own (unpopular) opinion on this checkbox alignment issue is to treat checkboxes more like other items. Think of them like toggle buttons we already use all over. Or consider them like sliders with only two positions. The alignment issue goes away, they become all more consistent, and the hit area is much larger: > > ![checkboxes.png](https://archive.blender.org/developer/F7664900/checkboxes.png) The problem with that is that user lost a good reference point in the menus that is the difference between controls and checkbox. If all that basic shapes are the same user only can identify things with the text. So muscle memory have a hard work with that.
Member

I certainly agree in a way. But then you could use the same argument to say that the difference in alignment also helps as a reference point. I personally don't need difference in appearance for reference points since each grouping we have is quite small in a section. But that might just be a preference.

I certainly agree in a way. But then you could use the same argument to say that the difference in alignment also helps as a reference point. I personally don't need difference in appearance for reference points since each grouping we have is quite small in a section. But that might just be a preference.

Added subscriber: @merlinstail

Added subscriber: @merlinstail

Just to throw my tequila into the punchbowl, a variation on harley's proposal

checkboxes4.png

3rd time lucky

Just to throw my tequila into the punchbowl, a variation on harley's proposal ![checkboxes4.png](https://archive.blender.org/developer/F7666393/checkboxes4.png) 3rd time lucky

I'm really fine with the center aligned checkboxes proposal in the task description. The ´heading' text to the left and the description to the right really improve readability with minor downsides; but if we are going with any "wider" solution that's meant to make checkboxes as wide as other UI buttons and sliders, than I'd go with some sort of iOS style toggle buttons, that could stretch to fill the same width without looking too out of place.

Something along the lines of this GIF:
Toggle.gif

I still think it would be a step back compared to a simple center aligned checkbox.

I'm really fine with the center aligned checkboxes proposal in the task description. The ´heading' text to the left and the description to the right really improve readability with minor downsides; but if we are going with any "wider" solution that's meant to make checkboxes as wide as other UI buttons and sliders, than I'd go with some sort of iOS style toggle buttons, that could stretch to fill the same width without looking too out of place. Something along the lines of this GIF: ![Toggle.gif](https://archive.blender.org/developer/F7666673/Toggle.gif) I still think it would be a step back compared to a simple center aligned checkbox.

This comment was removed by @merlinstail

*This comment was removed by @merlinstail*

Added subscriber: @SecuoyaEx

Added subscriber: @SecuoyaEx

The checkmark + value proposal esentially puts two things in one row, going against the new philosophy for animated properties. What would the keyframe icon on the right do, would it animate the checkmark or the value? Center alignment looks good otherwise, and addressing excesive nesting is something that could be tackled in the future in another design task.

The checkmark + value proposal esentially puts two things in one row, going against the new philosophy for animated properties. What would the keyframe icon on the right do, would it animate the checkmark or the value? Center alignment looks good otherwise, and addressing excesive nesting is something that could be tackled in the future in another design task.

@SecuoyaEx it would show the state for the value, which you are more likely to want to animate.

You can still animate any property of course, if you really want to.

@SecuoyaEx it would show the state for the value, which you are more likely to want to animate. You can still animate any property of course, if you really want to.

I realized I had split these, thought I would update with all controls shown for contrast

checkboxes5.png

I realized I had split these, thought I would update with all controls shown for contrast ![checkboxes5.png](https://archive.blender.org/developer/F7667570/checkboxes5.png)

Added subscriber: @vademenev

Added subscriber: @vademenev

Overall this is great. One small issue that needs to be addressed imho. Placement of checkboxes that are not related to a group might suggest they belong to them.

SCR955.png

I think rows of grouped items should be aligned, maybe separators would help too.

Overall this is great. One small issue that needs to be addressed imho. Placement of checkboxes that are not related to a group might suggest they belong to them. ![SCR955.png](https://archive.blender.org/developer/F8472171/SCR955.png) I think rows of grouped items should be aligned, maybe separators would help too.

@BartekMoniewski

You are right. A little bit of spacing helps here:
Screenshot 2020-04-15 at 11.54.30.png

I will add this spacer here once this is committed to master.

@BartekMoniewski You are right. A little bit of spacing helps here: ![Screenshot 2020-04-15 at 11.54.30.png](https://archive.blender.org/developer/F8474311/Screenshot_2020-04-15_at_11.54.30.png) I will add this spacer here once this is committed to master.

This issue was referenced by 219049bb3b

This issue was referenced by 219049bb3b763b58e71fdf0091309136e6b513a8

This issue was referenced by blender/cycles@849cf27664

This issue was referenced by blender/cycles@849cf276642dc0e4e1edae0112af480a87c133ee

This issue was referenced by 7fc60bff14

This issue was referenced by 7fc60bff14a6241c4a51cbc57b93774a90a0ea13
Member

Added subscriber: @JulianEisel

Added subscriber: @JulianEisel
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Julian Eisel self-assigned this 2020-04-17 18:06:59 +02:00
Member

All changes explained in the task description should be addressed with 219049bb3b and 7fc60bff14.

I'm personally quite happy about the result, it seems like a great improvement. The UI team members involved agreed that this design is the way forward, at least for now.

All changes explained in the task description should be addressed with 219049bb3b and 7fc60bff14. I'm personally quite happy about the result, it seems like a great improvement. The UI team members involved agreed that this design is the way forward, at least for now.

Added subscriber: @unimbox

Added subscriber: @unimbox

@WilliamReynish wrote:

You are right. A little bit of spacing helps here:
Screenshot 2020-04-15 at 11.54.30.png

I will add this spacer here once this is committed to master.

I just wanna add my two cents here.
When i took a first look at the checkbox columns i immediately assumed that on the left-hand side is a main category and on the-right hand side are subcategories. Seems logical to me. You have the word "Show" on the left and then everything you wanna show is on the right. Since "Render Region" is a separate category of itself, why not just to align the text on the left-hand side?
Like this:
render region.png

@WilliamReynish wrote: > You are right. A little bit of spacing helps here: > ![Screenshot 2020-04-15 at 11.54.30.png](https://archive.blender.org/developer/F8474311/Screenshot_2020-04-15_at_11.54.30.png) > > I will add this spacer here once this is committed to master. I just wanna add my two cents here. When i took a first look at the checkbox columns i immediately assumed that on the left-hand side is a main category and on the-right hand side are subcategories. Seems logical to me. You have the word "*Show*" on the left and then everything you wanna show is on the right. Since "*Render Region*" is a separate category of itself, why not just to align the text on the left-hand side? Like this: ![render region.png](https://archive.blender.org/developer/F8479300/render_region.png)

Removed subscriber: @Thane5

Removed subscriber: @Thane5

Removed subscriber: @brezdo

Removed subscriber: @brezdo
Sign in to join this conversation.
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
16 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#65965
No description provided.