The toolbar is a designated area containing various UI actions the users can take while working with the extension.
The functionality in the toolbar can be clustered in one or two areas. Either a single cluster aligned left, or aligned right, or both clusters at the same time.
So far, across the extensions created, we have identified four distinct clusters of functionality.
Cluster 1: the functionality dealing with objects in the main Canvas area. For example – various positioning of the elements on the Canvas, creating/adding/deleting objects on the Canvas, connections between elements, undo & redo (as these effectively delete or add elements) etc. Basically, these are functional, operational actions with the objects on the Canvas.
Cluster 2: the functionality dealing with the view states, and view modifications. For example – zoom functionality, changes to modes of viewing the canvas, opening/closing of side panels
Cluster 3: the functionality dealing with navigation, and metadata. For example – navigation elements (like Back button), names, dates, and similar.
Cluster 4: search. Search as a functionality can be separated from the rest of the clustered functional elements, as the results of the search have various impact on the extension the user is in. Sometimes it's just a filter, sometimes it centres the canvas view onto the searched element, etc. It's simply a mini category of its own.
Cluster 5: auxiliary functionality. Effectively, small functionality which cannot be grouped with any of the other clusters. Examples include meatball menus, help menus, user menu (if we ever get something like that), etc. It should not be overused!
The construction rules
Search (4) as a special cluster which is applicable to many extensions, situations, and popups, is always right aligned in the toolbar and in some other block where it appears. Of course, if the area is too small, if necessary it can just take the full width of the block.
View cluster (2) then leans onto it in the right aligned fashion. Naturally, if the location doesn't have Search, then View cluster just goes all the way to the right.
From the left side we add Operational cluster (1).
If the extension requires some Navigation and/or Metadata cluster (3), it comes all the way from the left pushing Operations cluster to the right of it.
And should there be a need for Auxiliary functionality (5), it comes from the right, pushing Search and View.