Skip to content

Commit f4f83cf

Browse files
committed
impr(dev): add button to cycle media query debug from the frontend
!nuf
1 parent b4ea7f1 commit f4f83cf

4 files changed

Lines changed: 56 additions & 13 deletions

File tree

frontend/src/html/popups.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<div class="modal">
99
<div class="title">Dev options</div>
1010
<button class="generateData">generate data</button>
11+
<button class="toggleMediaQueryDebug">toggle media query debug</button>
1112
</div>
1213
</dialog>
1314

frontend/src/styles/media-queries.scss

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,32 @@
1616
display: none;
1717
}
1818

19-
// uncomment to debug media queries
20-
21-
// #mediaQueryDebug {
22-
// display: block;
23-
// }
24-
25-
// .content-grid > * {
26-
// border: 0.1rem dashed var(--sub-color);
27-
// }
28-
29-
// .content-grid {
30-
// border: 0.1rem dashed var(--main-color);
31-
// }
19+
body {
20+
&.mediaQueryDebugLevel1 {
21+
#mediaQueryDebug {
22+
display: block;
23+
}
24+
}
25+
&.mediaQueryDebugLevel2 {
26+
#mediaQueryDebug {
27+
display: block;
28+
}
29+
.content-grid {
30+
border: 0.1rem dashed var(--main-color);
31+
}
32+
}
33+
&.mediaQueryDebugLevel3 {
34+
#mediaQueryDebug {
35+
display: block;
36+
}
37+
.content-grid > * {
38+
border: 0.1rem dashed var(--sub-color);
39+
}
40+
.content-grid {
41+
border: 0.1rem dashed var(--main-color);
42+
}
43+
}
44+
}
3245

3346
//media queries based on tailwind breakpoints https://tailwindcss.com/docs/container
3447
@import "media-queries-orange";

frontend/src/ts/modals/dev-options.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { envConfig } from "../constants/env-config";
22
import AnimatedModal from "../utils/animated-modal";
33
import { showPopup } from "./simple-modals";
4+
import * as Notifications from "../elements/notifications";
5+
import { setMediaQueryDebugLevel } from "../ui";
6+
7+
let mediaQueryDebugLevel = 0;
48

59
export function show(): void {
610
void modal.show();
@@ -10,6 +14,19 @@ async function setup(modalEl: HTMLElement): Promise<void> {
1014
modalEl.querySelector(".generateData")?.addEventListener("click", () => {
1115
showPopup("devGenerateData");
1216
});
17+
modalEl
18+
.querySelector(".toggleMediaQueryDebug")
19+
?.addEventListener("click", () => {
20+
mediaQueryDebugLevel++;
21+
if (mediaQueryDebugLevel > 3) {
22+
mediaQueryDebugLevel = 0;
23+
}
24+
Notifications.add(
25+
`Setting media query debug level to ${mediaQueryDebugLevel}`,
26+
5
27+
);
28+
setMediaQueryDebugLevel(mediaQueryDebugLevel);
29+
});
1330
}
1431

1532
const modal = new AnimatedModal({

frontend/src/ts/ui.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@ export function clearFontPreview(): void {
2525
isPreviewingFont = false;
2626
}
2727

28+
export function setMediaQueryDebugLevel(level: number): void {
29+
const body = document.querySelector("body") as HTMLElement;
30+
31+
body.classList.remove("mediaQueryDebugLevel1");
32+
body.classList.remove("mediaQueryDebugLevel2");
33+
body.classList.remove("mediaQueryDebugLevel3");
34+
35+
if (level > 0 && level < 4) {
36+
body.classList.add(`mediaQueryDebugLevel${level}`);
37+
}
38+
}
39+
2840
function updateKeytips(): void {
2941
const userAgent = window.navigator.userAgent.toLowerCase();
3042
const modifierKey =

0 commit comments

Comments
 (0)