@ -147,19 +147,49 @@ export const FONT_FAMILY = {
@@ -147,19 +147,49 @@ export const FONT_FAMILY = {
Assistant : 10 ,
} ;
// Segoe UI Emoji fails to properly fallback for some glyphs: ∞, ∫, ≠
// so we need to have generic font fallback before it
export const SANS_SERIF_GENERIC_FONT = "sans-serif" ;
export const MONOSPACE_GENERIC_FONT = "monospace" ;
export const FONT_FAMILY_GENERIC_FALLBACKS = {
[ SANS_SERIF_GENERIC_FONT ] : 998 ,
[ MONOSPACE_GENERIC_FONT ] : 999 ,
} ;
export const FONT_FAMILY_FALLBACKS = {
[ CJK_HAND_DRAWN_FALLBACK_FONT ] : 100 ,
. . . FONT_FAMILY_GENERIC_FALLBACKS ,
[ WINDOWS_EMOJI_FALLBACK_FONT ] : 1000 ,
} ;
export function getGenericFontFamilyFallback (
fontFamily : number ,
) : keyof typeof FONT_FAMILY_GENERIC_FALLBACKS {
switch ( fontFamily ) {
case FONT_FAMILY . Cascadia :
case FONT_FAMILY [ "Comic Shanns" ] :
return MONOSPACE_GENERIC_FONT ;
default :
return SANS_SERIF_GENERIC_FONT ;
}
}
export const getFontFamilyFallbacks = (
fontFamily : number ,
) : Array < keyof typeof FONT_FAMILY_FALLBACKS > = > {
const genericFallbackFont = getGenericFontFamilyFallback ( fontFamily ) ;
switch ( fontFamily ) {
case FONT_FAMILY . Excalifont :
return [ CJK_HAND_DRAWN_FALLBACK_FONT , WINDOWS_EMOJI_FALLBACK_FONT ] ;
return [
CJK_HAND_DRAWN_FALLBACK_FONT ,
genericFallbackFont ,
WINDOWS_EMOJI_FALLBACK_FONT ,
] ;
default :
return [ WINDOWS_EMOJI_FALLBACK_FONT ] ;
return [ genericFallbackFont , WINDOWS_EMOJI_FALLBACK_FONT ] ;
}
} ;