• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dark mode w react - jaka praktyka jest dobra?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
217 wizyt
pytanie zadane 26 lutego 2021 w JavaScript przez hakiros54 Obywatel (1,160 p.)

Witam, co jest uznawane za dobrą praktykę w robieniu dark mode'a w React'cie? Ostatnio zrobiłem to tak, że miałem przycisk który jak się kliknie to zmienia się state w reduxie i w potem w różnych komponentach pobieralem ten state i robiłem coś w stylu 
 

<div className = {darkMode? "header dark-mode": "header"} />... </div>

// inny komponent

<div className = {darkMode? "main dark-mode": "main"}>...</div>

...

I tak dodawałem do każdego większego fragmenu strony a potem scssie odpowiednio stylizowałem.

Innym rozwiązaniem może być też dodanie tego po prostu do diva z całą aplikacją
 

<div className = {darkMode? "app dark-mode": "app"}>...</div>

dzięki czemu nie trzeba pobierać tego state'u w różnych komponentach, ale wydaje mi  się to gorszym rozwiązaniem bo scss byłby mniej czytelny.

Znacie jakiś lepszy sposób?

2 odpowiedzi

+2 głosów
odpowiedź 26 lutego 2021 przez JAKUBW Nałogowiec (33,470 p.)

Hej, dla dobra użytkownika powinieneś stosować się do cssowego prefers-color-scheme

To rozwiązanie jest lepsze od ifów w js, bo działa z wyłączonym javascriptem, zmienia się natychmiast gdy użytkownik zmieni motyw w urządzeniu i jest motyw jest taki sam na różnych stronach na tym samym urządzeniu. Możesz zrobić opcjonalny wybór w js, który nadpisze wartość css, ale domyślne zachowanie powinieneś brać z prefers-color-scheme.

Możesz użyć z zmiennych css w taki sposób:

:root {
        --primary-color: #4150b6;
}


@media (prefers-color-scheme: dark) {
   :root {
        --primary-color: #825BD9;
   }
}

p {
   background-color: var(--primary-color);
}

 

–2 głosów

Podobne pytania

0 głosów
2 odpowiedzi 1,693 wizyt
pytanie zadane 3 marca 2020 w JavaScript przez Wojtek Ćwiklik Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 857 wizyt
pytanie zadane 24 kwietnia 2019 w JavaScript przez xSebax Początkujący (270 p.)
0 głosów
0 odpowiedzi 245 wizyt

93,189 zapytań

142,204 odpowiedzi

322,030 komentarzy

62,517 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...