The following sections are general guidelines that describe fundamental Mac layout principles of center equalization, text and control alignment, appropriate use of white space, and visual balance. Following these guidelines will help you create functional and aesthetically pleasing windows that are easy for Mac users to understand and use.
As you layout your window, remember to observe the principle of consistency in your decisions. If you have good reasons to break some layout guidelines, be sure to do it in a consistent way. Users tend to ignore symmetry and balance but will notice inconsistency.
Inconsistencies in a window can also lead users to conclude that the window was poorly designed and/or implemented. For example, users won’t notice if the margins inside your window edges are 18 points wide (instead of the recommended 20 points), but are likely to notice if the left margin is wider than the right one.
Although there are many ways to arrange controls in a given window, there are guidelines you should follow so that your application has the clean, balanced appearance of Aqua. This section provides examples of properly designed windows and dialogs that use regular-size controls.
The following example showcases a very simple Settings window. Note that more advanced Settings windows would use a window toolbar to access the various sections.
This window provides a good example of a center-equalized layout. Center Equalization means that the visual weight is balanced on the left and right side of the content area. It does not mean center justification. In macOS, content should always be center-equalized in windows and panes.
Although the right side has more objects, it is balanced by the categorization labels on the left. The final result is a visually balanced window.
When labels and controls are stacked in a group, they should line up with each other vertically. Note the right alignment of the colons for the main category labels and the left alignment of the checkboxes and radio buttons. The vertical alignment of the first control in each section is also first baseline aligned with the section title label.
The following are general specifications on how to arrange controls in relation to the window that contains them.
General margins and spacing
Spacing between individual controls
Additional considerations
In some situations, the label for your checkbox, radio button, etc. may not provide a good enough description or context for the user to understand. In such cases, you may use a label below the control with additional information as to how it will alter the application’s behavior.
For any labels you add, they're typically left aligned with the control they're describing. However, for controls such as Checkboxes and Radio Buttons, they must be left-aligned with the label (title) of the control. For these cases, it is required you left-indent to label at least 14 points (more or less depending on the size of the control) in order to align the description label to the title label.
Since the description label is vertically shorter, you must also adjust its vertical spacing to 4 points in order to make the description label appear as if it belongs to the control as well as for visual balance.
In this tabbed window example, Center Equalization is again present. The overall effect of the window is a balance between visual weight of the controls on both sides of the invisible center axis. The controls are also collectively balanced within each group box so that the distance from the farthest control on each side is the same for both left and right sides.
Always center tab views within their window.
Pay extra attention to popup buttons, text fields, pickers, and combo boxes. They are taller than simpler settings controls such as checkboxes and radio buttons. Allow for extra spacing when stacking them to prevent a cluttered look. Additionally, be sure to first baseline align all elements of the same row. This will ensure the text of labels, popup buttons, combo boxes, etc. are all aligned in their row.
General margins and spacing
Spacing between individual controls
Additional considerations
Use smaller versions of controls only when necessary. Your first choice in designing for the Mac should always be to use the full-size controls.
You can use the smaller versions of controls when space is at a premium, such as tool palettes, toolbar accessory views, HUDs, inspector sidebars, and other utility windows. Avoid mixing different sizes of controls in the same window or pane.
To save space while creating distinct sections, this example uses a bold font for each label section instead of using horizontal separators or group boxes.
As with using regular-sized controls, you should use the center-equalized approach to laying out small controls.
General margins and spacing
Spacing between individual controls
Additional considerations
When you lay out mini controls, continue to follow the principles of center equalization, text and control alignment, and visual balance.
To save space while creating distinct sections, this example uses a bold font for each label section instead of using horizontal separators or group boxes.
General margins and spacing
Spacing between individual controls
Note: The example above has a few inconsistencies due to the mix of the combo boxes.
Grouping related controls helps users understand what particular controls do and helps them locate the controls that affect the specific actions they want to preform. This section provides three ways to group the same controls within a tabbed window using:
Please note that no one way is more or less correct than the other. The effectiveness of a layout in your app depends on the overall aesthetic of your other windows and your app's workflow.
Grouping using white space is a great option when you are dealing with small groups of controls.
Notice that the “Background Colors” section has a 12 point space between it and the “Thumbnails” section above it. Any subsequent sections below “Background Colors” would also have a 12 point space between it and the group above it.
Depending on your layout, you may want to increase this value for white space, but keep it at a minimum of 12 points and no more than 24 points.
Grouping using separators is preferred and most useful when space is at a premium.
Use equal spacing above and below a separator. For Regular sized controls, use padding of 12 points above and below each separator. Decrease this spacing when using small or mini controls to be visually balanced with their smaller margins.
Grouping using group boxes when you need to provide a strong visual indication of distinct groups. Keep in mind that using Group Boxes do require the most space.
First, notice that the title for the Group Box now takes the title of the previously named sections. This means that within each box, you will have to choose a different name as well as possibly needing to rename your controls to reduce or eliminate any redundancy.
Keep a 16 point margin at the top and bottom within a Group Box and at least a 16 point margin on the left and right of the Group Box.
Additionally, notice that even across Group Boxes, center equalization is still used and the right-alignment of the section titles persists. That is to say, the section titles of the first Group Box are aligned with the section titles of the second Group Box.
There are special considerations for the buttons typically placed along the bottom of a window or modal/sheet view.
The margins for this row should always be 12 points at the top and 20 points all along the left, bottom, and right sides from its containing window.
A bottom bar is a part of the window frame that extends below the content in the window body. Controls in a bottom bar are frequently used but are not as frequently used as those found in the toolbar. Additionally, bottom bar controls are closely related to the content in the view directly above them.
There are two sizes to bottom bars:
For buttons, use the Recessed button of type Momentary Push In. This gives it the same behavior as the buttons in a toolbar where they show a darkened background frame only when your cursor hovers over them.
The following metrics are for a large size bottom bar:
The following metrics are for a small size bottom bar:
Reach out via Mastodon if you have suggestions that would improve this article.
Mastodon