I understand that the current inset and outset code is based on what 4.x
does. However, I wonder why it was felt necessary to special case the
insets for white borders on white backgrounds and black borders on black
backgrounds.
Just for comparison, I tried two other apps that calculate insets. IE
appears to draw a double inset, if the border is wide enough. The outer
inset uses the specified border colour and a colour of � the RGB value;
the inner inset uses � and � colours. I don't like this either, because
you can't inset a black border.
I also tried the Windows Display control panel. When you change the 3D
colour you select a "base" colour, and it calculates 2/3 of the
lightness for the "dark" color (NB without changing the hue, like
Mozilla and IE appear to do), and 1/2 of the "darkness" for the "light"
color. i.e. given [h, l, s] the "dark" colour is [h, l * 2 / 3, s]
(rounded down, I think?) and the "light" colour is [h, (l + lmax) / 2,
s] (rounded up) .
I quite like this approach, but Boris Zbarsky suggested that I posted
here to get some feedback.
