Je rebondi sur le fil des fonds aléatoires pour poser une question sur
l'utilisation des mots-clés pour la gestion des couleurs.
J'ai à peu près compris comment faire (mais pas encore appliqué
par manque de
temps) les explications de triton le 11/4. Mais ça laisse à
l'administrateur
la possibilité de faire n'importe quoi, donc avoir des trucs pas
beau ou pire
illisibles. Je me dis que si je définis un groupe de 16 couleurs
(8 d'avant
pan et 8 d'arrière plan) qui iront parfaitement ensemble (j'utilise color
scheme pour ça :
Application Moved Permanently!), et
même plusieurs groupes de couleurs, genre bleu/orange, ou jaune/violet ou
vert/rouge, l'admin aura juste à choisir un groupe, la feuille de
style étant
conçue de façon à n'utiliser que ces 16 couleurs.
Le problème est que je ne vois pas comment gérer ça, il faudrait
un mot clé
permettant de choisir des ensembles de mots clés, et même avec
mots_partout
ça ne marche pas.
LA seule solution que je suis capable d'imaginer pour l'instant est une
rubrique bidon contenant elle-même des rubriques bidons, une par
groupe de
couleurs (nommées bleu/orange, etc.). On met les mots clés des
couleurs dans
les rubriques, et par dessus tout ça on met un groupe de mots
clés permettant
d'affecter à la rubrique bidon principale un de ces mots clés.
Mais ça fait
d'une part un peu bourrin, et ensuite, bonjour la boucle pour
récupérer les
codes couleur...
Alors si qqqun a plus d'imagination que moi...
Bonsoir,
ma methode...
- un groupe de mot cle couleurRubrique, chaque mot cle a pour champ
descriptif une couleur en hexa.
- a partir de cette couleur un p tit script calcule automatiquement 3
couleurs (2 plus claires et un couleur d accompagnement), en fait trois
filtres qui seront appliques a la couleur de base (sur le principe de
couleurClaire livre de base dans spip)
- un petit filtre qui a partir de la couleur donnee calcule s il faut mettre
du texte en noir ou en blanc dessus (algorythme du w3c pour un contraste
couleur suffisant)
Le redacteur/admin choisit donc une couleur par rubrique, cela cree une
palette de 4 couleurs "automatiquement harmonieuses" qui s applique en
divers endroit de la page (background, filet...) les textes qui s affichent
sur les backgrounds utilisent le filtre de calcul de contraste et s
affichent automatiquement en blanc ou en noir selon les contraintes de
visibilite.
Le redacteur ne choisit donc qu 1 couleur par rubrique dans une liste de
couleur donnee par moi (techniquement, rien ne l empeche de creer un
nouveau mot cle avec une nouvelle valeur hexa dedans, cela fonctionnera
aussi, les 3 autres couleurs seront calculees et appliquees sur la rubrique,
mais bon, les redacteurs/admin ne sont pas tous de dangereux psychopathes
cherchant a ruiner leur site non plus... enfin, je suppose...)
On peut creer des groupes de mots cle, ou prefixer les mots cles pour
proposer plusieurs palettes de base, genre un groupe (techno_rouge,
techno_vert, techno_bleu) un autre (pastel_rouge,pastel_bleu, pastel_vert)
et evidement, si l admin decide de piocher dans la palette techno s il
souhaite un site coherent graphiquement, il ira pas utiliser la gamme
pastel... quoi que...
c est par exemple ce qui est fait ici :
les clients utilisaient deja un systeme de code couleurs tres etendu pour
leurs docs papier, en gros chaque theme (urbanisme, culture...) etait deja
associe a une couleur...
Ce dispositif repose sur une feuille de style dynamique qui fait une boucle
sur le groupe de mots cles couleurRubrique pour creer toutes les class
necessaires dans toutes les couleurs presentes.
//
script de contraste des couleurs :
function blancounoir($color)
{
if (substr($color,0,1)=="#") $color=substr($color,1,6);
$tablo[0] = hexdec(substr($color, 0, 2));
$tablo[1] = hexdec(substr($color, 2, 2));
$tablo[2] = hexdec(substr($color, 4, 2));
$Intensite=(($tablo[0]*299)+($tablo[1]*587)+($tablo[2]*114))/1000;
$IntensiteBlanc=((255*229)+(255*587)+(255*114))/1000;
$RapportIntensite=$IntensiteBlanc-$Intensite;
if ($RapportIntensite>123)
{
$valNegatif="ffffff";
}
else
{
$valNegatif="000000";
}
return $valNegatif;
}
///
dans la css dynamique, j ai par exemple des instructions de ce genre :
//
.class#DESCRIPTIF_Titre
{
color:#[(#DESCRIPTIF|blancounoir)];
border:1px solid #[(#DESCRIPTIF)];
background-color: #[(#DESCRIPTIF)];
}
quelque soit la valeur de background (que l on ne connait pas forcement
puisqu administrable) le filtre |blancounoir applique a color garantie que
la couleur du texte sera lisible...
Voila, c est pas forcement super intuitif, c est un peu curieux comme
procede, parceque cela implique de concevoir une charte graphique plus ou
moins imprevisible, une charte graphique "grise" ou tout au moins en
"valeurs de gris" qui se transforme automatiquement en une interface
coloree... Jusqu a present, cette methode appliquee sur plusieurs sites, pas
eu de plaintes pour perte d un oeil ou d entorse au sens esthetique... mais
je ne desespere pas...
dispo pour plus d infos si besoin (la description est longue, mais quand
meme insuffisante je pense)...
cordialement
triton