Для корректной смены на темный режим и изменения метатега `theme-color` без мерцания можно использовать следующий подход:
1. Используйте CSS переменные для установки цветовых схем (например, `--background-color`, `--text-color`, `--accent-color`, и т.д.). Создайте два набора переменных: для светлой и для темной темы.
2. Создайте функцию в JavaScript, которая будет переключать класс на `<body>` (например, `dark-mode`), когда пользователь активирует темный режим. При этом функция будет менять значения CSS переменных на набор для темной темы.
3. Для смены метатега `theme-color` используйте JavaScript для динамического добавления или изменения элемента `<meta name="theme-color" content="#XXXXXX">` в `<head>` документа, в зависимости от выбранной темы.
Пример использования CSS переменных и функции переключения темы в JavaScript:
```css
/* Светлая тема */
:root {
--background-color: #ffffff;
--text-color: #000000;
--accent-color: #007bff;
}
/* Темная тема */
.dark-mode {
--background-color: #1a1a1a;
--text-color: #ffffff;
--accent-color: #ffc107;
}
body {
background-color: var(--background-color);
color: var(--text-color);
}
/* JavaScript */
function toggleDarkMode() {
document.body.classList.toggle('dark-mode');
if (document.body.classList.contains('dark-mode')) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#1a1a1a');
} else {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff');
}
}
```
Такой подход позволит плавно переключать темы без мерцания и обеспечит корректное отображение контента на странице.