Как правильно установить локальные шрифты на сайт?
Такие дела.
Если взять гугол шрифты и вставить на сайт, то можно использовать данный шрифт как установленный в систему: задавать толщину через font-weight, устанавливать стиль через font-style.
Но при установке локального шрифта (в смысле, локального на сервеве, где находится сайт) приходится каждой гарнитуре давать отдельное имя ('Exo regular', 'Exo bold', 'Exo black', 'Exo italic') и мучаться с этим, особенно если приходится менять шрифт.
Как встраивать локальный шрифт, чтобы его можно было использовать так, будто он есть у пользователя в системе?
Никак. Если у вас, например, с сервера грузится шрифт с начертанием regular, а вы ему ставите font-weight: 700, то браузер сам будет пытаться сделать шрифт утолщенным. Зачастую это приводит к артефактам и вообще корявости шрифта. Для этого и нужные файлы со всеми начертаниями.
Когда вы подключаете гугл шрифты, вы указываете какие начертания собираетесь использовать.
А системные шрифты имеются на компьютере во всех начертаниях.