Working with font icons

Kentico Xperience uses a CSS icon font to display graphics in the administration interface. Font icons have better scalability and responsiveness than standard image files, and do not require additional requests when rendering pages.

The following files store the system font icons:

  • App_Themes\Default\Fonts – folder containing the default Core-icons font files
  • App_Themes\Default\bootstrap.css – administration interface stylesheet including font icon class definitions
  • App_Themes\Global\skin.css – stylesheet for live sites, includes font icons

The font icon definitions in the stylesheets are generated based on App_Themes\Global\Skin\icons-core.less and other icon-*.less files in the App_Themes\Default\Bootstrap folder.

To view a list of the default font icons in the system, visit the Xperience icon list page on the DevNet.

Assigning and displaying font icons

Font icons serve as visual representations of objects and actions in the administration interface. To assign a font icon to an object, such as a Page type, edit the object and select the icon.

You can also manually add font icons directly into HTML code (for live site pages, you need to link the stylesheet that defines the icon font):




<i class="icon-doc-o" aria-hidden="true"></i>


Empty tags in WYSIWYG editors

When editing the content of a text editor using the Source button, you cannot add empty HTML tags, such as <i class=“icon-paragraph-o”></i>. Empty tags are removed by the editor when the source HTML is saved. A workaround is to add a   character entity (a non-breaking space) between the tags.

Adding custom font icons

To extend the default set of available font icons, integrate an additional font into your project:

  1. Prepare the font files that define your icons (.eot, .svg, .ttf, .woff).

  2. Create a stylesheet for your icons, containing the following:

    • A font-face which specifies the font files where the icons are stored.
    • A general selector that sets the font-family and other required CSS properties for all icons. To use the icons in the administration interface, add the cms-bootstrap class to the selector.
    • Classes that set the content property for individual icons.
  3. Create a custom icon-css-classes.txt file containing custom icon CSS class names, one class per one line. This enables the icons to be displayed in the icon picker.

  4. Place the font files, the stylesheet and the icon-css-classes.txt file into the project’s CMS\App_Themes\Default\Custom folder (create the Custom folder if necessary).

  5. If you wish to use the icons on the live site, transfer the stylesheet to your live site (MVC) project and manually link the stylesheet on the given pages (the system automatically links the stylesheet on administration interface pages).

You can now assign the font icon classes to objects.

Example

The following example demonstrates how to generate and add custom font icons using the IcoMoon application:

  1. Create the required icon set in the IcoMoon application.

  2. Download the package (Font -> Download).

  3. Open your project’s CMS\App_Themes\Default folder.

  4. Create a Custom sub-folder.

  5. Copy the font folder (containing .eot, .svg, .ttf, .woff files) and the style.css stylesheet from the IcoMoon package into the CMS\App_Themes\Default\ Custom folder.

  6. Edit style.css and add the cms-bootstrap class to the general icon selector:

    Example style.css
    
    
    
     @font-face {
         font-family: 'icomoon';
         src: url('...');
    
         ...
     }
    
     .cms-bootstrap [class^="custom-"], .cms-bootstrap [class*=" custom-"] {
         font-family: 'icomoon';
         speak: none;
         font-style: normal;
         font-weight: normal;
         font-variant: normal;
         text-transform: none;
         line-height: 1;
    
         ...
     }
    
     .custom-icon1:before {
         content: "\e600";
     }
    
     ...
    
    
     
  7. Create the icon-css-classes.txt file containing names of your custom icon classes:

    
    
    
     custom-icon1
     custom-icon2
     custom-icon3
     custom-icon4
    
     ...
    
    
     

You can try out the custom icons by assigning them to an object. For example:

  1. Open the Page types application.
  2. Edit a page type.
  3. Select an icon class from the icon picker in the Page type icon field.
  4. Open the Pages application and create a new page (in a content tree section where the modified page type is allowed).

You can see the updated icon in the list of page types available for the new page, and also in the content tree after you create the page.