fix(css): leave tailwind theme vars on :root so obsidian's accent wins inside the panel
This commit is contained in:
@@ -12,8 +12,9 @@ import { transform } from "lightningcss";
|
|||||||
* order, while still reaching the view root itself and the portal layer,
|
* order, while still reaching the view root itself and the portal layer,
|
||||||
* both of which carry `.beaver-root`.
|
* both of which carry `.beaver-root`.
|
||||||
*
|
*
|
||||||
* Theme variables move from `:root, :host` onto `.beaver-root` for the same
|
* Tailwind's own theme variables stay on `:root, :host`: moved onto the view
|
||||||
* reason: a later `:root{--spacing:…}` from someone else must not resize us.
|
* root they would sit above Obsidian's `body` values, and `--color-accent`
|
||||||
|
* is a name both sides use — the accent would turn into the hover grey.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const ROOT = "beaver-root";
|
const ROOT = "beaver-root";
|
||||||
@@ -52,12 +53,8 @@ function mentions(selector, name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function scopeSelector(selector) {
|
function scopeSelector(selector) {
|
||||||
if (isPseudo(selector, "root")) {
|
if (isPseudo(selector, "root") || isPseudo(selector, "host")) {
|
||||||
return [{ name: ROOT, type: "class" }];
|
return selector;
|
||||||
}
|
|
||||||
// `:root, :host` is one rule; the root alone carries it, so :host goes.
|
|
||||||
if (isPseudo(selector, "host")) {
|
|
||||||
return [];
|
|
||||||
}
|
}
|
||||||
if (mentions(selector, ROOT)) {
|
if (mentions(selector, ROOT)) {
|
||||||
return selector;
|
return selector;
|
||||||
|
|||||||
@@ -42,9 +42,9 @@ describe("scoping the built stylesheet", () => {
|
|||||||
expect(out).not.toContain("*)*");
|
expect(out).not.toContain("*)*");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("moves theme variables from :root onto the view root", () => {
|
it("leaves tailwind's theme variables on :root, under obsidian's body values", () => {
|
||||||
expect(one(":root,:host{--spacing:.25rem}")).toBe(
|
expect(one(":root,:host{--spacing:.25rem}")).toBe(
|
||||||
".beaver-root { --spacing: .25rem; }"
|
":root, :host { --spacing: .25rem; }"
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user