I don't know what was in the minds of developers and designers who created this application, but it certainly wasn't the user. This poor bank official was really frustrated. I can't imagine what the rest of the application looks like.
To prevent this, different message types should be displayed differently. My opinion is that every web application should handle four main message types: information, successful operation, warning and error. Each message type should be presented in a different color and different icon. A special message type represents validation messages.
I will show you a remake of CSS message boxes I used on my latest project. I changed them slightly just to make them simpler for this example. In next article, you will see how to create ASP.NET user control that can support different message types and how to style it using CSS. You will also see how to style ValidationSummary in a similar way.
Let's first take a quick look at message types.
1. Information messages
The purpose of information messages is to inform the user about something relevant. This should be presented in blue because people associate this color with information, regardless of content. This could be any information relevant to a user action.For example, info message can show some help information regarding current user action or some tips.
2. Success messages
Success messages should be displayed after user successfully performs an operation. By that I mean a complete operation - no partial operations and no errors. For example, the message can say: "Your profile has been saved successfully and confirmation mail has been sent to the email address you provided". This means that each operation in this process (saving profile and sending email) has been successfully performed.I am aware that many developers consider this as an information message type, but I prefer to show this message type using it's own colors and icons - green with a checkmark icon.
3. Warning messages
Warning messages should be displayed to a user when an operation couldn't be completed in a whole. For example "Your profile has been saved successfully, but confirmation mail could not be sent to the email address you provided.". Or "If you don't finish your profile now you won't be able to search jobs". Usual warning color is yellow and icon exclamation.4. Error messages
Error messages should be displayed when an operation couldn't be completed at all. For example, "Your profile couldn't be saved." Red is very suitable for this since people associate this color with an alert of any kind.Design process
Now when we know the way to present messages to users, let's see how to implement a it using CSS. Let's take a quick look at the design process.I will keep this as simple as I can. The goal is to have a single div that implements a single CSS class. So the HTML markup will look like this:
1.
<
div
class
=
"info"
>Info messagediv
>
2.
<
div
class
=
"success"
>Successful operation messagediv
>
3.
<
div
class
=
"warning"
>Warning messagediv
>
4.
<
div
class
=
"error"
>Error messagediv
>
CSS class will add a background image to the div that will be positioned top-left. It will also create a padding inside the div so that text can have enough white space around it. Note that left padding has to be wider to prevent text overlapping with the background image.
And here are the CSS classes for all four (five with validation) different message types:
01.
body{
02.
font-family
:
Arial
,
Helvetica
,
sans-serif
;
03.
font-size
:
13px
;
04.
}
05.
.info, .success, .warning, .error, .validation {
06.
border
:
1px
solid
;
07.
margin
:
10px
0px
;
08.
padding
:
15px
10px
15px
50px
;
09.
background-repeat
:
no-repeat
;
10.
background-position
:
10px
center
;
11.
}
12.
.info {
13.
color
:
#00529B
;
14.
background-color
:
#BDE5F8
;
15.
background-image
:
url
(
'info.png'
);
16.
}
17.
.success {
18.
color
:
#4F8A10
;
19.
background-color
:
#DFF2BF
;
20.
background-image
:
url
(
'success.png'
);
21.
}
22.
.warning {
23.
color
:
#9F6000
;
24.
background-color
:
#FEEFB3
;
25.
background-image
:
url
(
'warning.png'
);
26.
}
27.
.error {
28.
color
:
#D8000C
;
29.
background-color
:
#FFBABA
;
30.
background-image
:
url
(
'error.png'
);
31.
}
Note: Icons used in this example are from Knob Toolbar icons collection.
Validation messages
I noticed that many developers can't distinguish between validation and other message types (such as error or warning messages). I saw many times that validation message is displayed as error message and caused confusion in the user's mind.
Validation is all about user input and should be treated that way. ASP.NET has built in controls that enable full control over user input. The purpose of validation is to force a user to enter all required fields or to enter fields in the correct format. Therefore, it should be clear that the form will not be submitted if these rules aren't matched. That's why I like to style validation messages in a slightly less intensive red than error messages and use a red exclamation icon.
CSS class for validation message is almost identical to others (note that in some attributes are defined in previous code sample):
1.
.validation {
2.
color
:
#D63301
;
3.
background-color
:
#FFCCBA
;
4.
background-image
:
url
(
'validation.png'
);
5.
}
Conclusion
Messages are an important part of the user experience that is often omitted. There are many articles that show nicely styled message boxes but it is not just a matter of design. It should provide a user with meaningful information, semantically and visually.
There are two other articles I would like to recommend you:
In my next article I will show you how to create ASP.NET user control that can wrap all of these message types and present it to a user. You will also see how to apply this style to a ValidationSummary control
REFERENCES
http://css.dzone.com/news/css-message-boxes-different-me
Ctrl-b c Create new window
Ctrl-b d Detach current client
Ctrl-b l Move to previously selected window
Ctrl-b n Move to the next window
Ctrl-b p Move to the previous window
Ctrl-b & Kill the current window
Ctrl-b , Rename the current window
Ctrl-b % Split the current window into two panes
Ctrl-b q Show pane numbers (used to switch between panes)
Ctrl-b o Switch to the next pane
Ctrl-b ? List all keybindings
Ctrl-b n (Move to the next window)
Ctrl-b p (Move to the previous window)
Ctrl-b l (Move to the previously selected window)
Ctrl-b w (List all windows / window numbers)
Ctrl-b (Move to the specified window number, the default bindings are from 0 – 9)
Ctrl-b % (Split the window vertically)
Ctrl-b : “split-window” (Split window horizontally)
Ctrl-b : “break-pane” (Make pane its own window)
Ctrl-b o (Goto next pane)
Ctrl-b q (Show pane numbers, when the numbers show up type the key to goto that pane)
Ctrl-b { (Move the current pane left)
Ctrl-b } (Move the current pane right)
Ctrl-b : resize-pane (By default it resizes the current pane down)
Ctrl-b : resize-pane -U (Resizes the current pane upward)
Ctrl-b : resize-pane -L (Resizes the current pane left)
Ctrl-b : resize-pane -R (Resizes the current pane right)
Ctrl-b : resize-pane 20 (Resizes the current pane down by 20 cells)
Ctrl-b : resize-pane -U 20 (Resizes the current pane upward by 20 cells)
Ctrl-b : resize-pane -L 20 (Resizes the current pane left by 20 cells)
Ctrl-b : resize-pane -R 20 (Resizes the current pane right by 20 cells)
Ctrl-b : resize-pane -t 2 20 (Resizes the pane with the id of 2 down by 20 cells)
Ctrl-b : resize-pane -t -L 20 (Resizes the pane with the id of 2 left by 20 cells)