Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

377
Vistas
¿Cómo detecto el modo oscuro usando JavaScript?

Windows y macOS ahora tienen modo oscuro.

Para CSS puedo usar:

 @media (prefers-dark-interface) { color: white; background: black }

Pero estoy usando la API Stripe Elements, que pone colores en JavaScript

Por ejemplo:

 const stripeElementStyles = { base: { color: COLORS.darkGrey, fontFamily: `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"`, fontSize: '18px', fontSmoothing: 'antialiased', '::placeholder': { color: COLORS.midgrey }, ':-webkit-autofill': { color: COLORS.icyWhite } } }

¿Cómo puedo detectar el esquema de color preferido del sistema operativo en JavaScript?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { // dark mode }

Para estar atento a los cambios:

 window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { const newColorScheme = event.matches ? "dark" : "light"; });
over 4 years ago · Santiago Trujillo Denunciar

0

Según MediaQueryList - Web APIs | MDN , addListener es la forma correcta de escuchar el cambio. addEventListener no funciona para mí en iOS 13.4.

 window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) { console.log(`changed to ${e.matches ? "dark" : "light"} mode`) });
over 4 years ago · Santiago Trujillo Denunciar

0

Puede consultar las consultas de medios CSS directamente con JavaScript

El método window.matchMedia() devuelve un objeto MediaQueryList que representa los resultados de la cadena de consulta de medios CSS especificada. El valor del método matchMedia() puede ser cualquiera de las funciones multimedia de la regla CSS @media, como altura mínima, anchura mínima, orientación, etc.

Para verificar si Media-Query es verdadera, se puede usar la propiedad de matches

 // Check to see if Media-Queries are supported if (window.matchMedia) { // Check if the dark-mode Media-Query matches if(window.matchMedia('(prefers-color-scheme: dark)').matches){ // Dark } else { // Light } } else { // Default (when Media-Queries are not supported) }

Para actualizar el color-scheme dinámicamente según la preferencia del usuario, se puede usar lo siguiente:

 function setColorScheme(scheme) { switch(scheme){ case 'dark': // Dark break; case 'light': // Light break; default: // Default break; } } function getPreferredColorScheme() { if (window.matchMedia) { if(window.matchMedia('(prefers-color-scheme: dark)').matches){ return 'dark'; } else { return 'light'; } } return 'light'; } if(window.matchMedia){ var colorSchemeQuery = window.matchMedia('(prefers-color-scheme: dark)'); colorSchemeQuery.addEventListener('change', setColorScheme(getPreferredColorScheme())); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda