Встречается на собеседованиях • сегодня
Как сделать кнопку смены темы влияющую на все контролы на экране
Для реализации кнопки смены темы можно использовать CSS-переменные и JavaScript. Вот пример:
```html
```
```css
:root {
--bg-color: #ffffff;
--text-color: #333333;
--primary-color: #6200ee;
}
[data-theme="dark"] {
--bg-color: #121212;
--text-color: #ffffff;
--primary-color: #bb86fc;
}
body {
background-color: var(--bg-color);
color: var(--text-color);
}
button {
background-color: var(--primary-color);
color: white;
}
```
```javascript
const toggleBtn = document.getElementById('theme-toggle');
toggleBtn.addEventListener('click', () => {
document.documentElement.toggleAttribute('data-theme');
});
```
Суть:
1. Объявляем CSS-переменные для светлой темы в :root
2. Переопределяем их для темной темы через атрибут data-theme
3. Используем эти переменные во всех стилях элементов
4. JavaScript переключает атрибут на корневом элементе
Все элементы, использующие эти переменные, автоматически обновятся при переключении темы.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы