Closed
Description
The default class names (.jss123) created by jss will be merged from different dynamic imports which breaks the design.
Setup:
- Material-UI (v1.0.0-beta-26) https://material-ui-next.com
- JSS https://github.com/cssinjs/jss
Solution:
replace default name generator (http://cssinjs.org/js-api/?v=v9.5.0#generate-your-own-class-names) with a variation which uses random strings as part of the class name and wrap your app with this HOC.
import React, { Component } from 'react';
import JssProvider from 'react-jss/lib/JssProvider';
import { create } from 'jss';
import preset from 'jss-preset-default';
//import createGenerateClassName from 'material-ui/styles/createGenerateClassName';
import Layout from './components/pages/layout';
const createGenerateClassName = () => {
let counter = 0
return (rule, sheet) => `c${Math.random().toString(36).substring(2, 4) + Math.random().toString(36).substring(2, 4)}-${rule.key}-${counter++}`
}
const jss = create(preset());
// Custom Material-UI class name generator for better debug and performance.
jss.options.createGenerateClassName = createGenerateClassName;
function App() {
return (
<JssProvider jss={jss}>
<Layout />
</JssProvider>
);
}
export default App;
please add this to the recipe section of your docs
Metadata
Metadata
Assignees
Labels
No labels