Skip to content

Commit 782d79a

Browse files
committed
Put the sidebar behind a menubar on smaller screens.
1 parent 553bc91 commit 782d79a

File tree

4 files changed

+93
-24
lines changed

4 files changed

+93
-24
lines changed

lib/ffdocs/view/release_renderer.rb

+8-4
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,15 @@ def emphasis(text)
249249

250250
when "Other Vers."
251251
js = <<~JS
252-
(function(e) {
253-
e.open = true;
252+
(function() {
253+
const ov = document.querySelector(".other-versions");
254+
const sidebar = document.querySelector("#sidebar-toggle-check");
254255
255-
requestAnimationFrame(() => e.scrollIntoView(true));
256-
})(document.querySelector(".other-versions"));
256+
sidebar.checked = true;
257+
ov.open = true;
258+
259+
requestAnimationFrame(() => ov.scrollIntoView(true));
260+
})();
257261
258262
return false;
259263
JS

lib/ffdocs/view/styles/_layout.scss

+70-20
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ body {
2121
header {
2222
grid-column: 1 / 3;
2323
grid-row: 1 / 2;
24+
25+
.sidebar-toggle, #sidebar-toggle-check {
26+
display: none;
27+
}
2428
}
2529

2630
nav {
@@ -34,38 +38,84 @@ main {
3438
}
3539

3640
@media screen and (max-width: 20cm) {
41+
@supports selector(:has(a, b)) {
3742

38-
body {
39-
grid-template-rows: auto 1fr auto;
40-
grid-template-columns: auto;
41-
}
43+
body {
44+
grid-template-rows: auto 1fr auto;
45+
grid-template-columns: auto;
46+
}
4247

43-
header {
44-
grid-column: 1 / 2;
45-
grid-row: 1 / 2;
46-
}
48+
header {
49+
grid-column: 1 / 2;
50+
grid-row: 1 / 2;
51+
}
4752

48-
nav {
49-
grid-column: 1 / 2;
50-
grid-row: 3 / 4;
51-
}
53+
nav, main {
54+
grid-column: 1 / 2;
55+
grid-row: 2 / 3;
56+
}
5257

53-
main {
54-
grid-column: 1 / 2;
55-
grid-row: 2 / 3;
56-
}
58+
// Toggle sidebar
59+
header .sidebar-toggle {
60+
display: flex;
61+
}
62+
63+
body:has(#sidebar-toggle-check:checked) {
64+
nav { display: block; }
65+
main { display: none; }
66+
}
5767

68+
body:not(:has(#sidebar-toggle-check:checked)) {
69+
main { display: block; }
70+
nav { display: none; }
71+
}
72+
73+
}
5874
}
5975

6076
// Content.
6177

6278
header {
79+
$padding: 1ex;
80+
6381
display: flex;
64-
justify-content: space-between;
65-
padding: 1ex;
82+
padding: $padding;
83+
align-items: center;
6684

67-
.links {
68-
align-self: flex-end;
85+
.title {
86+
flex: 1;
87+
}
88+
89+
// Sidebar toggle button.
90+
.sidebar-toggle {
91+
align-items: center;
92+
93+
padding-right: $padding;
94+
95+
label {
96+
font-size: 0;
97+
overflow: hidden;
98+
99+
&::after {
100+
content: " ";
101+
102+
font-size: 1rem;
103+
display: inline-block;
104+
105+
$size: calc(var(--base-font-size) * 1.4);
106+
height: $size;
107+
width: $size;
108+
109+
background-image: svg-file(menu);
110+
background-size: 100%;
111+
background-position: center center;
112+
background-repeat: no-repeat;
113+
}
114+
}
115+
116+
&:has(input:checked) label::after {
117+
filter: sepia(100%) hue-rotate(90deg) saturate(10) drop-shadow(0 0 3px var(--main-green));;
118+
}
69119
}
70120
}
71121

lib/ffdocs/view/svg/menu.svg

+10
Loading

lib/ffdocs/view/templates/_layout.haml

+5
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@
2222

2323
%body
2424
%header
25+
.sidebar-toggle
26+
%input{type: "checkbox", id: "sidebar-toggle-check"}
27+
%label{for: "sidebar-toggle-check"} Sidebar
28+
2529
.title= "FFmpeg #{release ? release.version : ""}"
30+
2631
.links
2732
!= link_to_file :version_matrix, "Version Matrix"
2833
- if project_url

0 commit comments

Comments
 (0)