Open alii opened 1 year ago
Having the same issue, has anyone found a fix?
Same issue here, still no fix?
Same issue, Next.js v13.0.3.
Any update on this? Facing a similar issue.
Same issue here using Montserrat-VariableFont_wght.ttf
from https://fonts.google.com/specimen/Montserrat
did you try removing style
? I'm using variable fonts in the latest version without issue, but just { name, data }.
Btw if you use variable .woff, the message disappears, but the font is not getting applied
+1 hitting this with the same font
Same issue here using
Montserrat-VariableFont_wght.ttf
from https://fonts.google.com/specimen/Montserrat
The workaround is to use a non variable version of the same font, which was fine for my use case (I only needed one weight) :)
I'm facing this issue when using a .woff2
font 😬
I'm facing the same issue, any updates on this?
Any update?
+1 would like support for variable fonts
I lost so much time trying to debug this.
The error via ImageResponse
from next/og
(@vercel/og
):
⨯ Error: failed to pipe response
at pipeToNodeResponse (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/pipe-readable.js:126:15)
at async DevServer.runEdgeFunction (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/next-server.js:1248:13)
at async NextNodeServer.handleCatchallRenderRequest (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/next-server.js:248:37)
at async DevServer.handleRequestImpl (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/base-server.js:811:17)
at async /Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/dev/next-dev-server.js:339:20
at async Span.traceAsyncFn (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/trace/trace.js:154:20)
at async DevServer.handleRequest (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/dev/next-dev-server.js:336:24)
at async invokeRender (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/router-server.js:174:21)
at async handleRequest (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/router-server.js:353:24)
at async requestHandlerImpl (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/router-server.js:377:13)
at async Server.requestListener (/Users/isaiah/Desktop/CodeTrackr/codetrackr/node_modules/.pnpm/next@14.2.1_@babel+core@7.24.0_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/lib/start-server.js:141:13)
Switching to a non-variable font works, thank you.
If working with google fonts to get non-variable weight ones I found that you have to spoof the user agent to something old get it to return non-variable weight ttf files:
async function getTtfFont(family: string, axes: string[], value: number[]): Promise<ArrayBuffer> {
const familyParam = axes.join(',') + '@' + value.join(',');
// Get css style sheet with user agent Mozilla/5.0 Firefox/1.0 to ensure non-variable TTF is returned
const cssCall = await fetch(`https://fonts.googleapis.com/css2?family=${family}:${familyParam}&display=swap`, {
headers: {
'User-Agent': 'Mozilla/5.0 Firefox/1.0',
},
});
const css = await cssCall.text();
const ttfUrl = css.match(/url\(([^)]+)\)/)?.[1];
return await fetch(ttfUrl).then(res => res.arrayBuffer());
}
Bug report
When satori's .addFonts method is called, it calls opentype which (in a Next.js app) throws the following error
Description / Observed Behavior
Could not load a variable font
Expected Behavior
The font loads
Reproduction
https://www.fontshare.com/fonts/general-sans
Additional Context
Originally was going to report this issue in shuding/opentype.js, but the repo has issues disabled, so was not sure if it was more appropriate to go in https://github.com/opentypejs/opentype.js or here