Astro Font 优化项目使用教程

Astro Font 优化项目使用教程

astro-font `astro-font` will automatically optimize your Custom Fonts, Local Fonts, Fonts over any CDN and Google fonts for performance. 项目地址: https://gitcode.com/gh_mirrors/as/astro-font

1. 项目介绍

astro-font 是一个开源项目,旨在自动优化您的自定义字体、本地字体、通过任何 CDN 的字体以及 Google 字体,以提高性能。该项目灵感来自于 Next.js 的字体优化。

2. 项目快速启动

安装

首先,您需要将 astro-font 安装到您的项目中。可以使用以下任一命令:

npm install astro-font
# 或者
yarn add astro-font
# 或者
pnpm add astro-font

使用 Google 字体

要在所有页面中使用 Google 字体,请将其添加到 Astro 布局的 <head> 文件中:

import { AstroFont } from "astro-font";

<head>
  <AstroFont
    config={[
      {
        src: [],
        name: "Poppins",
        googleFontsURL: 'https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,600;1,400;1,700&display=swap',
        preload: true,
        display: "swap",
        selector: "body",
        fallback: "sans-serif",
      },
    ]}
  />
</head>

使用本地字体

如果您想使用本地字体,可以按照以下方式配置:

import { join } from "node:path";
import { AstroFont } from "astro-font";

<head>
  <AstroFont
    config={[
      {
        name: "Afacad",
        src: [
          {
            style: 'normal',
            weight: '400',
            path: join(process.cwd(), 'public', 'fonts', 'Afacad-Regular.ttf'),
          },
          {
            style: 'medium',
            weight: '500',
            path: join(process.cwd(), 'public', 'fonts', 'Afacad-Medium.ttf'),
          },
        ],
        preload: false,
        display: "swap",
        selector: "body",
        fallback: "sans-serif",
      },
    ]}
  />
</head>

3. 应用案例和最佳实践

使用多个字体

您可以在应用程序中导入和使用多个字体。有两种方法可以实现这一点:

方法一:扩展配置数组
import { join } from "node:path";
import { AstroFont } from "astro-font";

<head>
  <AstroFont
    config={[
      {
        name: "Afacad",
        src: [
          {
            style: 'bold',
            weight: '700',
            path: 'https://fonts.gstatic.com/s/afacad/v1/6NUK8FKMIQOGaw6wjYT7ZHG_zsBBfvLqagk-80KjZfJ_uw.woff2',
          },
        ],
        preload: true,
        display: "swap",
        selector: "body",
        fallback: "sans-serif",
      },
      {
        name: "Inter",
        src: [
          {
            weight: '400',
            style: 'normal',
            path: join(process.cwd(), 'public', 'fonts', 'Inter-Regular.ttf'),
          },
        ],
        preload: true,
        display: "swap",
        selector: "body > span",
        fallback: "serif",
      },
    ]}
  />
</head>

配置 CSS 类

您可以使用 selector 属性配置哪些 CSS 类将反映整个 CSS(包括对备用字体的引用):

import { join } from "node:path";
import { AstroFont } from "astro-font";

<AstroFont
  config={[
    {
      name: "Afacad",
      src: [
        {
          style: 'bold',
          weight: '700',
          path: 'https://fonts.gstatic.com/s/afacad/v1/6NUK8FKMIQOGaw6wjYT7ZHG_zsBBfvLqagk-80KjZfJ_uw.woff2',
        },
      ],
      preload: true,
      display: "swap",
      fallback: "sans-serif",
      selector: "custom_class",
    },
    {
      name: "Inter",
      src: [
        {
          weight: '400',
          style: 'normal',
          path: join(process.cwd(), 'public', 'fonts', 'Inter-Regular.ttf'),
        },
      ],
      preload: true,
      display: "swap",
      fallback: "serif",
      selector: "body > span",
    },
  ]}
/>

配置 CSS 变量

您可以使用 cssVariable 属性配置哪些 CSS 变量将反映在文档的 :root CSS 选择器中:

import { join } from "node:path";
import { AstroFont } from "astro-font";

<AstroFont
  config={[
    {
      name: "Afac

astro-font `astro-font` will automatically optimize your Custom Fonts, Local Fonts, Fonts over any CDN and Google fonts for performance. 项目地址: https://gitcode.com/gh_mirrors/as/astro-font

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰北帅Bobbie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值