References
Introduction to React styling
Notes
- note that both CSS approaches have to use the 
styleprop for dynamic styles 
<div className={classes.circle} style={{ fontSize: `${value * 0.01}em` }}>
   awesome circle
</div>
CSS Modules
- just import some CSS
 - must be named 
*.module.css - classes automatically scoped, worry free naming
 - CSS bundled with component
 
import React, { FC, useState } from 'react'
import classes from './example.module.css'
import { Slider } from './slider'
export const Module: FC = () => {
  const [value, setValue] = useState(100)
  return (
    <div className={classes.wrapper}>
      <Slider value={value} onChange={setValue} />
      <div className={classes.circle} style={{ fontSize: `${value * 0.01}em` }}>
        awesome circle
      </div>
    </div>
  )
}
export default <Module />
CSS in JavaScript
- 
common pattern in React apps provided by libraries
 - 
styled-componentsmost popular- Automatic critical CSS
 - No class name bugs
 - Easier deletion of CSS
 - Simple dynamic styling
 - Painless maintenance
 - Automatic vendor prefixing
 
 - 
fantastic for dynamic styling
 - 
component fully contained in single file
 - 
needs extension for syntax highlighting
 
import React, { FC, useState } from 'react'
import styled from 'styled-components'
import { Slider } from './slider'
const Wrapper = styled.div`
  min-height: 250px;
  min-width: 250px;
`
const Circle = styled.div<{ fontSize: number }>`
  align-items: center;
  background-color: dodgerblue;
  border-radius: 99999px;
  color: aliceblue;
  display: flex;
  flex-direction: column;
  font-family: Arial, Helvetica, sans-serif;
  font-size: ${(props) => props.fontSize}em;
  height: 10em;
  justify-content: center;
  transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  width: 10em;
`
export const Styled: FC = () => {
  const [value, setValue] = useState(100)
  return (
    <Wrapper>
      <Slider value={value} onChange={setValue} />
      <Circle fontSize={value * 0.01}>awesome circle</Circle>
    </Wrapper>
  )
}
export default <Styled />