A notification typically consists of a title, some text, and an icon. Depending on the display style selected, the way this content actually appears will vary and, as they are all optional, a notification can conceivably consist of just an icon (indicating the computer's speaker has been muted, for example), just a title or just some text. Fundamentally, a notification is there to impart some information to you quickly and efficiently and then go away without the need for you to break from whatever you're doing.
A typical notification
Moving the mouse over a notification usually causes additional information and gadgets to be displayed (there is an exception to this - see non-interactive notifications). The content is generated by Snarl and as such it shares a consistent look and feel across all notifications:
A notification with gadgets displayed
The application name indicates which application generated the notification and the timestamp indicates when the notification was created. If the application name is coloured, this indicates the application has secured itself using a password. The close gadget removes the notification from the screen.
When an application creates a notification, it can assign one or more actions to it. These will appear in a menu when the actions gadget is clicked. Note that the actions gadget only appears if at least one action has been assigned to the notification. Each actions has a label (that's displayed in the menu) and a command. Commands can be URLs to open, files to launch, special Snarl commands to invoke, or a dynamic value which Snarl returns to the application which created the notification for it to process.
A notification with two actions assigned to it
Notifications may also provide a default callback. This behaves in a very similar way to an action, except that it's generated when you click on the main body of the notification (that is, away from the close and actions gadgets). It too can launch a URL, file or special Snarl command, or it can be dynamic.