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

Gestion du dark mode page par page #343

Open
maxgfr opened this issue Nov 12, 2024 · 0 comments
Open

Gestion du dark mode page par page #343

maxgfr opened this issue Nov 12, 2024 · 0 comments

Comments

@maxgfr
Copy link

maxgfr commented Nov 12, 2024

Bonjour,

Récemment je suis tombé sur use-case que je dois gérer qui semble rentrer en conflit avec la gestion du theme light / dark

Contexte

Nous avons des pages que nous transformons en widget intégrable par d'autres sites. Si un utilisateur est en dark mode configuré sur notre site internet via le dsfr et qu'il va sur le site d'un partenaire, automatiquement l'UI sera en dark. Nous souhaitant que certaines pages soit définies dans un theme bien particulier.

Implementation

Aujourd'hui nous utilisons une application en nextjs avec un app router, nous gérons les paramètres dsfr à l'intérieur de celle-ci. Le problème semble venir du defaultSchemeColor qui s'applique sur le theme également :

[data_fr_theme]: defaultColorScheme

Ces paramètres (data-fr-theme, data-fr-scheme) figurent dans le html ce qui semble pas super simple comme approche, car la logique de theme se ferait au niveau du server-side au risque d'avoir un clignotement au chargement de la page

Solution

Serait-il intéressant de faire un overrideColorTheme qui est définit de manière exceptionnel pour forcer l'utilisation au niveau du getHtmlAttributes ?

Par défaut nous pouvons laisser la couleur issue du defaultSchemeColor

Si tel est le cas, ça serait intéressant de mettre en place de la doc si telle est le cas, car l'approche de modifier un élément dans le html tag signifie qu'on doit utiliser un tag header et donc possiblement un middleware pour injecter les bons paramètres si on suit cette approche. J'ai le lien d'une PR si vous voulez voir l'approche avec le header : https://github.com/SocialGouv/code-du-travail-numerique/pull/6275/files

Je passe sûrement à côté d'autres éléments, si vous avez des hints ou solutions je suis preneur

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant