15.02.2024 г.
Google Fonts в Nuxt с TailwindCSS
Услугата на Google за шрифтовете е страшно удобна за използване. Има голям избор от шрифтове и лесен начин да ги филтрираш спрямо нуждите ти. В екосистемата на Nuxt има много добър модул за интегриране на Google шрифтове в приложението Ви, но аз ще Ви покажа малко по-различен подход.
В конфигурацията си Nuxt позволява да обработваме Head парчето от HTML-а. Има и други места на които може да го правите, но за целта ще използвам конфигурационния файл nuxt.config.ts
.
Когато изберете шрифт от Google, той Ви предоставя код, който да добавите към приложението си. Кода има следния вид:
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
За да добавите това парче от код в nuxt.config.ts
трябва да го разделите на части в link
масива в конфигурацията.
//nuxt.config.ts
export default defineNuxtConfig({
app: {
head: {
link: [
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
{ rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: "" },
{ rel: "stylesheet", href: "https://fonts.googleapis.com/css2?family=Roboto&display=swap" }
]
}
}
Изключително просто и елегантно решение. При билдването горния код се инжектира в Head-а на приложението Ви и шрифтовете се зареждат от Google. Това работи прекрасно, но понякога не е достатъчно.
Например, ако генерирате приложението си статично с npx nuxt generate
. Тогава е добре да помислите как да оптимизирате зареждането на шрифтовете, защото може да достигнат доста големи обеми.
Става лесно, като първоначално променим стойността на rel
атрибута и след извикването на onload
събитието го възстановяваме.
//nuxt.config.ts
export default defineNuxtConfig({
app: {
head: {
link: [
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
{ rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: "" },
{ rel: "preload", as: "style", onload: "this.onload = null; this.rel = 'stylesheet';", href: "https://fonts.googleapis.com/css2?family=Roboto&display=swap" }
]
}
}
След като шрифта е зареден трябва да го популяризираме в приложението. В моя случай използвам TailwindCSS.
TailwindCSS Ви позволява да използвате предварително подготвени фамилии от шрифтове, но са предоставили и лесен начин да ги преконфигурирате в конфигурационния файл tailwind.config.js
.
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
export const theme = {
fontFamily: {
"sans": ["Inter", "sans-serif"],
"serif": ["Playfair Display", "serif"],
},
};
От тук на там CSS класът font-sans
ще рисува текста Ви с Roboto шрифта.
Ако имате мнение или въпроси за статията, не се колебайте да ги споделите.
Здравей Свят
Преди много време спрях да поддържам блог. В момента пиша разни статии към репозиторитата в GitHub, но те не целят да достигнат крайния потребител. Повече са за хора, които преминават на бързо за информация и не се старая много, защото са насочени към разбиращите технологиите, за които пиша.
Наследството на Бари
Моето семейството имаше куче. Казваше се Бари Наит. Викахме му още Баритош, Баритошев, Баритошко, Торонгаш, Пальок, Черньо, мр. Президент и др. Черен среден пудел. Около 12 килограма. Живя точно 3 години. Почина на рождения си ден. Нашето прекрасно пале вече го няма, но то ни остави наследство, което ще споделя с всички Вас, попаднали на тази страница.