Zotonic provides a couple of ways to show icons in templates:
To create a certain amount of consistency across modules, Zotonic comes with a small set of commonly used icons and CSS classes (edit, help, close, etcetera) plus the Zotonic logo.
Use cases:
Add the CSS file to your template:
{% lib
"css/z.icons.css"
%}
This ensures that whenever a Zotonic icon class is used, the image will show up.
In your template HTML, use this syntax:
z-icon z-icon-<name>
For instance:
<span class="z-icon z-icon-off"></span>
Always include z-icon, except for the convenience class zotonic-logo.
If you want to provide a text label for accessibility (but visually hidden), put the text inside <em> or <span>:
<span class="z-icon z-icon-off"><em>Log off</em></span>
Available classes:
.z-icon-cross
.z-icon-cross-circle
.z-icon-drag
.z-icon-edit
.z-icon-facebook
.z-icon-google-plus
.z-icon-help
.z-icon-help-circle
.z-icon-info-circle
.z-icon-instagram
.z-icon-linkedin
.z-icon-logo-z
.z-icon-logo
.z-icon-minus
.z-icon-minus-circle
.z-icon-off
.z-icon-ok
.z-icon-ok-circle
.z-icon-plus
.z-icon-plus-circle
.z-icon-twitter
.z-icon-user
.zotonic-logo
Icons-as-buttons: 2 convenience classes for commonly used buttons are:
.z-btn-remove
.z-btn-help
These buttons are styled as round buttons with size 16px. Button text inside <em> or <span> is hidden.
To have consistent close buttons, Bootstrap close buttons a.close and button.close are overridden by the z-btn-remove style.
Usage:
<a class="z-btn-remove"><em>Remove</em></a>
If you are writing frontend styles in LESS, Zotonic icons can be extended using mixins (found in extend.less).
NOTE: The less files have a dependency with mod_artwork/lib/font-awesome-4, so you need to include the path to its LESS folder when using the lessc command. For example:
lessc --include-path="../../../mod_artwork/lib/font-awesome-4/less"
my_input.less my_output.css
Or for easier access, create a symlink to the font-awesome-4 LESS folder and add the symlink to the include-path.
To extend a class with a Zotonic icon class, write:
.extend_icon(z, @name)
For example:
.my-btn-help {
.extend_icon(z, icon-help-circle);
}
This will generate the following CSS:
(lots-of-classes),
.my-btn-help:before {
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
display: inline-block;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
(lots-of-classes),
.my-btn-help:before {
font-family: "Zotonic";
}
.my-btn-help:before {
content: "\e600";
}
The :before pseudo-class can be extended to further style the icon. For instance to add a plus icon to a link:
.my-plus-link {
position: relative;
padding-left: 16px;
.extend_icon(z, icon-plus);
&:before {
position: absolute;
top: 4px;
left: 0;
width: 16px;
font-size: 13px;
}
}
Enable module mod_artwork.
In LESS, add parameter ‘md’ to the extend mixin and pass the character code:
.btn-bookmark {
.extend_icon(md, "\f019");
}
The icon (variable) characters can be found in the icons cheatsheet.
Enable module mod_artwork.
In LESS, add parameter ‘fa’ to the extend mixin:
.btn-bookmark {
.extend_icon(fa, fa-var-bookmark);
}
The icon (variable) names can be found in mod_artwork/lib/font-awesome-4/less/variables.less.
Social login buttons¶
Social login buttons are created with z-btn-social and show up with a brand icon at the side. Usage:
<a href="#" class="btn z-btn-social"><span class="z-icon z-icon-facebook"></span> Login with Facebook</a>
NOTE: the full syntax that opens a new login window:
“popupwindow” must be included in the template: