# ThemeProvider (V8) ### Problem Right now in v7, users have 2 ways of providing theme to their app. 1. `loadTheme`: providing global (non-contextual) theme. 2. `Custmoizer`: providing contextual theme. As part of the convergence work, we added `ThemeProvider` in `react-theme-provider` pkg to provide contextual theme as well as having it to inject theme related styles (css variables). Our goal for v8 is to ship well-documented `ThemeProvider` as the recommended way to apply theme going forward, and deprecate `Customizer` and `loadTheme`. ### Appetite About 2 weeks of work. ### Solution There are some specific work items we need to support in `ThemeProvider`: - [ ] support passing v7 theme (`ITheme`) and have it work for V8 components - [ ] support passing component-level styles (similar to `scopedSettings`) - [ ] support `applyToBody` (similar to `applyThemeToBody` prop in `Fabric` component) - [ ] documentation - [ ] Updates to theme designer: update codepen snippet to use `ThemeProvider` v7 theme - [ ] deprecate `loadTheme` and `Customizer` - [ ] support passing v0 theme and have it work for converged components (e.g. `react-button`) - TBD: should this be in scope? ### Risks (Rabbit holes) N/A ### Out of scope (No-gos) - New theme shape for converged components - Replace (v0)`Provider` with `ThemeProvider`