<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.cultopedia.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AWeather_box%2Fcolors</id>
	<title>Module:Weather box/colors - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.cultopedia.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AWeather_box%2Fcolors"/>
	<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:Weather_box/colors&amp;action=history"/>
	<updated>2026-04-05T22:08:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://www.cultopedia.org/index.php?title=Module:Weather_box/colors&amp;diff=1122&amp;oldid=prev</id>
		<title>imported&gt;Jdlrobson: Improve accessibility of UV (Wikipedia:Manual_of_Style/Accessibility#Color)</title>
		<link rel="alternate" type="text/html" href="https://www.cultopedia.org/index.php?title=Module:Weather_box/colors&amp;diff=1122&amp;oldid=prev"/>
		<updated>2024-04-19T18:24:20Z</updated>

		<summary type="html">&lt;p&gt;Improve accessibility of UV (&lt;a href=&quot;https://en.wikipedia.org/wiki/Manual_of_Style/Accessibility#Color&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Manual of Style/Accessibility&quot;&gt;Wikipedia:Manual_of_Style/Accessibility#Color&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local w = {}&lt;br /&gt;
local math_mod = require(&amp;#039;Module:Math&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function hex( value )&lt;br /&gt;
	return string.format(&amp;quot;%02X&amp;quot;, value)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function format_line( background, text_color )&lt;br /&gt;
	return &amp;quot;background: #&amp;quot; .. background .. &amp;quot;; color:#&amp;quot; .. text_color .. &amp;quot;;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function range_pos( value, start, stop )&lt;br /&gt;
	if start &amp;lt; stop then&lt;br /&gt;
		if value &amp;lt; start then&lt;br /&gt;
			return 0&lt;br /&gt;
		elseif value &amp;gt; stop then&lt;br /&gt;
			return 1&lt;br /&gt;
		else&lt;br /&gt;
			return (value - start) / (stop - start)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if value &amp;lt; stop then&lt;br /&gt;
			return 1&lt;br /&gt;
		elseif value &amp;gt; start then&lt;br /&gt;
			return 0&lt;br /&gt;
		else&lt;br /&gt;
			return (start - value) / (start - stop)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w.color_d( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._days_color( val )&lt;br /&gt;
end&lt;br /&gt;
function w.color_pastel( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._pastel_color( val )&lt;br /&gt;
end&lt;br /&gt;
function w.color_t( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._temperature_color( val )&lt;br /&gt;
end&lt;br /&gt;
function w.color_green( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._green_color( val )&lt;br /&gt;
end&lt;br /&gt;
function w.color_s( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._sunshine_color( val )&lt;br /&gt;
end&lt;br /&gt;
function w.color_h( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._humidity_color( val )&lt;br /&gt;
end&lt;br /&gt;
function w.color_p( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._precipitation_color( val )&lt;br /&gt;
end&lt;br /&gt;
function w.color_u( frame )&lt;br /&gt;
	local val = math_mod._cleanNumber( frame.args[1] )&lt;br /&gt;
	return w._uv_color( val )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._days_color( val )&lt;br /&gt;
	local item, background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	item = hex( range_pos( val, 20, 0 )*255 )&lt;br /&gt;
	background = item .. item&lt;br /&gt;
&lt;br /&gt;
	item = hex( range_pos( val, 40, 20 )*255 )&lt;br /&gt;
	background = background .. item&lt;br /&gt;
&lt;br /&gt;
	if val &amp;gt;= 12 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._green_color( val )&lt;br /&gt;
	local item1, item2, background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	item1 = hex( range_pos( val, 165.6, 0 )*255 )&lt;br /&gt;
	item2 = hex( range_pos( val, 300, 165.61 )*207 + 48 )&lt;br /&gt;
	background = item1 .. item2 .. item1&lt;br /&gt;
	if val &amp;gt;= 200 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._temperature_color( val )&lt;br /&gt;
	local item, background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; 4.5 then&lt;br /&gt;
		item = range_pos( val, -42.75, 4.5 )*255&lt;br /&gt;
		background = hex( item )&lt;br /&gt;
	else&lt;br /&gt;
		item = range_pos( val, 60, 41.5 )*255&lt;br /&gt;
		background = hex( item )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt;= 4.5 then&lt;br /&gt;
		item = range_pos( val, -42.75, 4.5 )*255&lt;br /&gt;
		background = background .. hex( item )&lt;br /&gt;
	else&lt;br /&gt;
		item = range_pos( val, 41.5, 4.5 )*255&lt;br /&gt;
		background = background .. hex( item )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; -42.78 then&lt;br /&gt;
		item = range_pos( val, -90, -42.78 )*255&lt;br /&gt;
		background = background .. hex( item )&lt;br /&gt;
	else&lt;br /&gt;
		item = range_pos( val, 23, 4.5 )*255&lt;br /&gt;
		background = background .. hex( item )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; -23.3 or val &amp;gt;= 37.8 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._precipitation_color( val )&lt;br /&gt;
	local item, background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	item = hex( range_pos( val, 165.6, 0 )*255 )&lt;br /&gt;
	background = item .. item&lt;br /&gt;
&lt;br /&gt;
	item = hex( range_pos( val, 300, 165.61 )*207 + 48 )&lt;br /&gt;
	background = background .. item&lt;br /&gt;
&lt;br /&gt;
	if val &amp;gt; 90 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._humidity_color( val )&lt;br /&gt;
	local item, background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	item = hex( range_pos( val, 66.67, 0 )*255 )&lt;br /&gt;
	background = item .. item&lt;br /&gt;
&lt;br /&gt;
	item = hex( range_pos( val, 133.33, 66.667 )*255 )&lt;br /&gt;
	background = background .. item&lt;br /&gt;
&lt;br /&gt;
	if val &amp;gt;= 40 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._sunshine_color( val )&lt;br /&gt;
	local item, background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; 90 then&lt;br /&gt;
		item = hex( range_pos( val, 0, 90 )*170 )&lt;br /&gt;
	elseif val &amp;lt; 180 then&lt;br /&gt;
		item = hex( range_pos( val, 90, 180 )*42.5 + 170 )&lt;br /&gt;
	else&lt;br /&gt;
		item = hex( range_pos( val, 180, 360 )*42.5 + 212.5 )&lt;br /&gt;
	end&lt;br /&gt;
	background = item .. item&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; 90 then&lt;br /&gt;
		item = hex( range_pos( val, 0, 90 )*170 )&lt;br /&gt;
	elseif val &amp;lt; 270 then&lt;br /&gt;
		item = hex( range_pos( val, 150, 90 )*170 )&lt;br /&gt;
	else&lt;br /&gt;
		item = hex( range_pos( val, 270, 720 )*255 )&lt;br /&gt;
	end&lt;br /&gt;
	background = background .. item&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; 80 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._pastel_color( val )&lt;br /&gt;
	local background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; -15 or val &amp;gt;= 39 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;gt;= 51 then&lt;br /&gt;
		background = &amp;#039;EE2200&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		val = math_mod._round( (val + 25.5)/3, 0 )&lt;br /&gt;
		if val == 1 then&lt;br /&gt;
			background = &amp;#039;BB00CC&amp;#039;&lt;br /&gt;
		elseif val == 2 then&lt;br /&gt;
			background = &amp;#039;CC00EE&amp;#039;&lt;br /&gt;
		elseif val == 3 then&lt;br /&gt;
			background = &amp;#039;CC33EE&amp;#039;&lt;br /&gt;
		elseif val == 4 then&lt;br /&gt;
			background = &amp;#039;CC55EE&amp;#039;&lt;br /&gt;
		elseif val == 5 then&lt;br /&gt;
			background = &amp;#039;DD66EE&amp;#039;&lt;br /&gt;
		elseif val == 6 then&lt;br /&gt;
			background = &amp;#039;DD77EE&amp;#039;&lt;br /&gt;
		elseif val == 7 then&lt;br /&gt;
			background = &amp;#039;DD99EE&amp;#039;&lt;br /&gt;
		elseif val == 8 then&lt;br /&gt;
			background = &amp;#039;DDAAEE&amp;#039;&lt;br /&gt;
		elseif val == 9 then&lt;br /&gt;
			background = &amp;#039;DDBBEE&amp;#039;&lt;br /&gt;
		elseif val == 10 then&lt;br /&gt;
			background = &amp;#039;EECCFF&amp;#039;&lt;br /&gt;
		elseif val == 11 then&lt;br /&gt;
			background = &amp;#039;FFDDFF&amp;#039;&lt;br /&gt;
		elseif val == 12 then&lt;br /&gt;
			background = &amp;#039;F1F1F1&amp;#039;&lt;br /&gt;
		elseif val == 13 then&lt;br /&gt;
			background = &amp;#039;FFEEBB&amp;#039;&lt;br /&gt;
		elseif val == 14 then&lt;br /&gt;
			background = &amp;#039;FFFFCC&amp;#039;&lt;br /&gt;
		elseif val == 15 then&lt;br /&gt;
			background = &amp;#039;FFFFBB&amp;#039;&lt;br /&gt;
		elseif val == 16 then&lt;br /&gt;
			background = &amp;#039;FFFFAA&amp;#039;&lt;br /&gt;
		elseif val == 17 then&lt;br /&gt;
			background = &amp;#039;FFFF88&amp;#039;&lt;br /&gt;
		elseif val == 18 then&lt;br /&gt;
			background = &amp;#039;FFCC33&amp;#039;&lt;br /&gt;
		elseif val == 19 then&lt;br /&gt;
			background = &amp;#039;FFBB33&amp;#039;&lt;br /&gt;
		elseif val == 20 then&lt;br /&gt;
			background = &amp;#039;FF9900&amp;#039;&lt;br /&gt;
		elseif val == 21 then&lt;br /&gt;
			background = &amp;#039;FF8844&amp;#039;&lt;br /&gt;
		elseif val == 22 then&lt;br /&gt;
			background = &amp;#039;FF6633&amp;#039;&lt;br /&gt;
		elseif val == 23 then&lt;br /&gt;
			background = &amp;#039;FF5522&amp;#039;&lt;br /&gt;
		elseif val == 24 then&lt;br /&gt;
			background = &amp;#039;FF4422&amp;#039;&lt;br /&gt;
		elseif val == 25 then&lt;br /&gt;
			background = &amp;#039;EE4400&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			background = &amp;#039;AA00AA&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._uv_color( val )&lt;br /&gt;
	local background, text_color&lt;br /&gt;
&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return format_line( &amp;quot;FFFFFF&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; 3 then&lt;br /&gt;
		background = &amp;quot;3EA72D&amp;quot;&lt;br /&gt;
	elseif val &amp;gt;= 3 and val &amp;lt; 6 then&lt;br /&gt;
		background = &amp;quot;FFF300&amp;quot;&lt;br /&gt;
	elseif val &amp;gt;= 6 and val &amp;lt; 8 then&lt;br /&gt;
		background = &amp;quot;F18B00&amp;quot;&lt;br /&gt;
	elseif val &amp;gt;= 8 and val &amp;lt; 11 then&lt;br /&gt;
		background = &amp;quot;E53210&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		background = &amp;quot;A45693&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if val &amp;lt; 3 then&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	elseif val &amp;gt;= 3 and val &amp;lt; 8 then&lt;br /&gt;
		text_color = &amp;quot;000000&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		text_color = &amp;quot;FFFFFF&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return format_line( background, text_color )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w._none_color()&lt;br /&gt;
	return format_line( &amp;quot;FAFAFA&amp;quot;, &amp;quot;000000&amp;quot; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w.interpret_color_code( code )&lt;br /&gt;
	code = code:lower()&lt;br /&gt;
	if code == &amp;#039;t&amp;#039; then&lt;br /&gt;
		return w._temperature_color&lt;br /&gt;
	elseif code == &amp;#039;pastel&amp;#039; then&lt;br /&gt;
		return w._pastel_color&lt;br /&gt;
	elseif code == &amp;#039;green&amp;#039; then&lt;br /&gt;
		return w._green_color&lt;br /&gt;
	elseif code == &amp;#039;h&amp;#039; then&lt;br /&gt;
		return w._humidity_color&lt;br /&gt;
	elseif code == &amp;#039;s&amp;#039; then&lt;br /&gt;
		return w._sunshine_color&lt;br /&gt;
	elseif code == &amp;#039;p&amp;#039; then&lt;br /&gt;
		return w._precipitation_color&lt;br /&gt;
	elseif code == &amp;#039;d&amp;#039; then&lt;br /&gt;
		return w._days_color&lt;br /&gt;
	elseif code == &amp;#039;u&amp;#039; then&lt;br /&gt;
		return w._uv_color&lt;br /&gt;
	elseif code == &amp;#039;none&amp;#039; then&lt;br /&gt;
		return w._none_color&lt;br /&gt;
	else&lt;br /&gt;
		error( &amp;#039;Unknown color scheme option&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return w&lt;/div&gt;</summary>
		<author><name>imported&gt;Jdlrobson</name></author>
	</entry>
</feed>