You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(ui): remove openPropsTokenSheet from theme toggle adoptedStyles + finalize plan
Theme toggle: remove openPropsTokenSheet from static styles to work around
Safari's adoptedStyleSheets bug. Token CSS is already injected as page-level
<style> by vite.config.ts — custom properties cascade through shadow DOM
naturally. The component retains only its own component-specific sheet.
Plan update: add architecture review (4 rendering paths, VNode vs VDOM),
redundancy report (double signal binding, signal→DOM duplication, adoptedSheet
duplication), problems-encountered table, and long-term Safari theme solutions.
Verification:
- deno task test: 894 passed, 0 failed
- e2e chromium: 7/7 theme, 25/25 all
- e2e webkit: 6/7 theme (surface colors test — known Safari bug)
- autoflow:push: 5/5 PASS
| Remove token sheets from all component `static styles`| Medium | All components inherit theme tokens from page-level CSS, bypassing the Safari bug |
278
+
| Switch affected components to `renderMode = 'light'`| Small per component | No adoptedStyleSheets at all, but loses style encapsulation |
279
+
| Use CSS `light-dark()` function instead of `[data-theme]` selectors | Large (CSS refactor) | Modern standard, works in all browsers, eliminates the selector dependency |
280
+
| Unify signal binding Paths A and D (make D call `renderToDom`) | Medium | Reduces code duplication, simplifies maintenance |
281
+
282
+
### v0.41.0-alpha1 - Problems Encountered and Resolved
0 commit comments