Styling (CSS)
Next Generation CSS
This boilerplate uses jss with react-jss for styling react components.
jss allows you to write actual CSS inside your JavaScript.
There are many ways to style react applications, but we choose jss , before migrate to styled-components
Linting
To complement jss, this architecture also has a CSS linting setup. It uses stylelint which will help you stay
consistent with modern CSS standards. Read about it here.
CSS Support
We support and recommend the use of jss. We also support the use of CSS stylesheets.
There are many ways to style web applications, unfortunately, we cannot support them all.
jss
Below creates a react components (<Button> and renders them as children of the <App> component:
import React from 'react';
import {createUseStyles} from 'react-jss'
const useStyles = createUseStyles({
myButton: {
color: 'green',
margin: {
// jss-plugin-expand gives more readable syntax
top: 5, // jss-plugin-default-unit makes this 5px
right: 0,
bottom: 0,
left: '1rem'
},
'& span': {
// jss-plugin-nested applies this to a child span
fontWeight: 'bold' // jss-plugin-camel-case turns this into 'font-weight'
}
},
myLabel: {
fontStyle: 'italic'
}
})
const Button = ({children}) => {
const classes = useStyles()
return (
<button className={classes.myButton}>
<span className={classes.myLabel}>{children}</span>
</button>
)
}
const App = () => <Button>Submit</Button>
render(<App />, document.getElementById('root'))
For more information about
react-jsssee https://cssinjs.org/react-jss
Stylesheet
Webpack allows you to import more than JavaScript.
Using the css-loader you can import CSS into a JavaScript:
Button.css
.danger {
background-color: #c30000;
}
Button.js
import React from 'react';
import './Button.css'; // Tell Webpack that Button.js uses these styles
function Button() {
// You can use them as regular CSS styles
return <button className="danger">Click me</button>;
}
For more information about Stylesheets and the
css-loadersee https://github.com/webpack-contrib/css-loader