Как самым простым способом сделать переключатель светлая/темная тема на сайте?

123 4
S3
На сайте с 29.03.2012
Online
349
#11
Dmitriy_2014 #:
Так, а что вариант с изменением переменных в css через js плохой? Мне кажется он самым простым.

Он не плохой, просто примитивный. Я бы заморочился и сделал бы автопереключение темы. Было бы круче, как можно посмотреть в бутстрапе и наваять что-то свое.

W1
На сайте с 22.01.2021
Offline
306
#12
Dmitriy_2014 #:
Так, а что вариант с изменением переменных в css через js плохой? Мне кажется он самым простым.

Я тебе написал: через JS надо изменять общий класс. А уже в CSS прописываешь свои переменные для каждого класса. Так будет и проще, и правильнее.

Мой форум - https://webinfo.guru –Там я всегда на связи
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#13
Sly32 #:

Он не плохой, просто примитивный. Я бы заморочился и сделал бы автопереключение темы. Было бы круче, как можно посмотреть в бутстрапе и наваять что-то свое.

Так мне и нужно примитивный. Не, не, без заморочек, без автопереключния определения и т.п. без идей бутстрапа, просто чтобы белое менялось на черное по клику, тем 0.005% которые сходят с ума по темной теме :).
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#14
webinfo #:

Я тебе написал: через JS надо изменять общий класс. А уже в CSS прописываешь свои переменные для каждого класса. Так будет и проще, и правильнее.

Так это надо классы менять добавлять, а так я бы по клику значения в переменных поменял бы и все.
W1
На сайте с 22.01.2021
Offline
306
#15
Dmitriy_2014 #:
Так это надо классы менять добавлять, а так я бы по клику значения в переменных поменял бы и все.

Ага. И буцтрап не забудь поставить.

Я тебе написал, как надо делать - а дальше твоё дело. Можешь хоть у каждого элемента свойства через JS менять.

M
На сайте с 17.06.2021
Offline
79
#16
Dmitriy_2014 #:
Так это надо классы менять добавлять, а так я бы по клику значения в переменных поменял бы и все.

https://frontendtoday.ru/articles/dark-mode-best-practice/

https://dev.to/whitep4nth3r/the-best-lightdark-mode-theme-toggle-in-javascript-368f


ты про это пишешь? Если да, то это пользовательские стили и все равно нужен будет js с переключением не класса а data в теге html

The best light/dark mode theme toggle in JavaScript
The best light/dark mode theme toggle in JavaScript
  • 2023.06.20
  • dev.to
Learn how to build The Ultimate Theme Toggle™️ for your website using JavaScript, CSS custom properties, local storage and system settings. No framework required!
Bybit крипто биржа https://partner.bybit.com/b/58507 /// Зарубежные VPS с оплатой РФ картами https://aeza.net/?ref=416422 (+15% к пополнению) //// Обучаем нейронки на сайте https://f4ck41.fun/
Михаил
На сайте с 02.03.2007
Offline
188
#17

Поменять стиль страницы – не проблема. Главная задача, как я понимаю – в том, чтобы запомнить, какую тему выбрал гость (ну или хотя бы если тем всего две и стартовая известна – то запомнить, что гость сменил стартовую тему на другую). Вот для этой задачи я выше решение и изложил. Не знаю, может, это и на основе JS можно решить, но я в этом не силён, но не стал бы на него полагаться, JS как-никак работает на стороне клиента, а не сервера. А вот если нужно сменить тему «на лету», не перезагружая страницу – тут JS, бесспорно, идеален (само собой, задача с запоминанием выбора гостя остаётся).

Откровенно признаюсь, что как именно будет реализовано описание тем – будь это Bootstrap, чистый CSS или вообще быстрый скачок из WordPress в Bitrix – в контексте вопроса ТС мне представляется несущественным.

Вот видишь, Алиса, что нужно бежать со всех ног, чтобы оставаться на месте! А чтобы куда-нибудь добраться – нужно бежать вдвое быстрее!
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#18
makepuff #:

https://frontendtoday.ru/articles/dark-mode-best-practice/

https://dev.to/whitep4nth3r/the-best-lightdark-mode-theme-toggle-in-javascript-368f


ты про это пишешь? Если да, то это пользовательские стили и все равно нужен будет js с переключением не класса а data в теге html

Да про пользовательские свойства, они же типа переменные в css, понятно что JS нужен будет, но почему бы их просто пачкой значение не поменять да и все, а так да что-то на вроде этого.
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#19
Михаил #:

Поменять стиль страницы – не проблема. Главная задача, как я понимаю – в том, чтобы запомнить, какую тему выбрал гость (ну или хотя бы если тем всего две и стартовая известна – то запомнить, что гость сменил стартовую тему на другую). Вот для этой задачи я выше решение и изложил. Не знаю, может, это и на основе JS можно решить, но я в этом не силён, но не стал бы на него полагаться, JS как-никак работает на стороне клиента, а не сервера. А вот если нужно сменить тему «на лету», не перезагружая страницу – тут JS, бесспорно, идеален (само собой, задача с запоминанием выбора гостя остаётся).

Откровенно признаюсь, что как именно будет реализовано описание тем – будь это Bootstrap, чистый CSS или вообще быстрый скачок из WordPress в Bitrix – в контексте вопроса ТС мне представляется несущественным.

Да про запоминание, это отдельный вопрос, ну через js как в выше приведенной статье через cookies или LocalStorage. Не заморочек через сервер точно не нужно, пусть это на клиенте работает, это переключение тем функция по скольку по стольку, я когда о ней начинаю думать, думаю оставлю я все как есть :-), но не надо заморочится и сделать хотябы простой вариант.
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#20

Почему не сделать кучу переменных в css в root’е пример:

    --ytd-searchbox-border-color: hsla(0,0%,53.3%,0.2);

    --ytd-searchbox-legacy-border-color: #ccc;

    --ytd-searchbox-legacy-border-shadow-color: #eee;

    --ytd-searchbox-legacy-button-color: #f8f8f8;

    --ytd-searchbox-legacy-button-border-color: #d3d3d3;

    --ytd-searchbox-legacy-button-focus-color: #e9e9e9;

    --ytd-searchbox-legacy-button-hover-color: #f0f0f0;

    --ytd-searchbox-legacy-button-hover-border-color: #c6c6c6;

    --ytd-searchbox-legacy-button-icon-color: #333;

    --ytd-searchbox-background: hsl(0,0%,100%);

    --ytd-searchbox-text-color: hsl(0,0%,6.7%);

И не поменять их всех одним кликом с помощью js, да и все?
123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий