Определите предпочтительную цветовую схему пользователей для персонализированного веб-дизайна

Проверка предпочтительной цветовой схемы пользователя может быть полезна при разработке веб-сайтов или приложений, поскольку позволяет обеспечить более персонализированный и визуально привлекательный опыт. В этой статье блога мы рассмотрим несколько методов с примерами кода для определения предпочтительной цветовой схемы пользователя.

Метод 1: использование метода window.matchMedia()

if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
  // User prefers dark color scheme
  console.log('Dark mode is preferred');
} else {
  // User prefers light color scheme
  console.log('Light mode is preferred');
}

Метод 2: доступ к объекту window.localStorage

if (localStorage.getItem('preferredColorScheme') === 'dark') {
  // User prefers dark color scheme
  console.log('Dark mode is preferred');
} else {
  // User prefers light color scheme
  console.log('Light mode is preferred');
}

Метод 3: использование объекта window.navigator

if (window.navigator.userAgent.includes('Dark')) {
  // User prefers dark color scheme
  console.log('Dark mode is preferred');
} else {
  // User prefers light color scheme
  console.log('Light mode is preferred');
}

Метод 4. Анализ медиазапросов CSS

// Define a CSS media query for dark color scheme
const darkSchemeQuery = window.matchMedia('(prefers-color-scheme: dark)');
// Define a callback function to handle changes in the color scheme
const handleColorSchemeChange = (event) => {
  if (event.matches) {
    // User prefers dark color scheme
    console.log('Dark mode is preferred');
  } else {
    // User prefers light color scheme
    console.log('Light mode is preferred');
  }
};
// Add the callback function as a listener to the media query
darkSchemeQuery.addListener(handleColorSchemeChange);
// Check the initial color scheme preference
handleColorSchemeChange(darkSchemeQuery);

Это всего лишь несколько способов проверить предпочтительную цветовую схему пользователя. Вы можете выбрать тот, который лучше всего соответствует вашим требованиям, и реализовать его в своем проекте.