---
# System prepended metadata

title: ThemeProvider (V8)

---

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