diff --git a/dev-docs/feature-format-matrix/qmd-files/css-properties/font-family/document.qmd b/dev-docs/feature-format-matrix/qmd-files/css-properties/font-family/document.qmd
index 095855317ba..08b8f59ad6a 100644
--- a/dev-docs/feature-format-matrix/qmd-files/css-properties/font-family/document.qmd
+++ b/dev-docs/feature-format-matrix/qmd-files/css-properties/font-family/document.qmd
@@ -19,7 +19,7 @@ _quarto:
typst:
ensureTypstFileRegexMatches:
-
- - '#set text\(font: \("Georgia", "serif"\)\); #table\('
+ - '#{set text\(font: \("Georgia", "Libertinus Serif"\)\); table\('
- []
---
diff --git a/dev-docs/feature-format-matrix/qmd-files/css-properties/font-family/generic-font-families.qmd b/dev-docs/feature-format-matrix/qmd-files/css-properties/font-family/generic-font-families.qmd
new file mode 100644
index 00000000000..338ff80abdc
--- /dev/null
+++ b/dev-docs/feature-format-matrix/qmd-files/css-properties/font-family/generic-font-families.qmd
@@ -0,0 +1,54 @@
+---
+format:
+ html:
+ quality: 1
+ pdf:
+ quality: na
+ typst:
+ quality: 2
+ comment: "table only"
+ include-in-header:
+ text: |
+ #set text(fallback: false)
+ dashboard:
+ quality: 1
+ docx:
+ quality: na
+ pptx:
+ quality: na
+keep-typ: true
+_quarto:
+ tests:
+ typst:
+ ensureTypstFileRegexMatches:
+ -
+ - '#{set text\(font: \("Libertinus Serif"\)\); table\('
+ - '#show heading: set text\(font: "Noto Sans", \)'
+ - '#show raw.where\(block: true\): set text\(font: "DejaVu Sans Mono", \)'
+ - []
+ ensurePdfRegexMatches:
+ -
+ - 'heading is noto sans'
+ - 'base is libertinus serif'
+ - 'code should appear in a monospace font'
+ - []
+brand:
+ typography:
+ base: serif
+ headings: sans-serif
+ monospace: monospace
+---
+# heading is `#context text.font`{=typst}
+
+base is `#context text.font`{=typst}
+
+```{=html}
+
+```
+
+```
+// This code should appear in a monospace font
+```
+
diff --git a/news/changelog-1.7.md b/news/changelog-1.7.md
index 328969b6f18..87477378713 100644
--- a/news/changelog-1.7.md
+++ b/news/changelog-1.7.md
@@ -84,6 +84,7 @@ All changes included in 1.7:
## `typst` format
+- ([#11918](https://github.com/quarto-dev/quarto-cli/pull/11918)): Minimal implementation of CSS generic font families for Typst, so that the major generic font families will be resolved when included in font lists.
- ([#11578](https://github.com/quarto-dev/quarto-cli/issues/11578)): Typst column layout widths use fractional `fr` units instead of percent `%` units for unitless and default widths in order to fill the enclosing block and not spill outside it.
- ([#11676](https://github.com/quarto-dev/quarto-cli/pull/11676)): Convert unitless image widths from pixels to inches for column layouts.
- ([#11835](https://github.com/quarto-dev/quarto-cli/issues/11835)): Take markdown structure into account when detecting minimum heading level.
diff --git a/src/command/render/pandoc.ts b/src/command/render/pandoc.ts
index 158e271402d..9b1f9192c4f 100644
--- a/src/command/render/pandoc.ts
+++ b/src/command/render/pandoc.ts
@@ -21,6 +21,7 @@ import { Document } from "../../core/deno-dom.ts";
import { execProcess } from "../../core/process.ts";
import { dirAndStem, normalizePath } from "../../core/path.ts";
import { mergeConfigs } from "../../core/config.ts";
+import { quartoConfig } from "../../core/quarto.ts";
import {
Format,
@@ -1601,6 +1602,7 @@ async function resolveExtras(
}
fontdirs.add(font_cache);
}
+ fontdirs.add(join(quartoConfig.srcPath(), "resources/fonts"));
let fontPaths = format.metadata[kFontPaths] as Array || [];
if (typeof fontPaths === "string") {
fontPaths = [fontPaths];
diff --git a/src/core/devconfig.ts b/src/core/devconfig.ts
index 2e38ee17877..e668c82a6bd 100644
--- a/src/core/devconfig.ts
+++ b/src/core/devconfig.ts
@@ -38,8 +38,7 @@ export function createDevConfig(
scriptDir: string,
): DevConfig {
const scriptPath = join(scriptDir, "quarto" + (isWindows ? ".cmd" : ""));
- const srcDir = Deno.env.get("QUARTO_SRC_PATH") ||
- join(quartoConfig.sharePath(), "../../src");
+ const srcDir = quartoConfig.srcPath();
return {
deno,
deno_dom,
diff --git a/src/core/quarto.ts b/src/core/quarto.ts
index 59593b231a1..d1506f6e67c 100644
--- a/src/core/quarto.ts
+++ b/src/core/quarto.ts
@@ -31,6 +31,9 @@ export const quartoConfig = {
binPath: () => getenv("QUARTO_BIN_PATH"),
toolsPath: () => join(getenv("QUARTO_BIN_PATH"), "tools"),
sharePath: () => getenv("QUARTO_SHARE_PATH"),
+ srcPath: () =>
+ getenv("QUARTO_SRC_PATH", "") ||
+ normalizePath(join(quartoConfig.sharePath(), "../../src")),
isDebug: () => getenv("QUARTO_DEBUG", "false") === "true",
version: () => {
const forceVersion = getenv("QUARTO_FORCE_VERSION", "");
diff --git a/src/resources/filters/modules/typst_css.lua b/src/resources/filters/modules/typst_css.lua
index 45725d5ad65..069b2e54999 100644
--- a/src/resources/filters/modules/typst_css.lua
+++ b/src/resources/filters/modules/typst_css.lua
@@ -551,7 +551,7 @@ local function output_length(length, warnings)
if not csf then
output_warning(warnings, 'unit ' .. length.unit .. ' is not supported in ' .. length.csslen )
return nil
- end
+ end
return csf(length.value, length.unit, length.csslen, warnings)
end
@@ -595,6 +595,10 @@ local function quote(s)
return '"' .. s .. '"'
end
+local function dequote(s)
+ return s:gsub('^["\']', ''):gsub('["\']$', '')
+end
+
local same_weights = {
'thin',
'light',
@@ -636,6 +640,36 @@ local function translate_font_weight(w, warnings)
end
end
+local generic_font_families = {
+ ['sans-serif'] = 'Noto Sans',
+ serif = 'Libertinus Serif',
+ math = 'New Computer Modern Math',
+ monospace = 'DejaVu Sans Mono',
+}
+
+local gff_synonyms = {
+ ['ui-sans-serif'] = 'sans-serif',
+ ['system-ui'] = 'sans-serif',
+ ['ui-serif'] = 'serif',
+ ['ui-monospace'] = 'monospace'
+}
+
+local function translate_font_family(ff)
+ ff = gff_synonyms[ff] or ff
+ return generic_font_families[ff] or ff
+end
+
+local function translate_font_family_list(sl)
+ local strings = {}
+ for s in sl:gmatch('([^,]+)') do
+ s = dequote(trim(s))
+ s = translate_font_family(s)
+ table.insert(strings, quote(s))
+ end
+ return '(' .. table.concat(strings, ', ') ..')'
+end
+
+
local function translate_border_style(v, _warnings)
local dash
if v == 'none' then
@@ -762,6 +796,8 @@ return {
translate_border_style = translate_border_style,
translate_border_color = translate_border_color,
translate_font_weight = translate_font_weight,
+ translate_font_family = translate_font_family,
+ translate_font_family_list = translate_font_family_list,
consume_width = consume_width,
consume_style = consume_style,
consume_color = consume_color
diff --git a/src/resources/filters/quarto-post/typst-brand-yaml.lua b/src/resources/filters/quarto-post/typst-brand-yaml.lua
index 81a6f782474..9c4c22b138e 100644
--- a/src/resources/filters/quarto-post/typst-brand-yaml.lua
+++ b/src/resources/filters/quarto-post/typst-brand-yaml.lua
@@ -117,7 +117,7 @@ function render_typst_brand_yaml()
if headings and next(headings) then
quarto.doc.include_text('in-header', table.concat({
'#show heading: set text(',
- conditional_entry('font', headings.family),
+ conditional_entry('font', _quarto.modules.typst.css.translate_font_family(headings.family)),
conditional_entry('weight', _quarto.modules.typst.css.translate_font_weight(headings.weight)),
conditional_entry('style', headings.style),
conditional_entry('fill', headings.color, false),
@@ -138,7 +138,7 @@ function render_typst_brand_yaml()
if monospaceInline and next(monospaceInline) then
quarto.doc.include_text('in-header', table.concat({
'#show raw.where(block: false): set text(',
- conditional_entry('font', monospaceInline.family),
+ conditional_entry('font', _quarto.modules.typst.css.translate_font_family(monospaceInline.family)),
conditional_entry('weight', _quarto.modules.typst.css.translate_font_weight(monospaceInline.weight)),
conditional_entry('size', monospaceInline.size, false),
conditional_entry('fill', monospaceInline.color, false),
@@ -157,7 +157,7 @@ function render_typst_brand_yaml()
if monospaceBlock and next(monospaceBlock) then
quarto.doc.include_text('in-header', table.concat({
'#show raw.where(block: true): set text(',
- conditional_entry('font', monospaceBlock.family),
+ conditional_entry('font', _quarto.modules.typst.css.translate_font_family(monospaceBlock.family)),
conditional_entry('weight', _quarto.modules.typst.css.translate_font_weight(monospaceBlock.weight)),
conditional_entry('size', monospaceBlock.size, false),
conditional_entry('fill', monospaceBlock.color, false),
@@ -309,7 +309,7 @@ function render_typst_brand_yaml()
local base = _quarto.modules.brand.get_typography(brandMode, 'base')
if base and next(base) then
meta.brand.typography.base = {
- family = base.family,
+ family = _quarto.modules.typst.css.translate_font_family(base.family),
size = base.size,
}
end
@@ -324,7 +324,7 @@ function render_typst_brand_yaml()
local weight = _quarto.modules.typst.css.translate_font_weight(headings.weight or base.weight)
weight = weight and pandoc.RawInline('typst', tostring(quote_string(weight)))
meta.brand.typography.headings = {
- family = headings.family or base.family,
+ family = _quarto.modules.typst.css.translate_font_family(headings.family or base.family),
weight = weight,
style = headings.style or base.style,
decoration = headings.decoration or base.decoration,
diff --git a/src/resources/filters/quarto-post/typst-css-property-processing.lua b/src/resources/filters/quarto-post/typst-css-property-processing.lua
index da96e43d8ab..676468bea50 100644
--- a/src/resources/filters/quarto-post/typst-css-property-processing.lua
+++ b/src/resources/filters/quarto-post/typst-css-property-processing.lua
@@ -32,14 +32,6 @@ function render_typst_css_property_processing()
end
end
- local function dequote(s)
- return s:gsub('^["\']', ''):gsub('["\']$', '')
- end
-
- local function quote(s)
- return '"' .. s .. '"'
- end
-
local function translate_vertical_align(va)
if va == 'top' then
return 'top'
@@ -270,15 +262,6 @@ function render_typst_css_property_processing()
end
return span
end
-
- local function translate_string_list(sl)
- local strings = {}
- for s in sl:gmatch('([^,]+)') do
- s = s:gsub('^%s+', '')
- table.insert(strings, quote(dequote(s)))
- end
- return '(' .. table.concat(strings, ', ') ..')'
- end
return {
Table = function(tab)
@@ -289,7 +272,7 @@ function render_typst_css_property_processing()
for clause in tabstyle:gmatch('([^;]+)') do
local k, v = to_kv(clause)
if k == 'font-family' then
- tab.attributes['typst:text:font'] = translate_string_list(v)
+ tab.attributes['typst:text:font'] = _quarto.format.typst.css.translate_font_family_list(v)
has_typst_text = true
end
if k == 'font-size' then
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-Black.ttf b/src/resources/fonts/Noto-Sans/NotoSans-Black.ttf
new file mode 100644
index 00000000000..d5a6e0d15d8
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-Black.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-BlackItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-BlackItalic.ttf
new file mode 100644
index 00000000000..dfc640c36ba
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-BlackItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-Bold.ttf b/src/resources/fonts/Noto-Sans/NotoSans-Bold.ttf
new file mode 100644
index 00000000000..506f7d8426c
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-Bold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-BoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-BoldItalic.ttf
new file mode 100644
index 00000000000..0e8fa4bde53
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-BoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-ExtraBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans-ExtraBold.ttf
new file mode 100644
index 00000000000..58684467bd1
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-ExtraBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-ExtraBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-ExtraBoldItalic.ttf
new file mode 100644
index 00000000000..68abd4c0e24
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-ExtraBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-ExtraLight.ttf b/src/resources/fonts/Noto-Sans/NotoSans-ExtraLight.ttf
new file mode 100644
index 00000000000..078f8dc878d
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-ExtraLight.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-ExtraLightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-ExtraLightItalic.ttf
new file mode 100644
index 00000000000..acaa4664f46
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-ExtraLightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-Italic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-Italic.ttf
new file mode 100644
index 00000000000..d9b9e148c8f
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-Italic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-Light.ttf b/src/resources/fonts/Noto-Sans/NotoSans-Light.ttf
new file mode 100644
index 00000000000..8d8a67895f6
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-Light.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-LightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-LightItalic.ttf
new file mode 100644
index 00000000000..0ab65c0d468
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-LightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-Medium.ttf b/src/resources/fonts/Noto-Sans/NotoSans-Medium.ttf
new file mode 100644
index 00000000000..a44124bb363
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-Medium.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-MediumItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-MediumItalic.ttf
new file mode 100644
index 00000000000..467af1b3a5e
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-MediumItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-Regular.ttf b/src/resources/fonts/Noto-Sans/NotoSans-Regular.ttf
new file mode 100644
index 00000000000..4bac02f2f46
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-Regular.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-SemiBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans-SemiBold.ttf
new file mode 100644
index 00000000000..e846749015a
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-SemiBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-SemiBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-SemiBoldItalic.ttf
new file mode 100644
index 00000000000..cacc7eceac0
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-SemiBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-Thin.ttf b/src/resources/fonts/Noto-Sans/NotoSans-Thin.ttf
new file mode 100644
index 00000000000..04335a5bbcc
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-Thin.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans-ThinItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans-ThinItalic.ttf
new file mode 100644
index 00000000000..910dfc7468f
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans-ThinItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Black.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Black.ttf
new file mode 100644
index 00000000000..3186699597a
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Black.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-BlackItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-BlackItalic.ttf
new file mode 100644
index 00000000000..d4b19bc15a3
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-BlackItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Bold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Bold.ttf
new file mode 100644
index 00000000000..1ce44bce3cb
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Bold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-BoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-BoldItalic.ttf
new file mode 100644
index 00000000000..1960e68a7c7
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-BoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraBold.ttf
new file mode 100644
index 00000000000..cb36919a308
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraBoldItalic.ttf
new file mode 100644
index 00000000000..7bbea17b1f2
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraLight.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraLight.ttf
new file mode 100644
index 00000000000..29a77513f3b
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraLight.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraLightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraLightItalic.ttf
new file mode 100644
index 00000000000..983b81abd05
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ExtraLightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Italic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Italic.ttf
new file mode 100644
index 00000000000..8e2d1f83bfb
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Italic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Light.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Light.ttf
new file mode 100644
index 00000000000..32c58a5801c
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Light.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-LightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-LightItalic.ttf
new file mode 100644
index 00000000000..c5d1b4511c9
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-LightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Medium.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Medium.ttf
new file mode 100644
index 00000000000..45f8ea458bc
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Medium.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-MediumItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-MediumItalic.ttf
new file mode 100644
index 00000000000..92cd88a5528
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-MediumItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Regular.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Regular.ttf
new file mode 100644
index 00000000000..3ad9a1b8f61
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Regular.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-SemiBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-SemiBold.ttf
new file mode 100644
index 00000000000..2f20a216085
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-SemiBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-SemiBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-SemiBoldItalic.ttf
new file mode 100644
index 00000000000..b28147d322b
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-SemiBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Thin.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Thin.ttf
new file mode 100644
index 00000000000..d5b50b57bae
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-Thin.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ThinItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ThinItalic.ttf
new file mode 100644
index 00000000000..00d9315796c
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_Condensed-ThinItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Black.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Black.ttf
new file mode 100644
index 00000000000..619c4f8ff0b
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Black.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-BlackItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-BlackItalic.ttf
new file mode 100644
index 00000000000..f12462720fd
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-BlackItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Bold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Bold.ttf
new file mode 100644
index 00000000000..11e469975b2
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Bold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-BoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-BoldItalic.ttf
new file mode 100644
index 00000000000..81ec21fab3d
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-BoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraBold.ttf
new file mode 100644
index 00000000000..2ce3cb31e07
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf
new file mode 100644
index 00000000000..98929675537
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraLight.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraLight.ttf
new file mode 100644
index 00000000000..ce67cb11be0
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraLight.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraLightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraLightItalic.ttf
new file mode 100644
index 00000000000..45726c35aaa
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ExtraLightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Italic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Italic.ttf
new file mode 100644
index 00000000000..e6b1a73eab4
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Italic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Light.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Light.ttf
new file mode 100644
index 00000000000..5e9fef8627c
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Light.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-LightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-LightItalic.ttf
new file mode 100644
index 00000000000..500c9196280
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-LightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Medium.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Medium.ttf
new file mode 100644
index 00000000000..c78465e73a2
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Medium.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-MediumItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-MediumItalic.ttf
new file mode 100644
index 00000000000..527291a386c
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-MediumItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Regular.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Regular.ttf
new file mode 100644
index 00000000000..8921daa1056
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Regular.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-SemiBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-SemiBold.ttf
new file mode 100644
index 00000000000..83b98b2797c
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-SemiBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-SemiBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-SemiBoldItalic.ttf
new file mode 100644
index 00000000000..9dedf3efe58
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-SemiBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Thin.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Thin.ttf
new file mode 100644
index 00000000000..81e2bf94a2f
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-Thin.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ThinItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ThinItalic.ttf
new file mode 100644
index 00000000000..17b43b19769
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_ExtraCondensed-ThinItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Black.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Black.ttf
new file mode 100644
index 00000000000..5a141da4f0f
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Black.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-BlackItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-BlackItalic.ttf
new file mode 100644
index 00000000000..538888da185
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-BlackItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Bold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Bold.ttf
new file mode 100644
index 00000000000..9cff468ead1
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Bold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-BoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-BoldItalic.ttf
new file mode 100644
index 00000000000..314024cdcb0
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-BoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraBold.ttf
new file mode 100644
index 00000000000..c50c08141a5
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraBoldItalic.ttf
new file mode 100644
index 00000000000..b8b053e8deb
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraLight.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraLight.ttf
new file mode 100644
index 00000000000..6450a04ba0d
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraLight.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraLightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraLightItalic.ttf
new file mode 100644
index 00000000000..a655d1e7e40
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ExtraLightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Italic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Italic.ttf
new file mode 100644
index 00000000000..67c7a2f71c6
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Italic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Light.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Light.ttf
new file mode 100644
index 00000000000..f9221c3d4d4
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Light.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-LightItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-LightItalic.ttf
new file mode 100644
index 00000000000..9a722003f39
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-LightItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Medium.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Medium.ttf
new file mode 100644
index 00000000000..e2c825c473e
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Medium.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-MediumItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-MediumItalic.ttf
new file mode 100644
index 00000000000..6be577a45e1
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-MediumItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Regular.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Regular.ttf
new file mode 100644
index 00000000000..06a2982dc57
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Regular.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-SemiBold.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-SemiBold.ttf
new file mode 100644
index 00000000000..8c8f313fb50
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-SemiBold.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-SemiBoldItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-SemiBoldItalic.ttf
new file mode 100644
index 00000000000..59093a98d25
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-SemiBoldItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Thin.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Thin.ttf
new file mode 100644
index 00000000000..7d7ef338ac5
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-Thin.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ThinItalic.ttf b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ThinItalic.ttf
new file mode 100644
index 00000000000..44084d99166
Binary files /dev/null and b/src/resources/fonts/Noto-Sans/NotoSans_SemiCondensed-ThinItalic.ttf differ
diff --git a/src/resources/fonts/Noto-Sans/OFL.txt b/src/resources/fonts/Noto-Sans/OFL.txt
new file mode 100644
index 00000000000..0373e14e137
--- /dev/null
+++ b/src/resources/fonts/Noto-Sans/OFL.txt
@@ -0,0 +1,93 @@
+Copyright 2022 The Noto Project Authors (https://github.com/notofonts/latin-greek-cyrillic)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+https://openfontlicense.org
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/src/resources/fonts/Noto-Sans/README.txt b/src/resources/fonts/Noto-Sans/README.txt
new file mode 100644
index 00000000000..4958bee265f
--- /dev/null
+++ b/src/resources/fonts/Noto-Sans/README.txt
@@ -0,0 +1,136 @@
+Noto Sans Variable Font
+=======================
+
+This download contains Noto Sans as both variable fonts and static fonts.
+
+Noto Sans is a variable font with these axes:
+ wdth
+ wght
+
+This means all the styles are contained in these files:
+ NotoSans-VariableFont_wdth,wght.ttf
+ NotoSans-Italic-VariableFont_wdth,wght.ttf
+
+If your app fully supports variable fonts, you can now pick intermediate styles
+that aren’t available as static fonts. Not all apps support variable fonts, and
+in those cases you can use the static font files for Noto Sans:
+ static/NotoSans_ExtraCondensed-Thin.ttf
+ static/NotoSans_ExtraCondensed-ExtraLight.ttf
+ static/NotoSans_ExtraCondensed-Light.ttf
+ static/NotoSans_ExtraCondensed-Regular.ttf
+ static/NotoSans_ExtraCondensed-Medium.ttf
+ static/NotoSans_ExtraCondensed-SemiBold.ttf
+ static/NotoSans_ExtraCondensed-Bold.ttf
+ static/NotoSans_ExtraCondensed-ExtraBold.ttf
+ static/NotoSans_ExtraCondensed-Black.ttf
+ static/NotoSans_Condensed-Thin.ttf
+ static/NotoSans_Condensed-ExtraLight.ttf
+ static/NotoSans_Condensed-Light.ttf
+ static/NotoSans_Condensed-Regular.ttf
+ static/NotoSans_Condensed-Medium.ttf
+ static/NotoSans_Condensed-SemiBold.ttf
+ static/NotoSans_Condensed-Bold.ttf
+ static/NotoSans_Condensed-ExtraBold.ttf
+ static/NotoSans_Condensed-Black.ttf
+ static/NotoSans_SemiCondensed-Thin.ttf
+ static/NotoSans_SemiCondensed-ExtraLight.ttf
+ static/NotoSans_SemiCondensed-Light.ttf
+ static/NotoSans_SemiCondensed-Regular.ttf
+ static/NotoSans_SemiCondensed-Medium.ttf
+ static/NotoSans_SemiCondensed-SemiBold.ttf
+ static/NotoSans_SemiCondensed-Bold.ttf
+ static/NotoSans_SemiCondensed-ExtraBold.ttf
+ static/NotoSans_SemiCondensed-Black.ttf
+ static/NotoSans-Thin.ttf
+ static/NotoSans-ExtraLight.ttf
+ static/NotoSans-Light.ttf
+ static/NotoSans-Regular.ttf
+ static/NotoSans-Medium.ttf
+ static/NotoSans-SemiBold.ttf
+ static/NotoSans-Bold.ttf
+ static/NotoSans-ExtraBold.ttf
+ static/NotoSans-Black.ttf
+ static/NotoSans_ExtraCondensed-ThinItalic.ttf
+ static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf
+ static/NotoSans_ExtraCondensed-LightItalic.ttf
+ static/NotoSans_ExtraCondensed-Italic.ttf
+ static/NotoSans_ExtraCondensed-MediumItalic.ttf
+ static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf
+ static/NotoSans_ExtraCondensed-BoldItalic.ttf
+ static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf
+ static/NotoSans_ExtraCondensed-BlackItalic.ttf
+ static/NotoSans_Condensed-ThinItalic.ttf
+ static/NotoSans_Condensed-ExtraLightItalic.ttf
+ static/NotoSans_Condensed-LightItalic.ttf
+ static/NotoSans_Condensed-Italic.ttf
+ static/NotoSans_Condensed-MediumItalic.ttf
+ static/NotoSans_Condensed-SemiBoldItalic.ttf
+ static/NotoSans_Condensed-BoldItalic.ttf
+ static/NotoSans_Condensed-ExtraBoldItalic.ttf
+ static/NotoSans_Condensed-BlackItalic.ttf
+ static/NotoSans_SemiCondensed-ThinItalic.ttf
+ static/NotoSans_SemiCondensed-ExtraLightItalic.ttf
+ static/NotoSans_SemiCondensed-LightItalic.ttf
+ static/NotoSans_SemiCondensed-Italic.ttf
+ static/NotoSans_SemiCondensed-MediumItalic.ttf
+ static/NotoSans_SemiCondensed-SemiBoldItalic.ttf
+ static/NotoSans_SemiCondensed-BoldItalic.ttf
+ static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf
+ static/NotoSans_SemiCondensed-BlackItalic.ttf
+ static/NotoSans-ThinItalic.ttf
+ static/NotoSans-ExtraLightItalic.ttf
+ static/NotoSans-LightItalic.ttf
+ static/NotoSans-Italic.ttf
+ static/NotoSans-MediumItalic.ttf
+ static/NotoSans-SemiBoldItalic.ttf
+ static/NotoSans-BoldItalic.ttf
+ static/NotoSans-ExtraBoldItalic.ttf
+ static/NotoSans-BlackItalic.ttf
+
+Get started
+-----------
+
+1. Install the font files you want to use
+
+2. Use your app's font picker to view the font family and all the
+available styles
+
+Learn more about variable fonts
+-------------------------------
+
+ https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
+ https://variablefonts.typenetwork.com
+ https://medium.com/variable-fonts
+
+In desktop apps
+
+ https://theblog.adobe.com/can-variable-fonts-illustrator-cc
+ https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
+
+Online
+
+ https://developers.google.com/fonts/docs/getting_started
+ https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
+ https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
+
+Installing fonts
+
+ MacOS: https://support.apple.com/en-us/HT201749
+ Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
+ Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
+
+Android Apps
+
+ https://developers.google.com/fonts/docs/android
+ https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
+
+License
+-------
+Please read the full license text (OFL.txt) to understand the permissions,
+restrictions and requirements for usage, redistribution, and modification.
+
+You can use them in your products & projects – print or digital,
+commercial or otherwise.
+
+This isn't legal advice, please consider consulting a lawyer and see the full
+license for all details.
diff --git a/tests/docs/smoke-all/typst/typst-css/big-numbers.qmd b/tests/docs/smoke-all/typst/typst-css/big-numbers.qmd
new file mode 100644
index 00000000000..ccb2736ba37
--- /dev/null
+++ b/tests/docs/smoke-all/typst/typst-css/big-numbers.qmd
@@ -0,0 +1,25 @@
+---
+title: "Untitled"
+format: typst
+keep-typ: true
+---
+
+```{=typst}
+#text(font: "Noto Sans")[Noto Sans]
+
+#text(font: "Libertinus Serif")[Libertinus Serif]
+
+#text(font: "New Computer Modern Math")[New Computer Modern Math]
+
+#text(font: "DejaVu Sans Mono")[DejaVu Sans Mono]
+```
+
+```{r}
+library(gt)
+df <- data.frame(a = c("aa111bbb", "abcdef"), b = c(1, 2))
+tab <- gt::gt(df)
+# reliably recreate fonts failure from https://github.com/quarto-dev/quarto-cli/issues/11683
+opt_table_font(tab,
+ font = c("InvalidFontName", "system-ui", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"),
+ add = FALSE)
+```
\ No newline at end of file