diff --git a/font-src/glyphs/symbol/mosaic.ptl b/font-src/glyphs/symbol/mosaic.ptl
index f4e41fccc..3f1dc89ea 100644
--- a/font-src/glyphs/symbol/mosaic.ptl
+++ b/font-src/glyphs/symbol/mosaic.ptl
@@ -874,6 +874,9 @@ glyph-block Symbol-Mosaic-NotDef : begin
Rect (CAP - sw) (0 + sw) (SB + sw) (RightSB - sw)
set currentGlyph.glyphRank (9999)
+ create-glyph '.notdefCloneE000' 0xF00F : glyph-proc
+ include [refer-glyph '.notdef'] AS_BASE ALSO_METRICS
+
glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
diff --git a/images/cs-block-alphabetic-presentation-forms.dark.svg b/images/cs-block-alphabetic-presentation-forms.dark.svg
new file mode 100644
index 000000000..88b20e8de
--- /dev/null
+++ b/images/cs-block-alphabetic-presentation-forms.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-alphabetic-presentation-forms.light.svg b/images/cs-block-alphabetic-presentation-forms.light.svg
new file mode 100644
index 000000000..600704f00
--- /dev/null
+++ b/images/cs-block-alphabetic-presentation-forms.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-arrows.dark.svg b/images/cs-block-arrows.dark.svg
new file mode 100644
index 000000000..650992951
--- /dev/null
+++ b/images/cs-block-arrows.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-arrows.light.svg b/images/cs-block-arrows.light.svg
new file mode 100644
index 000000000..d0de6217f
--- /dev/null
+++ b/images/cs-block-arrows.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-basic-latin.dark.svg b/images/cs-block-basic-latin.dark.svg
new file mode 100644
index 000000000..8e286d923
--- /dev/null
+++ b/images/cs-block-basic-latin.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-basic-latin.light.svg b/images/cs-block-basic-latin.light.svg
new file mode 100644
index 000000000..ae6faf983
--- /dev/null
+++ b/images/cs-block-basic-latin.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-block-elements.dark.svg b/images/cs-block-block-elements.dark.svg
new file mode 100644
index 000000000..d2ec3ffa9
--- /dev/null
+++ b/images/cs-block-block-elements.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-block-elements.light.svg b/images/cs-block-block-elements.light.svg
new file mode 100644
index 000000000..b2e94772d
--- /dev/null
+++ b/images/cs-block-block-elements.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-box-drawing.dark.svg b/images/cs-block-box-drawing.dark.svg
new file mode 100644
index 000000000..1fa5b768d
--- /dev/null
+++ b/images/cs-block-box-drawing.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-box-drawing.light.svg b/images/cs-block-box-drawing.light.svg
new file mode 100644
index 000000000..c1a12ce54
--- /dev/null
+++ b/images/cs-block-box-drawing.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-braille-patterns.dark.svg b/images/cs-block-braille-patterns.dark.svg
new file mode 100644
index 000000000..ebf4192e2
--- /dev/null
+++ b/images/cs-block-braille-patterns.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-braille-patterns.light.svg b/images/cs-block-braille-patterns.light.svg
new file mode 100644
index 000000000..99c54e10e
--- /dev/null
+++ b/images/cs-block-braille-patterns.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks-extended.dark.svg b/images/cs-block-combining-diacritical-marks-extended.dark.svg
new file mode 100644
index 000000000..f7ec5e47f
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks-extended.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks-extended.light.svg b/images/cs-block-combining-diacritical-marks-extended.light.svg
new file mode 100644
index 000000000..be3c73316
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks-extended.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks-for-symbols.dark.svg b/images/cs-block-combining-diacritical-marks-for-symbols.dark.svg
new file mode 100644
index 000000000..ad1fbf47e
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks-for-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks-for-symbols.light.svg b/images/cs-block-combining-diacritical-marks-for-symbols.light.svg
new file mode 100644
index 000000000..f67dd19ed
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks-for-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks-supplement.dark.svg b/images/cs-block-combining-diacritical-marks-supplement.dark.svg
new file mode 100644
index 000000000..40496df85
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks-supplement.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks-supplement.light.svg b/images/cs-block-combining-diacritical-marks-supplement.light.svg
new file mode 100644
index 000000000..5cd21f831
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks-supplement.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks.dark.svg b/images/cs-block-combining-diacritical-marks.dark.svg
new file mode 100644
index 000000000..1c570002d
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-combining-diacritical-marks.light.svg b/images/cs-block-combining-diacritical-marks.light.svg
new file mode 100644
index 000000000..f8e6e1312
--- /dev/null
+++ b/images/cs-block-combining-diacritical-marks.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-control-pictures.dark.svg b/images/cs-block-control-pictures.dark.svg
new file mode 100644
index 000000000..41a8497ae
--- /dev/null
+++ b/images/cs-block-control-pictures.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-control-pictures.light.svg b/images/cs-block-control-pictures.light.svg
new file mode 100644
index 000000000..123140b05
--- /dev/null
+++ b/images/cs-block-control-pictures.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-currency-symbols.dark.svg b/images/cs-block-currency-symbols.dark.svg
new file mode 100644
index 000000000..bd66e3991
--- /dev/null
+++ b/images/cs-block-currency-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-currency-symbols.light.svg b/images/cs-block-currency-symbols.light.svg
new file mode 100644
index 000000000..ba08492bb
--- /dev/null
+++ b/images/cs-block-currency-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extended-a.dark.svg b/images/cs-block-cyrillic-extended-a.dark.svg
new file mode 100644
index 000000000..a4d502993
--- /dev/null
+++ b/images/cs-block-cyrillic-extended-a.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extended-a.light.svg b/images/cs-block-cyrillic-extended-a.light.svg
new file mode 100644
index 000000000..f12a5c85a
--- /dev/null
+++ b/images/cs-block-cyrillic-extended-a.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg
new file mode 100644
index 000000000..859effe46
--- /dev/null
+++ b/images/cs-block-cyrillic-extended-b.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg
new file mode 100644
index 000000000..08d5f30f4
--- /dev/null
+++ b/images/cs-block-cyrillic-extended-b.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extended-c.dark.svg b/images/cs-block-cyrillic-extended-c.dark.svg
new file mode 100644
index 000000000..a419537cf
--- /dev/null
+++ b/images/cs-block-cyrillic-extended-c.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extended-c.light.svg b/images/cs-block-cyrillic-extended-c.light.svg
new file mode 100644
index 000000000..a5f1451cd
--- /dev/null
+++ b/images/cs-block-cyrillic-extended-c.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extendedd.dark.svg b/images/cs-block-cyrillic-extendedd.dark.svg
new file mode 100644
index 000000000..171be9210
--- /dev/null
+++ b/images/cs-block-cyrillic-extendedd.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-extendedd.light.svg b/images/cs-block-cyrillic-extendedd.light.svg
new file mode 100644
index 000000000..87884c404
--- /dev/null
+++ b/images/cs-block-cyrillic-extendedd.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-supplement.dark.svg b/images/cs-block-cyrillic-supplement.dark.svg
new file mode 100644
index 000000000..3a3ac1d13
--- /dev/null
+++ b/images/cs-block-cyrillic-supplement.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic-supplement.light.svg b/images/cs-block-cyrillic-supplement.light.svg
new file mode 100644
index 000000000..2ba1b57b2
--- /dev/null
+++ b/images/cs-block-cyrillic-supplement.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg
new file mode 100644
index 000000000..49130ba64
--- /dev/null
+++ b/images/cs-block-cyrillic.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg
new file mode 100644
index 000000000..58b6f8289
--- /dev/null
+++ b/images/cs-block-cyrillic.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-dingbats.dark.svg b/images/cs-block-dingbats.dark.svg
new file mode 100644
index 000000000..2addae00c
--- /dev/null
+++ b/images/cs-block-dingbats.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-dingbats.light.svg b/images/cs-block-dingbats.light.svg
new file mode 100644
index 000000000..f47e70fbb
--- /dev/null
+++ b/images/cs-block-dingbats.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-emoticons.dark.svg b/images/cs-block-emoticons.dark.svg
new file mode 100644
index 000000000..563a24755
--- /dev/null
+++ b/images/cs-block-emoticons.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-emoticons.light.svg b/images/cs-block-emoticons.light.svg
new file mode 100644
index 000000000..e08eaccf8
--- /dev/null
+++ b/images/cs-block-emoticons.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-enclosed-alphanumeric-supplement.dark.svg b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg
new file mode 100644
index 000000000..303db7901
--- /dev/null
+++ b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-enclosed-alphanumeric-supplement.light.svg b/images/cs-block-enclosed-alphanumeric-supplement.light.svg
new file mode 100644
index 000000000..cb24455d3
--- /dev/null
+++ b/images/cs-block-enclosed-alphanumeric-supplement.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-enclosed-alphanumerics.dark.svg b/images/cs-block-enclosed-alphanumerics.dark.svg
new file mode 100644
index 000000000..ba69edbcc
--- /dev/null
+++ b/images/cs-block-enclosed-alphanumerics.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-enclosed-alphanumerics.light.svg b/images/cs-block-enclosed-alphanumerics.light.svg
new file mode 100644
index 000000000..0ee97de35
--- /dev/null
+++ b/images/cs-block-enclosed-alphanumerics.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-enclosed-cjk-letters-and-months.dark.svg b/images/cs-block-enclosed-cjk-letters-and-months.dark.svg
new file mode 100644
index 000000000..e9bcd2b2f
--- /dev/null
+++ b/images/cs-block-enclosed-cjk-letters-and-months.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-enclosed-cjk-letters-and-months.light.svg b/images/cs-block-enclosed-cjk-letters-and-months.light.svg
new file mode 100644
index 000000000..d11ad8cc9
--- /dev/null
+++ b/images/cs-block-enclosed-cjk-letters-and-months.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-general-punctuation.dark.svg b/images/cs-block-general-punctuation.dark.svg
new file mode 100644
index 000000000..55f3a1a36
--- /dev/null
+++ b/images/cs-block-general-punctuation.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-general-punctuation.light.svg b/images/cs-block-general-punctuation.light.svg
new file mode 100644
index 000000000..8167cfd48
--- /dev/null
+++ b/images/cs-block-general-punctuation.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-geometric-shapes-extended.dark.svg b/images/cs-block-geometric-shapes-extended.dark.svg
new file mode 100644
index 000000000..d047b09b7
--- /dev/null
+++ b/images/cs-block-geometric-shapes-extended.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-geometric-shapes-extended.light.svg b/images/cs-block-geometric-shapes-extended.light.svg
new file mode 100644
index 000000000..32bf98912
--- /dev/null
+++ b/images/cs-block-geometric-shapes-extended.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-geometric-shapes.dark.svg b/images/cs-block-geometric-shapes.dark.svg
new file mode 100644
index 000000000..fff4be3ab
--- /dev/null
+++ b/images/cs-block-geometric-shapes.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-geometric-shapes.light.svg b/images/cs-block-geometric-shapes.light.svg
new file mode 100644
index 000000000..822eb4159
--- /dev/null
+++ b/images/cs-block-geometric-shapes.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-greek-and-coptic.dark.svg b/images/cs-block-greek-and-coptic.dark.svg
new file mode 100644
index 000000000..aaee5503e
--- /dev/null
+++ b/images/cs-block-greek-and-coptic.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-greek-and-coptic.light.svg b/images/cs-block-greek-and-coptic.light.svg
new file mode 100644
index 000000000..6809ecae8
--- /dev/null
+++ b/images/cs-block-greek-and-coptic.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-greek-extended.dark.svg b/images/cs-block-greek-extended.dark.svg
new file mode 100644
index 000000000..596241535
--- /dev/null
+++ b/images/cs-block-greek-extended.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-greek-extended.light.svg b/images/cs-block-greek-extended.light.svg
new file mode 100644
index 000000000..2862c57e3
--- /dev/null
+++ b/images/cs-block-greek-extended.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-ipa-extensions.dark.svg b/images/cs-block-ipa-extensions.dark.svg
new file mode 100644
index 000000000..f0776c02c
--- /dev/null
+++ b/images/cs-block-ipa-extensions.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-ipa-extensions.light.svg b/images/cs-block-ipa-extensions.light.svg
new file mode 100644
index 000000000..8d943ab46
--- /dev/null
+++ b/images/cs-block-ipa-extensions.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-1-supplement.dark.svg b/images/cs-block-latin-1-supplement.dark.svg
new file mode 100644
index 000000000..2e0a492c0
--- /dev/null
+++ b/images/cs-block-latin-1-supplement.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-1-supplement.light.svg b/images/cs-block-latin-1-supplement.light.svg
new file mode 100644
index 000000000..859dd559e
--- /dev/null
+++ b/images/cs-block-latin-1-supplement.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-a.dark.svg b/images/cs-block-latin-extended-a.dark.svg
new file mode 100644
index 000000000..8564de30a
--- /dev/null
+++ b/images/cs-block-latin-extended-a.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-a.light.svg b/images/cs-block-latin-extended-a.light.svg
new file mode 100644
index 000000000..c91d401dc
--- /dev/null
+++ b/images/cs-block-latin-extended-a.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-additional.dark.svg b/images/cs-block-latin-extended-additional.dark.svg
new file mode 100644
index 000000000..0fe2acda8
--- /dev/null
+++ b/images/cs-block-latin-extended-additional.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-additional.light.svg b/images/cs-block-latin-extended-additional.light.svg
new file mode 100644
index 000000000..bf9016d47
--- /dev/null
+++ b/images/cs-block-latin-extended-additional.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-b.dark.svg b/images/cs-block-latin-extended-b.dark.svg
new file mode 100644
index 000000000..7fc605a07
--- /dev/null
+++ b/images/cs-block-latin-extended-b.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-b.light.svg b/images/cs-block-latin-extended-b.light.svg
new file mode 100644
index 000000000..8daecea13
--- /dev/null
+++ b/images/cs-block-latin-extended-b.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-c.dark.svg b/images/cs-block-latin-extended-c.dark.svg
new file mode 100644
index 000000000..57d91fa42
--- /dev/null
+++ b/images/cs-block-latin-extended-c.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-c.light.svg b/images/cs-block-latin-extended-c.light.svg
new file mode 100644
index 000000000..6c8260109
--- /dev/null
+++ b/images/cs-block-latin-extended-c.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-d.dark.svg b/images/cs-block-latin-extended-d.dark.svg
new file mode 100644
index 000000000..e7c79abc4
--- /dev/null
+++ b/images/cs-block-latin-extended-d.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-d.light.svg b/images/cs-block-latin-extended-d.light.svg
new file mode 100644
index 000000000..1d4895f6d
--- /dev/null
+++ b/images/cs-block-latin-extended-d.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-e.dark.svg b/images/cs-block-latin-extended-e.dark.svg
new file mode 100644
index 000000000..b45721312
--- /dev/null
+++ b/images/cs-block-latin-extended-e.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extended-e.light.svg b/images/cs-block-latin-extended-e.light.svg
new file mode 100644
index 000000000..0ff0989a1
--- /dev/null
+++ b/images/cs-block-latin-extended-e.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extendedf.dark.svg b/images/cs-block-latin-extendedf.dark.svg
new file mode 100644
index 000000000..fa179963d
--- /dev/null
+++ b/images/cs-block-latin-extendedf.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extendedf.light.svg b/images/cs-block-latin-extendedf.light.svg
new file mode 100644
index 000000000..aa79656b2
--- /dev/null
+++ b/images/cs-block-latin-extendedf.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extendedg.dark.svg b/images/cs-block-latin-extendedg.dark.svg
new file mode 100644
index 000000000..5fbb084d3
--- /dev/null
+++ b/images/cs-block-latin-extendedg.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-latin-extendedg.light.svg b/images/cs-block-latin-extendedg.light.svg
new file mode 100644
index 000000000..9bf7343c2
--- /dev/null
+++ b/images/cs-block-latin-extendedg.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-letterlike-symbols.dark.svg b/images/cs-block-letterlike-symbols.dark.svg
new file mode 100644
index 000000000..0aec76faf
--- /dev/null
+++ b/images/cs-block-letterlike-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-letterlike-symbols.light.svg b/images/cs-block-letterlike-symbols.light.svg
new file mode 100644
index 000000000..2835a6b80
--- /dev/null
+++ b/images/cs-block-letterlike-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg
new file mode 100644
index 000000000..2720d01ab
--- /dev/null
+++ b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-mathematical-alphanumeric-symbols.light.svg b/images/cs-block-mathematical-alphanumeric-symbols.light.svg
new file mode 100644
index 000000000..827f736a7
--- /dev/null
+++ b/images/cs-block-mathematical-alphanumeric-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-mathematical-operators.dark.svg b/images/cs-block-mathematical-operators.dark.svg
new file mode 100644
index 000000000..b249ac474
--- /dev/null
+++ b/images/cs-block-mathematical-operators.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-mathematical-operators.light.svg b/images/cs-block-mathematical-operators.light.svg
new file mode 100644
index 000000000..3354d3a06
--- /dev/null
+++ b/images/cs-block-mathematical-operators.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-mathematical-symbols-a.dark.svg b/images/cs-block-miscellaneous-mathematical-symbols-a.dark.svg
new file mode 100644
index 000000000..4743261cb
--- /dev/null
+++ b/images/cs-block-miscellaneous-mathematical-symbols-a.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-mathematical-symbols-a.light.svg b/images/cs-block-miscellaneous-mathematical-symbols-a.light.svg
new file mode 100644
index 000000000..6b72064fa
--- /dev/null
+++ b/images/cs-block-miscellaneous-mathematical-symbols-a.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg
new file mode 100644
index 000000000..7f47ced50
--- /dev/null
+++ b/images/cs-block-miscellaneous-mathematical-symbols-b.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg
new file mode 100644
index 000000000..2e0583654
--- /dev/null
+++ b/images/cs-block-miscellaneous-mathematical-symbols-b.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg
new file mode 100644
index 000000000..621692a8b
--- /dev/null
+++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg
new file mode 100644
index 000000000..09c9100bb
--- /dev/null
+++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-symbols-and-pictographs.dark.svg b/images/cs-block-miscellaneous-symbols-and-pictographs.dark.svg
new file mode 100644
index 000000000..6318533af
--- /dev/null
+++ b/images/cs-block-miscellaneous-symbols-and-pictographs.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-symbols-and-pictographs.light.svg b/images/cs-block-miscellaneous-symbols-and-pictographs.light.svg
new file mode 100644
index 000000000..9d0252e00
--- /dev/null
+++ b/images/cs-block-miscellaneous-symbols-and-pictographs.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-symbols.dark.svg b/images/cs-block-miscellaneous-symbols.dark.svg
new file mode 100644
index 000000000..28086ce9f
--- /dev/null
+++ b/images/cs-block-miscellaneous-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-symbols.light.svg b/images/cs-block-miscellaneous-symbols.light.svg
new file mode 100644
index 000000000..da30047ad
--- /dev/null
+++ b/images/cs-block-miscellaneous-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg
new file mode 100644
index 000000000..ef4d309f4
--- /dev/null
+++ b/images/cs-block-miscellaneous-technical.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg
new file mode 100644
index 000000000..9b0f017ab
--- /dev/null
+++ b/images/cs-block-miscellaneous-technical.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-modifier-tone-letters.dark.svg b/images/cs-block-modifier-tone-letters.dark.svg
new file mode 100644
index 000000000..72cc283f6
--- /dev/null
+++ b/images/cs-block-modifier-tone-letters.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-modifier-tone-letters.light.svg b/images/cs-block-modifier-tone-letters.light.svg
new file mode 100644
index 000000000..6812bd5bc
--- /dev/null
+++ b/images/cs-block-modifier-tone-letters.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-musical-symbols.dark.svg b/images/cs-block-musical-symbols.dark.svg
new file mode 100644
index 000000000..747812d95
--- /dev/null
+++ b/images/cs-block-musical-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-musical-symbols.light.svg b/images/cs-block-musical-symbols.light.svg
new file mode 100644
index 000000000..641abf736
--- /dev/null
+++ b/images/cs-block-musical-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-number-forms.dark.svg b/images/cs-block-number-forms.dark.svg
new file mode 100644
index 000000000..72425717d
--- /dev/null
+++ b/images/cs-block-number-forms.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-number-forms.light.svg b/images/cs-block-number-forms.light.svg
new file mode 100644
index 000000000..99ab15c01
--- /dev/null
+++ b/images/cs-block-number-forms.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-phonetic-extensions-supplement.dark.svg b/images/cs-block-phonetic-extensions-supplement.dark.svg
new file mode 100644
index 000000000..7d44e6b31
--- /dev/null
+++ b/images/cs-block-phonetic-extensions-supplement.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-phonetic-extensions-supplement.light.svg b/images/cs-block-phonetic-extensions-supplement.light.svg
new file mode 100644
index 000000000..db685388c
--- /dev/null
+++ b/images/cs-block-phonetic-extensions-supplement.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-phonetic-extensions.dark.svg b/images/cs-block-phonetic-extensions.dark.svg
new file mode 100644
index 000000000..a55611c83
--- /dev/null
+++ b/images/cs-block-phonetic-extensions.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-phonetic-extensions.light.svg b/images/cs-block-phonetic-extensions.light.svg
new file mode 100644
index 000000000..c9bb44436
--- /dev/null
+++ b/images/cs-block-phonetic-extensions.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-private-use-area-powerline.dark.svg b/images/cs-block-private-use-area-powerline.dark.svg
new file mode 100644
index 000000000..62b6c7dbd
--- /dev/null
+++ b/images/cs-block-private-use-area-powerline.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-private-use-area-powerline.light.svg b/images/cs-block-private-use-area-powerline.light.svg
new file mode 100644
index 000000000..a5270e68a
--- /dev/null
+++ b/images/cs-block-private-use-area-powerline.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-private-use-area-progress-bar.dark.svg b/images/cs-block-private-use-area-progress-bar.dark.svg
new file mode 100644
index 000000000..827e94688
--- /dev/null
+++ b/images/cs-block-private-use-area-progress-bar.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-private-use-area-progress-bar.light.svg b/images/cs-block-private-use-area-progress-bar.light.svg
new file mode 100644
index 000000000..6508f33a1
--- /dev/null
+++ b/images/cs-block-private-use-area-progress-bar.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-spacing-modifier-letters.dark.svg b/images/cs-block-spacing-modifier-letters.dark.svg
new file mode 100644
index 000000000..4898b42b2
--- /dev/null
+++ b/images/cs-block-spacing-modifier-letters.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-spacing-modifier-letters.light.svg b/images/cs-block-spacing-modifier-letters.light.svg
new file mode 100644
index 000000000..bf7398264
--- /dev/null
+++ b/images/cs-block-spacing-modifier-letters.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-superscripts-and-subscripts.dark.svg b/images/cs-block-superscripts-and-subscripts.dark.svg
new file mode 100644
index 000000000..4146da489
--- /dev/null
+++ b/images/cs-block-superscripts-and-subscripts.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-superscripts-and-subscripts.light.svg b/images/cs-block-superscripts-and-subscripts.light.svg
new file mode 100644
index 000000000..28dd2736f
--- /dev/null
+++ b/images/cs-block-superscripts-and-subscripts.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-arrows-a.dark.svg b/images/cs-block-supplemental-arrows-a.dark.svg
new file mode 100644
index 000000000..c9e185c71
--- /dev/null
+++ b/images/cs-block-supplemental-arrows-a.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-arrows-a.light.svg b/images/cs-block-supplemental-arrows-a.light.svg
new file mode 100644
index 000000000..5d6139ebb
--- /dev/null
+++ b/images/cs-block-supplemental-arrows-a.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-arrows-b.dark.svg b/images/cs-block-supplemental-arrows-b.dark.svg
new file mode 100644
index 000000000..ba2aa5810
--- /dev/null
+++ b/images/cs-block-supplemental-arrows-b.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-arrows-b.light.svg b/images/cs-block-supplemental-arrows-b.light.svg
new file mode 100644
index 000000000..aa696d872
--- /dev/null
+++ b/images/cs-block-supplemental-arrows-b.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-arrows-c.dark.svg b/images/cs-block-supplemental-arrows-c.dark.svg
new file mode 100644
index 000000000..c11d21bab
--- /dev/null
+++ b/images/cs-block-supplemental-arrows-c.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-arrows-c.light.svg b/images/cs-block-supplemental-arrows-c.light.svg
new file mode 100644
index 000000000..3afe33739
--- /dev/null
+++ b/images/cs-block-supplemental-arrows-c.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-mathematical-operators.dark.svg b/images/cs-block-supplemental-mathematical-operators.dark.svg
new file mode 100644
index 000000000..ee231cf14
--- /dev/null
+++ b/images/cs-block-supplemental-mathematical-operators.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-mathematical-operators.light.svg b/images/cs-block-supplemental-mathematical-operators.light.svg
new file mode 100644
index 000000000..bb8cbdd23
--- /dev/null
+++ b/images/cs-block-supplemental-mathematical-operators.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-punctuation.dark.svg b/images/cs-block-supplemental-punctuation.dark.svg
new file mode 100644
index 000000000..586c3deea
--- /dev/null
+++ b/images/cs-block-supplemental-punctuation.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-supplemental-punctuation.light.svg b/images/cs-block-supplemental-punctuation.light.svg
new file mode 100644
index 000000000..3d6225686
--- /dev/null
+++ b/images/cs-block-supplemental-punctuation.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-symbols-for-legacy-computing.dark.svg b/images/cs-block-symbols-for-legacy-computing.dark.svg
new file mode 100644
index 000000000..e342c2de2
--- /dev/null
+++ b/images/cs-block-symbols-for-legacy-computing.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-symbols-for-legacy-computing.light.svg b/images/cs-block-symbols-for-legacy-computing.light.svg
new file mode 100644
index 000000000..772a4a666
--- /dev/null
+++ b/images/cs-block-symbols-for-legacy-computing.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-tai-xuan-jing-symbols.dark.svg b/images/cs-block-tai-xuan-jing-symbols.dark.svg
new file mode 100644
index 000000000..4f5955e26
--- /dev/null
+++ b/images/cs-block-tai-xuan-jing-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-tai-xuan-jing-symbols.light.svg b/images/cs-block-tai-xuan-jing-symbols.light.svg
new file mode 100644
index 000000000..225b54d34
--- /dev/null
+++ b/images/cs-block-tai-xuan-jing-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-thai.dark.svg b/images/cs-block-thai.dark.svg
new file mode 100644
index 000000000..b747d75a2
--- /dev/null
+++ b/images/cs-block-thai.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-thai.light.svg b/images/cs-block-thai.light.svg
new file mode 100644
index 000000000..8e9cd55f8
--- /dev/null
+++ b/images/cs-block-thai.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-yijing-hexagram-symbols.dark.svg b/images/cs-block-yijing-hexagram-symbols.dark.svg
new file mode 100644
index 000000000..0b316d450
--- /dev/null
+++ b/images/cs-block-yijing-hexagram-symbols.dark.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/images/cs-block-yijing-hexagram-symbols.light.svg b/images/cs-block-yijing-hexagram-symbols.light.svg
new file mode 100644
index 000000000..cdd18d216
--- /dev/null
+++ b/images/cs-block-yijing-hexagram-symbols.light.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/utility/generate-samples/index.mjs b/utility/generate-samples/index.mjs
index 802130c2a..c493b48ee 100644
--- a/utility/generate-samples/index.mjs
+++ b/utility/generate-samples/index.mjs
@@ -2,9 +2,11 @@ import fs from "fs";
import path from "path";
import { parseLigationData } from "../export-data/ligation-data.mjs";
+import { getCharMapAndSupportedLanguageList } from "../export-data/supported-languages.mjs";
import { parseVariantsData } from "../export-data/variants-data.mjs";
import Button from "./templates/button.mjs";
+import CharGrid from "./templates/char-grid.mjs";
import CharVariant from "./templates/character-variant.mjs";
import GrandTitle from "./templates/grand-title.mjs";
import Languages from "./templates/languages.mjs";
@@ -14,6 +16,8 @@ import PackageSample from "./templates/package-sample.mjs";
import StylisticSet from "./templates/stylistic-set.mjs";
import Weights from "./templates/weights.mjs";
+export default main;
+
class Generator {
constructor(outputDir, fontFiles) {
this.outputDir = outputDir;
@@ -32,13 +36,16 @@ class Generator {
}
}
}
-export default (async function main(argv) {
+
+async function main(argv) {
const variantsData = await parseVariantsData();
const ligationData = await parseLigationData();
const tasks = new Generator(
argv.outputDir,
argv.fontGroups.map(fg => path.resolve(process.cwd(), "dist", fg, "ttf", "*.ttf"))
);
+
+ // Common
await tasks.add("grand-title", GrandTitle, {});
await tasks.add("button-release", Button, { text: "Release ", stressText: argv.version });
await tasks.add("button-customize", Button, { text: "Customize" });
@@ -46,6 +53,24 @@ export default (async function main(argv) {
await tasks.add("matrix", Matrix, {});
await tasks.add("languages", Languages, {});
await tasks.add("weights", Weights, {});
+
+ // Unicode blocks
+ const cl = await getCharMapAndSupportedLanguageList(
+ argv.charMapPath,
+ argv.charMapItalicPath,
+ argv.charMapObliquePath
+ );
+ for (const block of cl.unicodeCoverage) {
+ const blockID = block.name
+ .toLowerCase()
+ .replaceAll(/[^\w ]/g, "")
+ .replaceAll(/ +/g, "-");
+ if (blockID === "specials") continue;
+ await tasks.add(`cs-block-${blockID}`, CharGrid, {
+ characters: block.characters
+ });
+ }
+
// Packages
for (const pst of argv.packageSnapshotTasks) {
await tasks.add(pst.name, PackageSample, {
@@ -57,6 +82,7 @@ export default (async function main(argv) {
fontFeatures: pst.fontFeatures
});
}
+
// Ligation sets
for (const ls of ligationData.nonMergeSets) {
await tasks.add(`ligset-${ls.tag}-${ls.rank}`, LigationSet, {
@@ -69,6 +95,7 @@ export default (async function main(argv) {
ligSets: ls.ligSets
});
}
+
// SS
for (const ss of variantsData.composites) {
await tasks.add(`ss-u-${ss.tag}-${ss.rank}`, StylisticSet, {
@@ -90,6 +117,7 @@ export default (async function main(argv) {
hotChars: ss.hotChars.sans.italic
});
}
+
// CV
for (const cv of [...variantsData.specials, ...variantsData.primes]) {
if (!cv.tag && !cv.isSpecial) continue;
@@ -101,5 +129,6 @@ export default (async function main(argv) {
});
}
}
+
return tasks.tasksGenerated;
-});
+}
diff --git a/utility/generate-samples/templates/char-grid.mjs b/utility/generate-samples/templates/char-grid.mjs
new file mode 100644
index 000000000..79729caea
--- /dev/null
+++ b/utility/generate-samples/templates/char-grid.mjs
@@ -0,0 +1,91 @@
+import * as themes from "../themes/index.mjs";
+
+export default CharGrid;
+
+function CharGrid(args) {
+ const theme = themes[args.theme];
+
+ const EM = 48;
+ const ITEMS_PER_ROW = 16;
+ const ITEMS_START_X = 2;
+ const ITEM_SIZE = 1.5;
+
+ let rows = 0;
+ let frames = [];
+ for (let offset = 0; offset < ITEMS_PER_ROW; offset++) {
+ frames.push({
+ "horizontal-align": "center",
+ "vertical-align": "center",
+ left: (ITEMS_START_X + offset) * ITEM_SIZE * EM,
+ right: (ITEMS_START_X + offset + 1) * ITEM_SIZE * EM,
+ top: 0,
+ bottom: ITEM_SIZE * EM,
+ contents: [
+ { "font-family": "Iosevka" },
+ { "font-weight": 600 },
+ { "font-size": 0.5 * EM },
+ { color: theme.body },
+ offset.toString(16).toUpperCase()
+ ]
+ });
+ }
+
+ for (const char of args.characters) {
+ if (char.lch % ITEMS_PER_ROW === 0) {
+ rows++;
+ frames.push({
+ "horizontal-align": "center",
+ "vertical-align": "center",
+ left: 0,
+ right: ITEMS_START_X * ITEM_SIZE * EM,
+ top: rows * ITEM_SIZE * EM,
+ bottom: (rows + 1) * ITEM_SIZE * EM,
+ contents: [
+ { "font-family": "Iosevka" },
+ { "font-weight": 600 },
+ { "font-size": 0.5 * EM },
+ { color: theme.body },
+ "U+" + char.lch.toString(16).toUpperCase().padStart(4, "0")
+ ]
+ });
+ }
+
+ const isMark = char.inFont && char.gc === "Nonspacing_Mark";
+ const dimensions = {
+ "horizontal-align": "center",
+ "vertical-align": "center",
+ left: (ITEMS_START_X + (char.lch % ITEMS_PER_ROW)) * ITEM_SIZE * EM,
+ right: (ITEMS_START_X + (char.lch % ITEMS_PER_ROW) + 1) * ITEM_SIZE * EM,
+ top: rows * ITEM_SIZE * EM,
+ bottom: (rows + 1) * ITEM_SIZE * EM
+ };
+ const fontSettings = [
+ { "font-family": "Iosevka" },
+ { "font-weight": 400 },
+ { "font-size": EM }
+ ];
+ if (isMark) {
+ // Dotted circle
+ frames.push({
+ ...dimensions,
+ contents: [...fontSettings, { color: theme.stress }, "\u25CC"]
+ });
+ }
+ frames.push({
+ ...dimensions,
+ contents: [
+ ...fontSettings,
+ { color: char.inFont ? theme.body : theme.dimmed },
+ char.inFont ? (isMark ? "\uE00E" : "") + String.fromCodePoint(char.lch) : "\uF00F"
+ ]
+ });
+ }
+
+ rows++;
+
+ return {
+ width: (ITEMS_PER_ROW + ITEMS_START_X) * ITEM_SIZE * EM,
+ height: rows * ITEM_SIZE * EM,
+ frames
+ };
+}
diff --git a/verdafile.mjs b/verdafile.mjs
index f6affd2e9..93c4413f1 100644
--- a/verdafile.mjs
+++ b/verdafile.mjs
@@ -905,11 +905,19 @@ const SampleImagesPre = task(`sample-images:pre`, async target => {
GroupTtfsImpl(`iosevka-aile`, false),
GroupTtfsImpl(`iosevka-etoile`, false)
);
+ const [cm, cmi, cmo] = await target.need(
+ BuildCM("iosevka", "iosevka-regular"),
+ BuildCM("iosevka", "iosevka-italic"),
+ BuildCM("iosevka", "iosevka-oblique")
+ );
return await node("utility/generate-samples/index.mjs", {
+ version,
outputDir: IMAGE_TASKS,
packageSnapshotTasks: await PackageSnapshotConfig(target),
fontGroups: fontGroups,
- version
+ charMapPath: cm.full,
+ charMapItalicPath: cmi.full,
+ charMapObliquePath: cmo.full
});
});
const PackageSnapshotConfig = async target => {