使用 Typekit / Adobe Fonts 和 @next/font

问题描述 投票:0回答:2

当前的 Next.js 字体优化文档@next/font API 参考 描述了如何引入 Google Fonts 以及本地字体文件,但没有描述引入 Typekit / Adobe Fonts 的最佳实践。

使用 Typekit / Adobe Fonts 以便应用 Next.js 优化的最佳方式是什么?

next.js typekit
2个回答
6
投票

@next/font
尚不支持 Typekit,并且其 GitHub 存储库上没有任何相关问题(可能是由于 Typekit 本身施加的法律限制)。

但是,这并不意味着您不能在 Next.js 中使用 Typekit 字体。在 Next.js 13 之前,它有一个称为自动字体优化的功能,该功能仍然存在,并且支持 Typekit(在

vercel/next.js#24834
中添加)。

它基本上会内联你的字体 CSS。所以,如果你有:

// pages/_document.tsx

import { Html, Head, Main, NextScript } from 'next/document'

const Document = () => {
  return (
    <Html>
      <Head>
        <link rel="stylesheet" href="https://use.typekit.net/plm1izr.css" />
      </Head>
      <body>
        <Main />
        <NextScript />
      </body>
    </Html>
  )
}

export default Document

然后 Next.js 将生成包含如下内容的文档

head
(保存对 Typekit 的请求):

<link rel="preconnect" href="https://use.typekit.net" crossorigin />
<!-- ... -->
<style data-href="https://use.typekit.net/plm1izr.css">
  @import url('https://p.typekit.net/p.css?s=1&k=plm1izr&ht=tk&f=32266&a=23152309&app=typekit&e=css');
  @font-face {
    font-family: 'birra-2';
    src: url('https://use.typekit.net/af/23e0ad/00000000000000003b9b410c/27/l?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3')
        format('woff2'),
      url('https://use.typekit.net/af/23e0ad/00000000000000003b9b410c/27/d?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3')
        format('woff'),
      url('https://use.typekit.net/af/23e0ad/00000000000000003b9b410c/27/a?primer=7cdcb44be4a7db8877ffa5c0007b8dd865b3bbc383831fe2ea177f62257a9191&fvd=n7&v=3')
        format('opentype');
    font-display: auto;
    font-style: normal;
    font-weight: 700;
    font-stretch: normal;
  }
  .tk-birra-2 {
    font-family: 'birra-2', serif;
  }
</style>

这是集成套件,您可以查看添加样式表链接的不同方法:https://github.com/vercel/next.js/tree/canary/test/integration/font-optimization/fixtures/ with-typekit(其中一些方法已被弃用,并且会给您警告)。


0
投票

我正在使用应用程序目录,并且只需在layout.tsx上添加链接引用即可添加Adobe字体,而无需创建“pages/_document.tsx”,如下所示:

应用程序/layout.tsx

<html lang='en'>
  <head>
    <link rel='stylesheet' href='https://use.typekit.net/plm1izr.css' />
  </head>
  <body className={``}>
   // your body code
  </body>
</html>

而且,因为我正在使用 TailwindCSS:

tailwind.config.js

theme: {
    extend: {
      fontFamily: {
        'font-1': ['your-font-1-name'],
        'font-2': ['your-font-2-name'],
        other fonts...,
      },

您可以通过单击 typekit 参考链接来检查要添加到数组中的字体名称。

© www.soinside.com 2019 - 2024. All rights reserved.