Tema değiştirmede flaş sorunu
filiz
Koyu tema varsayılan, tercih localStorage’da. Kullanıcı açık temayı seçmişse,
sayfa yüklenirken önce koyu boyanıyor, sonra script çalışıp açığa geçiyor. Göz
bunu bir flaş olarak görüyor.
Sebep sıralama: <body> boyandıktan sonra çalışan bir script her zaman geç
kalıyor. Modül scriptleri varsayılan olarak defer’lı, yani en geç olanı.
Çözüm, tercihi okuyup <html> üzerine data-theme yazan küçük bir senkron
inline script’i <head> içine koymak. Bundle’a girmiyor, harici istek yok,
parser onu görür görmez çalıştırıyor.
Denemediğim şey: bunun bir CSP script-src politikasıyla nasıl geçineceği.
Inline script’e izin vermek için ya unsafe-inline ya da bir nonce gerekiyor.
Statik sitede nonce üretmek kolay değil, çünkü sunucu tarafı yok.