===== Color Contrast =====
It seems there are several steps to the calculation of color contrast:
  * Convert from 0-255 values to 0-1 values:
    * R_{sRGB} = R_{8bit} / 255 
    * G_{sRGB} = G_{8bit} / 255
    * B_{sRGB} = B_{8bit} / 255
  * Adjust that conversion for some non-linearity:
    * If R_{sRGB} \leq 0.03928 then R = R_{sRGB} / 12.92, R=\left(\left(R_{sRGB} +0.055\right)/1.055\right)^{2.4} otherwise.
    * Same adjustment for G and B.
  * Calculate the luminosity using this weighting of R, G and B:
    * L_1 = 0.2126\times R + 0.7152 \times G + 0.0722 \times B 
  * Do the same for the background (or adjacent object with with you want to check the contrast). Calculate the ratio: \displaystyle \frac{L_1 + 0.05}{L_2 + 0.05}. The ratio should be greater than 3 for type 14pt or larger if boldface, or 18pt or larger even if plain, greater than 4.5 otherwise.
==== Blues ====
=== On Black ===
As one recognizes from the really low coefficient blue gets (0.0722), blue is relatively "dark", with just over a tenth the luminance of green. This inspires the question, "can blue be used on a black background? If so, what range of blues can?"
If we take [0,0,0] as black, and note that 0/255=0 and 0/12.92=0, we are interested in B satisfying 
  * \left(0.0722\times B + 0.05\right)/\left(0.05\right)\geq 3.0, or 
  * 0.0722\times B \geq 3.0\times 0.05 -0.05 = 2.0\times 0.05 = 0.1 
  * \Rightarrow B\geq \left(0.1\right)/0.0722 which requires B greater than 1: not possible. Blue needs a little "boosting" with red and green to be bright enough to show well on black. If we use equal amounts of red and green to achieve this, we need
  * \left(0.0722\times B + 0.9278\times X +0.05\right)/\left(0.05\right) \geq 3.0
  * \left(0.0722\times B + 0.9278\times X \right) \geq 0.15-0.05 \; =\; 0.1  which yields, for the brightest blue (1.0)
  * 0.9278 \times X \geq 0.1 - 0.0722 = 0.0278 \Rightarrow X\geq 0.0278/0.9278\approx 0.03
  * \left(\left(X_{sRGB}+0.055\right)/1.055\right)^2.4 \geq 0.03
  *  \Rightarrow \left(X_{sRGB}+0.055\right)/1.055 \geq 0.231=\sqrt[2.4]{0.03} 
  * X_{sRGB}\geq 0.231\times 1.055 -0.055 = 0.2437 - 0.055 = 0.1887
  * 255 \times 0.1887 \approx 48 to we can use [48,48,255].
  * Less blue will require more X, to be determined by analagous calculations. Boosting using only green and no red is left as an exercise.
=== On White ===
How pale a blue can be used on a white background? White [255,255,255]/255 transforms to [1,1,1], and 
  * \left(1.055/1.055\right)^{2.4}=1 
  * (and 0.2126 + 0.7152 + 0.0722= 1.0000) so we are seeking values of B satisfying 
  * 1.05 \geq 3.0\times\left(0.0722\times B +0.05\right)= 0.2166\times B + 0.15 \Rightarrow 0.90\geq 0.2166\times B \Rightarrow 0.90/0.2166 \geq B 
  * which holds for all values of B from 0 to 1.0.