Tengo un archivo de estilo js con un componente de notificación que tiene su propia clase. Contiene un div viewDot con su propia clase separada en el mismo archivo que está presente cuando aún no se ha hecho clic en la notificación. El div viewDot está dentro del div que tiene la clase estilo de notificación.
Quiero hacer que si paso el cursor sobre la notificación, el color del viewDot también cambie. Como se muestra a continuación, el color del viewDot solo cambia si paso el mouse directamente sobre el viewDot. Cualquier consejo sobre cómo lograr el comportamiento descrito es muy apreciado.
const styles = theme => ({ viewDot: { backgroundColor: '#00B8C4', '&:hover': { backgroundColor: '#F9D967', } }, notificationStyle: { backgroundColor: '#FFFFFF', '&:hover': { backgroundColor: '#52B5C2', }, // want to do something like this, but this is not correct as is '&:hover .viewDot': { backgroundColor: '#F9D967' } }, }); Los styles variables se importan desde este archivo ComponentStyles.js a un archivo Component.jsx para un Componente usando la ruta del archivo y los estilos se crean usando const useStyles = makeStyles(styles); antes del bloque de código del componente. En el bloque de código del componente, utilizo const classes = useStyles(); para usar algo como className={ classes.notificationStyle } para los elementos dentro del componente.
Cambie '&hover.viewDot a '&:hover .viewDot .
El hover requiere un : ya que es una pseudoclase, y necesita un espacio entre los dos nombres de clase ya que desea especificar una relación descendiente
Actualizar
Al ver que usa MUI y JSS, los nombres en el tema en realidad no se convierten en nombres de clase y es por eso que '&:hover .viewDot' no funcionó.
La sintaxis correcta para hacer referencia a otro estilo definido en el mismo ámbito es usar $ruleName , por lo que en este caso '&:hover $viewDot'