# 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`