π«Nested selectors (ex $ syntax)
tss-react unlike jss-react doesn't support the $ syntax but is a better alternative.
With the Modern API and makeStyles API
In JSS you can do:
//WARNING: This is legacy JSS code!
{
parent: {
padding: 30,
"&:hover $child": { // <- This do not work in TSS
backgroundColor: "red"
},
},
child: {
backgroundColor: "blue"
}
}
//...
<div className={classes.parent}>
<div className={classes.child}>
Background turns red when the mouse is hovering over the parent
</div>
</div>
This is how you would achieve the same result with tss-react
Another example:
Another example:
WARNING: Nested selectors requires ES6 Proxy support which IE doesn't support. It can't be polyfilled (this will not work) but don't worry, if
Proxyis not available on a particular browser, no error will be thrown and TSS will still do its work. Only nested selectors won't work.
withStyles
withStylesSSR
NOTE: This does not apply to the Modern API, only for makeStyles and withStyles
In SSR setups, on stylesheets using nested selectors, you could end up with warnings like:
Warning: Prop className did not match. Server: "tss-XXX-root-ref" Client: "tss-YYY-root-ref".

You can fix this error by providing a unique id when calling makeStyles or withStyles (It will set XXX and YYY).
withStyles:
Last updated
Was this helpful?
