В SCSS вы можете использовать декоратор @font-face
для определения шрифта cutom:
@font-face {
font-family: "Segoe UI";
src: url('assets/segoeuil.ttf') format("truetype");
}
Обратите внимание, что в моем примере я использовал статический файл шрифта. Если вы хотите запросить у своего бэк-энда вернуть шрифт по своему выбору, просто создайте выделенную конечную точку, а затем укажите ее URL.
Если вы хотите, чтобы ваш шрифт был субъективным для пользователя, вам необходимо добавить эту информацию в запрос. Для этого вы можете использовать HttpInterceptor
(https://angular.io/api/common/http/HttpInterceptor)). Эта функция angular позволяет вам изменять любой запрос, который делает клиент. Обычной практикой является добавление токена аутентификации в каждый запрос, таким образом, ваш backend может определить шрифт, субъективный для пользователя и его данных, и отправить его как ответ на запрос.
Хотя это возможно, я хотел бы предложить вам более простое решение (на мой взгляд) - если у вас есть ограниченный набор шрифтов, вы можете просто создать их как статические ресурсы на клиентском сервере (поместите их в assets
), а затем - в клиенте - определите, какой шрифт использовать, основываясь на некоторой информации, полученной от пользователя от пользователя. Например - создайте класс css для каждого шрифта и динамически назначьте этот класс вашему элементу body на основе «выбранного шрифта».