[{"data":1,"prerenderedAt":1609},["ShallowReactive",2],{"navigation_docs":3,"-get-started-providers":38,"-get-started-providers-surround":1604},[4,30,34],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fget-started","1.get-started",[9,13,17,21,25],{"title":10,"path":11,"stem":12},"Installation","\u002Fget-started\u002Finstallation","1.get-started\u002F1.installation",{"title":14,"path":15,"stem":16},"Configuration","\u002Fget-started\u002Fconfiguration","1.get-started\u002F2.configuration",{"title":18,"path":19,"stem":20},"Usage","\u002Fget-started\u002Fusage","1.get-started\u002F3.usage",{"title":22,"path":23,"stem":24},"Providers","\u002Fget-started\u002Fproviders","1.get-started\u002F4.providers",{"title":26,"path":27,"stem":28},"Upgrade Guide","\u002Fget-started\u002Fupgrade","1.get-started\u002F5.upgrade",false,{"title":31,"path":32,"stem":33},"Advanced","\u002Fadvanced","2.advanced",{"title":35,"path":36,"stem":37},"Contributing","\u002Fcontributing","3.contributing",{"id":39,"title":22,"body":40,"description":1598,"extension":1599,"links":1600,"meta":1601,"navigation":1186,"path":23,"seo":1602,"stem":24,"__hash__":1603},"docs\u002F1.get-started\u002F4.providers.md",{"type":41,"value":42,"toc":1585},"minimark",[43,48,52,59,84,133,138,157,178,338,342,368,384,401,426,435,439,451,592,605,616,724,729,738,743,751,756,770,775,783,789,794,802,806,839,846,860,876,1014,1019,1027,1030,1125,1128,1133,1137,1147,1153,1427,1434,1581],[44,45,47],"h2",{"id":46},"built-in-providers","Built-In Providers",[49,50,51],"p",{},"Nuxt Fonts ships with a number of built-in providers.",[53,54,56],"h3",{"id":55},"local",[57,58,55],"code",{},[49,60,61,62,65,66,69,70,69,73,69,76,79,80,83],{},"The local provider deeply scans your ",[57,63,64],{},"public\u002F"," directories (including of your layers) for font files (supporting ",[57,67,68],{},"ttf",", ",[57,71,72],{},"woff",[57,74,75],{},"woff2",[57,77,78],{},"eot"," or ",[57,81,82],{},"otf"," extensions).",[49,85,86,87,90,91,94,95,98,99,102,103,106,107,110,111,114,115,118,119,121,122,125,126,128,129,132],{},"Then, when you use a ",[57,88,89],{},"font-family"," in your CSS, we check to see whether it matches one of these files. By default, we expect the font file to be the ",[57,92,93],{},"400"," weight, ",[57,96,97],{},"normal"," style, and ",[57,100,101],{},"latin"," subset. To indicate different weights and styles, please include that information in the filename. For example ",[57,104,105],{},"comic-sans-ms.woff2"," (400\u002Fnormal\u002Flatin; defaults), ",[57,108,109],{},"comic-sans-ms-700-italic-cyrillic.woff2"," (700\u002Fitalic\u002Fcyrillic), or for variable fonts ",[57,112,113],{},"comic-sans-ms-100-900.woff2"," (100 900\u002Fnormal\u002Flatin). Named weights are accepted in place of a weight number: ",[57,116,117],{},"comic-sans-ms-bold.woff2",". ",[57,120,89],{}," values with spaces and\u002For caps will lookup hyphenated lowercase filenames as well, eg ",[57,123,124],{},"font-family: 'Comic Sans MS'"," will look for ",[57,127,105],{}," as well as ",[57,130,131],{},"Comic\\ Sans\\ MS.woff2"," on disk.",[134,135,137],"h4",{"id":136},"named-weights","Named weights",[49,139,140,141,144,145,148,149,152,153,156],{},"The following names are recognised, both in filenames and in the ",[57,142,143],{},"weights"," you configure. Hyphenated and unhyphenated spellings are equivalent, so ",[57,146,147],{},"comic-sans-ms-semibold.woff2"," and ",[57,150,151],{},"comic-sans-ms-semi-bold.woff2"," both resolve to ",[57,154,155],{},"600",".",[49,158,159,148,161,164,165,167,168,171,172,174,175,177],{},[57,160,97],{},[57,162,163],{},"regular"," are only read from your configuration. A file is ",[57,166,93],{}," unless its name says otherwise, and a trailing word is dropped when looking for the family, so ",[57,169,170],{},"comic-sans-ms-regular.woff2"," resolves ",[57,173,124],{}," at ",[57,176,93],{}," regardless.",[179,180,181,194],"table",{},[182,183,184],"thead",{},[185,186,187,191],"tr",{},[188,189,190],"th",{},"Weight",[188,192,193],{},"Names",[195,196,197,213,234,246,258,270,290,302,323],"tbody",{},[185,198,199,205],{},[200,201,202],"td",{},[57,203,204],{},"100",[200,206,207,69,210],{},[57,208,209],{},"thin",[57,211,212],{},"hairline",[185,214,215,220],{},[200,216,217],{},[57,218,219],{},"200",[200,221,222,69,225,69,228,69,231],{},[57,223,224],{},"extra-light",[57,226,227],{},"extralight",[57,229,230],{},"ultra-light",[57,232,233],{},"ultralight",[185,235,236,241],{},[200,237,238],{},[57,239,240],{},"300",[200,242,243],{},[57,244,245],{},"light",[185,247,248,252],{},[200,249,250],{},[57,251,93],{},[200,253,254,69,256],{},[57,255,97],{},[57,257,163],{},[185,259,260,265],{},[200,261,262],{},[57,263,264],{},"500",[200,266,267],{},[57,268,269],{},"medium",[185,271,272,276],{},[200,273,274],{},[57,275,155],{},[200,277,278,69,281,69,284,69,287],{},[57,279,280],{},"semi-bold",[57,282,283],{},"semibold",[57,285,286],{},"demi-bold",[57,288,289],{},"demibold",[185,291,292,297],{},[200,293,294],{},[57,295,296],{},"700",[200,298,299],{},[57,300,301],{},"bold",[185,303,304,309],{},[200,305,306],{},[57,307,308],{},"800",[200,310,311,69,314,69,317,69,320],{},[57,312,313],{},"extra-bold",[57,315,316],{},"extrabold",[57,318,319],{},"ultra-bold",[57,321,322],{},"ultrabold",[185,324,325,330],{},[200,326,327],{},[57,328,329],{},"900",[200,331,332,69,335],{},[57,333,334],{},"black",[57,336,337],{},"heavy",[134,339,341],{"id":340},"variable-fonts","Variable fonts",[49,343,344,345,69,348,79,351,354,355,357,358,360,361,364,365,367],{},"A filename can declare a variable weight range as two CSS weights, separated by a space, hyphen or dot: ",[57,346,347],{},"my-font-100 900.woff2",[57,349,350],{},"my-font-100-900.woff2",[57,352,353],{},"my-font.100-900.woff2"," are all read as covering ",[57,356,204],{}," to ",[57,359,329],{},". Both bounds have to be recognised weights (a multiple of 100 between 100 and 900) in ascending order, so ",[57,362,363],{},"my-font-300-234987akd.woff2"," is still read as a single ",[57,366,240],{}," weight.",[49,369,370,371,373,374,69,377,148,380,383],{},"Such a file will be used for any weight or weight range inside the declared range, so ",[57,372,350],{}," matches ",[57,375,376],{},"weights: [400]",[57,378,379],{},"weights: ['400 700']",[57,381,382],{},"weights: ['100 900']"," alike.",[49,385,386,387,148,390,393,394,396,397,400],{},"When no file covers the whole of a requested range, the endpoints of that range are looked up as static weights instead, so a project shipping ",[57,388,389],{},"my-font.woff2",[57,391,392],{},"my-font-bold.woff2"," resolves the default ",[57,395,379],{}," as two separate ",[57,398,399],{},"@font-face"," rules.",[49,402,403,404,69,407,410,411,357,413,415,416,419,420,148,423,156],{},"Files marked as variable without a range (",[57,405,406],{},"my-font-variable.woff2",[57,408,409],{},"my-font-vf.woff2",") are treated as covering the full ",[57,412,204],{},[57,414,329],{}," range. The marker is also treated as part of the family name, so ",[57,417,418],{},"faro-variable.woff2"," matches both ",[57,421,422],{},"font-family: 'Faro Variable'",[57,424,425],{},"font-family: 'Faro'",[427,428,430,431,156],"warning",{"to":429},"\u002Fget-started\u002Fconfiguration#font-options","Please note that the local provider will only attempt to load styles and weights that were configured in the ",[432,433,434],"em",{},"Font Options",[134,436,438],{"id":437},"fonts-installed-from-npm","Fonts installed from npm",[49,440,441,442,450],{},"Some fonts are distributed as npm packages containing bare font files, with no stylesheet for the ",[443,444,446,449],"a",{"href":445},"#npm",[57,447,448],{},"npm"," provider"," to read. If one of these is installed, it is scanned automatically and needs no configuration:",[452,453,458],"pre",{"className":454,"code":455,"language":456,"meta":457,"style":457},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ffonts'],\n  fonts: {\n    families: [\n      { name: 'Geist', provider: 'local' },\n    ],\n  }\n})\n","ts","",[57,459,460,484,512,523,534,569,577,583],{"__ignoreMap":457},[461,462,465,469,472,476,480],"span",{"class":463,"line":464},"line",1,[461,466,468],{"class":467},"s7zQu","export",[461,470,471],{"class":467}," default",[461,473,475],{"class":474},"s2Zo4"," defineNuxtConfig",[461,477,479],{"class":478},"sTEyZ","(",[461,481,483],{"class":482},"sMK4o","{\n",[461,485,487,491,494,497,500,504,506,509],{"class":463,"line":486},2,[461,488,490],{"class":489},"swJcz","  modules",[461,492,493],{"class":482},":",[461,495,496],{"class":478}," [",[461,498,499],{"class":482},"'",[461,501,503],{"class":502},"sfazB","@nuxt\u002Ffonts",[461,505,499],{"class":482},[461,507,508],{"class":478},"]",[461,510,511],{"class":482},",\n",[461,513,515,518,520],{"class":463,"line":514},3,[461,516,517],{"class":489},"  fonts",[461,519,493],{"class":482},[461,521,522],{"class":482}," {\n",[461,524,526,529,531],{"class":463,"line":525},4,[461,527,528],{"class":489},"    families",[461,530,493],{"class":482},[461,532,533],{"class":478}," [\n",[461,535,537,540,543,545,548,551,553,556,558,560,562,564,566],{"class":463,"line":536},5,[461,538,539],{"class":482},"      {",[461,541,542],{"class":489}," name",[461,544,493],{"class":482},[461,546,547],{"class":482}," '",[461,549,550],{"class":502},"Geist",[461,552,499],{"class":482},[461,554,555],{"class":482},",",[461,557,449],{"class":489},[461,559,493],{"class":482},[461,561,547],{"class":482},[461,563,55],{"class":502},[461,565,499],{"class":482},[461,567,568],{"class":482}," },\n",[461,570,572,575],{"class":463,"line":571},6,[461,573,574],{"class":478},"    ]",[461,576,511],{"class":482},[461,578,580],{"class":463,"line":579},7,[461,581,582],{"class":482},"  }\n",[461,584,586,589],{"class":463,"line":585},8,[461,587,588],{"class":482},"}",[461,590,591],{"class":478},")\n",[49,593,594,595,171,598,601,602,604],{},"Filenames still drive weight, style and subset detection, so ",[57,596,597],{},"Geist-Bold.woff2",[57,599,600],{},"font-family: Geist"," at weight ",[57,603,296],{},". Matched fonts are emitted as build assets and served from your own origin.",[49,606,607,608,611,612,615],{},"For a package that is not scanned automatically, add it with ",[57,609,610],{},"packages",", or point at a directory directly with ",[57,613,614],{},"dirs"," (relative paths are resolved from your project root):",[452,617,619],{"className":454,"code":618,"language":456,"meta":457,"style":457},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ffonts'],\n  fonts: {\n    local: {\n      packages: ['my-font-package'],\n      dirs: ['assets\u002Ffonts'],\n    },\n  }\n})\n",[57,620,621,633,651,659,668,688,708,713,717],{"__ignoreMap":457},[461,622,623,625,627,629,631],{"class":463,"line":464},[461,624,468],{"class":467},[461,626,471],{"class":467},[461,628,475],{"class":474},[461,630,479],{"class":478},[461,632,483],{"class":482},[461,634,635,637,639,641,643,645,647,649],{"class":463,"line":486},[461,636,490],{"class":489},[461,638,493],{"class":482},[461,640,496],{"class":478},[461,642,499],{"class":482},[461,644,503],{"class":502},[461,646,499],{"class":482},[461,648,508],{"class":478},[461,650,511],{"class":482},[461,652,653,655,657],{"class":463,"line":514},[461,654,517],{"class":489},[461,656,493],{"class":482},[461,658,522],{"class":482},[461,660,661,664,666],{"class":463,"line":525},[461,662,663],{"class":489},"    local",[461,665,493],{"class":482},[461,667,522],{"class":482},[461,669,670,673,675,677,679,682,684,686],{"class":463,"line":536},[461,671,672],{"class":489},"      packages",[461,674,493],{"class":482},[461,676,496],{"class":478},[461,678,499],{"class":482},[461,680,681],{"class":502},"my-font-package",[461,683,499],{"class":482},[461,685,508],{"class":478},[461,687,511],{"class":482},[461,689,690,693,695,697,699,702,704,706],{"class":463,"line":571},[461,691,692],{"class":489},"      dirs",[461,694,493],{"class":482},[461,696,496],{"class":478},[461,698,499],{"class":482},[461,700,701],{"class":502},"assets\u002Ffonts",[461,703,499],{"class":482},[461,705,508],{"class":478},[461,707,511],{"class":482},[461,709,710],{"class":463,"line":579},[461,711,712],{"class":482},"    },\n",[461,714,715],{"class":463,"line":585},[461,716,582],{"class":482},[461,718,720,722],{"class":463,"line":719},9,[461,721,588],{"class":482},[461,723,591],{"class":478},[53,725,727],{"id":726},"google",[57,728,726],{},[49,730,731,737],{},[443,732,736],{"href":733,"rel":734},"https:\u002F\u002Ffonts.google.com\u002F",[735],"nofollow","Google Fonts"," is one of the best known public font APIs.",[53,739,741],{"id":740},"googleicons",[57,742,740],{},[49,744,745,750],{},[443,746,749],{"href":747,"rel":748},"https:\u002F\u002Ffonts.google.com\u002Ficons",[735],"Google Fonts Icons"," adds support for Material Symbols and Material Icons.",[53,752,754],{"id":753},"bunny",[57,755,753],{},[49,757,758,763,764,769],{},[443,759,762],{"href":760,"rel":761},"https:\u002F\u002Ffonts.bunny.net\u002F",[735],"Bunny Fonts"," is provided by ",[443,765,768],{"href":766,"rel":767},"https:\u002F\u002Fbunny.net\u002F",[735],"bunny.net"," and is a drop-in Google Fonts compatible API, focusing on privacy.",[53,771,773],{"id":772},"fontshare",[57,774,772],{},[49,776,777,782],{},[443,778,781],{"href":779,"rel":780},"https:\u002F\u002Fwww.fontshare.com\u002F",[735],"Fontshare"," is a free font service with 100+ professional-grade fonts from the Indian Type Foundry (ITF).",[427,784,786,787,156],{"to":785},"https:\u002F\u002Fwww.fontshare.com\u002Flicenses\u002Fitf-ffl","You should read their terms in full before using a font through ",[57,788,772],{},[53,790,792],{"id":791},"fontsource",[57,793,791],{},[49,795,796,801],{},[443,797,800],{"href":798,"rel":799},"https:\u002F\u002Ffontsource.org\u002Fdocs\u002Fgetting-started\u002Fintroduction",[735],"Fontsource"," is a collection of open-source fonts that are designed for self-hosting in web applications.",[53,803,804],{"id":448},[57,805,448],{},[49,807,808,809,812,813,69,820,826,827,834,835,838],{},"The npm provider resolves fonts from npm packages installed in your project's ",[57,810,811],{},"node_modules",". It automatically detects known font packages (such as ",[443,814,817],{"href":815,"rel":816},"https:\u002F\u002Ffontsource.org\u002F",[735],[57,818,819],{},"@fontsource\u002F*",[443,821,823],{"href":815,"rel":822},[735],[57,824,825],{},"@fontsource-variable\u002F*",", and ",[443,828,831],{"href":829,"rel":830},"https:\u002F\u002Fgithub.com\u002Fcalcom\u002Ffont",[735],[57,832,833],{},"cal-sans",") from your ",[57,836,837],{},"package.json"," dependencies and devDependencies.",[49,840,841,842,845],{},"By default the stylesheet shipped with the package is read from disk (",[57,843,844],{},"remote: false",") rather than from a CDN, but the font files it references are still fetched from the CDN at build time and served from your own origin.",[49,847,848,849,79,851,853,854,859],{},"Only packages that ship a CSS entrypoint (such as ",[57,850,819],{},[57,852,833],{},") can be used with this provider. Packages that ship bare font files are handled by the ",[443,855,857,449],{"href":856},"#local",[57,858,55],{}," instead.",[861,862,864,865,868,869,871,872,875],"note",{"to":863},"\u002Fget-started\u002Fconfiguration#provider","Setting a top-level ",[57,866,867],{},"provider"," disables every other provider, including ",[57,870,448],{},", so a per-family ",[57,873,874],{},"provider: 'npm'"," will not be used.",[452,877,879],{"className":454,"code":878,"language":456,"meta":457,"style":457},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ffonts'],\n  fonts: {\n    families: [\n      \u002F\u002F Automatically resolved if @fontsource\u002Froboto is in your package.json\n      { name: 'Roboto', provider: 'npm' },\n      \u002F\u002F Variable fonts are also supported\n      { name: 'Inter Variable', provider: 'npm' },\n    ],\n  }\n})\n",[57,880,881,893,911,919,927,933,962,967,996,1002,1007],{"__ignoreMap":457},[461,882,883,885,887,889,891],{"class":463,"line":464},[461,884,468],{"class":467},[461,886,471],{"class":467},[461,888,475],{"class":474},[461,890,479],{"class":478},[461,892,483],{"class":482},[461,894,895,897,899,901,903,905,907,909],{"class":463,"line":486},[461,896,490],{"class":489},[461,898,493],{"class":482},[461,900,496],{"class":478},[461,902,499],{"class":482},[461,904,503],{"class":502},[461,906,499],{"class":482},[461,908,508],{"class":478},[461,910,511],{"class":482},[461,912,913,915,917],{"class":463,"line":514},[461,914,517],{"class":489},[461,916,493],{"class":482},[461,918,522],{"class":482},[461,920,921,923,925],{"class":463,"line":525},[461,922,528],{"class":489},[461,924,493],{"class":482},[461,926,533],{"class":478},[461,928,929],{"class":463,"line":536},[461,930,932],{"class":931},"sHwdD","      \u002F\u002F Automatically resolved if @fontsource\u002Froboto is in your package.json\n",[461,934,935,937,939,941,943,946,948,950,952,954,956,958,960],{"class":463,"line":571},[461,936,539],{"class":482},[461,938,542],{"class":489},[461,940,493],{"class":482},[461,942,547],{"class":482},[461,944,945],{"class":502},"Roboto",[461,947,499],{"class":482},[461,949,555],{"class":482},[461,951,449],{"class":489},[461,953,493],{"class":482},[461,955,547],{"class":482},[461,957,448],{"class":502},[461,959,499],{"class":482},[461,961,568],{"class":482},[461,963,964],{"class":463,"line":579},[461,965,966],{"class":931},"      \u002F\u002F Variable fonts are also supported\n",[461,968,969,971,973,975,977,980,982,984,986,988,990,992,994],{"class":463,"line":585},[461,970,539],{"class":482},[461,972,542],{"class":489},[461,974,493],{"class":482},[461,976,547],{"class":482},[461,978,979],{"class":502},"Inter Variable",[461,981,499],{"class":482},[461,983,555],{"class":482},[461,985,449],{"class":489},[461,987,493],{"class":482},[461,989,547],{"class":482},[461,991,448],{"class":502},[461,993,499],{"class":482},[461,995,568],{"class":482},[461,997,998,1000],{"class":463,"line":719},[461,999,574],{"class":478},[461,1001,511],{"class":482},[461,1003,1005],{"class":463,"line":1004},10,[461,1006,582],{"class":482},[461,1008,1010,1012],{"class":463,"line":1009},11,[461,1011,588],{"class":482},[461,1013,591],{"class":478},[53,1015,1017],{"id":1016},"adobe",[57,1018,1016],{},[49,1020,1021,1026],{},[443,1022,1025],{"href":1023,"rel":1024},"https:\u002F\u002Ffonts.adobe.com\u002F",[735],"Adobe Fonts"," is a font service for both personal and commercial use included with Creative Cloud subscriptions.",[49,1028,1029],{},"To configure the Adobe provider in your Nuxt app, you must provide a Project ID or array of Project IDs corresponding to the Web Projects you have created in Adobe Fonts.",[452,1031,1033],{"className":454,"code":1032,"language":456,"meta":457,"style":457},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ffonts'],\n  fonts: {\n    adobe: {\n      id: ['\u003Csome-id>', '\u003Canother-kit-id>'],\n    },\n  }\n})\n",[57,1034,1035,1047,1065,1073,1082,1111,1115,1119],{"__ignoreMap":457},[461,1036,1037,1039,1041,1043,1045],{"class":463,"line":464},[461,1038,468],{"class":467},[461,1040,471],{"class":467},[461,1042,475],{"class":474},[461,1044,479],{"class":478},[461,1046,483],{"class":482},[461,1048,1049,1051,1053,1055,1057,1059,1061,1063],{"class":463,"line":486},[461,1050,490],{"class":489},[461,1052,493],{"class":482},[461,1054,496],{"class":478},[461,1056,499],{"class":482},[461,1058,503],{"class":502},[461,1060,499],{"class":482},[461,1062,508],{"class":478},[461,1064,511],{"class":482},[461,1066,1067,1069,1071],{"class":463,"line":514},[461,1068,517],{"class":489},[461,1070,493],{"class":482},[461,1072,522],{"class":482},[461,1074,1075,1078,1080],{"class":463,"line":525},[461,1076,1077],{"class":489},"    adobe",[461,1079,493],{"class":482},[461,1081,522],{"class":482},[461,1083,1084,1087,1089,1091,1093,1096,1098,1100,1102,1105,1107,1109],{"class":463,"line":536},[461,1085,1086],{"class":489},"      id",[461,1088,493],{"class":482},[461,1090,496],{"class":478},[461,1092,499],{"class":482},[461,1094,1095],{"class":502},"\u003Csome-id>",[461,1097,499],{"class":482},[461,1099,555],{"class":482},[461,1101,547],{"class":482},[461,1103,1104],{"class":502},"\u003Canother-kit-id>",[461,1106,499],{"class":482},[461,1108,508],{"class":478},[461,1110,511],{"class":482},[461,1112,1113],{"class":463,"line":571},[461,1114,712],{"class":482},[461,1116,1117],{"class":463,"line":579},[461,1118,582],{"class":482},[461,1120,1121,1123],{"class":463,"line":585},[461,1122,588],{"class":482},[461,1124,591],{"class":478},[427,1126,1127],{},"We currently can't provide non-latin subsets for Adobe Fonts as they do not have a public API for that. Please use other providers in such cases.",[427,1129,786,1131,156],{"to":1130},"https:\u002F\u002Fwww.adobe.com\u002Flegal\u002Fterms.html",[57,1132,1016],{},[44,1134,1136],{"id":1135},"custom-providers","Custom Providers",[49,1138,1139,1140,156],{},"The core of the provider API in Nuxt Fonts has been extracted to a common library that can be used by any framework - ",[443,1141,1144],{"href":1142,"rel":1143},"https:\u002F\u002Fgithub.com\u002Funjs\u002Funifont",[735],[57,1145,1146],{},"unifont",[49,1148,1149,1150,1152],{},"The provider API is likely to evolve in the next few releases of ",[57,1151,1146],{},", but at the moment it looks like this:",[452,1154,1156],{"className":454,"code":1155,"language":456,"meta":457,"style":457},"import { defineFontProvider } from 'unifont'\n\nexport default defineFontProvider('some-custom-provider', async (options) => {\n  \u002F\u002F do some setup\n  return {\n    async resolveFont (fontFamily, options) {\n      if (fontFamily === 'My Font Family') {\n        return {\n          fonts: [\n            {\n              src: [\n                { url: 'https:\u002F\u002Fcdn.org\u002Fmy-font.woff2', format: 'woff2' },\n              ],\n              weight: 400,\n              style: 'normal',\n            }\n          ]\n        }\n      }\n    }\n  }\n})\n",[57,1157,1158,1182,1188,1226,1231,1238,1260,1284,1291,1300,1305,1314,1347,1355,1369,1385,1391,1397,1403,1409,1415,1420],{"__ignoreMap":457},[461,1159,1160,1163,1166,1169,1172,1175,1177,1179],{"class":463,"line":464},[461,1161,1162],{"class":467},"import",[461,1164,1165],{"class":482}," {",[461,1167,1168],{"class":478}," defineFontProvider",[461,1170,1171],{"class":482}," }",[461,1173,1174],{"class":467}," from",[461,1176,547],{"class":482},[461,1178,1146],{"class":502},[461,1180,1181],{"class":482},"'\n",[461,1183,1184],{"class":463,"line":486},[461,1185,1187],{"emptyLinePlaceholder":1186},true,"\n",[461,1189,1190,1192,1194,1196,1198,1200,1203,1205,1207,1211,1214,1218,1221,1224],{"class":463,"line":514},[461,1191,468],{"class":467},[461,1193,471],{"class":467},[461,1195,1168],{"class":474},[461,1197,479],{"class":478},[461,1199,499],{"class":482},[461,1201,1202],{"class":502},"some-custom-provider",[461,1204,499],{"class":482},[461,1206,555],{"class":482},[461,1208,1210],{"class":1209},"spNyl"," async",[461,1212,1213],{"class":482}," (",[461,1215,1217],{"class":1216},"sHdIc","options",[461,1219,1220],{"class":482},")",[461,1222,1223],{"class":1209}," =>",[461,1225,522],{"class":482},[461,1227,1228],{"class":463,"line":525},[461,1229,1230],{"class":931},"  \u002F\u002F do some setup\n",[461,1232,1233,1236],{"class":463,"line":536},[461,1234,1235],{"class":467},"  return",[461,1237,522],{"class":482},[461,1239,1240,1243,1246,1248,1251,1253,1256,1258],{"class":463,"line":571},[461,1241,1242],{"class":1209},"    async",[461,1244,1245],{"class":489}," resolveFont ",[461,1247,479],{"class":482},[461,1249,1250],{"class":1216},"fontFamily",[461,1252,555],{"class":482},[461,1254,1255],{"class":1216}," options",[461,1257,1220],{"class":482},[461,1259,522],{"class":482},[461,1261,1262,1265,1267,1269,1272,1274,1277,1279,1282],{"class":463,"line":579},[461,1263,1264],{"class":467},"      if",[461,1266,1213],{"class":489},[461,1268,1250],{"class":478},[461,1270,1271],{"class":482}," ===",[461,1273,547],{"class":482},[461,1275,1276],{"class":502},"My Font Family",[461,1278,499],{"class":482},[461,1280,1281],{"class":489},") ",[461,1283,483],{"class":482},[461,1285,1286,1289],{"class":463,"line":585},[461,1287,1288],{"class":467},"        return",[461,1290,522],{"class":482},[461,1292,1293,1296,1298],{"class":463,"line":719},[461,1294,1295],{"class":489},"          fonts",[461,1297,493],{"class":482},[461,1299,533],{"class":489},[461,1301,1302],{"class":463,"line":1004},[461,1303,1304],{"class":482},"            {\n",[461,1306,1307,1310,1312],{"class":463,"line":1009},[461,1308,1309],{"class":489},"              src",[461,1311,493],{"class":482},[461,1313,533],{"class":489},[461,1315,1317,1320,1323,1325,1327,1330,1332,1334,1337,1339,1341,1343,1345],{"class":463,"line":1316},12,[461,1318,1319],{"class":482},"                {",[461,1321,1322],{"class":489}," url",[461,1324,493],{"class":482},[461,1326,547],{"class":482},[461,1328,1329],{"class":502},"https:\u002F\u002Fcdn.org\u002Fmy-font.woff2",[461,1331,499],{"class":482},[461,1333,555],{"class":482},[461,1335,1336],{"class":489}," format",[461,1338,493],{"class":482},[461,1340,547],{"class":482},[461,1342,75],{"class":502},[461,1344,499],{"class":482},[461,1346,568],{"class":482},[461,1348,1350,1353],{"class":463,"line":1349},13,[461,1351,1352],{"class":489},"              ]",[461,1354,511],{"class":482},[461,1356,1358,1361,1363,1367],{"class":463,"line":1357},14,[461,1359,1360],{"class":489},"              weight",[461,1362,493],{"class":482},[461,1364,1366],{"class":1365},"sbssI"," 400",[461,1368,511],{"class":482},[461,1370,1372,1375,1377,1379,1381,1383],{"class":463,"line":1371},15,[461,1373,1374],{"class":489},"              style",[461,1376,493],{"class":482},[461,1378,547],{"class":482},[461,1380,97],{"class":502},[461,1382,499],{"class":482},[461,1384,511],{"class":482},[461,1386,1388],{"class":463,"line":1387},16,[461,1389,1390],{"class":482},"            }\n",[461,1392,1394],{"class":463,"line":1393},17,[461,1395,1396],{"class":489},"          ]\n",[461,1398,1400],{"class":463,"line":1399},18,[461,1401,1402],{"class":482},"        }\n",[461,1404,1406],{"class":463,"line":1405},19,[461,1407,1408],{"class":482},"      }\n",[461,1410,1412],{"class":463,"line":1411},20,[461,1413,1414],{"class":482},"    }\n",[461,1416,1418],{"class":463,"line":1417},21,[461,1419,582],{"class":482},[461,1421,1423,1425],{"class":463,"line":1422},22,[461,1424,588],{"class":482},[461,1426,591],{"class":478},[49,1428,1429,1430,1433],{},"Module authors can also add their own providers (or remove existing ones) in the ",[57,1431,1432],{},"fonts:providers"," hook which is called by Nuxt Fonts after all modules have run.",[452,1435,1437],{"className":454,"code":1436,"language":456,"meta":457,"style":457},"nuxt.hook('fonts:providers', providers => {\n  delete providers.adobe\n\n  providers['custom-provider'] = defineFontProvider('custom-provider', async () => {\n    \u002F** some setup *\u002F\n    return {\n      async resolveFont (fontFamily, options) {\n        \u002F** resolve font faces *\u002F\n      }\n    }\n  })\n})\n",[57,1438,1439,1466,1478,1482,1524,1529,1536,1555,1560,1564,1568,1575],{"__ignoreMap":457},[461,1440,1441,1444,1446,1449,1451,1453,1455,1457,1459,1462,1464],{"class":463,"line":464},[461,1442,1443],{"class":478},"nuxt",[461,1445,156],{"class":482},[461,1447,1448],{"class":474},"hook",[461,1450,479],{"class":478},[461,1452,499],{"class":482},[461,1454,1432],{"class":502},[461,1456,499],{"class":482},[461,1458,555],{"class":482},[461,1460,1461],{"class":1216}," providers",[461,1463,1223],{"class":1209},[461,1465,522],{"class":482},[461,1467,1468,1471,1473,1475],{"class":463,"line":486},[461,1469,1470],{"class":482},"  delete",[461,1472,1461],{"class":478},[461,1474,156],{"class":482},[461,1476,1477],{"class":478},"adobe\n",[461,1479,1480],{"class":463,"line":514},[461,1481,1187],{"emptyLinePlaceholder":1186},[461,1483,1484,1487,1490,1492,1495,1497,1500,1503,1505,1507,1509,1511,1513,1515,1517,1520,1522],{"class":463,"line":525},[461,1485,1486],{"class":478},"  providers",[461,1488,1489],{"class":489},"[",[461,1491,499],{"class":482},[461,1493,1494],{"class":502},"custom-provider",[461,1496,499],{"class":482},[461,1498,1499],{"class":489},"] ",[461,1501,1502],{"class":482},"=",[461,1504,1168],{"class":474},[461,1506,479],{"class":489},[461,1508,499],{"class":482},[461,1510,1494],{"class":502},[461,1512,499],{"class":482},[461,1514,555],{"class":482},[461,1516,1210],{"class":1209},[461,1518,1519],{"class":482}," ()",[461,1521,1223],{"class":1209},[461,1523,522],{"class":482},[461,1525,1526],{"class":463,"line":536},[461,1527,1528],{"class":931},"    \u002F** some setup *\u002F\n",[461,1530,1531,1534],{"class":463,"line":571},[461,1532,1533],{"class":467},"    return",[461,1535,522],{"class":482},[461,1537,1538,1541,1543,1545,1547,1549,1551,1553],{"class":463,"line":579},[461,1539,1540],{"class":1209},"      async",[461,1542,1245],{"class":489},[461,1544,479],{"class":482},[461,1546,1250],{"class":1216},[461,1548,555],{"class":482},[461,1550,1255],{"class":1216},[461,1552,1220],{"class":482},[461,1554,522],{"class":482},[461,1556,1557],{"class":463,"line":585},[461,1558,1559],{"class":931},"        \u002F** resolve font faces *\u002F\n",[461,1561,1562],{"class":463,"line":719},[461,1563,1408],{"class":482},[461,1565,1566],{"class":463,"line":1004},[461,1567,1414],{"class":482},[461,1569,1570,1573],{"class":463,"line":1009},[461,1571,1572],{"class":482},"  }",[461,1574,591],{"class":489},[461,1576,1577,1579],{"class":463,"line":1316},[461,1578,588],{"class":482},[461,1580,591],{"class":478},[1582,1583,1584],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":457,"searchDepth":486,"depth":486,"links":1586},[1587,1597],{"id":46,"depth":486,"text":47,"children":1588},[1589,1590,1591,1592,1593,1594,1595,1596],{"id":55,"depth":514,"text":55},{"id":726,"depth":514,"text":726},{"id":740,"depth":514,"text":740},{"id":753,"depth":514,"text":753},{"id":772,"depth":514,"text":772},{"id":791,"depth":514,"text":791},{"id":448,"depth":514,"text":448},{"id":1016,"depth":514,"text":1016},{"id":1135,"depth":486,"text":1136},"Font providers are designed to be pluggable and extensible, so no matter your setup you should be able to use an existing provider or write your own.","md",null,{},{"title":22,"description":1598},"N6J9DTnrSOGtFoeF7j358WUfc4rP20DpoZzqoLJUfNY",[1605,1607],{"title":18,"path":19,"stem":20,"description":1606,"children":-1},"Use Nuxt Fonts with any CSS framework or library.",{"title":26,"path":27,"stem":28,"description":1608,"children":-1},"Breaking changes and migration steps when upgrading to the latest version of @nuxt\u002Ffonts.",1788752882865]