Lessons

An overabundance of monochrome icons

Glyph fonts like Font Awesome, Fontelico, Entypo, Typicons contain hundreds of monochrome icons. But the site interfaces use only a few dozen glyphs. By removing the extra glyphs, you will reduce the file size. This will speed up page loading. In the service [fontello.com ](https://fontello.com /) You can make your own set of icons of popular glyph fonts. Glyph font editing is also available in the service [icomoon.io ](https://icomoon.io/app /).

We recommend using more modern practices and transferring icons to a CSS file in the form of data URL images in SVG format. Uploading several tens of kilobytes in a CSS file with icons is faster than making an additional request for a separate file. And it’s easier for a programmer to edit the CSS file code than to use a special service to edit a set of glyph fonts.

Example code that uses fonts with monochrome icons and image data URL:

Demonstration
PHP code
<?php
// Получаем список глифов доступных в файле
$data = exec("fc-query --format='%{charset}\\n' fa-regular-400.woff2", $output);
$data = array_pop($output);
$data = explode(' ', $data);
$glyphs = [];
foreach($data as $range) {
    $range = explode('-', $range);
    $range[1] = hexdec($range[1] ?? $range[0]);
    $range[0] = hexdec($range[0]);
    for($i = $range[0]; $i <= $range[1]; $i++) {
        $glyphs[] = $i;
    }
}
?><!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style>
            @font-face {
                font-family: 'Roboto';
                src: url('./fa-regular-400.woff2') format('woff2');
                font-style: normal;
                font-weight: 400;
            }
            body {
                font-family: Roboto;
            }
            div {
                border: 1px solid #000;
                margin: 2px;
                padding: 3px;
                border-radius: 3px;
                display: inline-block;
                min-width: 20px;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <h1>В шрифте Font Awesome fa-regular-400.woff2 <?=sizeof($glyphs)?> символов</h1>
        <?php foreach($glyphs as $glyph) { ?>
            <div>&#<?=$glyph?>;</div>
        <?php } ?>
    </body>
</html>

Check your website
It's free and will take from 11 to 70 seconds

We use cookies. By continuing to use the site, you agree to the processing of personal data in accordance with privacy policy. I agree