¿Sigue siendo esta la solución para verificar si está en modo oscuro?

Continuando la discusión de Ninguna clase específica para el modo oscuro:

Tengo un componente de tema que está cambiando el logo del sitio según la categoría en la que se encuentre el usuario y agregando logos a las categorías en la barra lateral, y ahora quieren cambiar a un logo diferente en el modo oscuro.

Algo como esto:

.category-my-other-identity #site-logo {
  content: url($AS) !important;
  display: inline-block;
  height: $site-logo-height;
  font-size: 0;
  margin-top: $site-margin-top;
  margin-bottom: $site-margin-bottom;
}

Soy terrible con CSS, pero parecería mucho más fácil si hubiera una clase “esto-es-modo-oscuro”. O tal vez algo como lo anterior pueda funcionar.

O tal vez si esto fuera un componente de tema “real” con configuraciones (ahora mismo está codificado a mano como lo anterior), entonces sería lo suficientemente fácil como para incluir esas configuraciones en el CSS. Esto parece lo que debería hacer de todos modos, ¿verdad?

6 Me gusta

Casualmente, ¡esto es algo que hemos estado discutiendo internamente esta semana! Un par de pruebas de concepto de PR están aquí:

Tenga en cuenta que estos son solo experimentos para ayudar con nuestra reflexión; no hay garantía de que se fusionen.

En cuanto a “ahora mismo”, la mejor opción es probablemente usar el componente <LightDarkImg de esta manera:

8 Me gusta

Tiene sentido. Tuve el mismo problema una vez, pero @david, eso me habría funcionado.
Además, ¿las dificultades para otorgar insignias se considerarían un error o algo más?

2 Me gusta

Podría ser un error, pero necesitaríamos más detalles para saberlo con certeza; además, no está relacionado con este tema, por lo que lo mejor sería buscar el problema y, si no encuentras una respuesta, iniciar un nuevo tema explicando lo que intentas y dónde falla.

5 Me gusta

Una solución puramente CSS probablemente usaría la variable CSS --scheme-type, o incluso la propiedad color-scheme que se añadió hace unas horas (¡genial!), con @container style queries o light-dark().

Desafortunadamente, light-dark() solo funciona con valores de color. Podrías usar @container style queries dirigidas a la propiedad color-scheme (firefox aún no soporta style queries para propiedades personalizadas). No he podido probar la idea ya que mi entorno de desarrollo está caído actualmente.

Tener una clase dedicada .dark-mode o .light-mode en la raíz sería definitivamente lo más fácil de usar.

6 Me gusta