Describe the bug
The UI of the content script that is injected is inconsistent depending on the page it is injected into.
For instance, the UI appears smaller when you visit stackoverflow.com but looks bigger on others.
Shadow DOM doesn't fully encapsulate the styling. Upon further investigation, it appears that CSS frameworks such as unocss uses relative font-sizing (e.g rem, em, etc) and this causes problems in the styling of the elements under Shadow DOM.
The reason is that rem is relative to the html element of the current page and not to the shadow root, and thus unocss css classes are resized based on what is set as the root font size on the html element of the current page.
Reproduction
replicable on main branch
System Info
System:
OS: Linux 5.15 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish)
CPU: (4) x64 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
Memory: 4.61 GB / 7.66 GB
Container: Yes
Shell: 5.8.1 - /usr/bin/zsh
Binaries:
Node: 16.19.0 - ~/.nvm/versions/node/v16.19.0/bin/node
npm: 8.19.3 - ~/.nvm/versions/node/v16.19.0/bin/npm
Browsers:
Chrome: 111.0.5563.146
Chromium: 111.0.5563.110
Firefox: 111.0.1
Used Package Manager
pnpm
Validations
Describe the bug
The UI of the content script that is injected is inconsistent depending on the page it is injected into.
For instance, the UI appears smaller when you visit stackoverflow.com but looks bigger on others.
Shadow DOM doesn't fully encapsulate the styling. Upon further investigation, it appears that CSS frameworks such as unocss uses relative font-sizing (e.g
rem,em, etc) and this causes problems in the styling of the elements under Shadow DOM.The reason is that
remis relative to thehtmlelement of the current page and not to the shadow root, and thus unocss css classes are resized based on what is set as the root font size on thehtmlelement of the current page.Reproduction
replicable on main branch
System Info
System: OS: Linux 5.15 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish) CPU: (4) x64 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz Memory: 4.61 GB / 7.66 GB Container: Yes Shell: 5.8.1 - /usr/bin/zsh Binaries: Node: 16.19.0 - ~/.nvm/versions/node/v16.19.0/bin/node npm: 8.19.3 - ~/.nvm/versions/node/v16.19.0/bin/npm Browsers: Chrome: 111.0.5563.146 Chromium: 111.0.5563.110 Firefox: 111.0.1Used Package Manager
pnpm
Validations