[{"data":1,"prerenderedAt":2256},["ShallowReactive",2],{"navigation":3,"docs-/advanced":26,"docs-/advanced-surround":694},[4,20,23],{"title":5,"_path":6,"children":7},"Getting Started","/get-started",[8,11,14,17],{"title":9,"_path":10},"Installation","/get-started/installation",{"title":12,"_path":13},"Configuration","/get-started/configuration",{"title":15,"_path":16},"Usage","/get-started/usage",{"title":18,"_path":19},"Providers","/get-started/providers",{"title":21,"_path":22},"Advanced","/advanced",{"title":24,"_path":25},"Contributing","/contributing",{"_path":22,"_dir":27,"_draft":28,"_partial":28,"_locale":27,"title":21,"description":29,"body":30,"_type":688,"_id":689,"_source":690,"_file":691,"_stem":692,"_extension":693},"",false,"Find out how Nuxt Fonts works behind the scenes to optimize fonts in your project.",{"type":31,"children":32,"toc":685},"root",[33,42,57,679],{"type":34,"tag":35,"props":36,"children":38},"element","h2",{"id":37},"how-it-works",[39],{"type":40,"value":41},"text","How it works",{"type":34,"tag":43,"props":44,"children":45},"p",{},[46,48,55],{"type":40,"value":47},"Nuxt Fonts processes all your CSS and does the following things automatically when it encounters a ",{"type":34,"tag":49,"props":50,"children":52},"code",{"className":51},[],[53],{"type":40,"value":54},"font-family",{"type":40,"value":56}," declaration.",{"type":34,"tag":58,"props":59,"children":60},"ol",{},[61,131,513,531,669],{"type":34,"tag":62,"props":63,"children":64},"li",{},[65,71,73,79,81,87,89,95,97,103,104,110,112,118,120,129],{"type":34,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":40,"value":70},"Resolves fonts used in CSS",{"type":40,"value":72},". It starts by looking in your ",{"type":34,"tag":49,"props":74,"children":76},{"className":75},[],[77],{"type":40,"value":78},"public/",{"type":40,"value":80}," directory for font files that match the name, like ",{"type":34,"tag":49,"props":82,"children":84},{"className":83},[],[85],{"type":40,"value":86},"Roboto.woff2",{"type":40,"value":88},", ",{"type":34,"tag":49,"props":90,"children":92},{"className":91},[],[93],{"type":40,"value":94},"RobotoBold.ttf",{"type":40,"value":96},", etc. Then it moves on to web font providers like ",{"type":34,"tag":49,"props":98,"children":100},{"className":99},[],[101],{"type":40,"value":102},"google",{"type":40,"value":88},{"type":34,"tag":49,"props":105,"children":107},{"className":106},[],[108],{"type":40,"value":109},"bunny",{"type":40,"value":111}," and ",{"type":34,"tag":49,"props":113,"children":115},{"className":114},[],[116],{"type":40,"value":117},"fontshare",{"type":40,"value":119},". Once a provider is found (in this case, probably ",{"type":34,"tag":121,"props":122,"children":126},"a",{"href":123,"rel":124},"https://fonts.google.com",[125],"nofollow",[127],{"type":40,"value":128},"Google Fonts",{"type":40,"value":130},"), we move on to the next step.",{"type":34,"tag":62,"props":132,"children":133},{},[134,147,149,154,156,232],{"type":34,"tag":66,"props":135,"children":136},{},[137,139,145],{"type":40,"value":138},"Generates and injects ",{"type":34,"tag":49,"props":140,"children":142},{"className":141},[],[143],{"type":40,"value":144},"@font-face",{"type":40,"value":146}," rules for you.",{"type":40,"value":148}," We'll generate rules to point your browser to the right source files. They'll be injected into the same CSS where you use the ",{"type":34,"tag":49,"props":150,"children":152},{"className":151},[],[153],{"type":40,"value":54},{"type":40,"value":155},".",{"type":34,"tag":157,"props":158,"children":162},"pre",{"className":159,"code":160,"language":161,"meta":27,"style":27},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","/* If you write something like this: */\n:root {\n  font-family: Poppins;\n}\n","css",[163],{"type":34,"tag":49,"props":164,"children":165},{"__ignoreMap":27},[166,178,198,223],{"type":34,"tag":167,"props":168,"children":171},"span",{"class":169,"line":170},"line",1,[172],{"type":34,"tag":167,"props":173,"children":175},{"style":174},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[176],{"type":40,"value":177},"/* If you write something like this: */\n",{"type":34,"tag":167,"props":179,"children":181},{"class":169,"line":180},2,[182,188,193],{"type":34,"tag":167,"props":183,"children":185},{"style":184},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[186],{"type":40,"value":187},":",{"type":34,"tag":167,"props":189,"children":191},{"style":190},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[192],{"type":40,"value":31},{"type":34,"tag":167,"props":194,"children":195},{"style":184},[196],{"type":40,"value":197}," {\n",{"type":34,"tag":167,"props":199,"children":201},{"class":169,"line":200},3,[202,208,212,218],{"type":34,"tag":167,"props":203,"children":205},{"style":204},"--shiki-light:#8796B0;--shiki-default:#B2CCD6;--shiki-dark:#B2CCD6",[206],{"type":40,"value":207},"  font-family",{"type":34,"tag":167,"props":209,"children":210},{"style":184},[211],{"type":40,"value":187},{"type":34,"tag":167,"props":213,"children":215},{"style":214},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[216],{"type":40,"value":217}," Poppins",{"type":34,"tag":167,"props":219,"children":220},{"style":184},[221],{"type":40,"value":222},";\n",{"type":34,"tag":167,"props":224,"children":226},{"class":169,"line":225},4,[227],{"type":34,"tag":167,"props":228,"children":229},{"style":184},[230],{"type":40,"value":231},"}\n",{"type":34,"tag":157,"props":233,"children":235},{"className":159,"code":234,"language":161,"meta":27,"style":27},"/* Then Nuxt fonts will add declarations that look like this at the beginning of the CSS file: */\n@font-face {\n  font-family: 'Poppins';\n  src: local(\"Poppins\"), url(\"/_fonts/\u003Chash>.woff2\") format(woff2);\n  font-display: swap;\n  unicode-range: U+0000-00FF,U+0131, /* ... */;\n  font-weight: 400;\n  font-style: normal;\n}\n/* ... plus more font-face declarations for other unicode ranges/weights */\n",[236],{"type":34,"tag":49,"props":237,"children":238},{"__ignoreMap":27},[239,247,259,290,378,400,451,474,496,504],{"type":34,"tag":167,"props":240,"children":241},{"class":169,"line":170},[242],{"type":34,"tag":167,"props":243,"children":244},{"style":174},[245],{"type":40,"value":246},"/* Then Nuxt fonts will add declarations that look like this at the beginning of the CSS file: */\n",{"type":34,"tag":167,"props":248,"children":249},{"class":169,"line":180},[250,255],{"type":34,"tag":167,"props":251,"children":253},{"style":252},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[254],{"type":40,"value":144},{"type":34,"tag":167,"props":256,"children":257},{"style":184},[258],{"type":40,"value":197},{"type":34,"tag":167,"props":260,"children":261},{"class":169,"line":200},[262,266,270,275,281,286],{"type":34,"tag":167,"props":263,"children":264},{"style":204},[265],{"type":40,"value":207},{"type":34,"tag":167,"props":267,"children":268},{"style":184},[269],{"type":40,"value":187},{"type":34,"tag":167,"props":271,"children":272},{"style":184},[273],{"type":40,"value":274}," '",{"type":34,"tag":167,"props":276,"children":278},{"style":277},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[279],{"type":40,"value":280},"Poppins",{"type":34,"tag":167,"props":282,"children":283},{"style":184},[284],{"type":40,"value":285},"'",{"type":34,"tag":167,"props":287,"children":288},{"style":184},[289],{"type":40,"value":222},{"type":34,"tag":167,"props":291,"children":292},{"class":169,"line":225},[293,298,302,308,313,318,322,326,331,336,340,344,349,353,358,363,367,373],{"type":34,"tag":167,"props":294,"children":295},{"style":204},[296],{"type":40,"value":297},"  src",{"type":34,"tag":167,"props":299,"children":300},{"style":184},[301],{"type":40,"value":187},{"type":34,"tag":167,"props":303,"children":305},{"style":304},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[306],{"type":40,"value":307}," local",{"type":34,"tag":167,"props":309,"children":310},{"style":184},[311],{"type":40,"value":312},"(",{"type":34,"tag":167,"props":314,"children":315},{"style":184},[316],{"type":40,"value":317},"\"",{"type":34,"tag":167,"props":319,"children":320},{"style":277},[321],{"type":40,"value":280},{"type":34,"tag":167,"props":323,"children":324},{"style":184},[325],{"type":40,"value":317},{"type":34,"tag":167,"props":327,"children":328},{"style":184},[329],{"type":40,"value":330},"),",{"type":34,"tag":167,"props":332,"children":333},{"style":304},[334],{"type":40,"value":335}," url",{"type":34,"tag":167,"props":337,"children":338},{"style":184},[339],{"type":40,"value":312},{"type":34,"tag":167,"props":341,"children":342},{"style":184},[343],{"type":40,"value":317},{"type":34,"tag":167,"props":345,"children":346},{"style":277},[347],{"type":40,"value":348},"/_fonts/\u003Chash>.woff2",{"type":34,"tag":167,"props":350,"children":351},{"style":184},[352],{"type":40,"value":317},{"type":34,"tag":167,"props":354,"children":355},{"style":184},[356],{"type":40,"value":357},")",{"type":34,"tag":167,"props":359,"children":360},{"style":304},[361],{"type":40,"value":362}," format",{"type":34,"tag":167,"props":364,"children":365},{"style":184},[366],{"type":40,"value":312},{"type":34,"tag":167,"props":368,"children":370},{"style":369},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[371],{"type":40,"value":372},"woff2",{"type":34,"tag":167,"props":374,"children":375},{"style":184},[376],{"type":40,"value":377},");\n",{"type":34,"tag":167,"props":379,"children":381},{"class":169,"line":380},5,[382,387,391,396],{"type":34,"tag":167,"props":383,"children":384},{"style":204},[385],{"type":40,"value":386},"  font-display",{"type":34,"tag":167,"props":388,"children":389},{"style":184},[390],{"type":40,"value":187},{"type":34,"tag":167,"props":392,"children":393},{"style":214},[394],{"type":40,"value":395}," swap",{"type":34,"tag":167,"props":397,"children":398},{"style":184},[399],{"type":40,"value":222},{"type":34,"tag":167,"props":401,"children":403},{"class":169,"line":402},6,[404,409,413,418,423,428,433,438,442,447],{"type":34,"tag":167,"props":405,"children":406},{"style":204},[407],{"type":40,"value":408},"  unicode-range",{"type":34,"tag":167,"props":410,"children":411},{"style":184},[412],{"type":40,"value":187},{"type":34,"tag":167,"props":414,"children":415},{"style":214},[416],{"type":40,"value":417}," U+0000",{"type":34,"tag":167,"props":419,"children":420},{"style":184},[421],{"type":40,"value":422},"-",{"type":34,"tag":167,"props":424,"children":425},{"style":214},[426],{"type":40,"value":427},"00FF",{"type":34,"tag":167,"props":429,"children":430},{"style":184},[431],{"type":40,"value":432},",",{"type":34,"tag":167,"props":434,"children":435},{"style":214},[436],{"type":40,"value":437},"U+0131",{"type":34,"tag":167,"props":439,"children":440},{"style":184},[441],{"type":40,"value":432},{"type":34,"tag":167,"props":443,"children":444},{"style":174},[445],{"type":40,"value":446}," /* ... */",{"type":34,"tag":167,"props":448,"children":449},{"style":184},[450],{"type":40,"value":222},{"type":34,"tag":167,"props":452,"children":454},{"class":169,"line":453},7,[455,460,464,470],{"type":34,"tag":167,"props":456,"children":457},{"style":204},[458],{"type":40,"value":459},"  font-weight",{"type":34,"tag":167,"props":461,"children":462},{"style":184},[463],{"type":40,"value":187},{"type":34,"tag":167,"props":465,"children":467},{"style":466},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[468],{"type":40,"value":469}," 400",{"type":34,"tag":167,"props":471,"children":472},{"style":184},[473],{"type":40,"value":222},{"type":34,"tag":167,"props":475,"children":477},{"class":169,"line":476},8,[478,483,487,492],{"type":34,"tag":167,"props":479,"children":480},{"style":204},[481],{"type":40,"value":482},"  font-style",{"type":34,"tag":167,"props":484,"children":485},{"style":184},[486],{"type":40,"value":187},{"type":34,"tag":167,"props":488,"children":489},{"style":214},[490],{"type":40,"value":491}," normal",{"type":34,"tag":167,"props":493,"children":494},{"style":184},[495],{"type":40,"value":222},{"type":34,"tag":167,"props":497,"children":499},{"class":169,"line":498},9,[500],{"type":34,"tag":167,"props":501,"children":502},{"style":184},[503],{"type":40,"value":231},{"type":34,"tag":167,"props":505,"children":507},{"class":169,"line":506},10,[508],{"type":34,"tag":167,"props":509,"children":510},{"style":174},[511],{"type":40,"value":512},"/* ... plus more font-face declarations for other unicode ranges/weights */\n",{"type":34,"tag":62,"props":514,"children":515},{},[516,521,523,529],{"type":34,"tag":66,"props":517,"children":518},{},[519],{"type":40,"value":520},"Proxies and caches font requests.",{"type":40,"value":522}," Rather than using the original source URLs (to remote servers), we generate rewrites under the ",{"type":34,"tag":49,"props":524,"children":526},{"className":525},[],[527],{"type":40,"value":528},"/_fonts",{"type":40,"value":530}," subpath. When accessed by your browser, we download the font from the remote server and cache it locally.",{"type":34,"tag":62,"props":532,"children":533},{},[534,539,541,546,548,555,557],{"type":34,"tag":66,"props":535,"children":536},{},[537],{"type":40,"value":538},"Creates font fallback metrics.",{"type":40,"value":540}," If we have access to the font metrics (ascent, descent, line gap, character width, etc.) then we can generate a fallback ",{"type":34,"tag":49,"props":542,"children":544},{"className":543},[],[545],{"type":40,"value":144},{"type":40,"value":547}," declaration as well. The idea is that we 'morph' a local system font (like Arial or Times New Roman) to be as close as possible to the size of the web font, to decrease layout shift (",{"type":34,"tag":121,"props":549,"children":552},{"href":550,"rel":551},"https://web.dev/articles/cls",[125],[553],{"type":40,"value":554},"read more about CLS",{"type":40,"value":556},").",{"type":34,"tag":157,"props":558,"children":560},{"className":159,"code":559,"language":161,"meta":27,"style":27},":root {\n  /* This will generate fallbacks for local versions of Helvetica and Arial, adjusted to match Roboto's metrics. */\n  font-family: Roboto, Helvetica, Arial;\n  /* If you provide a generic family (like serif or sans-serif), we will use a system font from that family. */\n  font-family: Merriweather, serif;\n}\n",[561],{"type":34,"tag":49,"props":562,"children":563},{"__ignoreMap":27},[564,579,587,625,633,662],{"type":34,"tag":167,"props":565,"children":566},{"class":169,"line":170},[567,571,575],{"type":34,"tag":167,"props":568,"children":569},{"style":184},[570],{"type":40,"value":187},{"type":34,"tag":167,"props":572,"children":573},{"style":190},[574],{"type":40,"value":31},{"type":34,"tag":167,"props":576,"children":577},{"style":184},[578],{"type":40,"value":197},{"type":34,"tag":167,"props":580,"children":581},{"class":169,"line":180},[582],{"type":34,"tag":167,"props":583,"children":584},{"style":174},[585],{"type":40,"value":586},"  /* This will generate fallbacks for local versions of Helvetica and Arial, adjusted to match Roboto's metrics. */\n",{"type":34,"tag":167,"props":588,"children":589},{"class":169,"line":200},[590,594,598,603,607,612,616,621],{"type":34,"tag":167,"props":591,"children":592},{"style":204},[593],{"type":40,"value":207},{"type":34,"tag":167,"props":595,"children":596},{"style":184},[597],{"type":40,"value":187},{"type":34,"tag":167,"props":599,"children":600},{"style":214},[601],{"type":40,"value":602}," Roboto",{"type":34,"tag":167,"props":604,"children":605},{"style":184},[606],{"type":40,"value":432},{"type":34,"tag":167,"props":608,"children":609},{"style":214},[610],{"type":40,"value":611}," Helvetica",{"type":34,"tag":167,"props":613,"children":614},{"style":184},[615],{"type":40,"value":432},{"type":34,"tag":167,"props":617,"children":618},{"style":214},[619],{"type":40,"value":620}," Arial",{"type":34,"tag":167,"props":622,"children":623},{"style":184},[624],{"type":40,"value":222},{"type":34,"tag":167,"props":626,"children":627},{"class":169,"line":225},[628],{"type":34,"tag":167,"props":629,"children":630},{"style":174},[631],{"type":40,"value":632},"  /* If you provide a generic family (like serif or sans-serif), we will use a system font from that family. */\n",{"type":34,"tag":167,"props":634,"children":635},{"class":169,"line":380},[636,640,644,649,653,658],{"type":34,"tag":167,"props":637,"children":638},{"style":204},[639],{"type":40,"value":207},{"type":34,"tag":167,"props":641,"children":642},{"style":184},[643],{"type":40,"value":187},{"type":34,"tag":167,"props":645,"children":646},{"style":214},[647],{"type":40,"value":648}," Merriweather",{"type":34,"tag":167,"props":650,"children":651},{"style":184},[652],{"type":40,"value":432},{"type":34,"tag":167,"props":654,"children":655},{"style":214},[656],{"type":40,"value":657}," serif",{"type":34,"tag":167,"props":659,"children":660},{"style":184},[661],{"type":40,"value":222},{"type":34,"tag":167,"props":663,"children":664},{"class":169,"line":402},[665],{"type":34,"tag":167,"props":666,"children":667},{"style":184},[668],{"type":40,"value":231},{"type":34,"tag":62,"props":670,"children":671},{},[672,677],{"type":34,"tag":66,"props":673,"children":674},{},[675],{"type":40,"value":676},"Include fonts in build.",{"type":40,"value":678}," When you build your project, we'll copy across all the fonts used in your project so you don't need to make any external requests when loading your site. (Any that haven't already been cached in development are downloaded at build time.) Font file names are hashed and Nuxt will serve them with long-lived cache headers.",{"type":34,"tag":680,"props":681,"children":682},"style",{},[683],{"type":40,"value":684},"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);}",{"title":27,"searchDepth":180,"depth":180,"links":686},[687],{"id":37,"depth":180,"text":41},"markdown","content:2.advanced.md","content","2.advanced.md","2.advanced","md",[695,2072],{"_path":19,"_dir":696,"_draft":28,"_partial":28,"_locale":27,"title":18,"description":697,"body":698,"_type":688,"_id":2069,"_source":690,"_file":2070,"_stem":2071,"_extension":693},"get-started","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.",{"type":31,"children":699,"toc":2057},[700,706,711,721,769,882,899,907,918,927,939,947,968,976,988,1011,1020,1032,1041,1053,1058,1250,1258,1278,1284,1301,1313,1777,1790,2053],{"type":34,"tag":35,"props":701,"children":703},{"id":702},"built-in-providers",[704],{"type":40,"value":705},"Built-In Providers",{"type":34,"tag":43,"props":707,"children":708},{},[709],{"type":40,"value":710},"Nuxt Fonts ships with a number of built-in providers.",{"type":34,"tag":712,"props":713,"children":715},"h3",{"id":714},"local",[716],{"type":34,"tag":49,"props":717,"children":719},{"className":718},[],[720],{"type":40,"value":714},{"type":34,"tag":43,"props":722,"children":723},{},[724,726,731,733,739,740,746,747,752,753,759,761,767],{"type":40,"value":725},"The local provider deeply scans your ",{"type":34,"tag":49,"props":727,"children":729},{"className":728},[],[730],{"type":40,"value":78},{"type":40,"value":732}," directories (including of your layers) for font files (supporting ",{"type":34,"tag":49,"props":734,"children":736},{"className":735},[],[737],{"type":40,"value":738},"ttf",{"type":40,"value":88},{"type":34,"tag":49,"props":741,"children":743},{"className":742},[],[744],{"type":40,"value":745},"woff",{"type":40,"value":88},{"type":34,"tag":49,"props":748,"children":750},{"className":749},[],[751],{"type":40,"value":372},{"type":40,"value":88},{"type":34,"tag":49,"props":754,"children":756},{"className":755},[],[757],{"type":40,"value":758},"eot",{"type":40,"value":760}," or ",{"type":34,"tag":49,"props":762,"children":764},{"className":763},[],[765],{"type":40,"value":766},"otf",{"type":40,"value":768}," extensions).",{"type":34,"tag":43,"props":770,"children":771},{},[772,774,779,781,787,789,795,797,803,805,811,813,819,821,827,828,834,836,842,844,850,852,857,859,865,867,872,874,880],{"type":40,"value":773},"Then, when you use a ",{"type":34,"tag":49,"props":775,"children":777},{"className":776},[],[778],{"type":40,"value":54},{"type":40,"value":780}," in your CSS, we check to see whether it matches one of these files. By default, we expect the font file to be the ",{"type":34,"tag":49,"props":782,"children":784},{"className":783},[],[785],{"type":40,"value":786},"400",{"type":40,"value":788}," weight, ",{"type":34,"tag":49,"props":790,"children":792},{"className":791},[],[793],{"type":40,"value":794},"normal",{"type":40,"value":796}," style, and ",{"type":34,"tag":49,"props":798,"children":800},{"className":799},[],[801],{"type":40,"value":802},"latin",{"type":40,"value":804}," subset. To indicate different weights and styles, please include that information in the filename. For example ",{"type":34,"tag":49,"props":806,"children":808},{"className":807},[],[809],{"type":40,"value":810},"comic-sans-ms.woff2",{"type":40,"value":812}," (400/normal/latin; defaults), ",{"type":34,"tag":49,"props":814,"children":816},{"className":815},[],[817],{"type":40,"value":818},"comic-sans-ms-700-italic-cyrillic.woff2",{"type":40,"value":820}," (700/italic/cyrillic). Keywords like ",{"type":34,"tag":49,"props":822,"children":824},{"className":823},[],[825],{"type":40,"value":826},"light",{"type":40,"value":88},{"type":34,"tag":49,"props":829,"children":831},{"className":830},[],[832],{"type":40,"value":833},"bold",{"type":40,"value":835},", or ",{"type":34,"tag":49,"props":837,"children":839},{"className":838},[],[840],{"type":40,"value":841},"black",{"type":40,"value":843}," are accepted in place of a weight number: ",{"type":34,"tag":49,"props":845,"children":847},{"className":846},[],[848],{"type":40,"value":849},"comic-sans-ms-bold.woff2",{"type":40,"value":851},". ",{"type":34,"tag":49,"props":853,"children":855},{"className":854},[],[856],{"type":40,"value":54},{"type":40,"value":858}," values with spaces and/or caps will lookup hyphenated lowercase filenames as well, eg ",{"type":34,"tag":49,"props":860,"children":862},{"className":861},[],[863],{"type":40,"value":864},"font-family: 'Comic Sans MS'",{"type":40,"value":866}," will look for ",{"type":34,"tag":49,"props":868,"children":870},{"className":869},[],[871],{"type":40,"value":810},{"type":40,"value":873}," as well as ",{"type":34,"tag":49,"props":875,"children":877},{"className":876},[],[878],{"type":40,"value":879},"Comic\\ Sans\\ MS.woff2",{"type":40,"value":881}," on disk.",{"type":34,"tag":883,"props":884,"children":886},"callout",{"type":885},"warning",[887],{"type":34,"tag":43,"props":888,"children":889},{},[890,892,898],{"type":40,"value":891},"Please note that the local provider will only attempt to load styles and weights that were configured in the ",{"type":34,"tag":121,"props":893,"children":895},{"href":894},"./configuration#font-options",[896],{"type":40,"value":897},"Font Options",{"type":40,"value":155},{"type":34,"tag":712,"props":900,"children":901},{"id":102},[902],{"type":34,"tag":49,"props":903,"children":905},{"className":904},[],[906],{"type":40,"value":102},{"type":34,"tag":43,"props":908,"children":909},{},[910,916],{"type":34,"tag":121,"props":911,"children":914},{"href":912,"rel":913},"https://fonts.google.com/",[125],[915],{"type":40,"value":128},{"type":40,"value":917}," is one of the best known public font APIs.",{"type":34,"tag":712,"props":919,"children":921},{"id":920},"googleicons",[922],{"type":34,"tag":49,"props":923,"children":925},{"className":924},[],[926],{"type":40,"value":920},{"type":34,"tag":43,"props":928,"children":929},{},[930,937],{"type":34,"tag":121,"props":931,"children":934},{"href":932,"rel":933},"https://fonts.google.com/icons",[125],[935],{"type":40,"value":936},"Google Fonts Icons",{"type":40,"value":938}," adds support for Material Symbols and Material Icons.",{"type":34,"tag":712,"props":940,"children":941},{"id":109},[942],{"type":34,"tag":49,"props":943,"children":945},{"className":944},[],[946],{"type":40,"value":109},{"type":34,"tag":43,"props":948,"children":949},{},[950,957,959,966],{"type":34,"tag":121,"props":951,"children":954},{"href":952,"rel":953},"https://fonts.bunny.net/",[125],[955],{"type":40,"value":956},"Bunny Fonts",{"type":40,"value":958}," is provided by ",{"type":34,"tag":121,"props":960,"children":963},{"href":961,"rel":962},"https://bunny.net/",[125],[964],{"type":40,"value":965},"bunny.net",{"type":40,"value":967}," and is a drop-in Google Fonts compatible API, focusing on privacy.",{"type":34,"tag":712,"props":969,"children":970},{"id":117},[971],{"type":34,"tag":49,"props":972,"children":974},{"className":973},[],[975],{"type":40,"value":117},{"type":34,"tag":43,"props":977,"children":978},{},[979,986],{"type":34,"tag":121,"props":980,"children":983},{"href":981,"rel":982},"https://www.fontshare.com/",[125],[984],{"type":40,"value":985},"Fontshare",{"type":40,"value":987}," is a free font service with 100+ professional-grade fonts from the Indian Type Foundry (ITF).",{"type":34,"tag":883,"props":989,"children":990},{},[991],{"type":34,"tag":43,"props":992,"children":993},{},[994,996,1003,1005,1010],{"type":40,"value":995},"You should read ",{"type":34,"tag":121,"props":997,"children":1000},{"href":998,"rel":999},"https://www.fontshare.com/licenses/itf-ffl",[125],[1001],{"type":40,"value":1002},"their terms in full",{"type":40,"value":1004}," before using a font through ",{"type":34,"tag":49,"props":1006,"children":1008},{"className":1007},[],[1009],{"type":40,"value":117},{"type":40,"value":155},{"type":34,"tag":712,"props":1012,"children":1014},{"id":1013},"fontsource",[1015],{"type":34,"tag":49,"props":1016,"children":1018},{"className":1017},[],[1019],{"type":40,"value":1013},{"type":34,"tag":43,"props":1021,"children":1022},{},[1023,1030],{"type":34,"tag":121,"props":1024,"children":1027},{"href":1025,"rel":1026},"https://fontsource.org/docs/getting-started/introduction",[125],[1028],{"type":40,"value":1029},"Fontsource",{"type":40,"value":1031}," is a collection of open-source fonts that are designed for self-hosting in web applications.",{"type":34,"tag":712,"props":1033,"children":1035},{"id":1034},"adobe",[1036],{"type":34,"tag":49,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":40,"value":1034},{"type":34,"tag":43,"props":1042,"children":1043},{},[1044,1051],{"type":34,"tag":121,"props":1045,"children":1048},{"href":1046,"rel":1047},"https://fonts.adobe.com/",[125],[1049],{"type":40,"value":1050},"Adobe Fonts",{"type":40,"value":1052}," is a font service for both personal and commercial use included with Creative Cloud subscriptions.",{"type":34,"tag":43,"props":1054,"children":1055},{},[1056],{"type":40,"value":1057},"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.",{"type":34,"tag":157,"props":1059,"children":1063},{"className":1060,"code":1061,"language":1062,"meta":27,"style":27},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxt/fonts'],\n  fonts: {\n    adobe: {\n      id: ['\u003Csome-id>', '\u003Canother-kit-id>'],\n    },\n  }\n})\n","ts",[1064],{"type":34,"tag":49,"props":1065,"children":1066},{"__ignoreMap":27},[1067,1094,1135,1151,1167,1221,1229,1237],{"type":34,"tag":167,"props":1068,"children":1069},{"class":169,"line":170},[1070,1075,1080,1085,1089],{"type":34,"tag":167,"props":1071,"children":1072},{"style":252},[1073],{"type":40,"value":1074},"export",{"type":34,"tag":167,"props":1076,"children":1077},{"style":252},[1078],{"type":40,"value":1079}," default",{"type":34,"tag":167,"props":1081,"children":1082},{"style":304},[1083],{"type":40,"value":1084}," defineNuxtConfig",{"type":34,"tag":167,"props":1086,"children":1087},{"style":214},[1088],{"type":40,"value":312},{"type":34,"tag":167,"props":1090,"children":1091},{"style":184},[1092],{"type":40,"value":1093},"{\n",{"type":34,"tag":167,"props":1095,"children":1096},{"class":169,"line":180},[1097,1103,1107,1112,1116,1121,1125,1130],{"type":34,"tag":167,"props":1098,"children":1100},{"style":1099},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1101],{"type":40,"value":1102},"  modules",{"type":34,"tag":167,"props":1104,"children":1105},{"style":184},[1106],{"type":40,"value":187},{"type":34,"tag":167,"props":1108,"children":1109},{"style":214},[1110],{"type":40,"value":1111}," [",{"type":34,"tag":167,"props":1113,"children":1114},{"style":184},[1115],{"type":40,"value":285},{"type":34,"tag":167,"props":1117,"children":1118},{"style":277},[1119],{"type":40,"value":1120},"@nuxt/fonts",{"type":34,"tag":167,"props":1122,"children":1123},{"style":184},[1124],{"type":40,"value":285},{"type":34,"tag":167,"props":1126,"children":1127},{"style":214},[1128],{"type":40,"value":1129},"]",{"type":34,"tag":167,"props":1131,"children":1132},{"style":184},[1133],{"type":40,"value":1134},",\n",{"type":34,"tag":167,"props":1136,"children":1137},{"class":169,"line":200},[1138,1143,1147],{"type":34,"tag":167,"props":1139,"children":1140},{"style":1099},[1141],{"type":40,"value":1142},"  fonts",{"type":34,"tag":167,"props":1144,"children":1145},{"style":184},[1146],{"type":40,"value":187},{"type":34,"tag":167,"props":1148,"children":1149},{"style":184},[1150],{"type":40,"value":197},{"type":34,"tag":167,"props":1152,"children":1153},{"class":169,"line":225},[1154,1159,1163],{"type":34,"tag":167,"props":1155,"children":1156},{"style":1099},[1157],{"type":40,"value":1158},"    adobe",{"type":34,"tag":167,"props":1160,"children":1161},{"style":184},[1162],{"type":40,"value":187},{"type":34,"tag":167,"props":1164,"children":1165},{"style":184},[1166],{"type":40,"value":197},{"type":34,"tag":167,"props":1168,"children":1169},{"class":169,"line":380},[1170,1175,1179,1183,1187,1192,1196,1200,1204,1209,1213,1217],{"type":34,"tag":167,"props":1171,"children":1172},{"style":1099},[1173],{"type":40,"value":1174},"      id",{"type":34,"tag":167,"props":1176,"children":1177},{"style":184},[1178],{"type":40,"value":187},{"type":34,"tag":167,"props":1180,"children":1181},{"style":214},[1182],{"type":40,"value":1111},{"type":34,"tag":167,"props":1184,"children":1185},{"style":184},[1186],{"type":40,"value":285},{"type":34,"tag":167,"props":1188,"children":1189},{"style":277},[1190],{"type":40,"value":1191},"\u003Csome-id>",{"type":34,"tag":167,"props":1193,"children":1194},{"style":184},[1195],{"type":40,"value":285},{"type":34,"tag":167,"props":1197,"children":1198},{"style":184},[1199],{"type":40,"value":432},{"type":34,"tag":167,"props":1201,"children":1202},{"style":184},[1203],{"type":40,"value":274},{"type":34,"tag":167,"props":1205,"children":1206},{"style":277},[1207],{"type":40,"value":1208},"\u003Canother-kit-id>",{"type":34,"tag":167,"props":1210,"children":1211},{"style":184},[1212],{"type":40,"value":285},{"type":34,"tag":167,"props":1214,"children":1215},{"style":214},[1216],{"type":40,"value":1129},{"type":34,"tag":167,"props":1218,"children":1219},{"style":184},[1220],{"type":40,"value":1134},{"type":34,"tag":167,"props":1222,"children":1223},{"class":169,"line":402},[1224],{"type":34,"tag":167,"props":1225,"children":1226},{"style":184},[1227],{"type":40,"value":1228},"    },\n",{"type":34,"tag":167,"props":1230,"children":1231},{"class":169,"line":453},[1232],{"type":34,"tag":167,"props":1233,"children":1234},{"style":184},[1235],{"type":40,"value":1236},"  }\n",{"type":34,"tag":167,"props":1238,"children":1239},{"class":169,"line":476},[1240,1245],{"type":34,"tag":167,"props":1241,"children":1242},{"style":184},[1243],{"type":40,"value":1244},"}",{"type":34,"tag":167,"props":1246,"children":1247},{"style":214},[1248],{"type":40,"value":1249},")\n",{"type":34,"tag":883,"props":1251,"children":1252},{"type":885},[1253],{"type":34,"tag":43,"props":1254,"children":1255},{},[1256],{"type":40,"value":1257},"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.",{"type":34,"tag":883,"props":1259,"children":1260},{"type":885},[1261],{"type":34,"tag":43,"props":1262,"children":1263},{},[1264,1265,1271,1272,1277],{"type":40,"value":995},{"type":34,"tag":121,"props":1266,"children":1269},{"href":1267,"rel":1268},"https://www.adobe.com/legal/terms.html",[125],[1270],{"type":40,"value":1002},{"type":40,"value":1004},{"type":34,"tag":49,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":40,"value":1034},{"type":40,"value":155},{"type":34,"tag":35,"props":1279,"children":1281},{"id":1280},"custom-providers",[1282],{"type":40,"value":1283},"Custom Providers",{"type":34,"tag":43,"props":1285,"children":1286},{},[1287,1289,1300],{"type":40,"value":1288},"The core of the provider API in Nuxt Fonts has been extracted to a common library that can be used by any framework - ",{"type":34,"tag":121,"props":1290,"children":1293},{"href":1291,"rel":1292},"https://github.com/unjs/unifont",[125],[1294],{"type":34,"tag":49,"props":1295,"children":1297},{"className":1296},[],[1298],{"type":40,"value":1299},"unifont",{"type":40,"value":155},{"type":34,"tag":43,"props":1302,"children":1303},{},[1304,1306,1311],{"type":40,"value":1305},"The provider API is likely to evolve in the next few releases of ",{"type":34,"tag":49,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":40,"value":1299},{"type":40,"value":1312},", but at the moment it looks like this:",{"type":34,"tag":157,"props":1314,"children":1316},{"className":1060,"code":1315,"language":1062,"meta":27,"style":27},"import { defineFontProvider } from 'unifont'\n\nexport default defineFontProvider('some-custom-provider', async (options) => {\n  // 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://cdn.org/my-font.woff2', format: 'woff2' },\n              ],\n              weight: 400,\n              style: 'normal',\n            }\n          ]\n        }\n      }\n    }\n  }\n})\n",[1317],{"type":34,"tag":49,"props":1318,"children":1319},{"__ignoreMap":27},[1320,1361,1370,1434,1442,1454,1493,1536,1548,1565,1573,1590,1649,1662,1683,1712,1721,1730,1739,1748,1757,1765],{"type":34,"tag":167,"props":1321,"children":1322},{"class":169,"line":170},[1323,1328,1333,1338,1343,1348,1352,1356],{"type":34,"tag":167,"props":1324,"children":1325},{"style":252},[1326],{"type":40,"value":1327},"import",{"type":34,"tag":167,"props":1329,"children":1330},{"style":184},[1331],{"type":40,"value":1332}," {",{"type":34,"tag":167,"props":1334,"children":1335},{"style":214},[1336],{"type":40,"value":1337}," defineFontProvider",{"type":34,"tag":167,"props":1339,"children":1340},{"style":184},[1341],{"type":40,"value":1342}," }",{"type":34,"tag":167,"props":1344,"children":1345},{"style":252},[1346],{"type":40,"value":1347}," from",{"type":34,"tag":167,"props":1349,"children":1350},{"style":184},[1351],{"type":40,"value":274},{"type":34,"tag":167,"props":1353,"children":1354},{"style":277},[1355],{"type":40,"value":1299},{"type":34,"tag":167,"props":1357,"children":1358},{"style":184},[1359],{"type":40,"value":1360},"'\n",{"type":34,"tag":167,"props":1362,"children":1363},{"class":169,"line":180},[1364],{"type":34,"tag":167,"props":1365,"children":1367},{"emptyLinePlaceholder":1366},true,[1368],{"type":40,"value":1369},"\n",{"type":34,"tag":167,"props":1371,"children":1372},{"class":169,"line":200},[1373,1377,1381,1385,1389,1393,1398,1402,1406,1411,1416,1421,1425,1430],{"type":34,"tag":167,"props":1374,"children":1375},{"style":252},[1376],{"type":40,"value":1074},{"type":34,"tag":167,"props":1378,"children":1379},{"style":252},[1380],{"type":40,"value":1079},{"type":34,"tag":167,"props":1382,"children":1383},{"style":304},[1384],{"type":40,"value":1337},{"type":34,"tag":167,"props":1386,"children":1387},{"style":214},[1388],{"type":40,"value":312},{"type":34,"tag":167,"props":1390,"children":1391},{"style":184},[1392],{"type":40,"value":285},{"type":34,"tag":167,"props":1394,"children":1395},{"style":277},[1396],{"type":40,"value":1397},"some-custom-provider",{"type":34,"tag":167,"props":1399,"children":1400},{"style":184},[1401],{"type":40,"value":285},{"type":34,"tag":167,"props":1403,"children":1404},{"style":184},[1405],{"type":40,"value":432},{"type":34,"tag":167,"props":1407,"children":1408},{"style":190},[1409],{"type":40,"value":1410}," async",{"type":34,"tag":167,"props":1412,"children":1413},{"style":184},[1414],{"type":40,"value":1415}," (",{"type":34,"tag":167,"props":1417,"children":1418},{"style":369},[1419],{"type":40,"value":1420},"options",{"type":34,"tag":167,"props":1422,"children":1423},{"style":184},[1424],{"type":40,"value":357},{"type":34,"tag":167,"props":1426,"children":1427},{"style":190},[1428],{"type":40,"value":1429}," =>",{"type":34,"tag":167,"props":1431,"children":1432},{"style":184},[1433],{"type":40,"value":197},{"type":34,"tag":167,"props":1435,"children":1436},{"class":169,"line":225},[1437],{"type":34,"tag":167,"props":1438,"children":1439},{"style":174},[1440],{"type":40,"value":1441},"  // do some setup\n",{"type":34,"tag":167,"props":1443,"children":1444},{"class":169,"line":380},[1445,1450],{"type":34,"tag":167,"props":1446,"children":1447},{"style":252},[1448],{"type":40,"value":1449},"  return",{"type":34,"tag":167,"props":1451,"children":1452},{"style":184},[1453],{"type":40,"value":197},{"type":34,"tag":167,"props":1455,"children":1456},{"class":169,"line":402},[1457,1462,1467,1471,1476,1480,1485,1489],{"type":34,"tag":167,"props":1458,"children":1459},{"style":190},[1460],{"type":40,"value":1461},"    async",{"type":34,"tag":167,"props":1463,"children":1464},{"style":1099},[1465],{"type":40,"value":1466}," resolveFont ",{"type":34,"tag":167,"props":1468,"children":1469},{"style":184},[1470],{"type":40,"value":312},{"type":34,"tag":167,"props":1472,"children":1473},{"style":369},[1474],{"type":40,"value":1475},"fontFamily",{"type":34,"tag":167,"props":1477,"children":1478},{"style":184},[1479],{"type":40,"value":432},{"type":34,"tag":167,"props":1481,"children":1482},{"style":369},[1483],{"type":40,"value":1484}," options",{"type":34,"tag":167,"props":1486,"children":1487},{"style":184},[1488],{"type":40,"value":357},{"type":34,"tag":167,"props":1490,"children":1491},{"style":184},[1492],{"type":40,"value":197},{"type":34,"tag":167,"props":1494,"children":1495},{"class":169,"line":453},[1496,1501,1505,1509,1514,1518,1523,1527,1532],{"type":34,"tag":167,"props":1497,"children":1498},{"style":252},[1499],{"type":40,"value":1500},"      if",{"type":34,"tag":167,"props":1502,"children":1503},{"style":1099},[1504],{"type":40,"value":1415},{"type":34,"tag":167,"props":1506,"children":1507},{"style":214},[1508],{"type":40,"value":1475},{"type":34,"tag":167,"props":1510,"children":1511},{"style":184},[1512],{"type":40,"value":1513}," ===",{"type":34,"tag":167,"props":1515,"children":1516},{"style":184},[1517],{"type":40,"value":274},{"type":34,"tag":167,"props":1519,"children":1520},{"style":277},[1521],{"type":40,"value":1522},"My Font Family",{"type":34,"tag":167,"props":1524,"children":1525},{"style":184},[1526],{"type":40,"value":285},{"type":34,"tag":167,"props":1528,"children":1529},{"style":1099},[1530],{"type":40,"value":1531},") ",{"type":34,"tag":167,"props":1533,"children":1534},{"style":184},[1535],{"type":40,"value":1093},{"type":34,"tag":167,"props":1537,"children":1538},{"class":169,"line":476},[1539,1544],{"type":34,"tag":167,"props":1540,"children":1541},{"style":252},[1542],{"type":40,"value":1543},"        return",{"type":34,"tag":167,"props":1545,"children":1546},{"style":184},[1547],{"type":40,"value":197},{"type":34,"tag":167,"props":1549,"children":1550},{"class":169,"line":498},[1551,1556,1560],{"type":34,"tag":167,"props":1552,"children":1553},{"style":1099},[1554],{"type":40,"value":1555},"          fonts",{"type":34,"tag":167,"props":1557,"children":1558},{"style":184},[1559],{"type":40,"value":187},{"type":34,"tag":167,"props":1561,"children":1562},{"style":1099},[1563],{"type":40,"value":1564}," [\n",{"type":34,"tag":167,"props":1566,"children":1567},{"class":169,"line":506},[1568],{"type":34,"tag":167,"props":1569,"children":1570},{"style":184},[1571],{"type":40,"value":1572},"            {\n",{"type":34,"tag":167,"props":1574,"children":1576},{"class":169,"line":1575},11,[1577,1582,1586],{"type":34,"tag":167,"props":1578,"children":1579},{"style":1099},[1580],{"type":40,"value":1581},"              src",{"type":34,"tag":167,"props":1583,"children":1584},{"style":184},[1585],{"type":40,"value":187},{"type":34,"tag":167,"props":1587,"children":1588},{"style":1099},[1589],{"type":40,"value":1564},{"type":34,"tag":167,"props":1591,"children":1593},{"class":169,"line":1592},12,[1594,1599,1603,1607,1611,1616,1620,1624,1628,1632,1636,1640,1644],{"type":34,"tag":167,"props":1595,"children":1596},{"style":184},[1597],{"type":40,"value":1598},"                {",{"type":34,"tag":167,"props":1600,"children":1601},{"style":1099},[1602],{"type":40,"value":335},{"type":34,"tag":167,"props":1604,"children":1605},{"style":184},[1606],{"type":40,"value":187},{"type":34,"tag":167,"props":1608,"children":1609},{"style":184},[1610],{"type":40,"value":274},{"type":34,"tag":167,"props":1612,"children":1613},{"style":277},[1614],{"type":40,"value":1615},"https://cdn.org/my-font.woff2",{"type":34,"tag":167,"props":1617,"children":1618},{"style":184},[1619],{"type":40,"value":285},{"type":34,"tag":167,"props":1621,"children":1622},{"style":184},[1623],{"type":40,"value":432},{"type":34,"tag":167,"props":1625,"children":1626},{"style":1099},[1627],{"type":40,"value":362},{"type":34,"tag":167,"props":1629,"children":1630},{"style":184},[1631],{"type":40,"value":187},{"type":34,"tag":167,"props":1633,"children":1634},{"style":184},[1635],{"type":40,"value":274},{"type":34,"tag":167,"props":1637,"children":1638},{"style":277},[1639],{"type":40,"value":372},{"type":34,"tag":167,"props":1641,"children":1642},{"style":184},[1643],{"type":40,"value":285},{"type":34,"tag":167,"props":1645,"children":1646},{"style":184},[1647],{"type":40,"value":1648}," },\n",{"type":34,"tag":167,"props":1650,"children":1652},{"class":169,"line":1651},13,[1653,1658],{"type":34,"tag":167,"props":1654,"children":1655},{"style":1099},[1656],{"type":40,"value":1657},"              ]",{"type":34,"tag":167,"props":1659,"children":1660},{"style":184},[1661],{"type":40,"value":1134},{"type":34,"tag":167,"props":1663,"children":1665},{"class":169,"line":1664},14,[1666,1671,1675,1679],{"type":34,"tag":167,"props":1667,"children":1668},{"style":1099},[1669],{"type":40,"value":1670},"              weight",{"type":34,"tag":167,"props":1672,"children":1673},{"style":184},[1674],{"type":40,"value":187},{"type":34,"tag":167,"props":1676,"children":1677},{"style":466},[1678],{"type":40,"value":469},{"type":34,"tag":167,"props":1680,"children":1681},{"style":184},[1682],{"type":40,"value":1134},{"type":34,"tag":167,"props":1684,"children":1686},{"class":169,"line":1685},15,[1687,1692,1696,1700,1704,1708],{"type":34,"tag":167,"props":1688,"children":1689},{"style":1099},[1690],{"type":40,"value":1691},"              style",{"type":34,"tag":167,"props":1693,"children":1694},{"style":184},[1695],{"type":40,"value":187},{"type":34,"tag":167,"props":1697,"children":1698},{"style":184},[1699],{"type":40,"value":274},{"type":34,"tag":167,"props":1701,"children":1702},{"style":277},[1703],{"type":40,"value":794},{"type":34,"tag":167,"props":1705,"children":1706},{"style":184},[1707],{"type":40,"value":285},{"type":34,"tag":167,"props":1709,"children":1710},{"style":184},[1711],{"type":40,"value":1134},{"type":34,"tag":167,"props":1713,"children":1715},{"class":169,"line":1714},16,[1716],{"type":34,"tag":167,"props":1717,"children":1718},{"style":184},[1719],{"type":40,"value":1720},"            }\n",{"type":34,"tag":167,"props":1722,"children":1724},{"class":169,"line":1723},17,[1725],{"type":34,"tag":167,"props":1726,"children":1727},{"style":1099},[1728],{"type":40,"value":1729},"          ]\n",{"type":34,"tag":167,"props":1731,"children":1733},{"class":169,"line":1732},18,[1734],{"type":34,"tag":167,"props":1735,"children":1736},{"style":184},[1737],{"type":40,"value":1738},"        }\n",{"type":34,"tag":167,"props":1740,"children":1742},{"class":169,"line":1741},19,[1743],{"type":34,"tag":167,"props":1744,"children":1745},{"style":184},[1746],{"type":40,"value":1747},"      }\n",{"type":34,"tag":167,"props":1749,"children":1751},{"class":169,"line":1750},20,[1752],{"type":34,"tag":167,"props":1753,"children":1754},{"style":184},[1755],{"type":40,"value":1756},"    }\n",{"type":34,"tag":167,"props":1758,"children":1760},{"class":169,"line":1759},21,[1761],{"type":34,"tag":167,"props":1762,"children":1763},{"style":184},[1764],{"type":40,"value":1236},{"type":34,"tag":167,"props":1766,"children":1768},{"class":169,"line":1767},22,[1769,1773],{"type":34,"tag":167,"props":1770,"children":1771},{"style":184},[1772],{"type":40,"value":1244},{"type":34,"tag":167,"props":1774,"children":1775},{"style":214},[1776],{"type":40,"value":1249},{"type":34,"tag":43,"props":1778,"children":1779},{},[1780,1782,1788],{"type":40,"value":1781},"Module authors can also add their own providers (or remove existing ones) in the ",{"type":34,"tag":49,"props":1783,"children":1785},{"className":1784},[],[1786],{"type":40,"value":1787},"fonts:providers",{"type":40,"value":1789}," hook which is called by Nuxt Fonts after all modules have run.",{"type":34,"tag":157,"props":1791,"children":1793},{"className":1060,"code":1792,"language":1062,"meta":27,"style":27},"nuxt.hook('fonts:providers', providers => {\n  delete providers.adobe\n\n  providers['custom-provider'] = defineFontProvider('custom-provider', async () => {\n    /** some setup */\n    return {\n      async resolveFont (fontFamily, options) {\n        /** resolve font faces */\n      }\n    }\n  })\n})\n",[1794],{"type":34,"tag":49,"props":1795,"children":1796},{"__ignoreMap":27},[1797,1847,1868,1875,1952,1960,1972,2008,2016,2023,2030,2042],{"type":34,"tag":167,"props":1798,"children":1799},{"class":169,"line":170},[1800,1805,1809,1814,1818,1822,1826,1830,1834,1839,1843],{"type":34,"tag":167,"props":1801,"children":1802},{"style":214},[1803],{"type":40,"value":1804},"nuxt",{"type":34,"tag":167,"props":1806,"children":1807},{"style":184},[1808],{"type":40,"value":155},{"type":34,"tag":167,"props":1810,"children":1811},{"style":304},[1812],{"type":40,"value":1813},"hook",{"type":34,"tag":167,"props":1815,"children":1816},{"style":214},[1817],{"type":40,"value":312},{"type":34,"tag":167,"props":1819,"children":1820},{"style":184},[1821],{"type":40,"value":285},{"type":34,"tag":167,"props":1823,"children":1824},{"style":277},[1825],{"type":40,"value":1787},{"type":34,"tag":167,"props":1827,"children":1828},{"style":184},[1829],{"type":40,"value":285},{"type":34,"tag":167,"props":1831,"children":1832},{"style":184},[1833],{"type":40,"value":432},{"type":34,"tag":167,"props":1835,"children":1836},{"style":369},[1837],{"type":40,"value":1838}," providers",{"type":34,"tag":167,"props":1840,"children":1841},{"style":190},[1842],{"type":40,"value":1429},{"type":34,"tag":167,"props":1844,"children":1845},{"style":184},[1846],{"type":40,"value":197},{"type":34,"tag":167,"props":1848,"children":1849},{"class":169,"line":180},[1850,1855,1859,1863],{"type":34,"tag":167,"props":1851,"children":1852},{"style":184},[1853],{"type":40,"value":1854},"  delete",{"type":34,"tag":167,"props":1856,"children":1857},{"style":214},[1858],{"type":40,"value":1838},{"type":34,"tag":167,"props":1860,"children":1861},{"style":184},[1862],{"type":40,"value":155},{"type":34,"tag":167,"props":1864,"children":1865},{"style":214},[1866],{"type":40,"value":1867},"adobe\n",{"type":34,"tag":167,"props":1869,"children":1870},{"class":169,"line":200},[1871],{"type":34,"tag":167,"props":1872,"children":1873},{"emptyLinePlaceholder":1366},[1874],{"type":40,"value":1369},{"type":34,"tag":167,"props":1876,"children":1877},{"class":169,"line":225},[1878,1883,1888,1892,1897,1901,1906,1911,1915,1919,1923,1927,1931,1935,1939,1944,1948],{"type":34,"tag":167,"props":1879,"children":1880},{"style":214},[1881],{"type":40,"value":1882},"  providers",{"type":34,"tag":167,"props":1884,"children":1885},{"style":1099},[1886],{"type":40,"value":1887},"[",{"type":34,"tag":167,"props":1889,"children":1890},{"style":184},[1891],{"type":40,"value":285},{"type":34,"tag":167,"props":1893,"children":1894},{"style":277},[1895],{"type":40,"value":1896},"custom-provider",{"type":34,"tag":167,"props":1898,"children":1899},{"style":184},[1900],{"type":40,"value":285},{"type":34,"tag":167,"props":1902,"children":1903},{"style":1099},[1904],{"type":40,"value":1905},"] ",{"type":34,"tag":167,"props":1907,"children":1908},{"style":184},[1909],{"type":40,"value":1910},"=",{"type":34,"tag":167,"props":1912,"children":1913},{"style":304},[1914],{"type":40,"value":1337},{"type":34,"tag":167,"props":1916,"children":1917},{"style":1099},[1918],{"type":40,"value":312},{"type":34,"tag":167,"props":1920,"children":1921},{"style":184},[1922],{"type":40,"value":285},{"type":34,"tag":167,"props":1924,"children":1925},{"style":277},[1926],{"type":40,"value":1896},{"type":34,"tag":167,"props":1928,"children":1929},{"style":184},[1930],{"type":40,"value":285},{"type":34,"tag":167,"props":1932,"children":1933},{"style":184},[1934],{"type":40,"value":432},{"type":34,"tag":167,"props":1936,"children":1937},{"style":190},[1938],{"type":40,"value":1410},{"type":34,"tag":167,"props":1940,"children":1941},{"style":184},[1942],{"type":40,"value":1943}," ()",{"type":34,"tag":167,"props":1945,"children":1946},{"style":190},[1947],{"type":40,"value":1429},{"type":34,"tag":167,"props":1949,"children":1950},{"style":184},[1951],{"type":40,"value":197},{"type":34,"tag":167,"props":1953,"children":1954},{"class":169,"line":380},[1955],{"type":34,"tag":167,"props":1956,"children":1957},{"style":174},[1958],{"type":40,"value":1959},"    /** some setup */\n",{"type":34,"tag":167,"props":1961,"children":1962},{"class":169,"line":402},[1963,1968],{"type":34,"tag":167,"props":1964,"children":1965},{"style":252},[1966],{"type":40,"value":1967},"    return",{"type":34,"tag":167,"props":1969,"children":1970},{"style":184},[1971],{"type":40,"value":197},{"type":34,"tag":167,"props":1973,"children":1974},{"class":169,"line":453},[1975,1980,1984,1988,1992,1996,2000,2004],{"type":34,"tag":167,"props":1976,"children":1977},{"style":190},[1978],{"type":40,"value":1979},"      async",{"type":34,"tag":167,"props":1981,"children":1982},{"style":1099},[1983],{"type":40,"value":1466},{"type":34,"tag":167,"props":1985,"children":1986},{"style":184},[1987],{"type":40,"value":312},{"type":34,"tag":167,"props":1989,"children":1990},{"style":369},[1991],{"type":40,"value":1475},{"type":34,"tag":167,"props":1993,"children":1994},{"style":184},[1995],{"type":40,"value":432},{"type":34,"tag":167,"props":1997,"children":1998},{"style":369},[1999],{"type":40,"value":1484},{"type":34,"tag":167,"props":2001,"children":2002},{"style":184},[2003],{"type":40,"value":357},{"type":34,"tag":167,"props":2005,"children":2006},{"style":184},[2007],{"type":40,"value":197},{"type":34,"tag":167,"props":2009,"children":2010},{"class":169,"line":476},[2011],{"type":34,"tag":167,"props":2012,"children":2013},{"style":174},[2014],{"type":40,"value":2015},"        /** resolve font faces */\n",{"type":34,"tag":167,"props":2017,"children":2018},{"class":169,"line":498},[2019],{"type":34,"tag":167,"props":2020,"children":2021},{"style":184},[2022],{"type":40,"value":1747},{"type":34,"tag":167,"props":2024,"children":2025},{"class":169,"line":506},[2026],{"type":34,"tag":167,"props":2027,"children":2028},{"style":184},[2029],{"type":40,"value":1756},{"type":34,"tag":167,"props":2031,"children":2032},{"class":169,"line":1575},[2033,2038],{"type":34,"tag":167,"props":2034,"children":2035},{"style":184},[2036],{"type":40,"value":2037},"  }",{"type":34,"tag":167,"props":2039,"children":2040},{"style":1099},[2041],{"type":40,"value":1249},{"type":34,"tag":167,"props":2043,"children":2044},{"class":169,"line":1592},[2045,2049],{"type":34,"tag":167,"props":2046,"children":2047},{"style":184},[2048],{"type":40,"value":1244},{"type":34,"tag":167,"props":2050,"children":2051},{"style":214},[2052],{"type":40,"value":1249},{"type":34,"tag":680,"props":2054,"children":2055},{},[2056],{"type":40,"value":684},{"title":27,"searchDepth":180,"depth":180,"links":2058},[2059,2068],{"id":702,"depth":180,"text":705,"children":2060},[2061,2062,2063,2064,2065,2066,2067],{"id":714,"depth":200,"text":714},{"id":102,"depth":200,"text":102},{"id":920,"depth":200,"text":920},{"id":109,"depth":200,"text":109},{"id":117,"depth":200,"text":117},{"id":1013,"depth":200,"text":1013},{"id":1034,"depth":200,"text":1034},{"id":1280,"depth":180,"text":1283},"content:1.get-started:4.providers.md","1.get-started/4.providers.md","1.get-started/4.providers",{"_path":25,"_dir":27,"_draft":28,"_partial":28,"_locale":27,"title":24,"description":2073,"body":2074,"_type":688,"_id":2253,"_source":690,"_file":2254,"_stem":2255,"_extension":693},"We can never thank you enough for your contributions.",{"type":31,"children":2075,"toc":2248},[2076,2093,2099,2201,2207],{"type":34,"tag":883,"props":2077,"children":2078},{},[2079],{"type":34,"tag":43,"props":2080,"children":2081},{},[2082,2084,2091],{"type":40,"value":2083},"It is highly recommended to read ",{"type":34,"tag":121,"props":2085,"children":2088},{"href":2086,"rel":2087},"https://nuxt.com/docs/community/contribution",[125],[2089],{"type":40,"value":2090},"the Nuxt contribution guide",{"type":40,"value":2092}," before making any contributions.",{"type":34,"tag":35,"props":2094,"children":2096},{"id":2095},"how-to-contribute",[2097],{"type":40,"value":2098},"How to contribute?",{"type":34,"tag":2100,"props":2101,"children":2102},"ul",{},[2103,2117,2128,2133,2146,2159,2164,2177,2188],{"type":34,"tag":62,"props":2104,"children":2105},{},[2106,2108,2115],{"type":40,"value":2107},"Clone ",{"type":34,"tag":121,"props":2109,"children":2112},{"href":2110,"rel":2111},"https://github.com/nuxt/fonts",[125],[2113],{"type":40,"value":2114},"nuxt/fonts",{"type":40,"value":2116}," repository",{"type":34,"tag":62,"props":2118,"children":2119},{},[2120,2122],{"type":40,"value":2121},"Enable Corepack using ",{"type":34,"tag":49,"props":2123,"children":2125},{"className":2124},[],[2126],{"type":40,"value":2127},"corepack enable",{"type":34,"tag":62,"props":2129,"children":2130},{},[2131],{"type":40,"value":2132},"Install dependencies using pnpm install",{"type":34,"tag":62,"props":2134,"children":2135},{},[2136,2138,2144],{"type":40,"value":2137},"Run ",{"type":34,"tag":49,"props":2139,"children":2141},{"className":2140},[],[2142],{"type":40,"value":2143},"pnpm dev:prepare",{"type":40,"value":2145}," to generate type stubs.",{"type":34,"tag":62,"props":2147,"children":2148},{},[2149,2151,2157],{"type":40,"value":2150},"Use ",{"type":34,"tag":49,"props":2152,"children":2154},{"className":2153},[],[2155],{"type":40,"value":2156},"pnpm dev",{"type":40,"value":2158}," to start the playground in development mode.",{"type":34,"tag":62,"props":2160,"children":2161},{},[2162],{"type":40,"value":2163},"Apply your changes",{"type":34,"tag":62,"props":2165,"children":2166},{},[2167,2169,2175],{"type":40,"value":2168},"Add tests into the ",{"type":34,"tag":49,"props":2170,"children":2172},{"className":2171},[],[2173],{"type":40,"value":2174},"test/",{"type":40,"value":2176}," directory and run pnpm test to make sure they pass.",{"type":34,"tag":62,"props":2178,"children":2179},{},[2180,2182],{"type":40,"value":2181},"Check the code style with ",{"type":34,"tag":49,"props":2183,"children":2185},{"className":2184},[],[2186],{"type":40,"value":2187},"pnpm lint",{"type":34,"tag":62,"props":2189,"children":2190},{},[2191,2193,2199],{"type":40,"value":2192},"Before creating a PR, make sure to run ",{"type":34,"tag":49,"props":2194,"children":2196},{"className":2195},[],[2197],{"type":40,"value":2198},"pnpm build",{"type":40,"value":2200}," and that no errors are reported.",{"type":34,"tag":712,"props":2202,"children":2204},{"id":2203},"documentation",[2205],{"type":40,"value":2206},"Documentation",{"type":34,"tag":2100,"props":2208,"children":2209},{},[2210,2222,2235],{"type":34,"tag":62,"props":2211,"children":2212},{},[2213,2214,2220],{"type":40,"value":2150},{"type":34,"tag":49,"props":2215,"children":2217},{"className":2216},[],[2218],{"type":40,"value":2219},"pnpm docs:dev",{"type":40,"value":2221}," to start the documentation in development mode.",{"type":34,"tag":62,"props":2223,"children":2224},{},[2225,2227,2233],{"type":40,"value":2226},"Open ",{"type":34,"tag":121,"props":2228,"children":2231},{"href":2229,"rel":2230},"http://localhost:3000",[125],[2232],{"type":40,"value":2229},{"type":40,"value":2234}," to view it in the browser.",{"type":34,"tag":62,"props":2236,"children":2237},{},[2238,2240,2246],{"type":40,"value":2239},"Update the content of the documentation in the ",{"type":34,"tag":49,"props":2241,"children":2243},{"className":2242},[],[2244],{"type":40,"value":2245},"docs/content/",{"type":40,"value":2247}," directory.",{"title":27,"searchDepth":180,"depth":180,"links":2249},[2250],{"id":2095,"depth":180,"text":2098,"children":2251},[2252],{"id":2203,"depth":200,"text":2206},"content:3.contributing.md","3.contributing.md","3.contributing",1748853093115]