Atomic CSS class should apply one visual effect, and apply that every single time. So your CSS becomes made up of many small parts, that can be composed to give a specific visual effect.
npm install functional-css-framework
import 'functional-css-framework'
require('functional-css-framework')
@import '~functional-css-framework'
<link href="./node_modules/functional-css/dist/functional-css.min.css" rel="stylesheet" media="all" >
require('functional-css/dist/index.min.css')
...
export class App extends React.Component {
constructor(props) {
super(props)
this.state = { theme: 'dark' }
}
switchTheme() {
this.setState(state => ({theme: state.theme === 'dark' ? 'light' : 'dark'}))
}
render() {
return <div className={`${this.state.theme}`}>
<i className="ion-ios-color-palette"
onClick={this.switchTheme.bind(this)} />
</div>
}
}