This commit is contained in:
2026-01-14 12:15:03 +01:00
parent 87eec4a51e
commit 81d55e4646
+31 -26
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(255,0,255,0.35)" overlay_color: "rgba(0,0,0,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,32 +534,37 @@ 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 }}
{{/* Clamp helper (no clamp() function in Glance templates) */}} {{ $red_pos := mul 100 (div (sub $thisHigh $temp_red) $thisTempRange) | toInt }}
{{ $pRed := $red_pos }}{{ if lt $pRed 0 }}{{ $pRed = 0 }}{{ end }}{{ if gt $pRed 100 }}{{ $pRed = 100 }}{{ end }} {{ $yel_pos := mul 100 (div (sub $thisHigh $temp_yellow) $thisTempRange) | toInt }}
{{ $pYel := $yel_pos }}{{ if lt $pYel 0 }}{{ $pYel = 0 }}{{ end }}{{ if gt $pYel 100 }}{{ $pYel = 100 }}{{ end }} {{ $blu_pos := mul 100 (div (sub $thisHigh $temp_blue) $thisTempRange) | toInt }}
{{ $pBlu := $blu_pos }}{{ if lt $pBlu 0 }}{{ $pBlu = 0 }}{{ end }}{{ if gt $pBlu 100 }}{{ $pBlu = 100 }}{{ end }} {{ $whi_pos := mul 100 (div (sub $thisHigh $temp_white) $thisTempRange) | toInt }}
{{ $pWhi := $whi_pos }}{{ if lt $pWhi 0 }}{{ $pWhi = 0 }}{{ end }}{{ if gt $pWhi 100 }}{{ $pWhi = 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 }}
{{/* Make sure stops are non-decreasing (simple ordering guard) */}} {{/* Clamp helper (no clamp() function in Glance templates) */}}
{{ if lt $pYel $pRed }}{{ $pYel = $pRed }}{{ end }} {{ $pRed := $red_pos }}{{ if lt $pRed 0 }}{{ $pRed = 0 }}{{ end }}{{ if gt $pRed 100 }}{{ $pRed = 100 }}{{ end }}
{{ if lt $pBlu $pYel }}{{ $pBlu = $pYel }}{{ end }} {{ $pYel := $yel_pos }}{{ if lt $pYel 0 }}{{ $pYel = 0 }}{{ end }}{{ if gt $pYel 100 }}{{ $pYel = 100 }}{{ end }}
{{ if lt $pWhi $pBlu }}{{ $pWhi = $pBlu }}{{ end }} {{ $pBlu := $blu_pos }}{{ if lt $pBlu 0 }}{{ $pBlu = 0 }}{{ end }}{{ if gt $pBlu 100 }}{{ $pBlu = 100 }}{{ end }}
<div style="left: {{ mul $index 14 | add 3 }}%; bottom: {{ mul $thisLowPct 100 | toInt }}%; {{ $pWhi := $whi_pos }}{{ if lt $pWhi 0 }}{{ $pWhi = 0 }}{{ end }}{{ if gt $pWhi 100 }}{{ $pWhi = 100 }}{{ end }}
height: {{ mul (sub $thisHighPct $thisLowPct) 100 | toInt }}%; position: absolute; {{/* Make sure stops are non-decreasing (simple ordering guard) */}}
width: 10%; text-align: center; border-radius: 10px; overflow: hidden;"> {{ if lt $pYel $pRed }}{{ $pYel = $pRed }}{{ end }}
{{/* “Gradient” as 4 stacked color bands */}} {{ if lt $pBlu $pYel }}{{ $pBlu = $pYel }}{{ end }}
<div style="position:absolute; inset:0;"> {{ if lt $pWhi $pBlu }}{{ $pWhi = $pBlu }}{{ end }}
<div style="position:absolute; top:0; left:0; right:0; height: {{ $pRed }}%; background-color: {{ $color_red }};"></div> <div style="left: {{ mul $index 14 | add 3 }}%; bottom: {{ mul $thisLowPct 100 | toInt }}%;
<div style="position:absolute; top:{{ $pRed }}%; left:0; right:0; height: {{ sub $pYel $pRed }}%; background-color: {{ $color_yellow }};"></div> height: {{ mul (sub $thisHighPct $thisLowPct) 100 | toInt }}%; position: absolute;
<div style="position:absolute; top:{{ $pYel }}%; left:0; right:0; height: {{ sub $pBlu $pYel }}%; background-color: {{ $color_blue }};"></div> width: 10%; text-align: center; border-radius: 10px; overflow: hidden;">
<div style="position:absolute; top:{{ $pBlu }}%; left:0; right:0; height: {{ sub 100 $pBlu }}%; background-color: {{ $color_white }};"></div> {{/* “Gradient” as 4 stacked color bands */}}
</div> <div style="position:absolute; inset:0;">
{{/* Overlay for the numbers (keep it transparent-ish) */}} <div style="position:absolute; top:0; left:0; right:0; height: {{ $pRed }}%; background-color: {{ $color_red }};"></div>
<div style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; <div style="position:absolute; top:{{ $pRed }}%; left:0; right:0; height: {{ sub $pYel $pRed }}%; background-color: {{ $color_yellow }};"></div>
background-color: {{ $overlay_color }}; z-index: 1; border-radius: 10px;"> <div style="position:absolute; top:{{ $pYel }}%; left:0; right:0; height: {{ sub $pBlu $pYel }}%; background-color: {{ $color_blue }};"></div>
<p style='color: #F0F0F0; position: absolute; top: {{ $top_pos }}px; left: 0px; right: 0px'>{{ $thisHigh | toInt }}</p> <div style="position:absolute; top:{{ $pBlu }}%; left:0; right:0; height: {{ sub 100 $pBlu }}%; background-color: {{ $color_white }};"></div>
<p style='color: #F0F0F0; position: absolute; bottom: {{ $bot_pos }}px; left: 0px; right:0px'>{{ $thisLow | toInt }}</p>
</div>
</div> </div>
{{/* 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; bottom: {{ $bot_pos }}px; left: 0px; right:0px'>{{ $thisLow | toInt }}</p>
</div>
</div>
{{ end }} {{ end }}
</div> </div>
</div> </div>