Skip to content

Commit

Permalink
style(docs): color-scheme reflects theme (carbon-design-system#1874)
Browse files Browse the repository at this point in the history
  • Loading branch information
metonym authored Dec 30, 2023
1 parent fe0b0c2 commit 1600775
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 7 deletions.
10 changes: 10 additions & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Carbon Components Svelte</title>
<script>
try {
const theme = localStorage.getItem("theme");

if (["white", "g10", "g80", "g90", "g100"].includes(theme)) {
document.documentElement.setAttribute("theme", theme);
document.documentElement.style.setProperty("color-scheme", ["white", "g10"].includes(theme) ? "light" : "dark");
}
} catch (e) {}
</script>
</head>
<body>
<script type="module" src="/src/index.js"></script>
Expand Down
7 changes: 4 additions & 3 deletions docs/src/layouts/ComponentLayout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,11 @@
$: multiple = api_components.length > 1;
onMount(() => {
const currentTheme = window.location.search.split("?theme=")[1];
const searchParams = new URLSearchParams(window.location.search);
const current_theme = searchParams.get("theme");
if (["white", "g10", "g80", "g90", "g100"].includes(currentTheme)) {
theme.set(currentTheme);
if (["white", "g10", "g80", "g90", "g100"].includes(current_theme)) {
theme.set(current_theme);
}
});
Expand Down
9 changes: 8 additions & 1 deletion docs/src/pages/_layout.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,14 @@
}
}}" />

<Theme persist bind:theme="{$theme}">
<Theme
persist
bind:theme="{$theme}"
on:update="{(e) => {
const theme = e.detail.theme;
document.documentElement.style.setProperty("color-scheme", ["white", "g10"].includes(theme) ? "light" : "dark");
}}"
>
<Header
aria-label="Navigation"
href="{$url('/')}"
Expand Down
15 changes: 12 additions & 3 deletions docs/src/pages/framed/_reset.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,18 @@
};
});
// TODO: [refactor] parse search parameters more reliably
$: currentTheme = window.location.search.split("?theme=")[1];
$: document.documentElement.setAttribute("theme", currentTheme);
$: {
const searchParams = new URLSearchParams(window.location.search);
const current_theme = searchParams.get("theme");
// NOTE: we *do not* want to persist the theme as this can
// conflict with how the iframe is displayed in the docs.
// Instead, we want the theme to be overridden in the standalone page.
if ([ "white", "g10", "g80", "g90", "g100" ].includes(current_theme)) {
document.documentElement.setAttribute("theme", current_theme)
document.documentElement.style.setProperty("color-scheme", ["white", "g10"].includes(current_theme) ? "light" : "dark");
}
}
</script>

<slot />
Expand Down

0 comments on commit 1600775

Please sign in to comment.