Zoom controlOn Mac OS X, the Zoom button is the green button in a window title bar that has a “+” sign on it when your mouse approaches the button. If you are new to the Mac, you probably call it the “Maximise” button – that’s what you call it in Windows, and what the behaviour is in Windows. However, this isn’t what it is called on the Mac, and isn’t how it is supposed to behave either.

Apple’s Human Interface Guidelines describe the functionality of this button as follows:

Your application also sets the values for the initial size and position of a window, called the standard state. Don’t assume that the standard state should be as large as possible…

If the user changes a window’s size or location by at least 7 pixels, the new size and location is the user state. The user can toggle between the standard state and the user state by clicking the zoom button. When the user clicks the zoom button of a window in the user state, your application should first determine the appropriate size of the standard state. Move the window as little as possible to make it the standard size, and keep the entire window on the screen. The zoom button should not cause the window to fill the entire screen unless that was the last state the user set.

If you are wondering what all that means, in general terms it is saying that if I am displaying, say, a web page, and I click “zoom”, the window should expand horizontally and vertically just enough to fit the contents of that page without scrolling (if possible).

Try it on Safari, say. Resize this window so a scroll bar appears at the bottom of the screen. Then click Zoom. The window will grow to take up the entire screen vertically, and just enough horizontally so that there is no scroll bar.

Why Zoom, not Maximise?

If you watch a Windows user at work, you’ll find that much of the time they have their applications full screen. The Mac, on the other hand, encourages you to only use as much space as you need. You can have other applications open in the other parts of the window, and you can drag and drop between them. What’s the use of having a 30 inch monitor if your Word Processor takes up the entire screen, with 70% of that screen being white space?

The Zoom feature is actually very clever. When it works as described.

The current problem

The trouble is, the Zoom functionality is inconsistent – even within Apple’s own applications! Here’s a list of some Apple applications, and how they behave when zoomed.

Safari Zooms correctly.
Mail Maximises the window.
Dictionary Maximises the window regardless of content. Search for “mac” for example, then Zoom the window.
Address Book Sort of works correctly, but often forgets the user state.
Finder Sort of works correctly, but often forgets the user state.
Preview Sort of works correctly, but sometimes moves the window position for no reason
iCal Maximises the window.
iTunes minimises the user state to a mini control window

The end result is that Windows users who are new to the Mac complain that the “Maximise” button doesn’t maximise, and many seasoned Mac users have stopped even touching the Zoom button because they give up trying to guess what behaviour it will have.

More confusion abounds

Where things get more confusing is determining whether you are currently in a user state, or a standard state. The Zoom button icon is a “+” regardless. And if you don’t know what state you are in, you can’t always be sure what behaviour you’ll get.

Further, the symbol used to represent “Zoom” is a “+”. To most people, that would suggest “expansion”. So when an iTunes window shrinks to a tiny control, you can imagine the confusion that causes.

iTunes Zoomed
iTunes window after pressing the Zoom button

Why does this happen?

The trouble is that having intelligent zoom requires the developer to work harder. The default behaviour for the zoom button is simply to expand to fill the screen (Windows style) – you have to do some coding to make it work according to the Human Interface Guidelines. Even my own software maximises instead of zooming – just because it was easier than writing the code to zoom properly (and yes, I’m embarrassed, I should fix this, and promise I will in my next release of any of my products).

But I want Maximise!

Then you should go back to Windows. :-)

Seriously though, because Zoom is not the same as Maximise doesn’t mean it is bad. Most people who want Maximise are just used to it on Windows. You need to try and use Zoom, and make use of that extra window space to do Mac-style drag and drop between applications. Exposé is great for dragging between windows too.

Some applications have attempted to add a Maximise behaviour. For example, OmniWeb correctly implements Zoom, but if you hold the Option key down while clicking the Zoom button, OmniWeb maximise the current window.

However, this behaviour is actually wrong based on what appears to be Apple’s unwritten guidelines for Option-click. If you hold down Option while clicking on any of the window controls (Close, Minimise, Zoom) the application should apply that functionality to ALL windows in that application. So to close all windows, Option-click Close. To minimise all windows, Option-click Minimise. To zoom all windows, Option-click Zoom. So using Option-click for Maximise is not a solution, and developers should not implement it this way.


Apple needs to lead here with a consistent behaviour across all applications. I am not suggesting all applications should maximise like Windows – that is the easy way out, and Zoom when functioning correctly is a superior feature. But if Apple provides a mixed bag as they currently do, it is no surprise that third party developers don’t bother with Zoom, and users get confused or complain about it being “not like Windows”.

The use of a “+” sign for zoom was never a really good idea – but that horse has bolted. I can’t see Apple fixing that, and I’m not sure what simple shape they could use in its place. Showing whether a window is in user state or standard state is also an issue – currently the zoom button does not reflect state – and if it did, would that confuse users?

With Apple improving consistency though with their own applications users will understand that this isn’t “Maximise”. And third party developers will be encouraged to properly implement Zoom functionality.

This is part #8 of my “Improving Mac OS X” series. For other parts in this series, please click below:

Improving Mac OS X: #1 – Finder Selection
Improving Mac OS X: #2 – The Desktop
Improving Mac OS X: #3 – Trash Triggers
Improving Mac OS X: #4 – Trash and Shred
Improving Mac OS X: #5 – International English
Improving Mac OS X: #6 – Copying Bundles
Improving Mac OS X: #7 – Ejecting Removable Media

Improving Mac OS X: #8 – Zoom

3 thoughts on “Improving Mac OS X: #8 – Zoom

  • September 24, 2007 at 7:26 am

    I disagree with some of that actually, more specifically, the part about Apple or any developer following the guidelines to the letter without question. For one thing, they’re guidelines, not law, and for another, sometimes the guidelines don’t make sense for a specific application.

    iTunes for example, when you “Zoom” it, it becomes a mini player. I like this mini player because with the iLike sidebar installed, iTunes eats up almost all screen space on my Macbook. This may not be the case on a 30″ display, but on a 13.3″ display it makes a difference and the mini player can stay in the top left corner out of the way.

    Calculator is another example, hitting the Zoom button takes it between Standard, Scientific, and Programmer modes. Now expanding the Calculator to be larger then it is obviously makes no sense because it doesn’t need to be any larger, but it can change states since it has 3 different modes and it’s much faster than going to the menu and while it does have keyboard shortcuts, I don’t use it often enough to remember what those are.

    The HIG are just that: Guidelines.

    guideline |ˈgīdˌlīn|
    a general rule, principle, or piece of advice.


  • September 24, 2007 at 7:52 am

    Hey Sebastian.

    Whether you disagree or not, the fact remains that the action is confusing. If the effect of clicking a button is inconsistent people will shy away from ever touching the button.

    Reading some of the forums, that is exactly what happens – people stop clicking the button because they never know what to expect. That suggests that the button is being overloaded with too many features.

    I’m not saying that the functionality of the calculator isn’t good – just that overloading the button to use that functionality isn’t good.

Leave a Reply

Your email address will not be published. Required fields are marked *

To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image