Familiarity
Matured browser support
GOOD
From caniuse.com
Slide 19
Slide 19 text
Familiarity
Matured browser support
Continuous growth
GOOD
Slide 20
Slide 20 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Slide 21
Slide 21 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Not DRY
Slide 22
Slide 22 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Not DRY
Developer Experience
Slide 23
Slide 23 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
Slide 24
Slide 24 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
UGLY Globals
Slide 25
Slide 25 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
UGLY Globals
Cascades
Slide 26
Slide 26 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
UGLY Globals
Cascades
Specificity
Slide 27
Slide 27 text
Familiarity
Matured browser support
Continuous growth
GOOD
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
UGLY Globals
Cascades
Specificity
Source Order
Slide 28
Slide 28 text
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
Familiarity
Matured browser support
Continuous growth
GOOD
UGLY Globals
Cascades
Specificity
Source Order
IDEAL FEATURES
FOR CSS IN REACT FRAMEWORKS
Slide 29
Slide 29 text
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
Familiarity
Matured browser support
Continuous growth
GOOD
UGLY Globals
Cascades
Specificity
Source Order
IDEAL FEATURES
FOR CSS IN REACT FRAMEWORKS
Components with local CSS
Optional global CSS
Slide 30
Slide 30 text
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
Familiarity
Matured browser support
Continuous growth
GOOD
UGLY Globals
Cascades
Specificity
Source Order
Full CSS support
Server side rendering / Extract CSS
IDEAL FEATURES
FOR CSS IN REACT FRAMEWORKS
Components with local CSS
Optional global CSS
Slide 31
Slide 31 text
BAD Naming
Not DRY
Developer Experience
DOM updates require JS
Familiarity
Matured browser support
Continuous growth
GOOD
UGLY Globals
Cascades
Specificity
Source Order
Full CSS support
Server side rendering / Extract CSS
No dead CSS
Themes
Debugging in DevTools
Linting & syntax highlighting
Automatic vendor prefixing
IDEAL FEATURES
FOR CSS IN REACT FRAMEWORKS
Components with local CSS
Optional global CSS
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
React with CSS Loader
Slide 35
Slide 35 text
.btn
btn:hover
btn.depressed
React with CSS Loader
Slide 36
Slide 36 text
React with CSS Loader
Slide 37
Slide 37 text
React with CSS Loader
Slide 38
Slide 38 text
React with CSS Loader
Slide 39
Slide 39 text
React with CSS Loader
Slide 40
Slide 40 text
React with CSS Loader
Slide 41
Slide 41 text
React with CSS Loader
Slide 42
Slide 42 text
React with CSS Loader
Slide 43
Slide 43 text
React with CSS Loader
Slide 44
Slide 44 text
React with CSS Loader
Slide 45
Slide 45 text
React with CSS Loader
Slide 46
Slide 46 text
React with CSS Loader
Slide 47
Slide 47 text
React with CSS Loader
Slide 48
Slide 48 text
React with CSS Loader
Slide 49
Slide 49 text
No content
Slide 50
Slide 50 text
React with Inline Styles
Slide 51
Slide 51 text
styles.btn
:hover
styles.btn.depressed
React with Inline Styles
Slide 52
Slide 52 text
styles.btn
:hover
styles.btn.depressed
React with Inline Styles
Slide 53
Slide 53 text
styles.btn
:hover
styles.btn.depressed
React with Inline Styles
Slide 54
Slide 54 text
styles.btn
:hover
styles.btn.depressed
React with Inline Styles
Slide 55
Slide 55 text
styles.btn
:hover
styles.btn.depressed
X
React with Inline Styles
Slide 56
Slide 56 text
React with Inline Styles
Slide 57
Slide 57 text
React with Inline Styles
Slide 58
Slide 58 text
React with Inline Styles
Slide 59
Slide 59 text
React with Inline Styles
Slide 60
Slide 60 text
No content
Slide 61
Slide 61 text
Radium
Slide 62
Slide 62 text
css pseudo
classes &
elements
:active
:focus
:hover
Radium
HTML
Element
React Component
React Styled Components
Slide 122
Slide 122 text
HTML
Element
Styles
HTML
Element
React Component
React Styled Components
Slide 123
Slide 123 text
HTML
Element
HTML
Element
Styled Component
React Component
React Styled Components
Slide 124
Slide 124 text
Styled Components
Styles
Element
Styled Component
Slide 125
Slide 125 text
Styled Components
Styles
Element
Element
Styled Component
Slide 126
Slide 126 text
Styled Components
Styles
Element Styles
Styled Component
Slide 127
Slide 127 text
Styled Components
Styles
Element Styles
Styled Component
StyledButton
Slide 128
Slide 128 text
Styled Components
StyledButton
Slide 129
Slide 129 text
Styled Components
Rendered
StyledButton
Slide 130
Slide 130 text
Styled Components
Output
Rendered
StyledButton
Slide 131
Slide 131 text
Styled Components
Output
Rendered
StyledButton
Slide 132
Slide 132 text
Styled Components
Slide 133
Slide 133 text
5,037
2,627
3,414
1,472
5,174
Slide 134
Slide 134 text
CSS IN REACT
Innovations
Now & Future
Slide 135
Slide 135 text
CSS IN REACT
Innovations
Now & Future
CSS3 Variables
Slide 136
Slide 136 text
CSS IN REACT
Innovations
Now & Future
Typed CSS
Slide 137
Slide 137 text
CSS IN REACT
Innovations
Now & Future
Web
Components
Slide 138
Slide 138 text
CSS IN REACT
Innovations
Now & Future
Vue.js &
Scoped Styles
Slide 139
Slide 139 text
- Bret Victor
Technology changes quickly, people’s minds change
slowly. So it’s easy to adopt new technologies, it can be
hard to adopt new ways of thinking.
“
”