[{"data":1,"prerenderedAt":2128},["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,1944],{"_path":19,"_dir":696,"_draft":28,"_partial":28,"_locale":27,"title":18,"description":697,"body":698,"_type":688,"_id":1941,"_source":690,"_file":1942,"_stem":1943,"_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":1929},[700,706,711,721,733,769,777,788,797,809,817,838,846,858,882,891,903,912,924,929,1121,1130,1150,1156,1173,1185,1649,1662,1925],{"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],{"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 ttf, woff, woff2, eot or otf extensions).",{"type":34,"tag":43,"props":734,"children":735},{},[736,738,743,745,751,753,759,761,767],{"type":40,"value":737},"Then, when you use a ",{"type":34,"tag":49,"props":739,"children":741},{"className":740},[],[742],{"type":40,"value":54},{"type":40,"value":744}," in your CSS, we check to see whether it matches one of these files. We also expect font weight, font style and subset to be in the file name, unless they are 'default' values (",{"type":34,"tag":49,"props":746,"children":748},{"className":747},[],[749],{"type":40,"value":750},"400",{"type":40,"value":752}," weight, ",{"type":34,"tag":49,"props":754,"children":756},{"className":755},[],[757],{"type":40,"value":758},"normal",{"type":40,"value":760}," style and ",{"type":34,"tag":49,"props":762,"children":764},{"className":763},[],[765],{"type":40,"value":766},"latin",{"type":40,"value":768}," subset).",{"type":34,"tag":712,"props":770,"children":771},{"id":102},[772],{"type":34,"tag":49,"props":773,"children":775},{"className":774},[],[776],{"type":40,"value":102},{"type":34,"tag":43,"props":778,"children":779},{},[780,786],{"type":34,"tag":121,"props":781,"children":784},{"href":782,"rel":783},"https://fonts.google.com/",[125],[785],{"type":40,"value":128},{"type":40,"value":787}," is one of the best known public font APIs.",{"type":34,"tag":712,"props":789,"children":791},{"id":790},"googleicons",[792],{"type":34,"tag":49,"props":793,"children":795},{"className":794},[],[796],{"type":40,"value":790},{"type":34,"tag":43,"props":798,"children":799},{},[800,807],{"type":34,"tag":121,"props":801,"children":804},{"href":802,"rel":803},"https://fonts.google.com/icons",[125],[805],{"type":40,"value":806},"Google Fonts Icons",{"type":40,"value":808}," adds support for Material Symbols and Material Icons.",{"type":34,"tag":712,"props":810,"children":811},{"id":109},[812],{"type":34,"tag":49,"props":813,"children":815},{"className":814},[],[816],{"type":40,"value":109},{"type":34,"tag":43,"props":818,"children":819},{},[820,827,829,836],{"type":34,"tag":121,"props":821,"children":824},{"href":822,"rel":823},"https://fonts.bunny.net/",[125],[825],{"type":40,"value":826},"Bunny Fonts",{"type":40,"value":828}," is provided by ",{"type":34,"tag":121,"props":830,"children":833},{"href":831,"rel":832},"https://bunny.net/",[125],[834],{"type":40,"value":835},"bunny.net",{"type":40,"value":837}," and is a drop-in Google Fonts compatible API, focusing on privacy.",{"type":34,"tag":712,"props":839,"children":840},{"id":117},[841],{"type":34,"tag":49,"props":842,"children":844},{"className":843},[],[845],{"type":40,"value":117},{"type":34,"tag":43,"props":847,"children":848},{},[849,856],{"type":34,"tag":121,"props":850,"children":853},{"href":851,"rel":852},"https://www.fontshare.com/",[125],[854],{"type":40,"value":855},"Fontshare",{"type":40,"value":857}," is a free font service with 100+ professional-grade fonts from the Indian Type Foundry (ITF).",{"type":34,"tag":859,"props":860,"children":861},"callout",{},[862],{"type":34,"tag":43,"props":863,"children":864},{},[865,867,874,876,881],{"type":40,"value":866},"You should read ",{"type":34,"tag":121,"props":868,"children":871},{"href":869,"rel":870},"https://www.fontshare.com/licenses/itf-ffl",[125],[872],{"type":40,"value":873},"their terms in full",{"type":40,"value":875}," before using a font through ",{"type":34,"tag":49,"props":877,"children":879},{"className":878},[],[880],{"type":40,"value":117},{"type":40,"value":155},{"type":34,"tag":712,"props":883,"children":885},{"id":884},"fontsource",[886],{"type":34,"tag":49,"props":887,"children":889},{"className":888},[],[890],{"type":40,"value":884},{"type":34,"tag":43,"props":892,"children":893},{},[894,901],{"type":34,"tag":121,"props":895,"children":898},{"href":896,"rel":897},"https://fontsource.org/docs/getting-started/introduction",[125],[899],{"type":40,"value":900},"Fontsource",{"type":40,"value":902}," is a collection of open-source fonts that are designed for self-hosting in web applications.",{"type":34,"tag":712,"props":904,"children":906},{"id":905},"adobe",[907],{"type":34,"tag":49,"props":908,"children":910},{"className":909},[],[911],{"type":40,"value":905},{"type":34,"tag":43,"props":913,"children":914},{},[915,922],{"type":34,"tag":121,"props":916,"children":919},{"href":917,"rel":918},"https://fonts.adobe.com/",[125],[920],{"type":40,"value":921},"Adobe Fonts",{"type":40,"value":923}," is a font service for both personal and commercial use included with Creative Cloud subscriptions.",{"type":34,"tag":43,"props":925,"children":926},{},[927],{"type":40,"value":928},"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":930,"children":934},{"className":931,"code":932,"language":933,"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",[935],{"type":34,"tag":49,"props":936,"children":937},{"__ignoreMap":27},[938,965,1006,1022,1038,1092,1100,1108],{"type":34,"tag":167,"props":939,"children":940},{"class":169,"line":170},[941,946,951,956,960],{"type":34,"tag":167,"props":942,"children":943},{"style":252},[944],{"type":40,"value":945},"export",{"type":34,"tag":167,"props":947,"children":948},{"style":252},[949],{"type":40,"value":950}," default",{"type":34,"tag":167,"props":952,"children":953},{"style":304},[954],{"type":40,"value":955}," defineNuxtConfig",{"type":34,"tag":167,"props":957,"children":958},{"style":214},[959],{"type":40,"value":312},{"type":34,"tag":167,"props":961,"children":962},{"style":184},[963],{"type":40,"value":964},"{\n",{"type":34,"tag":167,"props":966,"children":967},{"class":169,"line":180},[968,974,978,983,987,992,996,1001],{"type":34,"tag":167,"props":969,"children":971},{"style":970},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[972],{"type":40,"value":973},"  modules",{"type":34,"tag":167,"props":975,"children":976},{"style":184},[977],{"type":40,"value":187},{"type":34,"tag":167,"props":979,"children":980},{"style":214},[981],{"type":40,"value":982}," [",{"type":34,"tag":167,"props":984,"children":985},{"style":184},[986],{"type":40,"value":285},{"type":34,"tag":167,"props":988,"children":989},{"style":277},[990],{"type":40,"value":991},"@nuxt/fonts",{"type":34,"tag":167,"props":993,"children":994},{"style":184},[995],{"type":40,"value":285},{"type":34,"tag":167,"props":997,"children":998},{"style":214},[999],{"type":40,"value":1000},"]",{"type":34,"tag":167,"props":1002,"children":1003},{"style":184},[1004],{"type":40,"value":1005},",\n",{"type":34,"tag":167,"props":1007,"children":1008},{"class":169,"line":200},[1009,1014,1018],{"type":34,"tag":167,"props":1010,"children":1011},{"style":970},[1012],{"type":40,"value":1013},"  fonts",{"type":34,"tag":167,"props":1015,"children":1016},{"style":184},[1017],{"type":40,"value":187},{"type":34,"tag":167,"props":1019,"children":1020},{"style":184},[1021],{"type":40,"value":197},{"type":34,"tag":167,"props":1023,"children":1024},{"class":169,"line":225},[1025,1030,1034],{"type":34,"tag":167,"props":1026,"children":1027},{"style":970},[1028],{"type":40,"value":1029},"    adobe",{"type":34,"tag":167,"props":1031,"children":1032},{"style":184},[1033],{"type":40,"value":187},{"type":34,"tag":167,"props":1035,"children":1036},{"style":184},[1037],{"type":40,"value":197},{"type":34,"tag":167,"props":1039,"children":1040},{"class":169,"line":380},[1041,1046,1050,1054,1058,1063,1067,1071,1075,1080,1084,1088],{"type":34,"tag":167,"props":1042,"children":1043},{"style":970},[1044],{"type":40,"value":1045},"      id",{"type":34,"tag":167,"props":1047,"children":1048},{"style":184},[1049],{"type":40,"value":187},{"type":34,"tag":167,"props":1051,"children":1052},{"style":214},[1053],{"type":40,"value":982},{"type":34,"tag":167,"props":1055,"children":1056},{"style":184},[1057],{"type":40,"value":285},{"type":34,"tag":167,"props":1059,"children":1060},{"style":277},[1061],{"type":40,"value":1062},"\u003Csome-id>",{"type":34,"tag":167,"props":1064,"children":1065},{"style":184},[1066],{"type":40,"value":285},{"type":34,"tag":167,"props":1068,"children":1069},{"style":184},[1070],{"type":40,"value":432},{"type":34,"tag":167,"props":1072,"children":1073},{"style":184},[1074],{"type":40,"value":274},{"type":34,"tag":167,"props":1076,"children":1077},{"style":277},[1078],{"type":40,"value":1079},"\u003Canother-kit-id>",{"type":34,"tag":167,"props":1081,"children":1082},{"style":184},[1083],{"type":40,"value":285},{"type":34,"tag":167,"props":1085,"children":1086},{"style":214},[1087],{"type":40,"value":1000},{"type":34,"tag":167,"props":1089,"children":1090},{"style":184},[1091],{"type":40,"value":1005},{"type":34,"tag":167,"props":1093,"children":1094},{"class":169,"line":402},[1095],{"type":34,"tag":167,"props":1096,"children":1097},{"style":184},[1098],{"type":40,"value":1099},"    },\n",{"type":34,"tag":167,"props":1101,"children":1102},{"class":169,"line":453},[1103],{"type":34,"tag":167,"props":1104,"children":1105},{"style":184},[1106],{"type":40,"value":1107},"  }\n",{"type":34,"tag":167,"props":1109,"children":1110},{"class":169,"line":476},[1111,1116],{"type":34,"tag":167,"props":1112,"children":1113},{"style":184},[1114],{"type":40,"value":1115},"}",{"type":34,"tag":167,"props":1117,"children":1118},{"style":214},[1119],{"type":40,"value":1120},")\n",{"type":34,"tag":859,"props":1122,"children":1124},{"type":1123},"warning",[1125],{"type":34,"tag":43,"props":1126,"children":1127},{},[1128],{"type":40,"value":1129},"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":859,"props":1131,"children":1132},{"type":1123},[1133],{"type":34,"tag":43,"props":1134,"children":1135},{},[1136,1137,1143,1144,1149],{"type":40,"value":866},{"type":34,"tag":121,"props":1138,"children":1141},{"href":1139,"rel":1140},"https://www.adobe.com/legal/terms.html",[125],[1142],{"type":40,"value":873},{"type":40,"value":875},{"type":34,"tag":49,"props":1145,"children":1147},{"className":1146},[],[1148],{"type":40,"value":905},{"type":40,"value":155},{"type":34,"tag":35,"props":1151,"children":1153},{"id":1152},"custom-providers",[1154],{"type":40,"value":1155},"Custom Providers",{"type":34,"tag":43,"props":1157,"children":1158},{},[1159,1161,1172],{"type":40,"value":1160},"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":1162,"children":1165},{"href":1163,"rel":1164},"https://github.com/unjs/unifont",[125],[1166],{"type":34,"tag":49,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":40,"value":1171},"unifont",{"type":40,"value":155},{"type":34,"tag":43,"props":1174,"children":1175},{},[1176,1178,1183],{"type":40,"value":1177},"The provider API is likely to evolve in the next few releases of ",{"type":34,"tag":49,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":40,"value":1171},{"type":40,"value":1184},", but at the moment it looks like this:",{"type":34,"tag":157,"props":1186,"children":1188},{"className":931,"code":1187,"language":933,"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",[1189],{"type":34,"tag":49,"props":1190,"children":1191},{"__ignoreMap":27},[1192,1233,1242,1306,1314,1326,1365,1408,1420,1437,1445,1462,1521,1534,1555,1584,1593,1602,1611,1620,1629,1637],{"type":34,"tag":167,"props":1193,"children":1194},{"class":169,"line":170},[1195,1200,1205,1210,1215,1220,1224,1228],{"type":34,"tag":167,"props":1196,"children":1197},{"style":252},[1198],{"type":40,"value":1199},"import",{"type":34,"tag":167,"props":1201,"children":1202},{"style":184},[1203],{"type":40,"value":1204}," {",{"type":34,"tag":167,"props":1206,"children":1207},{"style":214},[1208],{"type":40,"value":1209}," defineFontProvider",{"type":34,"tag":167,"props":1211,"children":1212},{"style":184},[1213],{"type":40,"value":1214}," }",{"type":34,"tag":167,"props":1216,"children":1217},{"style":252},[1218],{"type":40,"value":1219}," from",{"type":34,"tag":167,"props":1221,"children":1222},{"style":184},[1223],{"type":40,"value":274},{"type":34,"tag":167,"props":1225,"children":1226},{"style":277},[1227],{"type":40,"value":1171},{"type":34,"tag":167,"props":1229,"children":1230},{"style":184},[1231],{"type":40,"value":1232},"'\n",{"type":34,"tag":167,"props":1234,"children":1235},{"class":169,"line":180},[1236],{"type":34,"tag":167,"props":1237,"children":1239},{"emptyLinePlaceholder":1238},true,[1240],{"type":40,"value":1241},"\n",{"type":34,"tag":167,"props":1243,"children":1244},{"class":169,"line":200},[1245,1249,1253,1257,1261,1265,1270,1274,1278,1283,1288,1293,1297,1302],{"type":34,"tag":167,"props":1246,"children":1247},{"style":252},[1248],{"type":40,"value":945},{"type":34,"tag":167,"props":1250,"children":1251},{"style":252},[1252],{"type":40,"value":950},{"type":34,"tag":167,"props":1254,"children":1255},{"style":304},[1256],{"type":40,"value":1209},{"type":34,"tag":167,"props":1258,"children":1259},{"style":214},[1260],{"type":40,"value":312},{"type":34,"tag":167,"props":1262,"children":1263},{"style":184},[1264],{"type":40,"value":285},{"type":34,"tag":167,"props":1266,"children":1267},{"style":277},[1268],{"type":40,"value":1269},"some-custom-provider",{"type":34,"tag":167,"props":1271,"children":1272},{"style":184},[1273],{"type":40,"value":285},{"type":34,"tag":167,"props":1275,"children":1276},{"style":184},[1277],{"type":40,"value":432},{"type":34,"tag":167,"props":1279,"children":1280},{"style":190},[1281],{"type":40,"value":1282}," async",{"type":34,"tag":167,"props":1284,"children":1285},{"style":184},[1286],{"type":40,"value":1287}," (",{"type":34,"tag":167,"props":1289,"children":1290},{"style":369},[1291],{"type":40,"value":1292},"options",{"type":34,"tag":167,"props":1294,"children":1295},{"style":184},[1296],{"type":40,"value":357},{"type":34,"tag":167,"props":1298,"children":1299},{"style":190},[1300],{"type":40,"value":1301}," =>",{"type":34,"tag":167,"props":1303,"children":1304},{"style":184},[1305],{"type":40,"value":197},{"type":34,"tag":167,"props":1307,"children":1308},{"class":169,"line":225},[1309],{"type":34,"tag":167,"props":1310,"children":1311},{"style":174},[1312],{"type":40,"value":1313},"  // do some setup\n",{"type":34,"tag":167,"props":1315,"children":1316},{"class":169,"line":380},[1317,1322],{"type":34,"tag":167,"props":1318,"children":1319},{"style":252},[1320],{"type":40,"value":1321},"  return",{"type":34,"tag":167,"props":1323,"children":1324},{"style":184},[1325],{"type":40,"value":197},{"type":34,"tag":167,"props":1327,"children":1328},{"class":169,"line":402},[1329,1334,1339,1343,1348,1352,1357,1361],{"type":34,"tag":167,"props":1330,"children":1331},{"style":190},[1332],{"type":40,"value":1333},"    async",{"type":34,"tag":167,"props":1335,"children":1336},{"style":970},[1337],{"type":40,"value":1338}," resolveFont ",{"type":34,"tag":167,"props":1340,"children":1341},{"style":184},[1342],{"type":40,"value":312},{"type":34,"tag":167,"props":1344,"children":1345},{"style":369},[1346],{"type":40,"value":1347},"fontFamily",{"type":34,"tag":167,"props":1349,"children":1350},{"style":184},[1351],{"type":40,"value":432},{"type":34,"tag":167,"props":1353,"children":1354},{"style":369},[1355],{"type":40,"value":1356}," options",{"type":34,"tag":167,"props":1358,"children":1359},{"style":184},[1360],{"type":40,"value":357},{"type":34,"tag":167,"props":1362,"children":1363},{"style":184},[1364],{"type":40,"value":197},{"type":34,"tag":167,"props":1366,"children":1367},{"class":169,"line":453},[1368,1373,1377,1381,1386,1390,1395,1399,1404],{"type":34,"tag":167,"props":1369,"children":1370},{"style":252},[1371],{"type":40,"value":1372},"      if",{"type":34,"tag":167,"props":1374,"children":1375},{"style":970},[1376],{"type":40,"value":1287},{"type":34,"tag":167,"props":1378,"children":1379},{"style":214},[1380],{"type":40,"value":1347},{"type":34,"tag":167,"props":1382,"children":1383},{"style":184},[1384],{"type":40,"value":1385}," ===",{"type":34,"tag":167,"props":1387,"children":1388},{"style":184},[1389],{"type":40,"value":274},{"type":34,"tag":167,"props":1391,"children":1392},{"style":277},[1393],{"type":40,"value":1394},"My Font Family",{"type":34,"tag":167,"props":1396,"children":1397},{"style":184},[1398],{"type":40,"value":285},{"type":34,"tag":167,"props":1400,"children":1401},{"style":970},[1402],{"type":40,"value":1403},") ",{"type":34,"tag":167,"props":1405,"children":1406},{"style":184},[1407],{"type":40,"value":964},{"type":34,"tag":167,"props":1409,"children":1410},{"class":169,"line":476},[1411,1416],{"type":34,"tag":167,"props":1412,"children":1413},{"style":252},[1414],{"type":40,"value":1415},"        return",{"type":34,"tag":167,"props":1417,"children":1418},{"style":184},[1419],{"type":40,"value":197},{"type":34,"tag":167,"props":1421,"children":1422},{"class":169,"line":498},[1423,1428,1432],{"type":34,"tag":167,"props":1424,"children":1425},{"style":970},[1426],{"type":40,"value":1427},"          fonts",{"type":34,"tag":167,"props":1429,"children":1430},{"style":184},[1431],{"type":40,"value":187},{"type":34,"tag":167,"props":1433,"children":1434},{"style":970},[1435],{"type":40,"value":1436}," [\n",{"type":34,"tag":167,"props":1438,"children":1439},{"class":169,"line":506},[1440],{"type":34,"tag":167,"props":1441,"children":1442},{"style":184},[1443],{"type":40,"value":1444},"            {\n",{"type":34,"tag":167,"props":1446,"children":1448},{"class":169,"line":1447},11,[1449,1454,1458],{"type":34,"tag":167,"props":1450,"children":1451},{"style":970},[1452],{"type":40,"value":1453},"              src",{"type":34,"tag":167,"props":1455,"children":1456},{"style":184},[1457],{"type":40,"value":187},{"type":34,"tag":167,"props":1459,"children":1460},{"style":970},[1461],{"type":40,"value":1436},{"type":34,"tag":167,"props":1463,"children":1465},{"class":169,"line":1464},12,[1466,1471,1475,1479,1483,1488,1492,1496,1500,1504,1508,1512,1516],{"type":34,"tag":167,"props":1467,"children":1468},{"style":184},[1469],{"type":40,"value":1470},"                {",{"type":34,"tag":167,"props":1472,"children":1473},{"style":970},[1474],{"type":40,"value":335},{"type":34,"tag":167,"props":1476,"children":1477},{"style":184},[1478],{"type":40,"value":187},{"type":34,"tag":167,"props":1480,"children":1481},{"style":184},[1482],{"type":40,"value":274},{"type":34,"tag":167,"props":1484,"children":1485},{"style":277},[1486],{"type":40,"value":1487},"https://cdn.org/my-font.woff2",{"type":34,"tag":167,"props":1489,"children":1490},{"style":184},[1491],{"type":40,"value":285},{"type":34,"tag":167,"props":1493,"children":1494},{"style":184},[1495],{"type":40,"value":432},{"type":34,"tag":167,"props":1497,"children":1498},{"style":970},[1499],{"type":40,"value":362},{"type":34,"tag":167,"props":1501,"children":1502},{"style":184},[1503],{"type":40,"value":187},{"type":34,"tag":167,"props":1505,"children":1506},{"style":184},[1507],{"type":40,"value":274},{"type":34,"tag":167,"props":1509,"children":1510},{"style":277},[1511],{"type":40,"value":372},{"type":34,"tag":167,"props":1513,"children":1514},{"style":184},[1515],{"type":40,"value":285},{"type":34,"tag":167,"props":1517,"children":1518},{"style":184},[1519],{"type":40,"value":1520}," },\n",{"type":34,"tag":167,"props":1522,"children":1524},{"class":169,"line":1523},13,[1525,1530],{"type":34,"tag":167,"props":1526,"children":1527},{"style":970},[1528],{"type":40,"value":1529},"              ]",{"type":34,"tag":167,"props":1531,"children":1532},{"style":184},[1533],{"type":40,"value":1005},{"type":34,"tag":167,"props":1535,"children":1537},{"class":169,"line":1536},14,[1538,1543,1547,1551],{"type":34,"tag":167,"props":1539,"children":1540},{"style":970},[1541],{"type":40,"value":1542},"              weight",{"type":34,"tag":167,"props":1544,"children":1545},{"style":184},[1546],{"type":40,"value":187},{"type":34,"tag":167,"props":1548,"children":1549},{"style":466},[1550],{"type":40,"value":469},{"type":34,"tag":167,"props":1552,"children":1553},{"style":184},[1554],{"type":40,"value":1005},{"type":34,"tag":167,"props":1556,"children":1558},{"class":169,"line":1557},15,[1559,1564,1568,1572,1576,1580],{"type":34,"tag":167,"props":1560,"children":1561},{"style":970},[1562],{"type":40,"value":1563},"              style",{"type":34,"tag":167,"props":1565,"children":1566},{"style":184},[1567],{"type":40,"value":187},{"type":34,"tag":167,"props":1569,"children":1570},{"style":184},[1571],{"type":40,"value":274},{"type":34,"tag":167,"props":1573,"children":1574},{"style":277},[1575],{"type":40,"value":758},{"type":34,"tag":167,"props":1577,"children":1578},{"style":184},[1579],{"type":40,"value":285},{"type":34,"tag":167,"props":1581,"children":1582},{"style":184},[1583],{"type":40,"value":1005},{"type":34,"tag":167,"props":1585,"children":1587},{"class":169,"line":1586},16,[1588],{"type":34,"tag":167,"props":1589,"children":1590},{"style":184},[1591],{"type":40,"value":1592},"            }\n",{"type":34,"tag":167,"props":1594,"children":1596},{"class":169,"line":1595},17,[1597],{"type":34,"tag":167,"props":1598,"children":1599},{"style":970},[1600],{"type":40,"value":1601},"          ]\n",{"type":34,"tag":167,"props":1603,"children":1605},{"class":169,"line":1604},18,[1606],{"type":34,"tag":167,"props":1607,"children":1608},{"style":184},[1609],{"type":40,"value":1610},"        }\n",{"type":34,"tag":167,"props":1612,"children":1614},{"class":169,"line":1613},19,[1615],{"type":34,"tag":167,"props":1616,"children":1617},{"style":184},[1618],{"type":40,"value":1619},"      }\n",{"type":34,"tag":167,"props":1621,"children":1623},{"class":169,"line":1622},20,[1624],{"type":34,"tag":167,"props":1625,"children":1626},{"style":184},[1627],{"type":40,"value":1628},"    }\n",{"type":34,"tag":167,"props":1630,"children":1632},{"class":169,"line":1631},21,[1633],{"type":34,"tag":167,"props":1634,"children":1635},{"style":184},[1636],{"type":40,"value":1107},{"type":34,"tag":167,"props":1638,"children":1640},{"class":169,"line":1639},22,[1641,1645],{"type":34,"tag":167,"props":1642,"children":1643},{"style":184},[1644],{"type":40,"value":1115},{"type":34,"tag":167,"props":1646,"children":1647},{"style":214},[1648],{"type":40,"value":1120},{"type":34,"tag":43,"props":1650,"children":1651},{},[1652,1654,1660],{"type":40,"value":1653},"Module authors can also add their own providers (or remove existing ones) in the ",{"type":34,"tag":49,"props":1655,"children":1657},{"className":1656},[],[1658],{"type":40,"value":1659},"fonts:providers",{"type":40,"value":1661}," hook which is called by Nuxt Fonts after all modules have run.",{"type":34,"tag":157,"props":1663,"children":1665},{"className":931,"code":1664,"language":933,"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",[1666],{"type":34,"tag":49,"props":1667,"children":1668},{"__ignoreMap":27},[1669,1719,1740,1747,1824,1832,1844,1880,1888,1895,1902,1914],{"type":34,"tag":167,"props":1670,"children":1671},{"class":169,"line":170},[1672,1677,1681,1686,1690,1694,1698,1702,1706,1711,1715],{"type":34,"tag":167,"props":1673,"children":1674},{"style":214},[1675],{"type":40,"value":1676},"nuxt",{"type":34,"tag":167,"props":1678,"children":1679},{"style":184},[1680],{"type":40,"value":155},{"type":34,"tag":167,"props":1682,"children":1683},{"style":304},[1684],{"type":40,"value":1685},"hook",{"type":34,"tag":167,"props":1687,"children":1688},{"style":214},[1689],{"type":40,"value":312},{"type":34,"tag":167,"props":1691,"children":1692},{"style":184},[1693],{"type":40,"value":285},{"type":34,"tag":167,"props":1695,"children":1696},{"style":277},[1697],{"type":40,"value":1659},{"type":34,"tag":167,"props":1699,"children":1700},{"style":184},[1701],{"type":40,"value":285},{"type":34,"tag":167,"props":1703,"children":1704},{"style":184},[1705],{"type":40,"value":432},{"type":34,"tag":167,"props":1707,"children":1708},{"style":369},[1709],{"type":40,"value":1710}," providers",{"type":34,"tag":167,"props":1712,"children":1713},{"style":190},[1714],{"type":40,"value":1301},{"type":34,"tag":167,"props":1716,"children":1717},{"style":184},[1718],{"type":40,"value":197},{"type":34,"tag":167,"props":1720,"children":1721},{"class":169,"line":180},[1722,1727,1731,1735],{"type":34,"tag":167,"props":1723,"children":1724},{"style":184},[1725],{"type":40,"value":1726},"  delete",{"type":34,"tag":167,"props":1728,"children":1729},{"style":214},[1730],{"type":40,"value":1710},{"type":34,"tag":167,"props":1732,"children":1733},{"style":184},[1734],{"type":40,"value":155},{"type":34,"tag":167,"props":1736,"children":1737},{"style":214},[1738],{"type":40,"value":1739},"adobe\n",{"type":34,"tag":167,"props":1741,"children":1742},{"class":169,"line":200},[1743],{"type":34,"tag":167,"props":1744,"children":1745},{"emptyLinePlaceholder":1238},[1746],{"type":40,"value":1241},{"type":34,"tag":167,"props":1748,"children":1749},{"class":169,"line":225},[1750,1755,1760,1764,1769,1773,1778,1783,1787,1791,1795,1799,1803,1807,1811,1816,1820],{"type":34,"tag":167,"props":1751,"children":1752},{"style":214},[1753],{"type":40,"value":1754},"  providers",{"type":34,"tag":167,"props":1756,"children":1757},{"style":970},[1758],{"type":40,"value":1759},"[",{"type":34,"tag":167,"props":1761,"children":1762},{"style":184},[1763],{"type":40,"value":285},{"type":34,"tag":167,"props":1765,"children":1766},{"style":277},[1767],{"type":40,"value":1768},"custom-provider",{"type":34,"tag":167,"props":1770,"children":1771},{"style":184},[1772],{"type":40,"value":285},{"type":34,"tag":167,"props":1774,"children":1775},{"style":970},[1776],{"type":40,"value":1777},"] ",{"type":34,"tag":167,"props":1779,"children":1780},{"style":184},[1781],{"type":40,"value":1782},"=",{"type":34,"tag":167,"props":1784,"children":1785},{"style":304},[1786],{"type":40,"value":1209},{"type":34,"tag":167,"props":1788,"children":1789},{"style":970},[1790],{"type":40,"value":312},{"type":34,"tag":167,"props":1792,"children":1793},{"style":184},[1794],{"type":40,"value":285},{"type":34,"tag":167,"props":1796,"children":1797},{"style":277},[1798],{"type":40,"value":1768},{"type":34,"tag":167,"props":1800,"children":1801},{"style":184},[1802],{"type":40,"value":285},{"type":34,"tag":167,"props":1804,"children":1805},{"style":184},[1806],{"type":40,"value":432},{"type":34,"tag":167,"props":1808,"children":1809},{"style":190},[1810],{"type":40,"value":1282},{"type":34,"tag":167,"props":1812,"children":1813},{"style":184},[1814],{"type":40,"value":1815}," ()",{"type":34,"tag":167,"props":1817,"children":1818},{"style":190},[1819],{"type":40,"value":1301},{"type":34,"tag":167,"props":1821,"children":1822},{"style":184},[1823],{"type":40,"value":197},{"type":34,"tag":167,"props":1825,"children":1826},{"class":169,"line":380},[1827],{"type":34,"tag":167,"props":1828,"children":1829},{"style":174},[1830],{"type":40,"value":1831},"    /** some setup */\n",{"type":34,"tag":167,"props":1833,"children":1834},{"class":169,"line":402},[1835,1840],{"type":34,"tag":167,"props":1836,"children":1837},{"style":252},[1838],{"type":40,"value":1839},"    return",{"type":34,"tag":167,"props":1841,"children":1842},{"style":184},[1843],{"type":40,"value":197},{"type":34,"tag":167,"props":1845,"children":1846},{"class":169,"line":453},[1847,1852,1856,1860,1864,1868,1872,1876],{"type":34,"tag":167,"props":1848,"children":1849},{"style":190},[1850],{"type":40,"value":1851},"      async",{"type":34,"tag":167,"props":1853,"children":1854},{"style":970},[1855],{"type":40,"value":1338},{"type":34,"tag":167,"props":1857,"children":1858},{"style":184},[1859],{"type":40,"value":312},{"type":34,"tag":167,"props":1861,"children":1862},{"style":369},[1863],{"type":40,"value":1347},{"type":34,"tag":167,"props":1865,"children":1866},{"style":184},[1867],{"type":40,"value":432},{"type":34,"tag":167,"props":1869,"children":1870},{"style":369},[1871],{"type":40,"value":1356},{"type":34,"tag":167,"props":1873,"children":1874},{"style":184},[1875],{"type":40,"value":357},{"type":34,"tag":167,"props":1877,"children":1878},{"style":184},[1879],{"type":40,"value":197},{"type":34,"tag":167,"props":1881,"children":1882},{"class":169,"line":476},[1883],{"type":34,"tag":167,"props":1884,"children":1885},{"style":174},[1886],{"type":40,"value":1887},"        /** resolve font faces */\n",{"type":34,"tag":167,"props":1889,"children":1890},{"class":169,"line":498},[1891],{"type":34,"tag":167,"props":1892,"children":1893},{"style":184},[1894],{"type":40,"value":1619},{"type":34,"tag":167,"props":1896,"children":1897},{"class":169,"line":506},[1898],{"type":34,"tag":167,"props":1899,"children":1900},{"style":184},[1901],{"type":40,"value":1628},{"type":34,"tag":167,"props":1903,"children":1904},{"class":169,"line":1447},[1905,1910],{"type":34,"tag":167,"props":1906,"children":1907},{"style":184},[1908],{"type":40,"value":1909},"  }",{"type":34,"tag":167,"props":1911,"children":1912},{"style":970},[1913],{"type":40,"value":1120},{"type":34,"tag":167,"props":1915,"children":1916},{"class":169,"line":1464},[1917,1921],{"type":34,"tag":167,"props":1918,"children":1919},{"style":184},[1920],{"type":40,"value":1115},{"type":34,"tag":167,"props":1922,"children":1923},{"style":214},[1924],{"type":40,"value":1120},{"type":34,"tag":680,"props":1926,"children":1927},{},[1928],{"type":40,"value":684},{"title":27,"searchDepth":180,"depth":180,"links":1930},[1931,1940],{"id":702,"depth":180,"text":705,"children":1932},[1933,1934,1935,1936,1937,1938,1939],{"id":714,"depth":200,"text":714},{"id":102,"depth":200,"text":102},{"id":790,"depth":200,"text":790},{"id":109,"depth":200,"text":109},{"id":117,"depth":200,"text":117},{"id":884,"depth":200,"text":884},{"id":905,"depth":200,"text":905},{"id":1152,"depth":180,"text":1155},"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":1945,"body":1946,"_type":688,"_id":2125,"_source":690,"_file":2126,"_stem":2127,"_extension":693},"We can never thank you enough for your contributions.",{"type":31,"children":1947,"toc":2120},[1948,1965,1971,2073,2079],{"type":34,"tag":859,"props":1949,"children":1950},{},[1951],{"type":34,"tag":43,"props":1952,"children":1953},{},[1954,1956,1963],{"type":40,"value":1955},"It is highly recommended to read ",{"type":34,"tag":121,"props":1957,"children":1960},{"href":1958,"rel":1959},"https://nuxt.com/docs/community/contribution",[125],[1961],{"type":40,"value":1962},"the Nuxt contribution guide",{"type":40,"value":1964}," before making any contributions.",{"type":34,"tag":35,"props":1966,"children":1968},{"id":1967},"how-to-contribute",[1969],{"type":40,"value":1970},"How to contribute?",{"type":34,"tag":1972,"props":1973,"children":1974},"ul",{},[1975,1989,2000,2005,2018,2031,2036,2049,2060],{"type":34,"tag":62,"props":1976,"children":1977},{},[1978,1980,1987],{"type":40,"value":1979},"Clone ",{"type":34,"tag":121,"props":1981,"children":1984},{"href":1982,"rel":1983},"https://github.com/nuxt/fonts",[125],[1985],{"type":40,"value":1986},"nuxt/fonts",{"type":40,"value":1988}," repository",{"type":34,"tag":62,"props":1990,"children":1991},{},[1992,1994],{"type":40,"value":1993},"Enable Corepack using ",{"type":34,"tag":49,"props":1995,"children":1997},{"className":1996},[],[1998],{"type":40,"value":1999},"corepack enable",{"type":34,"tag":62,"props":2001,"children":2002},{},[2003],{"type":40,"value":2004},"Install dependencies using pnpm install",{"type":34,"tag":62,"props":2006,"children":2007},{},[2008,2010,2016],{"type":40,"value":2009},"Run ",{"type":34,"tag":49,"props":2011,"children":2013},{"className":2012},[],[2014],{"type":40,"value":2015},"pnpm dev:prepare",{"type":40,"value":2017}," to generate type stubs.",{"type":34,"tag":62,"props":2019,"children":2020},{},[2021,2023,2029],{"type":40,"value":2022},"Use ",{"type":34,"tag":49,"props":2024,"children":2026},{"className":2025},[],[2027],{"type":40,"value":2028},"pnpm dev",{"type":40,"value":2030}," to start the playground in development mode.",{"type":34,"tag":62,"props":2032,"children":2033},{},[2034],{"type":40,"value":2035},"Apply your changes",{"type":34,"tag":62,"props":2037,"children":2038},{},[2039,2041,2047],{"type":40,"value":2040},"Add tests into the ",{"type":34,"tag":49,"props":2042,"children":2044},{"className":2043},[],[2045],{"type":40,"value":2046},"test/",{"type":40,"value":2048}," directory and run pnpm test to make sure they pass.",{"type":34,"tag":62,"props":2050,"children":2051},{},[2052,2054],{"type":40,"value":2053},"Check the code style with ",{"type":34,"tag":49,"props":2055,"children":2057},{"className":2056},[],[2058],{"type":40,"value":2059},"pnpm lint",{"type":34,"tag":62,"props":2061,"children":2062},{},[2063,2065,2071],{"type":40,"value":2064},"Before creating a PR, make sure to run ",{"type":34,"tag":49,"props":2066,"children":2068},{"className":2067},[],[2069],{"type":40,"value":2070},"pnpm build",{"type":40,"value":2072}," and that no errors are reported.",{"type":34,"tag":712,"props":2074,"children":2076},{"id":2075},"documentation",[2077],{"type":40,"value":2078},"Documentation",{"type":34,"tag":1972,"props":2080,"children":2081},{},[2082,2094,2107],{"type":34,"tag":62,"props":2083,"children":2084},{},[2085,2086,2092],{"type":40,"value":2022},{"type":34,"tag":49,"props":2087,"children":2089},{"className":2088},[],[2090],{"type":40,"value":2091},"pnpm docs:dev",{"type":40,"value":2093}," to start the documentation in development mode.",{"type":34,"tag":62,"props":2095,"children":2096},{},[2097,2099,2105],{"type":40,"value":2098},"Open ",{"type":34,"tag":121,"props":2100,"children":2103},{"href":2101,"rel":2102},"http://localhost:3000",[125],[2104],{"type":40,"value":2101},{"type":40,"value":2106}," to view it in the browser.",{"type":34,"tag":62,"props":2108,"children":2109},{},[2110,2112,2118],{"type":40,"value":2111},"Update the content of the documentation in the ",{"type":34,"tag":49,"props":2113,"children":2115},{"className":2114},[],[2116],{"type":40,"value":2117},"docs/content/",{"type":40,"value":2119}," directory.",{"title":27,"searchDepth":180,"depth":180,"links":2121},[2122],{"id":1967,"depth":180,"text":1970,"children":2123},[2124],{"id":2075,"depth":200,"text":2078},"content:3.contributing.md","3.contributing.md","3.contributing",1728912105954]