Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modification des pictogrammes : remplissage automatique #942

Closed
babastienne opened this issue Jul 7, 2023 · 3 comments
Closed

Modification des pictogrammes : remplissage automatique #942

babastienne opened this issue Jul 7, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@babastienne
Copy link
Member

Geotrek-Rando a la particularité de modifier les pictogrammes envoyés par Geotrek-Admin. Problème : cela ne permet pas d'obtenir un résultat d'affichage conforme au design initial uploadé par les utilisateurs.

Par exemple lorsqu'un territoire upload le picto suivant :

image

Cela donne le résultat suivant dans Geotrek Rando :

image


Ce qu'il faudrait c'est que la couleur soit surchargée sans qu'un remplissage soit pour autant ajouté car la majeur partie du temps si un territoire envoi un picto sans remplissage c'est justement qu'il ne souhaite pas de remplissage.

@babastienne babastienne added the bug Something isn't working label Jul 7, 2023
@babastienne
Copy link
Member Author

Le problème est lié à l'attribut du fichier svg fill qui est surchargé peu importe sa valeur. Ainsi si l'attribut possède la valeur none, il est surchargé. Il faudrait pour respecter les bonnes pratiques web qu'il ne soit surchargé que si la valeur de l'attribut comporte currentColor.

@dtrucs
Copy link
Collaborator

dtrucs commented Jul 24, 2023

Plusieurs chantiers à mettre en place.

Corriger les remplacements de fill :

Actuellement si les pictogrammes SVG possèdent une propriété fill (ex: <circle style="fill: red" />), sa valeur est remplacée automatiquement par l'app (le plus souvent par du blanc) et le remplacement ne se fait pas s'ils possèdent un attribut fill (ex: <circle fill="red" />)
Parfois cette couleur blanche est surchargée à nouveau, comme dans les filtres de recherches où elle prend une couleur grise, ou primary1 si activée. Ici la surchage se fait en CSS et force le fill de tous les éléments du SVG.

Le premier correctif à mettre en place soulevé par @babastienne est d'ignorer les fill avec la valeur none ou transparent dans les remplacements de valeur, de tenir compte des attributs fill, et de changer la stratégie de surcharge par CSS (car le CSS ignore le contenu du SVG et force le fill).

Appliquer les remplacements de stroke :

Aujourd'hui, il n'y a aucune surcharge liées aux contours des objets (stroke): Par exemple on peut imaginer une roue de vélo avec un fill: none et un stroke défini.
Le second correctif consiste à gérer les stroke avec les mêmes règles que les fill.

Définir un fill par défaut si aucun fill ou stroke n'est défini sur l'élément :

Si l'élément n'a pas de fill/stroke, il sera peint en noir, en appliquant un fill: currentColor par défaut sur l'élément permettra une surcharge de la couleur par l'app.

Inliner les styles :

Étant donnée qu'il est possible de définir des feuilles de styles dans les SVG et que les SVG sont intégrés tel quel dans la page, il peut y avoir un conflit de CSS (voir #944), il convient d'inliner les SVG pour chaque élément du SVG.

@dtrucs
Copy link
Collaborator

dtrucs commented Aug 8, 2023

Fonctionnalité mise en place avec la version 3.15.0.

@dtrucs dtrucs closed this as completed Aug 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants