Module:Color contrast and Module:Color contrast/sandbox: Difference between pages

(Difference between pages)
Jump to navigation Jump to search
Page 1
Page 2
(fix unintended color2lum global error which is causing errors; clean whitespace)
 
 
Line 1: Line 1:
 
--
 
--
-- This module implements
+
-- This module implements
 
-- {{Color contrast ratio}}
 
-- {{Color contrast ratio}}
 
-- {{Greater color contrast ratio}}
 
-- {{Greater color contrast ratio}}
Line 9: Line 9:
 
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )
 
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )
   
local function sRGB (v)
+
local function sRGB (v)
if (v <= 0.03928) then
+
if (v <= 0.03928) then
 
v = v / 12.92
 
v = v / 12.92
 
else
 
else
Line 56: Line 56:
 
return ''
 
return ''
 
end
 
end
 
end
  +
 
-- This exports the function for use in other modules.
 
-- The colour is passed as a string.
 
function p._lum(color)
 
return color2lum(color)
 
end
 
end
   
Line 82: Line 88:
 
end
 
end
   
-- convert from hsl
+
-- convert from hsl
if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
+
if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
 
local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
 
local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
 
return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)
 
return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)
end
+
end
   
-- convert from rgb
+
-- convert from rgb
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then
+
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then
 
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')
 
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')
 
return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))
 
return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))
end
+
end
   
-- convert from rgb percent
+
-- convert from rgb percent
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
+
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
 
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
 
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
 
return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)
 
return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)
end
+
end
   
 
-- remove leading # (if there is one) and whitespace
 
-- remove leading # (if there is one) and whitespace
Line 121: Line 127:
 
-- failure, return blank
 
-- failure, return blank
 
return ''
 
return ''
end
 
 
-- This exports the function for use in other modules.
 
-- The colour is passed as a string.
 
function p._lum(color)
 
return color2lum(color)
 
 
end
 
end
   
Line 147: Line 147:
 
ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2
 
ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2
 
end
 
end
  +
 
 
if css then
 
if css then
 
local c1 = args[1] or ''
 
local c1 = args[1] or ''
Line 164: Line 164:
 
return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';'
 
return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';'
 
end
 
end
  +
 
 
return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or ''
 
return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or ''
 
end
 
end
Line 218: Line 218:
   
 
--[[
 
--[[
Use {{#invoke:Color contrast|somecolor}} directly or
+
Use {{#invoke:Color contrast|somecolor}} directly or
 
{{#invoke:Color contrast}} from a wrapper template.
 
{{#invoke:Color contrast}} from a wrapper template.
   
The article is a derivative under the Creative Commons Attribution-ShareAlike License. A link to the original article can be found here and attribution parties here. By using this site, you agree to the Terms of Use. Gpedia Ⓡ is a registered trademark of the Cyberajah Pty Ltd.