Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 4 additions & 15 deletions frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,10 @@
<title>SFDAP — Akıllı Tarım Dashboard</title>
<!-- Tema ilk-boya senkronu: temayı CSS boyamadan ÖNCE uygula ki welcome'da
gün/gece geçiş animasyonu ilk yüklemede oynamasın (durum değişmediği için
transition tetiklenmez → gündüz/gece statik gelir). Toggle yine animasyonlu. -->
<script>
(function () {
try {
var t = localStorage.getItem('sfdap-theme');
if (!t) {
// İlk açılış: saat 06:00–20:00 arası GÜNDÜZ, 20:00–06:00 arası GECE.
var h = new Date().getHours();
t = (h >= 6 && h < 20) ? 'light' : 'dark';
localStorage.setItem('sfdap-theme', t); // sabitle → refresh değiştirmez
}
if (t === 'light') document.documentElement.dataset.theme = 'light';
} catch (e) {}
})();
</script>
transition tetiklenmez → gündüz/gece statik gelir). Toggle yine animasyonlu.
HARİCİ + render-blocking KLASİK script (inline DEĞİL → asset-split/CSP kuralı;
type=module DEĞİL → boyamadan önce koşar). Kaynak: src/theme-init.js -->
<script src="src/theme-init.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0"></script>
<!-- Leaflet — Türkiye haritası (Cycle 9 prep). CSS önce, JS body sonunda
(main.js'den önce yüklenir; window.L global olarak erişilebilir). -->
Expand Down
19 changes: 19 additions & 0 deletions frontend/src/theme-init.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SFDAP — tema ilk-boya senkronu (FOUC önleme).
// index.html <head>'inde HARİCİ + render-blocking KLASİK script olarak yüklenir:
// - inline değil → asset-split / CSP kuralına (TestAssetSplit) takılmaz,
// - type=module DEĞİL → modüller defer'lı koşup boyamadan SONRA çalışırdı; bu
// dosya senkron çalışıp temayı CSS boyamadan ÖNCE uygular (aksi halde welcome'da
// ilk yüklemede gün/gece geçiş animasyonu oynar).
// Temayı <html data-theme> üzerine yazar; durum değişmediği için transition tetiklenmez.
(function () {
try {
var t = localStorage.getItem('sfdap-theme');
if (!t) {
// İlk açılış: saat 06:00–20:00 arası GÜNDÜZ, 20:00–06:00 arası GECE.
var h = new Date().getHours();
t = (h >= 6 && h < 20) ? 'light' : 'dark';
localStorage.setItem('sfdap-theme', t); // sabitle → refresh değiştirmez
}
if (t === 'light') document.documentElement.dataset.theme = 'light';
} catch (e) {}
})();
Loading