Files
Compass/web/public/init-theme.js
Martin Braquet ba9b3cfb06 Add pretty formatting (#29)
* Test

* Add pretty formatting

* Fix Tests

* Fix Tests

* Fix Tests

* Fix

* Add pretty formatting fix

* Fix

* Test

* Fix tests

* Clean typeckech

* Add prettier check

* Fix api tsconfig

* Fix api tsconfig

* Fix tsconfig

* Fix

* Fix

* Prettier
2026-02-20 17:32:27 +01:00

28 lines
984 B
JavaScript

// run this in <head> as blocking to prevent flash of unstyled content. See theme-provider.tsx
{
const localTheme = localStorage.getItem('theme')
const theme = localTheme ? JSON.parse(localTheme) : 'auto'
if (
theme === 'dark' ||
(theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches)
) {
document.documentElement.classList.add('dark')
}
const localFontPreference = localStorage.getItem('font-preference')
const fontPreference = localFontPreference ? JSON.parse(localFontPreference) : 'atkinson'
const fontFamilies = {
atkinson: '"Atkinson Hyperlegible Next", Georgia, "Times New Roman", Times, serif',
'system-sans':
'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif',
'classic-serif': 'Georgia, "Times New Roman", Times, serif',
}
document.documentElement.style.setProperty(
'--font-main',
fontFamilies[fontPreference] ?? fontFamilies.atkinson,
)
}