fluentui-webcomponents 0.0.3 → 0.0.5
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/AGENTS.md +1 -1
- package/README.md +4 -1
- package/core/fluent-element.js +2 -0
- package/package.json +1 -1
- package/theme/theme-picker.js +11 -9
- package/tokens.css +11 -3
package/AGENTS.md
CHANGED
|
@@ -156,7 +156,7 @@ document.documentElement.style.colorScheme = 'light dark';
|
|
|
156
156
|
### Runtime Accent Change
|
|
157
157
|
|
|
158
158
|
```js
|
|
159
|
-
document.documentElement.style.setProperty('--accent-base', '#e3008c');
|
|
159
|
+
document.documentElement.style.setProperty('--accent-base-override', '#e3008c');
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
One line. Overrides the `light-dark()` value. Entire palette and all dependent tokens update instantly. Zero JS math.
|
package/README.md
CHANGED
|
@@ -28,7 +28,10 @@ Open `http://localhost:3000/gallery.html` — a single-page showcase of all 26 c
|
|
|
28
28
|
|
|
29
29
|
**Accent color** (instant, no JS math):
|
|
30
30
|
```css
|
|
31
|
-
:root { --accent-base: #e3008c; }
|
|
31
|
+
:root { --accent-base-override: #e3008c; }
|
|
32
|
+
```
|
|
33
|
+
```js
|
|
34
|
+
document.documentElement.style.setProperty('--accent-base-override', '#e3008c');
|
|
32
35
|
```
|
|
33
36
|
|
|
34
37
|
The entire 16-stop brand palette derives from this single CSS variable via `color-mix(in srgb, ...)`. All component colors update automatically.
|
package/core/fluent-element.js
CHANGED
package/package.json
CHANGED
package/theme/theme-picker.js
CHANGED
|
@@ -24,9 +24,9 @@ class FluentThemePicker extends HTMLElement {
|
|
|
24
24
|
</label>
|
|
25
25
|
`;
|
|
26
26
|
this.querySelector('#accent-picker').addEventListener('input', e => {
|
|
27
|
-
document.documentElement.style.setProperty('--accent-base', e.target.value);
|
|
27
|
+
document.documentElement.style.setProperty('--accent-base-override', e.target.value);
|
|
28
28
|
});
|
|
29
|
-
const themeSelect = this.querySelector(
|
|
29
|
+
const themeSelect = this.querySelector("#theme-select");
|
|
30
30
|
|
|
31
31
|
const applyTheme = (theme) => {
|
|
32
32
|
const root = document.documentElement;
|
|
@@ -37,16 +37,18 @@ class FluentThemePicker extends HTMLElement {
|
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
themeSelect.addEventListener(
|
|
40
|
+
themeSelect.addEventListener("change", (e) => {
|
|
41
41
|
applyTheme(e.target.value);
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
if (window.matchMedia) {
|
|
45
|
-
window
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
window
|
|
46
|
+
.matchMedia("(prefers-color-scheme: dark)")
|
|
47
|
+
.addEventListener("change", () => {
|
|
48
|
+
if (themeSelect.value === "system") {
|
|
49
|
+
applyTheme("system");
|
|
50
|
+
}
|
|
51
|
+
});
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
// Initialize with the current selection
|
|
@@ -54,4 +56,4 @@ class FluentThemePicker extends HTMLElement {
|
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
|
|
57
|
-
customElements.define(
|
|
59
|
+
customElements.define("fluent-theme-picker", FluentThemePicker);
|
package/tokens.css
CHANGED
|
@@ -19,13 +19,21 @@
|
|
|
19
19
|
Set color-scheme: light dark on :root for auto, override via JS.
|
|
20
20
|
============================================================ */
|
|
21
21
|
|
|
22
|
-
:host,
|
|
23
22
|
:root {
|
|
24
23
|
color-scheme: light dark;
|
|
24
|
+
}
|
|
25
25
|
|
|
26
|
+
:host,
|
|
27
|
+
:root {
|
|
26
28
|
/* ===== Base Colors ===== */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
/*
|
|
30
|
+
* Use var(--foo-override, default) so page-level JS (theme picker)
|
|
31
|
+
* can override --accent-base via --accent-base-override on :root,
|
|
32
|
+
* which inherits through :host's var() fallback chain.
|
|
33
|
+
* Direct :host definitions would block inheritance, so we delegate.
|
|
34
|
+
*/
|
|
35
|
+
--accent-base: var(--accent-base-override, light-dark(#0f6cbd, #479ef5));
|
|
36
|
+
--neutral-base: var(--neutral-base-override, light-dark(#808080, #b0b0b0));
|
|
29
37
|
|
|
30
38
|
/* ===== Trim Endpoints ===== */
|
|
31
39
|
/*
|