Napkin Look and Feel

◊  Demo  ◊  SourceForge page  ◊  Wiki  ◊

  1. Latest
  2. Overview
  3. Snapshots
  4. Development
  5. Sightings
  6. 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.2, 12 May, 2009


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. It is released under a BSD-style license

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.


To give you a feel for what this looks like, here are a few screen snapshots (as thumbnails; click for full-sized images):

File chooser dialog box with sketched icons
A file chooser dialog box
with sketched icons
Various buttons
Various buttons
Disabled things
Disabled things
A progress bar (scribbled in at the bottom)
A progress bar
(scribbled in at the bottom)
A combo box
A combo box
(PostIt-style popup menu)
Various sliders
Various sliders
A tree
A tree
Internal frames
Internal frames
(blueprint theme)
File chooser (blueprint theme)
File chooser
(blueprint theme)
A table (blueprint theme)
A table
(blueprint theme)
NetBeans on a Napkin (#1)
NetBeans on a Napkin (#1)
NetBeans on a Napkin (#2)
NetBeans on a Napkin (#2)
IntelliJ on a Napkin
IntelliJ on a Napkin


Ken Arnold
Ken Arnold
We welcome anyone to contribute —
code, screenshots,
thoughts, dreams,
understanding, coffee, chocolate...
Alex Lam
Alex Lam S.L.


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.