Add :host rule to @theme layer (#15975)

Resolves #15799
Resolves #14478
Part-of #15005

Adds a `:host` selector for the `@theme` layer. This is necessary for
the `@theme` layer to work correctly in shadow DOM.

Also updates the snapshots for the tests that were affected by this
change (in a separate commit).

## Test plan

Tested via the Vite playground:

<img width="1121" alt="Screenshot 2025-01-29 at 15 06 49"
src="https://github.com/user-attachments/assets/a7908135-5ff8-472f-a053-d2c6d5c81e1b"
/>

Additionally made sure that `@property` defaults also work across
Firefox, Chrome, and Safari (the `@property` definition from the root is
pulled in) and added a UI spec.

---------

Co-authored-by: Philipp Spiess <hello@philippspiess.com>
This commit is contained in:
Hugo van Rijswijk 2025-01-29 17:20:29 +01:00 • committed by GitHub
parent 924dd69bdb
commit 9fef2bde50
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 315 additions and 276 deletions

View file

@ -370,7 +370,7 @@ describe.each([
await fs.expectFileToContain('project-a/dist/out.css', [
css`
:root {
:root, :host {
}
`,
])