« Le bonheur est une question d'habitude »

Le blog d'Olivier FAURAX

Est-ce que vous vous souvenez du web dans les années 90 ? Celui avec les GIFs animés pour la publicité, les couleurs criardes de la palette de Paint utilisées par les rares informaticiens qui savaient faire un site web ?

He bien, bienvenue en 2007 : on a toujours de la pub qui bouge (mais maintenant, il faut le plugin flash) et les informaticiens sont toujours aussi fort pour choisir leurs couleurs. Heureusement, Firefox 3 va les aider.

Qu'est-ce qu'une couleur, pour un ordinateur ?

C'est 3 nombres, compris entre 0 et 255. Ils représentent les valeurs de rouge, de vert et de bleu.

Si vous regardez une télé de très près (prenez une télé avec un tube cathodique), vous verrez 3 petits points rouge, vert et bleu, pour chaque pixel. Cela vient du fait qu'en mélangeant ces sources de lumière colorée, on obtient les autres couleurs (ex: avec de la lumière rouge et verte, on fait de la jaune). Attention ! C'est différent des mélanges faits avec de la peinture : on utilise de la lumière !

On utilise une valeur de 0 à 255 tout simplement parce que c'est ce qu'on peut mettre dans un octet (8 bits), unité chère aux informaticiens. C'est pour cela que ces couleurs sont dites 24bits (3*8 bits).

La notation est souvent : rgb(X, Y, Z), avec X,Y,Z entre 0 et 255 (rgb : Red Green Blue)
Note : il y a aussi une notation en hexadécimal (#xxyyzz) mais ça sort du sujet.

  • rgb(0,0,255) : bleu pur
  • rgb(255,255,0) : jaune
  • rgb(255,255,100) : jaune plus clair
  • rgb(255,255,255) : blanc
  • rgb(0,0,0) : noir

Un bon informaticien est paresseux...

...parce s'il est vraiment bon, c'est l'ordinateur qui fait son boulot ;)

Comme les premiers sites web étaient fait par des informaticiens qui faisaient tout à la main, il devaient choisir leur couleur en donnant les 3 valeurs RGB.

  • Je veux du bleu ! rgb(0,0,255)
  • Je veux du bleu clair ! rgb(150,150,255)
  • Je veux du vert ! rgb(0,255,0)
  • Je veux du jaune ! rgb(255,255,0)

Pourquoi ces valeurs ? Tout simplement parce qu'elles donnent des chiffres ronds en RGB. Je me confesse, je fais ça également : la couleur de la colonne (à la date d'écriture de ce billet) est rgb(200,200,255).

Le problème, c'est que ces valeurs ne donnent par un résultat esthétique. Vous en doutez ? Testez le vert rgb(0,255,0) ! Sur ce blog, ça se voit pas trop, parce que je n'ai utilisé que des teintes de bleu.

Changeons de référentiel !

Il existe un autre triplet de couleur possible : HSL. Les couleurs HSL sont les mêmes que les couleurs RGB, mais les 3 valeurs sont différentes. En HSL, les valeurs sont la teinte (H), la saturation (S) et la lumière (L).

  • H est compris entre 0 et 360 : c'est un angle sur le cercle des couleurs (0 : rouge, 120 : vert, 240 : bleu, avec bien sûr les intermédiaires)
  • S est un pourcentage, qui représente la pureté de la couleur (0 : gris, 100 : couleur pleine)
  • L est aussi un pourcentage, qui représente la luminosité de la couleur (0 : noir, 50 : couleur , 100 : blanc)

Ce qui veut dire qu'on peut avoir des couleurs jolies et cohérentes avec des valeurs rondes ! rgb(0,0,255) devient hsl(240,100,50) : si je veux une couleur plus claire, ça devient hsl(240,100,75), tout simplement !

Testez !

Voici un dégradé de bleu HSL/RGB

hsl(240,100%,40%) rgb(0,0,204)
hsl(240,100%,50%) rgb(0,0,255)
hsl(240,100%,60%) rgb(51,51,255)
hsl(240,100%,70%) rgb(101,101,255)
hsl(240,100%,80%) rgb(153,153,255)

Firefox 3 : encore plus !

Firefox supporte déjà les couleurs RGB et les couleurs HSL.

Mais il fait encore plus : la transparence ! Ainsi on passe aux espaces de couleurs RGBA et HSLA : le A veut dire Alpha, c'est-à-dire le niveau de transparence (0 = transparent, 1 = opaque). Par exemple, je peux mettre du texte rouge mi-transparent sur un fond bleu et Firefox mixe lui-même les couleurs. Le test est visible seulement avec Firefox 3 :

fond=rgba(0,0,255,0.5) rgba(255,0,0,0.2) rgba(255,0,0,0.5) rgba(255,0,0,1)

Bien sûr ça marche aussi avec les images : on peut empiler des images semi-transparentes (PNG) avec des couleurs semi-transparentes. Les possiblités de design sont vraiment intéressantes.

J'ai utilisé du RGBA, mais c'est exactement pareil avec du HSLA. D'ailleurs, quand j'ai testé avec Firefox 3 (alpha6, faîtes attention !), je me suis rendu compte que Firefox convertit le HSL en RGB et le HSLA en RGBA pour son usage interne. Je suppose que c'est dû au fait que tout ce qui gère l'affichage (bibliothèque de composants graphiques, moteur de rendu, etc.) doit utiliser des valeurs RGB, ce qui est logique puisque c'est ce qu'on utilise physiquement (intensité des trois composantes de lumière).

Désolé, mais ça va pas être possible...

Cher lecteur, je suis vraiment désolé, mais il y a un problème.

Sur le web, il y a un boulet, un empêcheur de tourner en rond, un casse-couille, c'est Internet Explorer (IE).
Et bien sûr, lui, il ne supporte que les couleurs RGB. Adieu, le HSL, le RGBA et le HSLA. Depuis la version 7, il supporte les images semi-transparentes (PNG) correctement, c'est déjà ça...

Comme il est encore majoritaire, il n'est pas possible d'ignorer IE en utilisant du RGBA ou du HSL.
C'est pour ça que je vous encourage à installer et faire installer Firefox autour de vous. Quand Firefox aura suffisamment de parts de marché, IE sera obligé de s'aligner et de supporter la même chose (ils l'ont déjà fait pour les onglets, le PNG et le RSS).

Une solution en attendant

CSS : Cascaded Style Sheets

Dans la recommandation, il est clairement dit que si une directive CSS n'est pas supporté, alors elle doit être ignorée. Donc si on mets du RGBA et qu'on surfe avec IE (beurk), c'est comme si la ligne n'était pas là.

Il est aussi écrit que si on mets 2 fois une même directive, c'est la 2ème qui est prise en compte. Donc si on mets une couleur RGB suivi d'une couleur RGBA et qu'on surfe avec Firefox 3, on verra la couleur RGBA.

Voilà notre solution :

#truc {
rgb(255,0,0);
rgba(255,0,0,0.5);
}

IE va comprendre la 1ère ligne, Firefox 3 la 1ère et la 2ème, en ne prenant en compte que la 2ème. Donc IE va afficher du bleu plein et Firefox 3 du bleu semi-transparent. Et on finit par un test :

Vous ne supportez pas le RGBA (IE, FF<3) Vous supportez le RGBA (Firefox >=3) !

Plus d'infos sur CSS3 : http://www.css3.info/

Commentaires (fil RSS RSS) :

# Plop, le lundi 16 juillet 2007 à 01h15 :
En fait le dernier test n'en est pas vraiment un, enfin il marche pour IE et Firefox mais n'est pas vraiment garanti pour d'autres navigateurs. Sous konqueror j'ai bien le message "Vous supportez le RGBA (Firefox >=3) !" alors qu'en fait pas vraiment. Quand je teste avec http://www.css3.info/preview/rgba.html seul la deuxième ligne s'affiche correctement. En fait on dirait que konqueror lit le champs rgba mais ignore tout simplement la transparence, ce que ce test ne teste pas.

Sinon je n'ai jamais été confronté à ce genre de problème n'ayant pas de site web mais en fait en te lisant et surtout en voyant quel code il faut rentrer pour afficher en rgb un simple dégradé d'une seule couleur, je me rend compte que ça doit être sacrement chiant de le faire pour tout un site. Heureusement que ce n'est pas le genre de chose que l'on fait tous les jours.
Gravatar de yoho# yoho, le lundi 16 juillet 2007 à 10h36 :
Dans ton intro, tu veux parler de ça ?

http://web.archive.org/web/19961022175331/http://www.microsoft.com/

:D (c'est super la wayback machine)
Gravatar de yoho# yoho, le lundi 16 juillet 2007 à 10h41 :
J'ai konqueror et le test final m'indique que je supporte le RGBA. Le rouge semi-transparent au dessus ne fonctionne pas pourtant... Konqueror truque donc le résultat en "essayant de comprendre", mais en fait, il ne comprends pas, si je comprends bien (je me suis bien fait comprendre ?)
Gravatar de Olivier# Olivier (Jabber), le lundi 16 juillet 2007 à 11h02 :
J'ai testé avec Konqueror et effectivement, il convertit les couleurs rgba vers le rgb en ignorant la transparence.

Sauf que si on lit le standard ( http://www.w3.org/TR/css3-color/#rgba-color ), il est clairement écrit (traduit par moi) :
« Les valeurs RGBA ne doivent pas être traitées comme simplement une valeur RGB avec l'opacité ignorée ».

Et c'est précisément ce que fait Konqueror.
Y a plus qu'à faire comme pour IE : on utilise le rgba dans nos sites web pour qu'ils apparaissent plus joli avec les navigateurs qui le supportent correctement.

Finalement, le test est pas faux : Konqueror supporte le rgba, mais d'une manière non-standard :)

@Yoho : Oui, j'ai bien compris. Konqueror comprend le support du rgba, mais ne comprend pas forcément correctement les couleurs qu'on prend :)
Gravatar de anne onime# anne onime, le lundi 16 juillet 2007 à 19h36 :
Quoi, qu'est-ce que t'as contre Internet Explorer, enfoiré ?

Je suis désolé, mais moi ça fait dix ans que je travaille chez Microsoft, et j'ai jamais eu un écran bleu, alors pas de propos discriminatoires, s'il vous plaît !

Anne Onime
Gravatar de Olivier# Olivier (Jabber), le lundi 16 juillet 2007 à 23h34 :
Encore un courageux anonyme ( AMarseille-156-1-82-57.w90-29.abo.wanadoo.fr ) ....

Ce que j'ai contre IE ? He ben c'est un navigateur qui pense plus à te refourguer MSN ou Windows Live plutôt qu'à suivre les standards et à proposer des trucs innovants.
Les onglets, le RSS, le support du PNG, c'est pas IE qui les a amené sur la place publique.

Et le support de CSS complètement cassé, je l'invente ?
http://www.google.fr/search?q=css+ie
Tous les liens portent sur les moyens de contourner les problèmes CSS d'IE.
Juste ça, ça pourrit la vie de la plupart des designers web HTML/CSS (et donc la mienne).

10 ans de travail chez Microsoft sans écran bleu ?
Il y a 10 ans, on était sous Windows 95, donc si tu n'as jamais vu d'écran bleu, c'est surement que depuis ce temps-là ton boulot c'est de servir les cafés.
 :
 :(non-publié, utilisé pour le gravatar)
 :
 :
Commentaire :

Merci d'utiliser un français (ou espéranto) correct. Les liens deviennent cliquables.
Vérification anti-spam :
En quelle année a été publié cet article ? / Jaro de tiu artikolo?

À propos de l'auteur

photo Olivier FAURAX Olivier FAURAX

D'un naturel joyeux, positif et curieux, je m'intéresse à beaucoup de choses parmi lesquels la salsa, l'espéranto, la plongée mais surtout l'informatique, le web et Linux.

Même si j'aime programmer, je m'intéresse également aux aspects d'ergonomie, de design et de marketing.

Si vous pensez avoir du travail pour moi, il y a mon LinkedIn et mon CV.

M'écrire : olivier+blog@faurax.fr

Retrouvez-moi sur Facebook et Twitter.

Catégories

S'abonner / Rechercher

S'abonner par RSS logo RSS
S'abonner par courriel :

Rechercher sur ce blog :

Contact

Je lis & je lie

Archives

Archives du blog

Infos & trucs de couleurs

Geo Visitors Map
Validation HTML Validation CSS
spampoison
Creative Commons License

Carte de visite

photo Olivier FAURAX Olivier FAURAX
Téléphone : 0681651140
Courriel :
Jabber : ofaurax@jabber.fr

Cette hCard sémantique a été créée avec le hCard creator.

 
  Olivier FAURAX