@remotion/google-fonts
The @remotion/google-fonts package provides APIs for easily integrating Google Fonts into Remotion.
Installation
- npm
- yarn
- pnpm
npm i @remotion/google-fontsyarn add @remotion/google-fontspnpm i @remotion/google-fontsUsage
To load a font, import the package @remotion/google-fonts/<FontName> and call loadFont().
import {loadFont } from '@remotion/google-fonts/TitanOne';
const {fontFamily } = loadFont (); // "Titan One"If you want to import multiple fonts and want to avoid a variable name collision, you can import the fonts using an import * as statement.
import * as Montserrat from '@remotion/google-fonts/Montserrat';
Montserrat .loadFont ();Call loadFont() to start the loading process. By default, every style, weight and subset is loaded.
You can pass a style (such as normal, italic) to only load that specific style. If you want multiple styles, call loadFont() multiple times.
import {loadFont } from '@remotion/google-fonts/TitanOne';
loadFont ('normal');Use the TypeScript autocomplete to see the available styles. To further narrow down what's being loaded, you can specify weights and subsets. These options are also typesafe.
import * as Montserrat from '@remotion/google-fonts/Montserrat';
Montserrat .loadFont ('normal', {
weights : ['400', '600', '800'],
subsets : ['latin', 'latin-ext'],
});loadFont() returns an object with a fontFamily property. You can use the style attribute to render text in the font you loaded.
import {loadFont } from '@remotion/google-fonts/TitanOne';
import {AbsoluteFill } from 'remotion';
const {fontFamily } = loadFont ();
export const GoogleFontsDemoComposition = () => {
return (
<AbsoluteFill
style ={{
fontFamily ,
}}
>
<div >Hallo Google Fonts</div >
</AbsoluteFill >
);
};To get information about a font, you can import the getInfo() function:
import {getInfo } from '@remotion/google-fonts/Montserrat';
console .log (getInfo ());{
"fontFamily": "Titan One",
"importName": "TitanOne",
"version": "v13",
"url": "https://fonts.googleapis.com/css2?family=Titan+One:ital,wght@0,400",
"unicodeRanges": {
"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"
},
"fonts": {
"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"
}
}
},
"subsets": ["latin", "latin-ext"]
}To get a list of all available fonts, you can call getAvailableFonts() imported from @remotion/google-fonts:
import {getAvailableFonts } from '@remotion/google-fonts';
console .log (getAvailableFonts ());APIs
Troubleshooting
Known issues:
Credits
Implemented by Hidayatullah.
License
MIT