πŸ”§Setup

Start using TSS, with or without MUI

tss-react has over 170 000 monthly NPM download and fewer than 220 ⭐️ on GitHub.

If you use TSS in production, please consider giving the project a star.

yarn add tss-react @emotion/react @mui/material @emotion/styled

If you are migrating from @material-ui/core (v4) to @mui/material (v5) checkout the migration guide from MUI's documentation website here.

import { render } from "react-dom";
import { CacheProvider } from "@emotion/react";
import createCache from "@emotion/cache";
import { ThemeProvider } from "@mui/material/styles";

export const muiCache = createCache({
    "key": "mui",
    "prepend": true
});

//NOTE: Don't use <StyledEngineProvider injectFirst/>
render(
    <CacheProvider value={muiCache}>
        <ThemeProvider theme={myTheme}>
            <Root />
        </ThemeProvider>
    </CacheProvider>,
    document.getElementById("root")
);

As a MUI user (if you are using TypeScript >= v4.4), you can simply:

The theme object that will be passed to your callbacks functions will be the one you get with import { useTheme } from "@mui/material/styles".

If you want to take controls over what the theme object should be, you can re-export makeStyles and withStyles from a file called, for example, makesStyles.ts:

./MyComponent.tsx

You can detect unused classes with this ESLint plugin.

Last updated

Was this helpful?