@molecule/app-theme-css-variables 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +212 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +21 -2
- package/dist/provider.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -4
package/README.md
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
AUTO-GENERATED — DO NOT EDIT THIS FILE.
|
|
3
|
+
Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
|
|
4
|
+
Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
|
|
5
|
+
To change this document, edit the module-level JSDoc in src/index.ts.
|
|
6
|
+
Generated: 2026-09-13T23:39:58.618Z
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
# @molecule/app-theme-css-variables
|
|
10
|
+
|
|
11
|
+
> **Auto-generated, AI-first package reference** for the [molecule.dev](https://molecule.dev) ecosystem.
|
|
12
|
+
> It is written to be read by coding agents as much as by people, and is generated from this
|
|
13
|
+
> package's source — edit `src/index.ts` JSDoc, not this file.
|
|
14
|
+
|
|
15
|
+
CSS custom properties theme provider for molecule.dev.
|
|
16
|
+
|
|
17
|
+
Provides a framework-agnostic ThemeProvider implementation that applies
|
|
18
|
+
theme tokens as CSS custom properties (variables) to the document root.
|
|
19
|
+
Works with any framework -- React, Vue, Svelte, Angular, Solid, or vanilla JS.
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import {
|
|
25
|
+
createCSSVariablesThemeProvider,
|
|
26
|
+
lightTheme,
|
|
27
|
+
darkTheme,
|
|
28
|
+
} from '@molecule/app-theme-css-variables'
|
|
29
|
+
import { setProvider } from '@molecule/app-theme'
|
|
30
|
+
|
|
31
|
+
const provider = createCSSVariablesThemeProvider({
|
|
32
|
+
themes: [lightTheme, darkTheme],
|
|
33
|
+
defaultTheme: 'light',
|
|
34
|
+
persistKey: 'molecule-theme',
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
setProvider(provider)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Then use CSS variables in your stylesheets:
|
|
41
|
+
|
|
42
|
+
```css
|
|
43
|
+
.button {
|
|
44
|
+
background-color: var(--mol-color-primary);
|
|
45
|
+
color: var(--mol-color-text-inverse);
|
|
46
|
+
padding: var(--mol-spacing-sm) var(--mol-spacing-md);
|
|
47
|
+
border-radius: var(--mol-radius-md);
|
|
48
|
+
transition: background-color var(--mol-transition-fast);
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Type
|
|
53
|
+
|
|
54
|
+
`provider`
|
|
55
|
+
|
|
56
|
+
## Installation
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install @molecule/app-theme-css-variables @molecule/app-theme
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## API
|
|
63
|
+
|
|
64
|
+
### Interfaces
|
|
65
|
+
|
|
66
|
+
#### `CSSVariablesThemeConfig`
|
|
67
|
+
|
|
68
|
+
Configuration for css variables theme.
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
interface CSSVariablesThemeConfig {
|
|
72
|
+
/** Available themes. */
|
|
73
|
+
themes: Theme[]
|
|
74
|
+
/** Name of the default theme to use. */
|
|
75
|
+
defaultTheme?: string
|
|
76
|
+
/** CSS variable prefix (default: 'mol'). */
|
|
77
|
+
prefix?: string
|
|
78
|
+
/** Whether to auto-apply CSS variables to :root (default: true). */
|
|
79
|
+
applyToDocument?: boolean
|
|
80
|
+
/**
|
|
81
|
+
* Key for persisting the selected theme name across reloads. When `storage`
|
|
82
|
+
* is omitted, persistence falls back to `window.localStorage` in browser
|
|
83
|
+
* environments; in SSR / non-browser environments persistence is skipped.
|
|
84
|
+
*/
|
|
85
|
+
persistKey?: string
|
|
86
|
+
/**
|
|
87
|
+
* Storage adapter for persisting theme preference. Optional — when omitted
|
|
88
|
+
* and `persistKey` is set, `window.localStorage` is used when available.
|
|
89
|
+
* Provide an adapter for React Native (AsyncStorage wrapper) or custom stores.
|
|
90
|
+
*/
|
|
91
|
+
storage?: ThemeStorageAdapter
|
|
92
|
+
/**
|
|
93
|
+
* With no persisted choice, start on the theme whose `mode` matches the
|
|
94
|
+
* OS preference (`prefers-color-scheme`) instead of `defaultTheme`.
|
|
95
|
+
* Browser-only: a render without a window — a server, a build-time
|
|
96
|
+
* prerender — starts on `defaultTheme`, which `getServerTheme()` reports
|
|
97
|
+
* so a hydrating client renders the markup it was sent before switching.
|
|
98
|
+
* Default: false.
|
|
99
|
+
*/
|
|
100
|
+
systemDefault?: boolean
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### `ThemeStorageAdapter`
|
|
105
|
+
|
|
106
|
+
Minimal storage adapter for theme persistence. Compatible with
|
|
107
|
+
localStorage, sessionStorage, or any custom implementation
|
|
108
|
+
(e.g., React Native AsyncStorage wrapper, SSR no-op).
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
interface ThemeStorageAdapter {
|
|
112
|
+
getItem(key: string): string | null
|
|
113
|
+
setItem(key: string, value: string): void
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Functions
|
|
118
|
+
|
|
119
|
+
#### `createCSSVariablesThemeProvider(config)`
|
|
120
|
+
|
|
121
|
+
Creates a framework-agnostic ThemeProvider that applies theme tokens
|
|
122
|
+
as CSS custom properties on the document root element.
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
function createCSSVariablesThemeProvider(config: CSSVariablesThemeConfig): ThemeProvider
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
- `config` — Theme provider configuration (available themes, default theme, CSS variable prefix, persistence).
|
|
129
|
+
|
|
130
|
+
**Returns:** A ThemeProvider that applies themes as CSS custom properties on the document root.
|
|
131
|
+
|
|
132
|
+
### Constants
|
|
133
|
+
|
|
134
|
+
#### `darkTheme`
|
|
135
|
+
|
|
136
|
+
Default dark theme.
|
|
137
|
+
|
|
138
|
+
Dark backgrounds (#0f172a, #1e293b), light text, blue primary (#60a5fa).
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
const darkTheme: Theme
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### `lightTheme`
|
|
145
|
+
|
|
146
|
+
Default light theme.
|
|
147
|
+
|
|
148
|
+
Near-white backgrounds (#f6f6f6 background, #ffffff surface), dark text,
|
|
149
|
+
blue primary (#4070e0).
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
const lightTheme: Theme
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
#### `provider`
|
|
156
|
+
|
|
157
|
+
Default CSS variables theme provider with light and dark themes.
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
const provider: ThemeProvider
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Core Interface
|
|
164
|
+
|
|
165
|
+
Implements `@molecule/app-theme` interface.
|
|
166
|
+
|
|
167
|
+
## Bond Wiring
|
|
168
|
+
|
|
169
|
+
Setup function to register this provider with the core interface:
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
import { setProvider } from '@molecule/app-theme'
|
|
173
|
+
import { provider } from '@molecule/app-theme-css-variables'
|
|
174
|
+
|
|
175
|
+
export function setupThemeCssVariables(): void {
|
|
176
|
+
setProvider(provider)
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Injection Notes
|
|
181
|
+
|
|
182
|
+
### Requirements
|
|
183
|
+
|
|
184
|
+
Peer dependencies:
|
|
185
|
+
|
|
186
|
+
- `@molecule/app-theme` ^1.0.1
|
|
187
|
+
|
|
188
|
+
### Runtime Dependencies
|
|
189
|
+
|
|
190
|
+
- `@molecule/app-theme`
|
|
191
|
+
|
|
192
|
+
Recoloring a scaffolded app — where the palette actually lives:
|
|
193
|
+
|
|
194
|
+
This bond writes `--mol-color-*` variables and toggles light/dark via a
|
|
195
|
+
`data-mol-mode` attribute. In `@molecule/app-ui-tailwind`'s `base.css` the
|
|
196
|
+
Tailwind `@theme` reads each core token as
|
|
197
|
+
`--color-primary: var(--mol-color-primary, <default>)`, so for a CUSTOM build
|
|
198
|
+
(no per-app `theme.css`) this bond's `Theme` objects ARE the palette — edit
|
|
199
|
+
`colors` here to recolor.
|
|
200
|
+
|
|
201
|
+
BUT template-based apps ship `app/src/theme.css` that hardcodes `--color-*` on
|
|
202
|
+
`:root` / `[data-mol-mode='dark']`. Those have the same `:root` specificity and
|
|
203
|
+
load last, so they SHADOW the `var(--mol-color-*)` reference — the visible
|
|
204
|
+
colors come only from `theme.css`. When `theme.css` defines colors, editing
|
|
205
|
+
this bond has NO visible effect; recolor by editing `app/src/theme.css`. This
|
|
206
|
+
bond still drives light/dark mode and is the palette for non-Tailwind targets
|
|
207
|
+
(e.g. React Native). Precedence: `theme.css` > this bond > base defaults.
|
|
208
|
+
|
|
209
|
+
The provider also toggles a `.dark` class on `<html>` (alongside the
|
|
210
|
+
`data-mol-mode` attribute) so Tailwind `dark:` variants react to theme
|
|
211
|
+
toggles — if `dark:` utilities aren't switching, check that this bond is
|
|
212
|
+
wired and applying to the document.
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAS,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAG/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAmHzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,uBAAuB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAS,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAG/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAmHzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,uBAAuB,GAAG,aAAa,CAiH9F;AAED,uEAAuE;AACvE,eAAO,MAAM,QAAQ,EAAE,aAGrB,CAAA"}
|
package/dist/provider.js
CHANGED
|
@@ -135,7 +135,7 @@ function applyThemeToDocument(themes, activeTheme, prefix) {
|
|
|
135
135
|
* @returns A ThemeProvider that applies themes as CSS custom properties on the document root.
|
|
136
136
|
*/
|
|
137
137
|
export function createCSSVariablesThemeProvider(config) {
|
|
138
|
-
const { themes, defaultTheme, prefix = 'mol', applyToDocument = true, persistKey } = config;
|
|
138
|
+
const { themes, defaultTheme, prefix = 'mol', applyToDocument = true, persistKey, systemDefault = false, } = config;
|
|
139
139
|
// If a persistKey is set without an explicit storage adapter, fall back to
|
|
140
140
|
// window.localStorage. The previous behavior — persistKey but no storage =
|
|
141
141
|
// silent no-op — was the source of "I toggled dark mode and it reset on
|
|
@@ -157,13 +157,29 @@ export function createCSSVariablesThemeProvider(config) {
|
|
|
157
157
|
},
|
|
158
158
|
}
|
|
159
159
|
: undefined);
|
|
160
|
-
|
|
160
|
+
// What a render without a browser starts on — no storage, no media query.
|
|
161
|
+
const serverTheme = themes.find((t) => t.name === defaultTheme) || themes[0];
|
|
162
|
+
let currentTheme = serverTheme;
|
|
161
163
|
const listeners = new Set();
|
|
162
164
|
// Try to restore from storage adapter
|
|
165
|
+
let restored = false;
|
|
163
166
|
if (persistKey && storage) {
|
|
164
167
|
const saved = storage.getItem(persistKey);
|
|
165
168
|
if (saved) {
|
|
166
169
|
const found = themes.find((t) => t.name === saved);
|
|
170
|
+
if (found) {
|
|
171
|
+
currentTheme = found;
|
|
172
|
+
restored = true;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Nothing persisted: follow the OS preference when asked to (browser only).
|
|
177
|
+
if (!restored && systemDefault) {
|
|
178
|
+
const matchMedia = globalThis
|
|
179
|
+
.matchMedia;
|
|
180
|
+
if (typeof matchMedia === 'function') {
|
|
181
|
+
const mode = matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
182
|
+
const found = themes.find((t) => t.mode === mode);
|
|
167
183
|
if (found)
|
|
168
184
|
currentTheme = found;
|
|
169
185
|
}
|
|
@@ -204,6 +220,9 @@ export function createCSSVariablesThemeProvider(config) {
|
|
|
204
220
|
getThemes() {
|
|
205
221
|
return themes;
|
|
206
222
|
},
|
|
223
|
+
getServerTheme() {
|
|
224
|
+
return serverTheme;
|
|
225
|
+
},
|
|
207
226
|
};
|
|
208
227
|
return provider;
|
|
209
228
|
}
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -37,5 +37,14 @@ export interface CSSVariablesThemeConfig {
|
|
|
37
37
|
* Provide an adapter for React Native (AsyncStorage wrapper) or custom stores.
|
|
38
38
|
*/
|
|
39
39
|
storage?: ThemeStorageAdapter;
|
|
40
|
+
/**
|
|
41
|
+
* With no persisted choice, start on the theme whose `mode` matches the
|
|
42
|
+
* OS preference (`prefers-color-scheme`) instead of `defaultTheme`.
|
|
43
|
+
* Browser-only: a render without a window — a server, a build-time
|
|
44
|
+
* prerender — starts on `defaultTheme`, which `getServerTheme()` reports
|
|
45
|
+
* so a hydrating client renders the markup it was sent before switching.
|
|
46
|
+
* Default: false.
|
|
47
|
+
*/
|
|
48
|
+
systemDefault?: boolean;
|
|
40
49
|
}
|
|
41
50
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@molecule/app-theme-css-variables",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "CSS custom properties theme provider for molecule.dev",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
|
-
"dist"
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md"
|
|
21
22
|
],
|
|
22
23
|
"keywords": [
|
|
23
24
|
"molecule",
|
|
@@ -30,10 +31,10 @@
|
|
|
30
31
|
"devDependencies": {
|
|
31
32
|
"@types/node": "26.1.2",
|
|
32
33
|
"typescript": "6.0.3",
|
|
33
|
-
"vitest": "4.1.
|
|
34
|
+
"vitest": "4.1.11"
|
|
34
35
|
},
|
|
35
36
|
"peerDependencies": {
|
|
36
|
-
"@molecule/app-theme": "^1.0.
|
|
37
|
+
"@molecule/app-theme": "^1.0.1"
|
|
37
38
|
},
|
|
38
39
|
"repository": {
|
|
39
40
|
"type": "git",
|