As of v0.20.0 we have a plethora of approaches to position labels/icons/indicators across widgets.
That's bad from a design, code size, code modularity and extensibility perspective.
Let's unify those.
| | Before | After
|-- | -- | --
| Different values horizontal | 17 | 6
| Button | {F7273372 width=50%} | {F7273388 width=50%}
| ButtonGroup/-Select | {F7273392 width=50%} | {F7273403 width=50%}
| TextInput | {F7273747 width=50%} | {F7273756 width=50%}
| | {F7122717 width=50%} |
| Dropdown | {F7273507 width=50%} |
| OutlineBookletDialog | {F7123006 width=50%} |
| Fullscreen | {F7271965} | {F7271973}
Orange (coral) signifies the icon/indicator canvas, lightskyblue the label box and aquamarine the padding
Before:
```
margin-right: 0.25em;
padding-left: 2.4em;
padding/margin-left/right: 1em
left: 1.5em - @size-icon / 2;
margin-left: 0.3em;
margin-left: @size-indicator / 2;
margin-right: -0.275em;
left: 0.2em;
padding-left: @size-icon + 2 * 0.3em;
padding-right: @size-indicator + 2 * 0.775em;
margin: 0 0.775em;
margin-left: 3em;
margin-right: 2em;
margin-left: 0.5em;
left: @size-icon + 1em;
right: @size-indicator + 1.55em - 0.4em + @size-icon + 0.5em;
padding-right: @size-indicator + 1.55em;
```
After:
```
@padding-horizontal-default
@padding-start-input-text-icon
@padding-start-input-text-icon-label
left: 0.275em (will be removed in follow-up)
margin-right: @size-indicator + 2 * @padding-horizontal-default;
right: @size-icon + @size-indicator + @padding-horizontal-default;
```
As a follow-up win, we have position of indicators/icons decoupled from labels and can generalize them across widgets in `.oo-ui-widget`.
Only point to take care of are widgets higher than one-line then.