Skip to content

Commit 04ff3a6

Browse files
committed
Splitting the stylebook into subdocuments
1 parent 64198bd commit 04ff3a6

File tree

5 files changed

+111
-93
lines changed

5 files changed

+111
-93
lines changed

stylebook/glossary.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
layout: default
3+
---
4+
5+
# Glossary

stylebook/index.md

Lines changed: 5 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ In the long term, the book should settle down and become primarily a resource fo
1414

1515
Note: The stylebook is a catalog of _guidelines_. These are not hard laws to be followed. The overarching principle is to make the user interface intuitive and welcoming. If blindly following a guideline does not serve that purpose, then ignoring the guideline is acceptable. However, the _right answer_ is to refine the guideline here to account for what has been learned.
1616

17+
## Subpages
18+
[Glossary](./glossary.md) [Navigation](./navigation.md) [Selection](./selection.md) [Toolbars](toolbars.md)
19+
20+
21+
1722
## Parts of the UI
1823

1924
![The FreeCAD UI and its elements](ui.png)
@@ -45,47 +50,6 @@ The workbench switcher is an important control to the general FreeCAD workflow.
4550
2. The first ten workbenches are automatically assigned an accelerator of W <#>. The user has no control over the assignment of accelerators.
4651
3. By default, all workbenches installed in FreeCAD are shown. This includes workbenches that are of marginal value or seldom used, especially by new users. This contributes to confusion since users don’t know yet which workbenches they need to use.
4752

48-
### Toolbars
49-
50-
1. File
51-
2. Edit
52-
3. Clipboard
53-
4. Workbench
54-
5. Macro
55-
6. View
56-
7. Structure
57-
8. Help
58-
9. Navigation
59-
10. <&lt;Workbench>>
60-
61-
#### Guidelines
62-
63-
1. Toolbars provide convenient access to frequently used commands. They do this at the expense of permanently occupying screen real space.
64-
2. Too many toolbars create visual clutter. All tools compete for the users attention simultaneously. They are not context aware.
65-
3. Toolbars group related commands.
66-
4. Anticipate the user might disable the toolbar.
67-
5. Group locally similar tools into a toolgroup.
68-
6. All tools in a toolbar should have a translatable and useful tooltip.
69-
7. The toolbar itself should have a translatable and useful tooltip.
70-
8. A toolbar should contain a minimum number of tools, ideally less than seven. Longer toolbars provide fewer options for customization and often get shortened or clipped offscreen. They also increase cognitive burden since the user has to process the group as a whole.
71-
72-
#### Problems
73-
74-
1. Toolbars are the developers go-to UI element. They are simple to code and useful during development. As a result they are often overused and visually cluttered.
75-
76-
### Toolbar Area
77-
78-
The toolbar area contains toolbars. Some of the toolbars are available everywhere and some are workbench specific.
79-
80-
#### Guidelines
81-
82-
1. Consider how toolbars will look and arrange on small screens
83-
2. Consider how toolbars will look and arrange on multi-screen configurations
84-
85-
#### Problems
86-
87-
1. Toolbars can be rearranged on a per-workbench basis and the arrangement is meant to persist between sessions. This is intended to be a feature but often acts like a bug. The user arranges toolbars to his liking (including those toolbars that appear on multiple workbenches) while in one workbench. After a switch to another workbench it can happen that the toolbars rearrange in a different order.
88-
8953
### ComboView
9054

9155
The combo view contains the tree view and the task panel area.
@@ -176,18 +140,6 @@ The status bar is the only part of the UI that is always the same regardless of
176140

177141
tbd
178142

179-
### Navigation Cube
180-
181-
General
182-
183-
#### Guidelines
184-
185-
tbd
186-
187-
#### Problems
188-
189-
tbd
190-
191143
### Task View
192144

193145
Each tool should put all of it’s settings in a single task box.
@@ -202,26 +154,6 @@ Task panels should always start with valid defaults (e.g. the shapestring dialog
202154

203155
Task panels should always preview their results in the 3d window. If a preview is computationally too intense, provide an `Apply` button to generate a preview. _(I’m looking at YOU, shapestring tool!)_
204156

205-
### Selection
206-
207-
Reference: [FreeCAD Wiki - Selection Methods](https://wiki.freecad.org/selection_methods)
208-
209-
![The Selection View](selection.png)
210-
211-
#### Terms
212-
213-
1. Selection: the set of objects and subobjects that the user has selected
214-
2. Pre-selection: the object directly under the pointer which will be added to the selection if the user clicks
215-
3. Selection View: The panel which allows the user to see the selection items
216-
4. Greedy selection: Mode in which additional items are added to the selection without requiring a modifier key
217-
5. Selection gate: Logic which can be initiated via code that controls which objects may be selected
218-
6. Selection observer: Logic which can be initiated via code that watches the selection. It can be used to trigger actions under specific selection conditions.
219-
220-
#### Guidelines
221-
222-
1. Selection gates and observers are powerful tools for adjusting the affordances of the GUI and providing signals. They must be used with care because they can adversely affect the performance of the GUI.
223-
2. If the user is asked to select multiple features, he should be able to select by clicking them, and unselect them as well by clicking on selected features.
224-
225157
## Context Menus
226158

227159
tbd
@@ -230,26 +162,6 @@ tbd
230162

231163
tbd
232164

233-
## Navigation
234-
235-
### Elements
236-
237-
1. Navigation Cube
238-
2. Standard Views
239-
3. Keyboard Accelerators
240-
241-
#### Navigation Cube
242-
243-
tbd
244-
245-
#### Standard Views
246-
247-
tbd
248-
249-
#### Keyboard Accelerators
250-
251-
tbd
252-
253165
## Widgets
254166

255167
#### Guidelines

stylebook/navigation.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
layout: default
3+
---
4+
5+
# Navigation
6+
---
7+
## Navigation
8+
9+
### Elements
10+
11+
1. Navigation Cube
12+
2. Standard Views
13+
3. Keyboard Accelerators
14+
15+
#### Navigation Cube
16+
17+
tbd
18+
19+
#### Standard Views
20+
21+
tbd
22+
23+
#### Keyboard Accelerators
24+
25+
tbd
26+

stylebook/selection.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
layout: default
3+
---
4+
5+
# Selection
6+
7+
Reference: [FreeCAD Wiki - Selection Methods](https://wiki.freecad.org/selection_methods)
8+
9+
![The Selection View](selection.png)
10+
11+
### Terms
12+
13+
1. Selection: the set of objects and subobjects that the user has selected
14+
2. Pre-selection: the object directly under the pointer which will be added to the selection if the user clicks
15+
3. Selection View: The panel which allows the user to see the selection items
16+
4. Greedy selection: Mode in which additional items are added to the selection without requiring a modifier key
17+
5. Selection gate: Logic which can be initiated via code that controls which objects may be selected
18+
6. Selection observer: Logic which can be initiated via code that watches the selection. It can be used to trigger actions under specific selection conditions.
19+
20+
### Guidelines
21+
22+
1. Selection gates and observers are powerful tools for adjusting the affordances of the GUI and providing signals. They must be used with care because they can adversely affect the performance of the GUI.
23+
2. If the user is asked to select multiple features, he should be able to select by clicking them, and unselect them as well by clicking on selected features.
24+

stylebook/toolbars.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
layout: default
3+
---
4+
5+
6+
## Subpages
7+
[Glossary](./glossary.md) [Navigation](./navigation.md) [Selection](./selection.md) [Toolbars](toolbars.md)
8+
9+
10+
11+
### Toolbars
12+
13+
1. File
14+
2. Edit
15+
3. Clipboard
16+
4. Workbench
17+
5. Macro
18+
6. View
19+
7. Structure
20+
8. Help
21+
9. Navigation
22+
10. <&lt;Workbench>>
23+
24+
#### Guidelines
25+
26+
1. Toolbars provide convenient access to frequently used commands. They do this at the expense of permanently occupying screen real space.
27+
2. Too many toolbars create visual clutter. All tools compete for the users attention simultaneously. They are not context aware.
28+
3. Toolbars group related commands.
29+
4. Anticipate the user might disable the toolbar.
30+
5. Group locally similar tools into a toolgroup.
31+
6. All tools in a toolbar should have a translatable and useful tooltip.
32+
7. The toolbar itself should have a translatable and useful tooltip.
33+
8. A toolbar should contain a minimum number of tools, ideally less than seven. Longer toolbars provide fewer options for customization and often get shortened or clipped offscreen. They also increase cognitive burden since the user has to process the group as a whole.
34+
35+
#### Problems
36+
37+
1. Toolbars are the developers go-to UI element. They are simple to code and useful during development. As a result they are often overused and visually cluttered.
38+
39+
### Toolbar Area
40+
41+
The toolbar area contains toolbars. Some of the toolbars are available everywhere and some are workbench specific.
42+
43+
#### Guidelines
44+
45+
1. Consider how toolbars will look and arrange on small screens
46+
2. Consider how toolbars will look and arrange on multi-screen configurations
47+
48+
#### Problems
49+
50+
1. Toolbars can be rearranged on a per-workbench basis and the arrangement is meant to persist between sessions. This is intended to be a feature but often acts like a bug. The user arranges toolbars to his liking (including those toolbars that appear on multiple workbenches) while in one workbench. After a switch to another workbench it can happen that the toolbars rearrange in a different order.
51+

0 commit comments

Comments
 (0)