loadFont()
加载 Google 字体 以在 Remotion 中使用。
- 自动阻止渲染,直到字体准备就绪
- 提供了一种缩小权重、样式和字符子集范围的方法。
- 每个
loadFont()
调用都是类型安全的,并且可通过自动补全公开可用选项。
用法
不带参数时,将加载字体的所有样式、权重和字符子集。
加载 Lobster 字体的所有变体tsx
import {loadFont } from "@remotion/google-fonts/Lobster";import {AbsoluteFill } from "remotion";const {fontFamily } =loadFont ();export constGoogleFontsExample :React .FC = () => {return (<AbsoluteFill style ={{fontFamily :fontFamily ,}}><h1 >Google Fonts</h1 ></AbsoluteFill >);};
加载 Lobster 字体的所有变体tsx
import {loadFont } from "@remotion/google-fonts/Lobster";import {AbsoluteFill } from "remotion";const {fontFamily } =loadFont ();export constGoogleFontsExample :React .FC = () => {return (<AbsoluteFill style ={{fontFamily :fontFamily ,}}><h1 >Google Fonts</h1 ></AbsoluteFill >);};
传递特定样式(例如 normal
、italic
)以及可选的权重和子集,以缩小加载范围。
info
大字体文件配合有限的带宽可能导致渲染超时。通过指定您需要的确切样式、权重和子集,可以减小文件大小,可能防止渲染超时。如果问题仍然存在,增加超时时间 将有所帮助。
如果要加载多个样式,请使用多个 loadFont()
语句。
加载特定样式、权重和子集tsx
import {AbsoluteFill } from "remotion";import {fontFamily ,loadFont } from "@remotion/google-fonts/Lobster";const {waitUntilDone } =loadFont ("normal", {weights : ["400"],subsets : ["latin"],});// Optional: Act once the font has been loadedwaitUntilDone ().then (() => {console .log ("Font is loaded");});export constGoogleFontsExample :React .FC = () => {return (<AbsoluteFill style ={{justifyContent : "center",alignItems : "center",// Pass the `fontFamily` you imported as a stylefontFamily :fontFamily ,fontSize : 280,}}><h1 >Google Fonts</h1 ></AbsoluteFill >);};
加载特定样式、权重和子集tsx
import {AbsoluteFill } from "remotion";import {fontFamily ,loadFont } from "@remotion/google-fonts/Lobster";const {waitUntilDone } =loadFont ("normal", {weights : ["400"],subsets : ["latin"],});// Optional: Act once the font has been loadedwaitUntilDone ().then (() => {console .log ("Font is loaded");});export constGoogleFontsExample :React .FC = () => {return (<AbsoluteFill style ={{justifyContent : "center",alignItems : "center",// Pass the `fontFamily` you imported as a stylefontFamily :fontFamily ,fontSize : 280,}}><h1 >Google Fonts</h1 ></AbsoluteFill >);};
参数
所有参数和选项都是可选的。使用 TypeScript 自动补全或 getInfo
来发现可用选项。使用其中任何一个,将加载所有样式、权重和子集。
样式
我们要加载的字体样式。虽然每种字体都有不同的样式集,常见选项包括:normal
、italic
等。
选项
权重
可选
应加载的权重数组。默认情况下,加载所有权重。
子集
可选
应加载的字体子集数组。默认情况下,加载所有子集。
文档
可选
允许您指定一个 Document
。如 果要将字体注入到 iframe 中,您需要给它一个引用,并将 iframeRef.contentDocument
传递给此参数。默认情况下,使用全局 window.document
。
返回值
一个具有以下属性的对象:
fontFamily
字体系列名称,可用作 fontFamily
CSS 属性。
fonts
有关字体的变体信息。
示例数值js
{normal: {'400': {'latin-ext': 'https://fonts.gstatic.com/s/titanone/v13/mFTzWbsGxbbS_J5cQcjCmjgm6Es.woff2','latin': 'https://fonts.gstatic.com/s/titanone/v13/mFTzWbsGxbbS_J5cQcjClDgm.woff2',},},}
示例数值js
{normal: {'400': {'latin-ext': 'https://fonts.gstatic.com/s/titanone/v13/mFTzWbsGxbbS_J5cQcjCmjgm6Es.woff2','latin': 'https://fonts.gstatic.com/s/titanone/v13/mFTzWbsGxbbS_J5cQcjClDgm.woff2',},},}
unicodeRanges
有关字体的 Unicode 范围信息。
示例数值js
{'latin-ext': 'U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF','latin': 'U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD',}
示例数值js
{'latin-ext': 'U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF','latin': 'U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD',}
waitUntilDone
v4.0.135
返回一个在字体加载完成时解析的 Promise 的函数。
在后台加载字体tsx
import { loadFont } from "@remotion/google-fonts/Lobster";loadFont("normal", {weights: ["400"],subsets: ["latin"],}).waitUntilDone().then(() => {console.log("Done loading");});
在后台加载字体tsx
import { loadFont } from "@remotion/google-fonts/Lobster";loadFont("normal", {weights: ["400"],subsets: ["latin"],}).waitUntilDone().then(() => {console.log("Done loading");});