Creating
the Java PL&F:
The ProjectMetal Report
The JavaTM Look
and Feel -- Swing's official cross-platform pluggable look-and-feel
implementation -- is the creation of Project Metal, a JavaSoftTM
design team that was assigned the job of creating a unique
and distinctive PL&F for Swing 1.0 (JFC 1.1).
Sun Microsystems, Inc., created Project Metal and assigned
the team its mission in response to feedback from developers
who had used Swing's Organic look and feel -- the predecessor of
the new Java L&F design.
This article outlines Project Metal's design goals; reviews
the team's work on the Organic look and feel; and presents
some of the visual elements that have been incorporated into
the Java Look and Feel design.
The article was written by Chris Ryan, chief designer of the
Java Look and Feel. Ryan also wrote the high-level specification
for Java Look and Feel, which you can read by following this
link.
By Chris Ryan
Our
design goals for the Organic look and feel included the desire
to present a unique appearance and identity without the use
of logos, to reduce clutter and decoration from the interface, and
to place more emphasis on application content and less on
the components.
We received a tremendous amount of feedback on Organic. Several
areas of concern emerged from this feedback. First, it became
apparent that we needed to create an appearance and behavior
that is compatible with other environments (for example,
Windows 95, Mac OS or CDE/Motif). For instance, we saw that
Internal Frame must not clash with the native window frame.
Second, we saw that consistency between and among components
is important for the user experience: Our usability testing
made this apparent as well.
Third, we understood that everyone wants to see something that
is visually appealing. Organic was, for some, an acquired
taste.
These principles informed several design problems and issues in
the design of the look and feel which we called Metal,
and which is now officially designated the Java Look and
Feel.
Three-dimensionality, pro and con
Dimensionality at the interface has been a controversial
topic throughout the look-and-feel design process. Much current
thinking suggests that excessive 3D
can be a problem. Visually noisy and often wasting a significant
amount of space, it is sometimes tempting simply to throw
it out.
On the other hand, pseudo-three-dimensionality is probably the
best and most stable means of providing affordance cues in
graphic interfaces. And it is perhaps time to stop apologizing
for including some aesthetic appeal in the interface--as long
as it doesn't dominate and distract.
Aesthetically, certainly, the 3D effect
has become a design burden. Some seek to solve the problem
by eliminating bevels on some buttons (usually only those
found in toolbars), and adding a bevel effect on rollover
only. But a major part of the problem with the 3D
effect throughout the interface is its distracting "bumpiness."
Here is a typical toolbar using this effect:
The Java Look and Feel solves this problem using an etched or "flush
3D" look as the standard three-dimensional
border.
Color
Users and developers want to be able to define and change
color themes; they also need something that does not clash
with the native environment and other applications. From the
beginning, the Java Look and Feel was developed around a simple,
well-defined color model, designed for flexibility and consistency,
and with the limitations of the various color spaces (Windows,
Mac, and "web-safe") in mind. With a much simpler
color model than Organic, and some clearly defined rules for the
application of color, the interface has a more unified and
consistent look.
Accessibility
One consistent criticism of Organic was that its low contrast
and small targets were a potential accessibility problem.
With a simpler and more flexible color model and more standard
target sizes, one of the aims of the Java Look and Feel was
to address accessibility concerns.
Specification and availability
To learn more about
the Java Look and Feel, see the high-level specification. Keep in
mind that this is still a work in progress. The Java Look
and Feel is scheduled to be part of Sun's JDK 1.2 release,
and we would appreciate your comments in the meantime. Sending
them to javahi@sun.com.
|