This is a meta ticket to discuss the rollout plan of the CSS in JS solution (Emotion). It is for documenting the expected upgrade process both within EUI and by consuming applications, and being transparent about our timeline.
(Tentative) Timeline & tasks
Spring 2021:
Get the contexts built out and (partially) used in the EUI components and docs, as well as thoroughly tested in downstream applications like Kibana and Cloud. Figure out all the dependencies, hooks and possible state management that go with it.
Summer 2021:
Fall 2021:
Start shifting component styles from SASS to JS. This part will probably take a full year and probably means phasing out the old 'legacy' theme, making Amsterdam default.
### 2022-2024
- [ ] #5685
Beyond component conversions:
Needs discussion
This is a meta ticket to discuss the rollout plan of the CSS in JS solution (Emotion). It is for documenting the expected upgrade process both within EUI and by consuming applications, and being transparent about our timeline.
(Tentative) Timeline & tasks
Spring 2021:
Get the contexts built out and (partially) used in the EUI components and docs, as well as thoroughly tested in downstream applications like Kibana and Cloud. Figure out all the dependencies, hooks and possible state management that go with it.
themeNamecolorMode: ‘light’ | ‘dark’{ colors: {primar, secondary, etc} }<ColorMode>aka:<DarkMode>{component}</DarkMode>for switching of themes at the component level ([CSS-in-JS] Context and foundation #4440)Summer 2021:
emotionkibana#98157)emotion, initial release #4511)EuiThemeProviderglobal theme switching #5072)Fall 2021:
Start shifting component styles from SASS to JS. This part will probably take a full year and probably means phasing out the old 'legacy' theme, making Amsterdam default.
emotion#5122)@emotion/react([CSS-in-JS]@emotion/reactinsrc/#5121) from this point forward using only the generated CSS is not supported, EUI must be used through ReactBeyond component conversions:
[ ] Deprecate Sass usage in EUI docsNot being done, as EUI docs will be deprecated in favor of EUI+styled-componentsto EmotionNeeds discussion
ghostandinkin favor ofEuiThemeProvider+colorMode(see discussion)classNames was something Caroline and Greg were pushing for. I'm not convinced that it's even feasible considering Kibana however.