Make the page contents continuously "fill" the window as it
changes size. Multiline text should wrap at the right margin,
until it becomes ten to twelve words wide (more on that later).
Trees, tables, editors, etc. at Center Stage should enlarge
generously while their margins stay compact. If the page has
anything form-like on it, horizontal stretching should cause text
fields to elongate -- users will appreciate this if they need to
type in anything longer than the text field's normal length.
Likewise, anything scrolled (lists, tables, etc.) should lengthen,
and usually widen too.
Web pages and similar UIs should allow the body content to fill
the new space, while keeping navigational devices and signposts
anchored to the top and left margins. Background colors and
patterns should always fill the new space, even if the content
What happens when the window gets too small for its content? You
could put scrollbars around it. Otherwise, white space should
shrink as necessary; outright clipping may occur when the window
gets really tiny, but the most important content hangs in there to
If you deal with paragraphs of text, remember that they become
nearly illegible when they're too wide. Graphic designers target
an optimal line length for easy reading of text; one metric is
10 to 12 average English words per line. Another metric is
30 to 35 em-widths -- that is, the width of your font's lowercase
"m". When your text gets much wider than that, users' eyes have
to travel too far from the end of one line to the beginning of the
next one; if it gets much narrower, it's too choppy to read easily.
(That said, there is evidence that text with a longer line length,
such as 100 characters per line, is faster to read than shorter lines,
even though users prefer to read lines fewer than 55 characters
long. See the guidelines at
http://usability.gov, especially "Use Reading Performance or User
A well-behaved Liquid Layout can be difficult to implement in complex
web pages, especially if you want to dispense with tables and use
straight CSS. It's also hard in Visual Basic and Visual C++ (or
was, at least, for a long time). However, Java provides several
layout managers you can use to implement it.