Fix category font not reverting when switching to a no-font category

maybeLoadCategoryFont applied a font-family to document.body but never
cleared it when switching to a category with no font defined. The inline
style overrides the CSS --font-body variable, so the category font
persisted indefinitely.

Fix: reset document.body.style.fontFamily to '' when the target category
has no font (letting --font-body take effect), and re-apply the family
string when switching back to an already-loaded font category.

https://claude.ai/code/session_01MA8V1FvCmxjkCYyTxseaxB
This commit is contained in:
Claude 2026-05-19 06:27:14 +00:00
parent c47c0b81ac
commit dcf1991008
No known key found for this signature in database

View file

@ -1094,9 +1094,16 @@ body {
async function maybeLoadCategoryFont(code) {
const cat = categoriesByCode[code];
if (!cat || !cat.font || loadedFonts.has(cat.font)) return;
showFontLoadingBanner();
if (!cat || !cat.font) {
document.body.style.fontFamily = '';
return;
}
const family = 'mdcms-cat-' + code;
if (loadedFonts.has(cat.font)) {
document.body.style.fontFamily = `"${family}", ${getComputedStyle(document.documentElement).getPropertyValue('--font-body').trim()}`;
return;
}
showFontLoadingBanner();
const css = `@font-face { font-family: "${family}"; src: url("assets/fonts/${cat.font}"); }`;
const style = document.createElement('style');
style.textContent = css;
@ -1106,8 +1113,7 @@ body {
await face.load();
document.fonts.add(face);
loadedFonts.add(cat.font);
// Apply font to body for this session
document.body.style.fontFamily = `"${family}", ${getComputedStyle(document.body).fontFamily}`;
document.body.style.fontFamily = `"${family}", ${getComputedStyle(document.documentElement).getPropertyValue('--font-body').trim()}`;
} catch (e) {
console.warn('Font load failed:', e);
}