Skip to content

Commit 21473df

Browse files
committed
lots of css and content
1 parent ba9cff9 commit 21473df

9 files changed

Lines changed: 178 additions & 96 deletions

File tree

assets/js/obs.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,18 @@ function initSliders() {
6262
}
6363
}
6464
document.addEventListener('DOMContentLoaded', initSliders)
65+
66+
//////////////////////////////////////////////
67+
68+
function initTocHide() {
69+
// Fix to hide TOC menu when clicking a link inside -- not easy with native HTML
70+
// without making an ugly DOM.
71+
72+
const main = document.getElementById('mobile-menu-main')
73+
for (const item of Array.from(document.querySelectorAll('aside.toc a'))) {
74+
item.addEventListener('click', () => {
75+
main.checked = true
76+
})
77+
}
78+
}
79+
document.addEventListener('DOMContentLoaded', initTocHide)

assets/scss/dark.scss

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Dark mode, as detected by the media query
2+
3+
:root {
4+
--border-color: rgba(0, 0, 0, 0.1);
5+
--background: #FFFFFF;
6+
--foreground: #101010;
7+
--background-1: #f1f1f6;
8+
}
9+
10+
@media (prefers-color-scheme: dark) {
11+
:root {
12+
--border-color: rgba(255, 255, 255, 0.2);
13+
--background: #101010;
14+
--background-1: #303030;
15+
--foreground: #FFFFFF;
16+
color-scheme: dark;
17+
color: var(--foreground);
18+
background: var(--background);
19+
}
20+
}

assets/scss/features.scss

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@
2424
flex-direction: column;
2525
position: relative;
2626

27+
@media ($media-mobile) {
28+
& + & {
29+
margin-block-start: 2rem;
30+
}
31+
}
32+
2733
.button {
2834
margin-top: auto;
2935
align-self: flex-start;
@@ -33,7 +39,7 @@
3339
margin-block: 0;
3440
}
3541

36-
.inline-svg {
42+
> .inline-svg {
3743
position: absolute;
3844
left: 50%;
3945
top: 50%;
@@ -85,6 +91,9 @@
8591
display: flex;
8692
gap: 1em;
8793
margin-block-start: 2rem;
94+
flex-wrap: wrap;
95+
align-items: center;
96+
justify-content: center;
8897
}
8998

9099

@@ -258,7 +267,7 @@
258267
animation-range: exit -60px;
259268
}
260269

261-
height: 50vh;
270+
height: 66vh;
262271
position: relative;
263272
margin: 0;
264273

@@ -268,18 +277,24 @@
268277
justify-content: center;
269278
color: white;
270279
gap: 1em;
280+
text-align: center;
281+
padding-inline: 1rem;
271282

272283
> h2 {
273-
font-size: #{"min(4.5vw, 4rem)"};
284+
font-size: #{"min(max(1.5rem, 4.5vw), 4rem)"};
274285
font-weight: 300;
275286
margin: 0;
276287
text-shadow: 0 0 10px black;
288+
289+
@media ($media-mobile) {
290+
font-weight: 500;
291+
}
277292
}
278293

279294
> p {
295+
font-size: #{"min(max(1rem, 1.5vw), 1.5rem)"};
280296
font-weight: 500;
281297
margin: 0;
282-
font-size: 1.2rem;
283298
text-shadow: 0 0 5px black;
284299
}
285300

@@ -290,7 +305,7 @@
290305
left: 0;
291306
top: 0;
292307
z-index: 100;
293-
width: 25ch;
308+
width: #{"min(50vw, 25ch)"};
294309
padding: 0;
295310
transform-origin: 33% 33%;
296311
transition: all 0.5s;

assets/scss/layout.scss

Lines changed: 61 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
#header {
23
background: $primary;
34
color: white;
@@ -213,10 +214,6 @@ footer {
213214
}
214215
}
215216

216-
#mobile-sidebar-toggle {
217-
display: none;
218-
}
219-
220217
@media ($media-mobile) {
221218
#header {
222219
position: relative;
@@ -252,56 +249,23 @@ footer {
252249
}
253250

254251
.docs {
252+
aside.toc,
255253
aside.sidebar {
256-
transition: all 0.5s;
257254
overflow: auto;
258255
position: absolute;
259256
width: 100%;
260-
background: white;
257+
background: var(--background);
261258
display: none;
259+
z-index: 1;
262260

263261
height: #{"calc(100vh - 100px)"};
264262
box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.1);
265-
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
266-
}
267-
268-
aside.toc {
269-
padding: 1rem;
270-
h6 {
271-
margin: 0;
272-
}
263+
border-bottom: 1px solid $border-color;
273264
}
274265

275266
> main {
276267
padding: 1rem;
277268
}
278-
279-
.mobile-sidebar-toggle-label {
280-
background: $gray-light;
281-
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
282-
padding: 0 1rem;
283-
height: 40px;
284-
display: flex;
285-
align-items: center;
286-
287-
.inline-svg {
288-
margin-right: 0.5rem;
289-
height: 24px;
290-
}
291-
292-
> :last-child { display: none; }
293-
}
294-
295-
#mobile-sidebar-toggle:checked ~ {
296-
.mobile-sidebar-toggle-label {
297-
> :last-child { display: initial; }
298-
> :first-child { display: none; }
299-
}
300-
301-
aside.sidebar {
302-
display: block;
303-
}
304-
}
305269
}
306270

307271
ul.blog-posts {
@@ -310,10 +274,6 @@ footer {
310274
}
311275

312276
@media ($media-desktop) {
313-
.mobile-sidebar-toggle-label {
314-
display: none;
315-
}
316-
317277
.docs {
318278
display: grid;
319279
grid-column: full-width;
@@ -363,3 +323,59 @@ section.primary-1 {
363323
.content-grid > section.narrow {
364324
grid-column: col-start 3 / col-end 10;
365325
}
326+
327+
// Sidebar and TOC on mobile
328+
329+
input[name='mobile-menu'] {
330+
display: none;
331+
}
332+
333+
.mobile-menu-toggles-row {
334+
display: none;
335+
}
336+
337+
@media ($media-mobile) {
338+
.mobile-menu-toggles-row {
339+
background: var(--background-1);
340+
341+
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
342+
padding: 0 1rem;
343+
height: 40px;
344+
display: flex;
345+
align-items: center;
346+
justify-content: space-between;
347+
gap: 1rem;
348+
349+
.inline-svg { height: 16px; }
350+
label {
351+
flex: 1 1 auto;
352+
white-space: nowrap;
353+
overflow: hidden;
354+
flex-shrink: 1;
355+
text-overflow: ellipsis;
356+
&[class^="toc-"] {
357+
direction: rtl;
358+
text-align: right;
359+
360+
.docs:not(:has(aside.toc)) & {
361+
display: none;
362+
}
363+
}
364+
}
365+
366+
.sidebar-show { display: none; }
367+
.toc-show { display: none; }
368+
}
369+
370+
#mobile-menu-sidebar:checked ~ {
371+
.mobile-menu-toggles-row .sidebar-show { display: block; }
372+
.mobile-menu-toggles-row .sidebar-hide { display: none; }
373+
aside.sidebar { display: block; }
374+
}
375+
376+
#mobile-menu-toc:checked ~ {
377+
.mobile-menu-toggles-row .toc-show { display: block; }
378+
.mobile-menu-toggles-row .toc-hide { display: none; }
379+
aside.toc { display: block; }
380+
}
381+
}

assets/scss/main.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
@import "baseline.scss";
33
@import "layout.scss";
44
@import "features.scss";
5+
@import "dark.scss";
56
@import "print.scss";

assets/scss/variables.scss

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
$gray-light: #f1f1f6;
21
$gray-dark: #222222;
3-
$border-color: rgba(0, 0, 0, 0.1);
2+
$border-color: var(--border-color);
43

54
// $hue: 275deg; // lila
65
$hue: 197deg; // türkis

content/_index.de.html

Lines changed: 49 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
<section class="stage full-width">
1717
<a class="banderole" href="blog/2024/02/01/nachruf/"><img src="natenom_banderole.png"/></a>
1818

19-
<p>Der OpenBikeSensor ist ein offenes System für die</p>
20-
<h2>Überholabstandsmessung am Fahrrad</h2>
19+
<p>Der&nbsp;OpenBikeSensor ist&nbsp;ein offenes System&nbsp;für&nbsp;die</p>
20+
<h2>Überholabstands&shy;messung am&nbsp;Fahrrad</h2>
2121

2222
<div class="action-buttons">
2323
<a class="button" href="https://forum.openbikesensor.org" target="_blank" rel="noopener noreferrer nofollow">
@@ -38,11 +38,53 @@ <h2>Überholabstandsmessung am Fahrrad</h2>
3838
</div>
3939
</section>
4040

41-
<section class="columns-3 primary full-width content-grid">
42-
{{% blocks/feature icon="discourse" title="Fragen und Diskutieren" url="https://forum.openbikesensor.org" url_text="Zum Forum" %}}
43-
Komm in unser Discourse-Forum, und diskutiere mit den anderen Interessierten
44-
und Aktiven. Hier findet fast alles einen Platz: Unterstützung bei Problemen,
45-
Lokalgruppen, Forschungs&shy;projekte, Events, Entwicklungsthemen, und vieles mehr.
41+
<section>
42+
<h2>Bürger:innenforschung für Verkehrssicherheit</h2>
43+
44+
<p class="lead">Wir sind aktive Alltagsradler:innen, die Radfahren überall
45+
sicherer und populärer machen möchten. Dazu forschen wir zu Überholabständen.</p>
46+
47+
<p>Eine der gefährlichsten Situation für Radfahrende im Straßenverkehr ist das
48+
Überholen durch Kraftfahrzeuge. Seit 2020 gibt es zwar den gesetzlich
49+
vorgeschriebenen Mindestabstand von 1,5m (außerorts 2m) beim Überholen von
50+
Fahrrädern, doch oft wird dieser nicht eingehalten.</p>
51+
52+
<p>Grund dafür sind gar nicht überwiegend einzelnes Fehlverhalten der
53+
Autofahrenden, auch wenn es nach wie vor an Bewusstsein und auch Bekanntheit
54+
der neuen Regeln mangelt. Viel öfter sind aber die Platzverhältnisse und
55+
Vekehrsführung Auslöser für Regelverstöße, sodass hier auch vonseiten der
56+
Kommunen und Länder nachgebessert werden muss.</p>
57+
58+
<p>Für eine gelungene Verkehrswende brauchen wir dringend Fahrradinfrastruktur,
59+
die sich sicher anfühlt, und auch nachweislich sicherer ist. Darum haben wir es
60+
uns zum Auftrag gemacht, Infrastruktur, die enges Überholen ermöglicht oder
61+
begünstigt zu identifizieren und zu überprüfen. Dazu haben wir einen Sensor und
62+
ein Portal entwickelt, mit denen wir Überholabstände messen und die Daten
63+
einsammeln und auf einer Karte darstellen.</p>
64+
65+
<p>Überall in <a href="{{< relref "/map" >}}">Deutschland und darüber
66+
hinaus</a> gibt es Initiativen und Gruppen, die OpenBikeSensoren bauen
67+
und betreiben und mit den entstandenen Daten auf Politik und Verwaltung zugehen und zu Veränderung bewegen.
68+
</p>
69+
</section>
70+
71+
<div class="full-width content-grid columns-2">
72+
{{< yt id=Ym3BeUaSrWo thumbnail="/thumbnails/Ym3BeUaSrWo.jpg" >}}
73+
{{< yt id=izUD16ffs_Q thumbnail="/thumbnails/izUD16ffs_Q.jpg" >}}
74+
</div>
75+
76+
<section class="full-width content-grid">
77+
<h2>Sei auch du dabei!</h2>
78+
79+
<p>Deine Hilfe wird gebraucht. Egal, ob du an der Weiterentwicklung der Technik oder an der Verbreitung in deiner Stadt oder Kommune
80+
arbeiten möchtest, mit vielen Freiwilligen kommen wir voran! Hier sind einige Vorschläge, wie du dich einbringen kannst:</p>
81+
</section>
82+
83+
<section class="columns-3 full-width content-grid primary-1">
84+
{{% blocks/feature icon="discourse" title="Fragen und Diskutieren" url="/community" url_text="Zur Community" %}}
85+
Komm in unsere Community und vernetze dich mit Gleichgesinnten. Hier
86+
findest du Radler:innen, Techniker:innen, Forschende und Menschen, die in
87+
Lokalpolitik aktiv sind oder sein wollen. So bringen sich alle im Projekt ein.
4688
{{% /blocks/feature %}}
4789

4890
{{% blocks/feature icon="person-biking" title="Bauen & Daten sammeln" url="/bauanleitung" url_text="Zur Bauanleitung" %}}
@@ -58,34 +100,3 @@ <h2>Überholabstandsmessung am Fahrrad</h2>
58100
{{% /blocks/feature %}}
59101
</section>
60102

61-
<section>
62-
<h2>OpenBikeSensor – OpenCitizenScience</h2>
63-
64-
<p>Wir sind eine Gruppe von aktiven Alltagsradler:innen und möchten Radfahren sicherer und populärer machen. Überall!</p>
65-
66-
<p>Wie oft passiert es uns, dass uns ein Auto beinahe vom Sattel holt? Was wir alle kennen, überprüfen wir nun wissenschaftlich. Dazu haben wir einen Sensor entwickelt, der den Abstand misst und Überholmanöver Geodaten zuordnet. Wo ist es sicher? Wo nicht? Welche Uhrzeit? Welche Strecken? Der Sensor soll helfen, das zu erkennen und zu belegen.</p>
67-
</section>
68-
69-
<div class="full-width content-grid columns-2">
70-
71-
{{< yt id=Ym3BeUaSrWo thumbnail="/thumbnails/Ym3BeUaSrWo.jpg" >}}
72-
73-
{{< yt id=izUD16ffs_Q thumbnail="/thumbnails/izUD16ffs_Q.jpg" >}}
74-
75-
</div>
76-
77-
<section>
78-
<h2>Teil der Lösung</h2>
79-
80-
<p>Unser Ziel ist, Schwachstellen und Verbesserungspotenzial in der Verkehrsinfrastruktur aufzuzeigen und diese in Kooperation mit Stadtplaner:innen zu beheben. Zudem wollen wir die gesellschaftliche Wirkung von Kampagnen wie beispielsweise <a href="https://twitter.com/search?q=%23AnderthalbMeter&src=typed_query&f=live" target="_blank" rel="noopener noreferrer nofollow">#AnderthalbMeter</a> (in Städten) messen. Um statistisch verlässliche Open Data zu erhalten, ist es wichtig, dass möglichst viele Alltagsradler:innen mit unseren Sensoren offene Daten erfassen. Mit den von allen gesammelten Daten wiederum lassen sich individuelle Auswertungen vornehmen; von Initiativen, Kommunen und von Euch (Open Citizen Science).</p>
81-
82-
<p>Zentrales Hilfsmittel und Namensgeber des OpenBikeSensors ist unser Überholabstandsmesser, ein kleines technisches Gerät am Fahrrad. Während der Fahrt misst es den Abstand nach links und rechts (minus Lenkerbreite) und zeichnet die Fahrt via GPS auf. Überholmanöver kann die:der Radler:in per Taste am Lenker bestätigen. Nicht aufgezeichnet werden Fahrzeug- oder Personendaten der Überholenden. Uns geht es hauptsächlich um die Seitenabstände zu anderen Verkehrsteilnehmer:innen.</p>
83-
84-
<p>Wir wünschen uns, dass unser Sensor von vielen genutzt und weiterentwickelt wird. Die <a href="{{< relref "/docs/classic/build-instructions">}}">Anleitung zum Selberbauen und Montieren</a> ist für alle als Open Source verfügbar – hier auf unserer Website und <a href="https://github.com/openbikesensor" target="_blank" rel="noopener noreferrer nofollow">quelloffen via GitHub</a>. Wir entwickeln für die offenen Daten zudem <a href="{{< relref "#visualisierung">}}">Visualisierungskonzepte</a> (inklusive Visualisierungssoftware) und werten die Ergebnisse gemeinsam mit Forschungspartner:innen aus.</p>
85-
86-
<p>Uns geht es jedoch nicht nur um die Technik. Ergänzend entwickeln wir gemeinsam mit zivilgesellschaftlichen Organisationen und Kommunen regionale Aktionen, Kampagnen und Verkehrskonzepte. Wir gestalten Gesellschaft und leisten so einen Beitrag für mehr Lebensqualität in den Städten und auf dem Land.</p>
87-
88-
<p>Es wäre toll, wenn schon bald viele mitmachen, und wir so zusammen Bewegung in die Sache bringen.</p>
89-
90-
<p>Klingt interessant? <a href="{{< relref "/community" >}}">Hier kannst Du Teil der Community werden.</a></p>
91-
</section>

0 commit comments

Comments
 (0)