it-swarm-pt.tech

Como obter uma cor "percebida" consistente em uma BG transparente?

Estou em apuros.

Eu tenho que fazer controles de formulário (botões, caixas de seleção, entradas de texto etc.) em um fundo preto semi transparente (85% alfa).

Aqui está a aparência deles até agora:

Le checkboxes

Observe a diferença entre os dois primeiros e os dois inferiores. A diferença é que a borda inferior e a direita são leves o suficiente para dar uma aparência interessante. O problema? Todas, exceto uma dessas bordas, têm a mesma cor.

:(

Por ter um fundo transparente, as linhas aparecem mais claras ou mais escuras com base na cor por trás dela! Então, esse visual elegante vai e vem com base no que está por baixo. Eu sempre quero que a aparência elegante esteja lá, como posso fazer isso? Existem truques no modo de mesclagem para isso?

P.S. Esqueci de mencionar que isso acabará sendo exibido no Flash, então me divirto um pouco com os modos de mesclagem e outras coisas.

Edit: Eu fiz outra imagem para esclarecer melhor o problema (por 'muito escuro' e 'muito brilhante' ainda estou me referindo às bordas direita e inferior).

Another Example

6
Jonathan Dumaine

Você pode usar uma tela ou o modo de mesclagem com esquivar de cores. Ou você pode usar apenas uma cor branca pura, mas defina a transparência da área da borda para a porcentagem que deseja que ela fique mais clara. Será o mesmo que usar um modo de mesclagem de tela com uma cor cinza dessa luminosidade.

Editar:
A luminosidade percebida é baseada na cor BG com a qual a cor FG é o pano de fundo - como você viu nas suas imagens. No momento, o que está acontecendo é que os destaques da caixa de seleção são renderizados na mesma cor e sombra, independentemente do plano de fundo. Portanto, se o fundo estiver brilhante, apenas aumentará um pouco ou nenhum a luminosidade, mas se o fundo estiver escuro, aumentará muito a luminosidade. Isso dá ao destaque uma aparência não natural/inconsistente.

A correção é fazer com que os realces iluminem o BG em X%, para que ele seja sempre X% mais brilhante que seus pixels adjacentes. A luminosidade "percebida" será então X%, independentemente do plano de fundo (a menos que o plano de fundo esteja muito claro, não será possível aumentar o brilho em X% completo).

2
Lèse majesté