Skip to content

Commit 4e0c166

Browse files
committed
Add a dyslexia-friendly theme
1 parent bad2e56 commit 4e0c166

File tree

6 files changed

+52
-1
lines changed

6 files changed

+52
-1
lines changed

docs/_includes/head.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
<!-- Twitter -->
2222
<meta name="twitter:card" content="summary_large_image">
2323

24+
<!-- Fonts -->
25+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/index.css">
26+
2427
<!-- CSS -->
2528
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
2629
<link rel="stylesheet" type="text/css" href="{{ "/assets/css/stacks-documentation.min.css" | relative_url }}?{{page.date | date: '%s%N'}}">

docs/_includes/header.html

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,22 @@
8787
</div>
8888
<div class="flex--item">
8989
<div class="d-flex ai-center jc-space-between gs8">
90-
<label class="flex--item s-label fs-body1 fw-normal js-highcontrast-btn" for="toggle-theme-highcontrast">High contrast mode</label>
90+
<label class="flex--item s-label fs-body1 fw-normal" for="toggle-theme-highcontrast">High contrast mode</label>
9191
<div class="flex--item s-toggle-switch">
9292
<input id="toggle-theme-highcontrast" type="checkbox">
9393
<div class="s-toggle-switch--indicator"></div>
9494
</div>
9595
</div>
9696
</div>
97+
<div class="flex--item">
98+
<div class="d-flex ai-center jc-space-between gs8">
99+
<label class="flex--item s-label fs-body1 fw-normal" for="toggle-theme-dyslexic">Dyslexic-friendly fonts</label>
100+
<div class="flex--item s-toggle-switch">
101+
<input id="toggle-theme-dyslexic" type="checkbox">
102+
<div class="s-toggle-switch--indicator"></div>
103+
</div>
104+
</div>
105+
</div>
97106
</div>
98107
</div>
99108
</div>

docs/_includes/layouts/home.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,15 @@
196196
</div>
197197
</div>
198198
</div>
199+
<div class="flex--item">
200+
<div class="d-flex ai-center jc-space-between gs8">
201+
<label class="flex--item s-label fs-body1 fw-normal" for="toggle-theme-dyslexic">Dyslexic-friendly fonts</label>
202+
<div class="flex--item s-toggle-switch">
203+
<input id="toggle-theme-dyslexic" type="checkbox">
204+
<div class="s-toggle-switch--indicator"></div>
205+
</div>
206+
</div>
207+
</div>
199208
</div>
200209
</div>
201210
</div>

docs/_includes/theme.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,13 @@
3030
} else {
3131
document.body.classList.remove("theme-highcontrast");
3232
}
33+
34+
var dyslexic = localStorage.getItem("dyslexicTheme");
35+
36+
if (dyslexic === "true") {
37+
document.body.classList.add("theme-dyslexic");
38+
} else {
39+
document.body.classList.remove("theme-dyslexic");
40+
}
3341
}());
3442
</script>

docs/assets/js/feature.theming.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@ $(document).ready(function () {
22
var themeDarkToggleSwitch = $("#toggle-theme-dark");
33
var themeCustomToggleSwitch = $("#toggle-theme-custom");
44
var themeHighcontrastToggleSwitch = $("#toggle-theme-highcontrast");
5+
var themeDyslexicToggleSwitch = $("#toggle-theme-dyslexic");
56
var body = $("body");
67
var browserPrefersDark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
78
var isCustom = body.hasClass("theme-custom");
9+
var isDyslexic = body.hasClass("theme-dyslexic");
810
var isDark = body.hasClass("theme-dark") || browserPrefersDark && body.hasClass("theme-system");
911
var isHighcontrast = body.hasClass("theme-highcontrast");
1012

1113
themeCustomToggleSwitch.prop("checked", isCustom);
1214
themeDarkToggleSwitch.prop("checked", isDark);
1315
themeHighcontrastToggleSwitch.prop("checked", isHighcontrast);
16+
themeDyslexicToggleSwitch.prop("checked", isDyslexic);
1417

1518
themeDarkToggleSwitch.change(function (e) {
1619
e.preventDefault();
@@ -48,6 +51,20 @@ $(document).ready(function () {
4851
return false;
4952
});
5053

54+
themeDyslexicToggleSwitch.change(function (e) {
55+
e.preventDefault();
56+
e.stopPropagation();
57+
58+
var isDyslexic = body.hasClass("theme-dyslexic");
59+
60+
$(this).prop("checked", !isDyslexic);
61+
body.toggleClass("theme-dyslexic", !isDyslexic);
62+
63+
localStorage.setItem("dyslexicTheme", !isDyslexic);
64+
65+
return false;
66+
});
67+
5168
themeHighcontrastToggleSwitch.change(function (e) {
5269
e.preventDefault();
5370
e.stopPropagation();

lib/css/exports/_stacks-constants-type.less

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ body {
3333
--theme-body-font-family: var(--ff-sans);
3434
}
3535

36+
body.theme-dyslexic {
37+
--ff-sans: "Comic Sans MS";
38+
--ff-mono: Comic Mono;
39+
}
40+
3641
// ============================================================================
3742
// $ FONT SIZES (fs-)
3843
// Base font-size is 13px.

0 commit comments

Comments
 (0)