Posted by: lrrp | October 3, 2007

Napkin Look and Feel

  1. Latest
  2. Overview
  3. Development
  4. Sightings
  5. Acknowledgments Logo Member


New Wiki

Our Wiki gives you a place to share ideas and advice with other folks. We’ve started it off with some instructions about how to get Java applications to use Napkin for their Look and Feel.

Latest Release: 1.0, 18 March, 2006

  • Upgrade to Java 1.5.
      Several bugs vanished with this upgrade, but it does mean that this will not work anymore with earlier Java versions. So far it has seemed too much work to maintain a system that can work on both.
  • Sketched icons added
      Peter Goodspeed and Justin Crafford created a cool package to take an XML description of an icon and randomly perturb it around. This lets us easily have icons for dialog boxes, for example, that look sketched and slightly different each time. This is in the subpackage net.sourceforge.napkinlaf.sketch, and you can use it for diagrams as well. It’s really, really cool.
  • Works on Windows
      Alex Lam took an interest in using Napkin as his default look & feel for NetBeans. Rather than refer him to an appropriate mental health professional, I put him on the team. He has fixed many, many issues, most specific to the Windows platform but including several other issues related to borders, opacity, and created a tileable sticky-note background for popups, etc. Welcome to the monkey house, Alex.

Note that these simple bullet items are each damn big. There were also, of course, lots of small fixes and tweaks to clean things up for the Big Release.


The Napkin Look & Feel is a pluggable Java look and feel that looks like it was scrawled on a napkin. You can use it to make provisional work actually look provisional, or just for fun.

The idea is to try to develop a look and feel that can be used in Java applications that looks informal and provisional, yet be fully functional for development. Often when people see a GUI mock-up, or a complete GUI without full functionality, they assume that the code behind it is working. While this can be used to sleazy advantage, it can also convince people who ought to know better (like your managers) that you are already done when you have just barely begun, or when only parts are complete. No matter how much you speak to their rational side, the emotional response still says “Done!”. Which after a while leads to a later question: “That was done months ago! What are they doing? Playing Quake?” A good article on this is Joel on Software‘s “The Iceberg Secret, Revealed”.

So the idea is to create a complete look and feel that can be used while the thing is not done which will convey an emotional message to match the rational one. As pieces of the work are done, the GUI for those pieces can be switched to use the “formal” (final) look and feel, allowing someone looking at demos over time to see the progress of the entire system reflected in the expression of the GUI.

Over time, several folks have just liked the thing and wanted to use it for non-provisional GUI’s. Sometimes this is because the application itself seems to match the theme, such as a brainstorming tool. And sometimes it’s just that it looks fun.

This is all done using the Java Swing pluggable Look & Feel framework.


Don’t make the Demo look Done, from Kathy Sierra’s blog Creating Passionate Users.
“Finally, it’s great to know that there are tools to help make the look match the state, with my favorite being the Napkin Look and Feel, a GUI “skin” for Java that makes the interface look — quite literally — like it was scrawled on a napkin.”
Matt Stephens’ “Agile Development with ICONIX Process
“… if the working prototype was presented looking like a user interface mockup that had been scrawled on theback of a napkin, then the customer would be more likely to see it for what it actually is: a slightly working but mostly non-functional prototype… Seems like a great idea to us!” (You can read the pages here)
NetBeans Look & Feel Competition
Claudio Miranda submitted an entry with NapkinLAF on GTK.
Kirill Grouchnikov’s blog
Compares various LAFs for their Right-to-Left menu alignment issues. Thanks to Kirill for reporting the issues 😉
“I have added the napkin L&F to BlogEd and made it the default when run from cvs using ‘ant run’. We can easily change it back if it gets in the way. The only bug I have noticed currently is that the pulling on the scrollbar seems to move the whole window. Perhaps Ken Arnold will know what the problem is there.”
Daniel Steinberg’s blog at, April 5, 2004
A very nice & quick writeup.
Front page note on , April 1 2004
Just a brief note pointing to the home page, but we got some good mail from it.


Peter Goodspeed and Justin Crafford created the sketching subsystem, as a senior project for their degrees at Worcester Polytechnic Institute. They did a great job, and solved an important problem. And thanks to Scott Anderson, a fellow student and friend of mine who suggested they get in touch with me to look for a thesis project.

Scott Violet of Sun has helped me pick apart some of the more abstruse and arcane bits of the plaf framework, which is full of ’em. Thanks a bunch, Scott, and thanks to Hans Muller, also of Sun, for plugging me together with him.

Brandon Franklin has contributed many spare cycles (of which he has none) to planning the upgrade to 1.5, making the whole process much easier.

The font “Felt Tip Roman” was created by Mark Simonson, who spent a lot of time with me on how to license this. He has kindly decided that this particular use does not require individual licensing for each user of the LAF, but can be done by special arrangement. The legalities are below, but beyond those legalities, we’d like to ask you all to be cool — if you like the font and want to use it, buy it properly. Making fonts is not easy, and font folks get their work ripped off far too often. If you do want to use it, buy it from his site, where he gets more from it.

The font “Ænigma Scrawl” was created by Brian Kent, and has worked very well for a handwritten font that scales reasonably to GUI-control sizes (most handwritten-style fonts are display fonts that only work in large sizes). To make things work better, Brian has adapted the font to adjust the spacing around some punctuation as well as some other tweaks. So the version released here is a custom one direct from the artist (which we believe he expects to roll back into the font at future date). We would like to thank Brian a lot for his quick and nimble cooperation, which made this work a lot better and easier on me.

Miro Jurišić has been very helpful in thinking through with me (sometimes for me) some of the hairy graphics problems. This definitely pushes into some poorly documented areas of the 2D API, and it has helped a lot to have someone to talk it through with. Thanks, Miro!

Brian Hawthorne created a quick and excellent selection of blueprint backgrounds for me to choose from. Thanks!

Several people have helped with testing, reporting bugs, and suggesting things. The most persistent have been: Deryl Steinert, Bob Herrmann, David Matuszek, Graham Perks, Henry Story, and Tom Eugelink. Thanks to all, and we’ll be happy to have you be added to this list.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: