We style the UI with the help of the CSS library Pure provided by Yahoo. We only use
Pure's basic styles, which include the browser style normalization of normalize.css, and its
styles for forms. In addition, we define our own style rules, as for in the case of
table element and for error messages in style.css.
Adding the Yahoo CSS library to our HTML5 requires to edit the
WebContent/WEB-INF/templates/page.xhtml file and add the
style element referencing the online CSS
file:
<h:head>
<title><ui:insert name="title">Public Library</ui:insert></title>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css" />
</h:head>Following the same procedure, our custom CSS file is added :
<h:head>
<title><ui:insert name="title">Public Library</ui:insert></title>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css" />
<link href="#{facesContext.externalContext.requestContextPath}/resources/css/style.css" rel="stylesheet" type="text/css" />
</h:head>The facesContext.externalContext.requestContextPath expression allows, via JSF,
to get the path to WebContent folder. Our CSS file is named style.css
and is located in the WebContent/resources/css folder.
Specific CSS classes can be applied to JSF view elements (e.g., h:form), by
using the @styleClass attribute. For example, using styleClass="pure-form
pure-form-aligned" the YUI pure-form and pure-form-aligned CSS
classes are applied to the resulting HTML form
element:
<h:form id="createBookForm" styleClass="pure-form pure-form-aligned"> ... </hform>