Skip to content

Commit 315120c

Browse files
authored
Merge pull request #33 from rahulbsw/docs/pages-light-dark-theme
docs(pages): Add responsive light and dark theme
2 parents 6134305 + 04d7df2 commit 315120c

4 files changed

Lines changed: 351 additions & 47 deletions

File tree

docs/_includes/head_custom.html

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
11
<link rel="icon" href="{{ '/assets/images/streamforge-mark.svg' | relative_url }}" type="image/svg+xml">
2+
<script>
3+
(function () {
4+
var savedTheme = null;
5+
try {
6+
savedTheme = window.localStorage.getItem("streamforge-theme");
7+
} catch (error) {
8+
savedTheme = null;
9+
}
10+
document.documentElement.dataset.theme =
11+
savedTheme === "dark" || savedTheme === "light" ? savedTheme : "light";
12+
})();
13+
</script>
214
<link rel="stylesheet" href="{{ '/assets/css/streamforge-site.css' | relative_url }}">
315
{% if page.permalink == '/404.html' %}<base href="{{ '/' | relative_url }}">{% endif %}
4-
<meta name="theme-color" content="#0b1117">
16+
<meta name="theme-color" content="#f6f9fb">
517
<meta property="og:type" content="website">
618
<meta property="og:title" content="{{ page.title | default: site.title | escape }}">
719
<meta property="og:description" content="{{ page.description | default: site.description | escape }}">
@@ -14,3 +26,39 @@
1426
<meta name="twitter:title" content="{{ page.title | default: site.title | escape }}">
1527
<meta name="twitter:description" content="{{ page.description | default: site.description | escape }}">
1628
<meta name="twitter:image" content="{{ '/assets/images/streamforge-social-card.png' | absolute_url }}">
29+
<script>
30+
document.addEventListener("DOMContentLoaded", function () {
31+
var themeButton = document.createElement("button");
32+
var themeColor = document.querySelector('meta[name="theme-color"]');
33+
34+
themeButton.type = "button";
35+
themeButton.className = "sf-theme-toggle";
36+
37+
function renderThemeButton() {
38+
var isDark = document.documentElement.dataset.theme === "dark";
39+
themeButton.setAttribute("aria-label", isDark ? "Use light theme" : "Use dark theme");
40+
themeButton.setAttribute("title", isDark ? "Use light theme" : "Use dark theme");
41+
themeButton.innerHTML =
42+
'<span aria-hidden="true">' + (isDark ? "☀" : "☾") + "</span>" +
43+
"<b>" + (isDark ? "Light" : "Dark") + "</b>";
44+
if (themeColor) {
45+
themeColor.setAttribute("content", isDark ? "#0b131a" : "#f6f9fb");
46+
}
47+
}
48+
49+
themeButton.addEventListener("click", function () {
50+
var nextTheme =
51+
document.documentElement.dataset.theme === "dark" ? "light" : "dark";
52+
document.documentElement.dataset.theme = nextTheme;
53+
try {
54+
window.localStorage.setItem("streamforge-theme", nextTheme);
55+
} catch (error) {
56+
/* Theme selection remains active for the current page. */
57+
}
58+
renderThemeButton();
59+
});
60+
61+
renderThemeButton();
62+
document.body.appendChild(themeButton);
63+
});
64+
</script>

docs/_sass/color_schemes/streamforge.scss

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
$body-background-color: #101418;
2-
$sidebar-color: #151b21;
3-
$search-background-color: #151b21;
4-
$table-background-color: #101418;
5-
$code-background-color: #1c252d;
6-
7-
$body-heading-color: #f4f7f9;
8-
$body-text-color: #d5dde4;
9-
$link-color: #ff6b4a;
10-
$nav-child-link-color: #b8c4ce;
11-
$search-result-preview-color: #8ea0ad;
12-
13-
$border-color: #2c3843;
14-
$base-button-color: #1c252d;
15-
$btn-primary-color: #ff6b4a;
1+
$body-background-color: #f6f9fb;
2+
$sidebar-color: #ffffff;
3+
$search-background-color: #ffffff;
4+
$table-background-color: #ffffff;
5+
$code-background-color: #edf3f6;
6+
7+
$body-heading-color: #13232d;
8+
$body-text-color: #344954;
9+
$link-color: #c8442f;
10+
$nav-child-link-color: #4f6570;
11+
$search-result-preview-color: #637782;
12+
13+
$border-color: #d8e2e7;
14+
$base-button-color: #edf3f6;
15+
$btn-primary-color: #d9563e;
1616

1717
$feedback-color: darken($sidebar-color, 3%);
1818

19-
$grey-dk-000: #d5dde4;
20-
$grey-dk-100: #b8c4ce;
21-
$grey-dk-200: #8ea0ad;
22-
$grey-dk-250: #657481;
23-
$grey-dk-300: #2c3843;
19+
$grey-dk-000: #344954;
20+
$grey-dk-100: #4f6570;
21+
$grey-dk-200: #637782;
22+
$grey-dk-250: #84939b;
23+
$grey-dk-300: #d8e2e7;
2424

25-
$red-000: #ffd3c7;
26-
$red-100: #ff9b7f;
27-
$red-200: #ff6b4a;
28-
$red-300: #e34a2f;
25+
$red-000: #ffe1da;
26+
$red-100: #f5a18e;
27+
$red-200: #d9563e;
28+
$red-300: #b93624;
2929

3030
$orange-000: #ffe5c2;
3131
$orange-100: #ffc46e;

0 commit comments

Comments
 (0)