This commit is contained in:
2026-01-14 12:11:33 +01:00
parent 6c56e31eeb
commit 87eec4a51e
+23 -21
View File
@@ -387,7 +387,7 @@ data:
color_yellow: "#F0F046" color_yellow: "#F0F046"
color_blue: "#46F0F0" color_blue: "#46F0F0"
color_white: "#FFFFFF" color_white: "#FFFFFF"
overlay_color: "rgba(0,0,0,0.35)" overlay_color: "rgba(255,0,255,0.35)"
template: | template: |
{{/* Weather widget fully customizable via options */}} {{/* Weather widget fully customizable via options */}}
{{ $temp_unit := .Options.StringOr "temp_unit" "celsius" }} {{ $temp_unit := .Options.StringOr "temp_unit" "celsius" }}
@@ -534,26 +534,28 @@ data:
{{ $thisHighPct := sub 1 (div (sub $max_max $thisHigh) $temp_range) }} {{ $thisHighPct := sub 1 (div (sub $max_max $thisHigh) $temp_range) }}
{{ $thisLowPct := div (sub $thisLow $min_min) $temp_range }} {{ $thisLowPct := div (sub $thisLow $min_min) $temp_range }}
{{ $thisTempRange := sub $thisHigh $thisLow }} {{ $thisTempRange := sub $thisHigh $thisLow }}
{{ $red_pos := mul 100 (div (sub $thisHigh $temp_red) $thisTempRange) | toInt }} {{/* Clamp helper (no clamp() function in Glance templates) */}}
{{ $yel_pos := mul 100 (div (sub $thisHigh $temp_yellow) $thisTempRange) | toInt }} {{ $pRed := $red_pos }}{{ if lt $pRed 0 }}{{ $pRed = 0 }}{{ end }}{{ if gt $pRed 100 }}{{ $pRed = 100 }}{{ end }}
{{ $blu_pos := mul 100 (div (sub $thisHigh $temp_blue) $thisTempRange) | toInt }} {{ $pYel := $yel_pos }}{{ if lt $pYel 0 }}{{ $pYel = 0 }}{{ end }}{{ if gt $pYel 100 }}{{ $pYel = 100 }}{{ end }}
{{ $whi_pos := mul 100 (div (sub $thisHigh $temp_white) $thisTempRange) | toInt }} {{ $pBlu := $blu_pos }}{{ if lt $pBlu 0 }}{{ $pBlu = 0 }}{{ end }}{{ if gt $pBlu 100 }}{{ $pBlu = 100 }}{{ end }}
{{ $gradient_string := printf "%s %d%%, %s %d%%, %s %d%%, %s %d%%" $color_red $red_pos $color_yellow $yel_pos $color_blue $blu_pos $color_white $whi_pos }} {{ $pWhi := $whi_pos }}{{ if lt $pWhi 0 }}{{ $pWhi = 0 }}{{ end }}{{ if gt $pWhi 100 }}{{ $pWhi = 100 }}{{ end }}
<div style="left: {{ mul $index 14 | add 3 }}%; bottom: {{ mul $thisLowPct 100 | toInt }}%; {{/* Make sure stops are non-decreasing (simple ordering guard) */}}
height: {{ mul (sub $thisHighPct $thisLowPct) 100 | toInt }}%; position: absolute; {{ if lt $pYel $pRed }}{{ $pYel = $pRed }}{{ end }}
background:linear-gradient({{ $gradient_string | safeCSS }}); width: 10%; text-align: center; border-radius: 10px;"> {{ if lt $pBlu $pYel }}{{ $pBlu = $pYel }}{{ end }}
{{ $top_pos := -2 }} {{ if lt $pWhi $pBlu }}{{ $pWhi = $pBlu }}{{ end }}
{{ $bot_pos := -2 }} <div style="left: {{ mul $index 14 | add 3 }}%; bottom: {{ mul $thisLowPct 100 | toInt }}%;
{{ $pos_thresh := 0.20 }} height: {{ mul (sub $thisHighPct $thisLowPct) 100 | toInt }}%; position: absolute;
{{ if lt (div $thisTempRange $temp_range) $pos_thresh }} width: 10%; text-align: center; border-radius: 10px; overflow: hidden;">
{{ $top_pos = -17 }} {{/* “Gradient” as 4 stacked color bands */}}
{{ $bot_pos = -19 }} <div style="position:absolute; inset:0;">
{{ else if and (lt (div $thisTempRange $temp_range) (mul $pos_thresh 2)) (lt (sub 1 $thisHighPct) $thisLowPct) }} <div style="position:absolute; top:0; left:0; right:0; height: {{ $pRed }}%; background-color: {{ $color_red }};"></div>
{{ $bot_pos = -19 }} <div style="position:absolute; top:{{ $pRed }}%; left:0; right:0; height: {{ sub $pYel $pRed }}%; background-color: {{ $color_yellow }};"></div>
{{ else if and (lt (div $thisTempRange $temp_range) (mul $pos_thresh 2)) (gt (sub 1 $thisHighPct) $thisLowPct) }} <div style="position:absolute; top:{{ $pYel }}%; left:0; right:0; height: {{ sub $pBlu $pYel }}%; background-color: {{ $color_blue }};"></div>
{{ $top_pos = -17 }} <div style="position:absolute; top:{{ $pBlu }}%; left:0; right:0; height: {{ sub 100 $pBlu }}%; background-color: {{ $color_white }};"></div>
{{ end }} </div>
<div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: {{ $overlay_color | safeCSS }}; z-index: 1; border-radius: 10px;"> {{/* Overlay for the numbers (keep it transparent-ish) */}}
<div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;
background-color: {{ $overlay_color }}; z-index: 1; border-radius: 10px;">
<p style='color: #F0F0F0; position: absolute; top: {{ $top_pos }}px; left: 0px; right: 0px'>{{ $thisHigh | toInt }}</p> <p style='color: #F0F0F0; position: absolute; top: {{ $top_pos }}px; left: 0px; right: 0px'>{{ $thisHigh | toInt }}</p>
<p style='color: #F0F0F0; position: absolute; bottom: {{ $bot_pos }}px; left: 0px; right:0px'>{{ $thisLow | toInt }}</p> <p style='color: #F0F0F0; position: absolute; bottom: {{ $bot_pos }}px; left: 0px; right:0px'>{{ $thisLow | toInt }}</p>
</div> </div>