- name
- theming
- description
- Use when an app uses @pierre/theming to list, resolve, select, switch, persist, or apply themes, including color modes, theme controllers, React state, UI colors, and bundled Pierre or Shiki collections.
# `@pierre/theming`
Use `@pierre/theming` to manage runtime themes. The package separates theme
metadata, theme resolution, selected state, and UI color mapping.
## Install
```bash
pnpm add @pierre/theming
```
Install optional peer dependencies only for the selected entry. The React entry
needs `react`. The themes entry needs `@pierre/theme`, `@shikijs/themes`, and
`shiki`.
## Select an API reference
| Need | Reference |
| -------------------------------------------------------------- | -------------------------------------------- |
| Create a collection, catalog, descriptor, or bundled theme set | [Collections API](references/collections.md) |
| Register, load, seed, or cache theme objects | [Resolver API](references/resolver.md) |
| Track the color mode and selected light and dark themes | [Controller API](references/controller.md) |
| Normalize workbench colors or derive colors | [Colors API](references/colors.md) |
| Read controller state in React | [React API](references/react.md) |
## Select a controller recipe
| Situation | Recipe |
| ---------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| One app or page shares one color mode and one light/dark selection | [Use one controller](references/recipe-one-controller.md) |
| Independent areas need separate selections or separate controller lifecycles | [Use multiple controllers](references/recipe-multiple-controllers.md) |
Use one controller by default. Use multiple controllers only when the theme
state must differ between areas.
## Select a framework recipe
| Host | Recipe |
| --------------------------------------- | ------------------------------------------------------ |
| Vanilla JavaScript or another framework | [Use vanilla JavaScript](references/recipe-vanilla.md) |
| React | [Use React](references/recipe-react.md) |
Voir sur GitHub