These guidelines are not meant to restrict the functionality a style may employ, instead they are intended to be used as a guide to ensure any on-screen notification is legible to the end user. Therefore they are recommendations only.
A notification can have a title and body text. It can have either one of these, or neither of them. Where a notification has only a title or text, the recommendation is that this should be centered vertically within the notification, however this is down to the individual style to determine. If a notification has no title or body text then it must at least have an icon. Currently, empty notifications (those without a title, text or icon) are displayed by Snarl but this may well change in future releases.
Only the first word in the title and text should start with a capital letter with subsequent words appearing in lowercase (except, of course, for names, nouns, etc.) so, "You Have A New Email" should actually be "You have a new email" whereas "Ben Simons has just logged on" is acceptable.
Styles should take into account a user's locale settings and display text left- or right-aligned in accordance with their Windows settings.
Styles must take into account any accessibility settings the end-user may have enabled - for example, font or DPI scaling.
If a notification has an icon and no title or text the recommendation is that the icon should be centered both horizontally and vertically within the notification.
Many styles can display a single numerical text value as a meter. In order for the meter to be displayed, the notification text must be an integer between 0 and 100 and should not include any whitespace or non-numeric characters. Meter usage should be carefully considered and should always be logical to a user.
The user must always be offered the option to not have data displayed as a meter (if, for no other reason, than their preferred style doesn't support meters).
As of Snarl R2.5, the user can provide a suite of default settings for styles. A style should, at the absolute minimum, provide an option for the end user to use their default settings within the style.
A style may indicate to Snarl that the resulting on-screen display will be non-interactive. Notifications generated using this method cannot be closed or invoked by the user, nor can they have actions. Snarl applies a number of restrictions on non-interactive notifications before they are displayed:
Examples of non-interactive styles include OS X-ish and Music Video.
Styles can also control the position of a notification and can also control the way the notification appears on-screen. If a style chooses to control the position of the resulting notification, it should consider the following:
THIS IS NOT STYLE-RELATED
Applications can provide their own sound for the notification to play, however this has been deprecated as of R2.3 (V41) in favour of allowing the user to choose two sounds: one for normal priority notifications and one for high priority notifications. Also starting from R2.3 is the ability for Styles to provide their own sounds. As always, the user is able to control which sounds are played and can disable all sounds.
THIS IS NOT STYLE-RELATED
The application generating the notification can manually determine the length of time the notification stays on-screen for. The value is specified in seconds and is currently limited to a maximum of 99 seconds . Starting from R2.3 (V41) the recommendation is to use one of two values:
-1 to indicate that the notification should remain on-screen for however long the user has set the Snarl default duration value as;
zero to indicate that the notification should remain on-screen indefinitely.
Using a value of zero is discouraged except where the notification falls into one or more of the following categories:
It's expected to be treated as a high priority notification;
The application that created it is expecting to update it;
The application that created it is expecting to remove it programmatically.
Possible use cases would include a battery low warning and master volume or brightness changes. As always, the user can over-ride the application's setting with one of their own.