From 10e7d45231c76e76e83924ec00cdbdb505753171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20Born=C3=B6?= Date: Tue, 25 Oct 2022 05:15:06 +0200 Subject: [PATCH] Font description and error messages (#41764) Improve font error messages and readme ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have a helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have a helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md) --- packages/font/README.md | 6 +++++- .../core/src/next_font_loaders/font_imports_generator.rs | 5 ++++- .../errors/next-font-loaders/options-object/output.stderr | 4 ++-- packages/next/font/google/index.js | 3 +++ packages/next/font/index.js | 3 +++ packages/next/font/local/index.js | 3 +++ 6 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 packages/next/font/google/index.js create mode 100644 packages/next/font/index.js create mode 100644 packages/next/font/local/index.js diff --git a/packages/font/README.md b/packages/font/README.md index 39b038d8caed..7733e03417b5 100644 --- a/packages/font/README.md +++ b/packages/font/README.md @@ -1,3 +1,7 @@ # `@next/font` -Experimental `@next/font` package +`@next/font` includes built-in automatic self-hosting for any font file. This means you can optimally load web fonts with zero layout shift, thanks to the underlying CSS size-adjust property used. + +This new font system also allows you to conveniently use all Google Fonts with performance and privacy in mind. CSS and font files are downloaded at build time and self-hosted with the rest of your static assets. No requests are sent to Google by the browser. + +[Read more](https://nextjs.org/docs/optimizing/fonts) diff --git a/packages/next-swc/crates/core/src/next_font_loaders/font_imports_generator.rs b/packages/next-swc/crates/core/src/next_font_loaders/font_imports_generator.rs index ada0df21d4cb..e6e123ec36fb 100644 --- a/packages/next-swc/crates/core/src/next_font_loaders/font_imports_generator.rs +++ b/packages/next-swc/crates/core/src/next_font_loaders/font_imports_generator.rs @@ -248,7 +248,10 @@ fn expr_to_json(expr: &Expr) -> Result { } lit => HANDLER.with(|handler| { handler - .struct_span_err(lit.span(), "Unexpected value") + .struct_span_err( + lit.span(), + "Font loader values must be explicitly written literals.", + ) .emit(); Err(()) }), diff --git a/packages/next-swc/crates/core/tests/errors/next-font-loaders/options-object/output.stderr b/packages/next-swc/crates/core/tests/errors/next-font-loaders/options-object/output.stderr index ec93d2affb8c..8ae26eb33f0d 100644 --- a/packages/next-swc/crates/core/tests/errors/next-font-loaders/options-object/output.stderr +++ b/packages/next-swc/crates/core/tests/errors/next-font-loaders/options-object/output.stderr @@ -5,13 +5,13 @@ : ^^ `---- - x Unexpected value + x Font loader values must be explicitly written literals. ,-[input.js:7:1] 7 | const a = ABeeZee({ variant: [i1] }) : ^^ `---- - x Unexpected value + x Font loader values must be explicitly written literals. ,-[input.js:10:1] 10 | const a = ABeeZee({ variant: () => {} }) : ^^^^^^^^ diff --git a/packages/next/font/google/index.js b/packages/next/font/google/index.js new file mode 100644 index 000000000000..e16a36e0735d --- /dev/null +++ b/packages/next/font/google/index.js @@ -0,0 +1,3 @@ +throw new Error( + 'You tried to import `next/font/google`, did you mean `@next/font/google`?\nRead more: https://nextjs.org/docs/optimizing/fonts' +) diff --git a/packages/next/font/index.js b/packages/next/font/index.js new file mode 100644 index 000000000000..f208343aee3d --- /dev/null +++ b/packages/next/font/index.js @@ -0,0 +1,3 @@ +throw new Error( + 'You tried to import `next/font`, did you mean `@next/font`?\nRead more: https://nextjs.org/docs/optimizing/fonts' +) diff --git a/packages/next/font/local/index.js b/packages/next/font/local/index.js new file mode 100644 index 000000000000..92e74f90a729 --- /dev/null +++ b/packages/next/font/local/index.js @@ -0,0 +1,3 @@ +throw new Error( + 'You tried to import `next/font/local`, did you mean `@next/font/local`?\nRead more: https://nextjs.org/docs/optimizing/fonts' +)